# Generated by Makefile. Do not edit.

commit 622fc6dde99ee172ebaa9c8628d85a7a1995a21d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 9 00:01:14 2023 +0100

    Update NEWS for 4.3.5

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

commit 5cf39bf0cebab06c75f8f4c5c4fba4afed153455
Merge: 8cdc4ed7 5712ad51
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 9 10:36:47 2023 +0100

    Merge pull request #4598 from brettviren/reimplement-proxy-steerable

    A clean room re-implementation of zmq_proxy_steerable()

commit 5712ad51387d63cecdf797684cc72dp188007cbd
Author: Brett Viren <brett.viren@gmail.com>
Date:   Sun Oct 8 19:56:03 2023 -0400

    A clean-room implementation of zmq_proxy_steerable().

    It is contriubted under the MPL-2.0.

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

    This version was developed based on expectations set in the old man page with one exception.  This version uses a REP/REQ for the proxy control protocol sockets.  The old man page example used PUB/SUB which is nonsensical given the STATISTICS command requires two way communication.

 AUTHORS                        |   1 +
 Makefile.am                    |   5 +
 doc/zmq_proxy_steerable.txt    | 101 +++++++++-
 src/proxy.cpp                  | 198 +++++++++++++++---
 src/proxy.hpp                  |   5 +
 src/zmq.cpp                    |  13 +-
 tests/CMakeLists.txt           |   1 +
 tests/test_proxy_steerable.cpp | 441 +++++++++++++++++++++++++++++++++++++++++
 8 files changed, 724 insertions(+), 41 deletions(-)

commit 8cdc4ed71a3170576a06d4b5e62801424fa6acce
Author: Nehal Patel <hereisnehal@gmail.com>
Date:   Wed Oct 4 01:51:43 2023 -0700

    Problem: unused variables warnings

    Solution: fix them

 src/ip.cpp                            | 3 +++
 src/zmq.cpp                           | 2 ++
 src/zmtp_engine.cpp                   | 3 +++
 tests/test_bind_fuzzer.cpp            | 3 +++
 tests/test_bind_null_fuzzer.cpp       | 2 ++
 tests/test_connect_fuzzer.cpp         | 3 +++
 tests/test_connect_null_fuzzer.cpp    | 3 +++
 tests/test_poller.cpp                 | 1 +
 tests/test_reconnect_options.cpp      | 2 ++
 tests/test_socks.cpp                  | 1 +
 tests/test_spec_dealer.cpp            | 1 +
 tests/test_spec_pushpull.cpp          | 1 +
 unittests/unittest_curve_encoding.cpp | 8 ++++----
 unittests/unittest_mtrie.cpp          | 3 +++
 14 files changed, 32 insertions(+), 4 deletions(-)

commit de5ee18203f4ba472812fd08665603cd3f88955d
Author: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Date:   Sat Aug 26 17:53:24 2023 +0100

    Replace `egrep` with `grep -E`

    For the GNU Grep package version >= 3.8, the `egrep` command emits:
    ```
    egrep: warning: egrep is obsolescent; using grep -E
    ```
    which makes the `./autogen.sh` script very noisy.

 Jenkinsfile         | 2 +-
 builds/zos/runtests | 4 ++--
 version.sh          | 6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

commit ec013f3a17beaa475c18e8cf5e93970800e2f94a
Author: Jeffery Weston <Jeffery.Weston@nrl.navy.mil>
Date:   Fri Jul 21 14:34:53 2023 -0400

    fix assert error on late-joining subscriber after publisher has filled NORM buffer

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

commit ecc63d0d3b0e1a62c90b58b1ccdb5ac16cb2400a
Author: Cornelius <cornelius.soell@rohde-schwarz.com>
Date:   Tue Jun 20 16:17:26 2023 +0200

    Problem: long flag isn't set for subscriptions if topic has between 246 and 255 characters (#4564)

    * Problem: long flag isn't set for subscriptions if topic has between 246 and 255 characters

    Solution: fix V3.1 encoder to calculate long flag after evaluating the subscribe and cancel commands

 Makefile.am               |  5 +++
 src/v3_1_encoder.cpp      |  6 ++--
 tests/CMakeLists.txt      |  1 +
 tests/test_xpub_topic.cpp | 85 +++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 95 insertions(+), 2 deletions(-)

commit 7af09a0e3bca37d9da21a1bca2ab27e494b4e3d8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jun 18 15:40:05 2023 +0100

    obs: trigger build on merge

 .obs/workflows.yml | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 61fd887d117927876ba2b2cc40408ca0553d8c54
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jun 18 13:06:57 2023 +0100

    spec: do not attempt to install curve_keygen if curve is disabled

 packaging/redhat/zeromq.spec | 2 ++
 1 file changed, 2 insertions(+)

commit 7fef478481615bfbec3d3383a63e80c5b864c5a1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jun 18 12:51:43 2023 +0100

    spec: remove duplicated macros

 packaging/redhat/zeromq.spec | 45 --------------------------------------------
 1 file changed, 45 deletions(-)

commit 5657b4586f24ec433930e8ece02ddba7afcf0fe0
Author: Guillaume DELACOURT <guillaume.delacourt@thalesgroup.com>
Date:   Mon Jun 12 10:06:01 2023 +0200

    Always allow DNS when resolving TCP and UDP adresses. DNS resolution is done after interface resolution, so it can always be enabled to have a fallback mecanism on hostname resolution.

 src/tcp_address.cpp | 2 +-
 src/udp_address.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit e0296d9cddbb0dfc4d4a1e408e1392b0caf3f6f2
Author: Guillaume DELACOURT <guillaume.delacourt@thalesgroup.com>
Date:   Tue May 23 16:11:14 2023 +0200

    Checks for pthread setname and setaffinity API are compilation checks, not execution checks.

 CMakeLists.txt                                | 28 +++++++++++++++------------
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 10 +++++-----
 2 files changed, 21 insertions(+), 17 deletions(-)

commit 797c7f09f85a55fb530f3d4cf3b05924470b1198
Author: Guillaume DELACOURT <guillaume.delacourt@thalesgroup.com>
Date:   Tue May 23 16:40:46 2023 +0200

    When setting thread priority, always set the value to zero when the policy is not compatible. Also, only call nice when the priority is set to a strictly positive value.

 doc/zmq_ctx_set.txt |  3 ++-
 src/thread.cpp      | 17 ++++++++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 5bf04ee2ff207f0eaf34298658fe354ea61e1839
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 6 18:02:05 2023 +0100

    Problem: docs for ZMQ_RECONNECT_IVL_MAX are stubs

    Solution: write them now that the option is back

 doc/zmq_getsockopt.txt | 22 +++++++++++++++++-----
 doc/zmq_setsockopt.txt | 22 +++++++++++++++++-----
 2 files changed, 34 insertions(+), 10 deletions(-)

commit 346907065f9c63af789af28a22dce2c0b77aa597
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 6 18:00:08 2023 +0100

    Problem: trailing whitespace

    Solution: remove it

 src/options.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7175f0acb53229360618754162bceb6986511a04
Merge: 1a921db7 de1bd5c8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 6 16:40:57 2023 +0100

    Merge pull request #4556 from stvales/master

    Problem: relicensing forced to remove support for ZMQ_RECONNECT_IVL_MAX option

commit de1bd5c8e744604fbfaa6d36866249d70cf272d0
Author: Stéphane Valès <7755128+stvales@users.noreply.github.com>
Date:   Tue Jun 6 11:12:03 2023 +0200

    Problem: relicensing forced to remove support for ZMQ_RECONNECT_IVL_MAX option

    Solution: reimplement support for ZMQ_RECONNECT_IVL_MAX without knowledge of the previous code.

 src/options.cpp               | 21 +++++++++++----------
 src/options.hpp               |  4 ++++
 src/stream_connecter_base.cpp | 38 ++++++++++++++++++++++++++------------
 3 files changed, 41 insertions(+), 22 deletions(-)

commit 1a921db7280c3a450f8fe0312a78639adead1f96
Merge: 87bb4db1 3e5e405f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 6 13:50:00 2023 +0100

    Merge pull request #4555 from bluca/relicense

    Relicense from LGPL3 + exceptions to Mozilla Public License version 2.0

commit 3e5e405f336f8980ee8864ade51a252471bd63fe
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 5 01:39:25 2023 +0100

    Remove RELICENSE/ directory

    Grants archived at:

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

    No longer necessary to keep them here, as the relicensing is complete.

 RELICENSE/AnCaPepe.md                              | 15 --------------
 RELICENSE/AndreLouisCaron.md                       | 15 --------------
 RELICENSE/Asmod4n.md                               | 13 ------------
 RELICENSE/AxelNennker.md                           | 16 ---------------
 RELICENSE/Bklyn.md                                 | 15 --------------
 RELICENSE/Botje.md                                 | 15 --------------
 RELICENSE/C-Sir.md                                 | 15 --------------
 RELICENSE/CommanderBubble.md                       | 15 --------------
 RELICENSE/Cziken.md                                |  7 -------
 RELICENSE/DaiyuHurst.md                            | 16 ---------------
 RELICENSE/Eelis.md                                 | 16 ---------------
 RELICENSE/FrancoFichtner.md                        | 15 --------------
 RELICENSE/FredTreg.md                              | 13 ------------
 RELICENSE/Hugne.md                                 | 17 ----------------
 RELICENSE/Jasper-Bekkers.md                        | 13 ------------
 RELICENSE/JohanMabille.md                          | 16 ---------------
 RELICENSE/JonDyte.md                               | 15 --------------
 RELICENSE/KLNikita.md                              | 15 --------------
 RELICENSE/MartinGrigorov.md                        | 15 --------------
 RELICENSE/NLeScienceCenter.md                      | 13 ------------
 RELICENSE/Neopallium.md                            | 13 ------------
 RELICENSE/PaulThiele.md                            | 16 ---------------
 RELICENSE/Quuxplusone.md                           | 15 --------------
 RELICENSE/README.md                                | 23 ----------------------
 RELICENSE/RPGillespie6.md                          | 16 ---------------
 RELICENSE/Ricardicus.md                            |  6 ------
 RELICENSE/SRombauts.md                             | 15 --------------
 RELICENSE/SergheiNovac.md                          | 15 --------------
 RELICENSE/StephaneVales.md                         | 15 --------------
 RELICENSE/SylvainCorlay.md                         | 16 ---------------
 RELICENSE/TTimo.md                                 | 15 --------------
 RELICENSE/Teebonne.md                              | 15 --------------
 RELICENSE/ThePrez.md                               | 13 ------------
 RELICENSE/TobiSchluter.md                          | 15 --------------
 RELICENSE/WenbinHou.md                             | 15 --------------
 RELICENSE/a4z.md                                   | 17 ----------------
 RELICENSE/abdplhe                                  | 15 --------------
 RELICENSE/abbradar.md                              | 15 --------------
 RELICENSE/ackalker.md                              | 15 --------------
 RELICENSE/acsearle.md                              | 14 -------------
 RELICENSE/agronholm.md                             | 15 --------------
 RELICENSE/aixxe.md                                 | 15 --------------
 RELICENSE/ambitslix.md                             |  7 -------
 RELICENSE/amuraru.md                               | 15 --------------
 RELICENSE/analogist.md                             | 15 --------------
 RELICENSE/answeroo.md                              | 15 --------------
 RELICENSE/antonrd.md                               | 17 ----------------
 RELICENSE/ardrabczyk.md                            | 16 ---------------
 RELICENSE/arsenm.md                                | 15 --------------
 RELICENSE/asafkahlon.md                            | 15 --------------
 RELICENSE/aseering.md                              | 15 --------------
 RELICENSE/atomashpolskiy.md                        | 15 --------------
 RELICENSE/autoantwort.txt                          | 15 --------------
 RELICENSE/banburybill.md                           | 16 ---------------
 RELICENSE/bbdb68.md                                | 13 ------------
 RELICENSE/bebopagogo.md                            | 13 ------------
 RELICENSE/benjdero.md                              | 13 ------------
 RELICENSE/bjornstromberg.md                        | 16 ---------------
 RELICENSE/bjoto.md                                 | 16 ---------------
 RELICENSE/bjovke.md                                | 16 ---------------
 RELICENSE/bl0x.md                                  | 16 ---------------
 RELICENSE/bluca.md                                 | 17 ----------------
 RELICENSE/boscosiu.md                              | 15 --------------
 RELICENSE/boxkey.md                                |  7 -------
 RELICENSE/bprager.md                               | 13 ------------
 RELICENSE/brett-cameron.md                         | 15 --------------
 RELICENSE/brian-peloton.md                         | 15 --------------
 RELICENSE/brocade_communications_systems.md        | 15 --------------
 RELICENSE/brubakerjeff.md                          | 16 ---------------
 RELICENSE/bwbuchanan.md                            | 15 --------------
 RELICENSE/c-rack.md                                | 15 --------------
 RELICENSE/c-zhao-3g.md                             | 15 --------------
 RELICENSE/calid.md                                 | 14 -------------
 RELICENSE/camachat.md                              | 15 --------------
 RELICENSE/casaroli.md                              | 16 ---------------
 RELICENSE/cbusbey.md                               | 13 ------------
 RELICENSE/cdepillabout.md                          | 16 ---------------
 RELICENSE/cdolan.md                                | 15 --------------
 RELICENSE/chachoi.md                               | 15 --------------
 RELICENSE/chickenkiller.md                         | 15 --------------
 RELICENSE/chrisstaite.md                           | 14 -------------
 RELICENSE/christhrasher.md                         | 15 --------------
 RELICENSE/chuckremes.md                            | 15 --------------
 RELICENSE/chuggafan.md                             | 15 --------------
 RELICENSE/chymanfx.md                              | 12 -----------
 RELICENSE/cjuniet.md                               | 15 --------------
 RELICENSE/ckamm.md                                 | 15 --------------
 RELICENSE/claws.md                                 | 15 --------------
 RELICENSE/clkao.md                                 | 15 --------------
 RELICENSE/colletted.md                             |  7 -------
 RELICENSE/cowo78.md                                | 15 --------------
 RELICENSE/crocket.md                               | 15 --------------
 RELICENSE/cwsmith.md                               | 13 ------------
 RELICENSE/daira.md                                 | 15 --------------
 RELICENSE/danielhtshih.md                          | 15 --------------
 RELICENSE/danriegsecker.md                         | 16 ---------------
 RELICENSE/darkdragon-001.md                        | 15 --------------
 RELICENSE/demozon.md                               | 15 --------------
 RELICENSE/dennisklein.md                           | 15 --------------
 RELICENSE/dfons.md                                 | 16 ---------------
 RELICENSE/dhammika.md                              | 13 ------------
 RELICENSE/dimpase.md                               | 14 -------------
 RELICENSE/diorcety.md                              | 15 --------------
 RELICENSE/djelenc.md                               | 15 --------------
 RELICENSE/djolemanojlovic.md                       | 16 ---------------
 RELICENSE/dkrikun.md                               | 13 ------------
 RELICENSE/dmeehan1968.md                           | 13 ------------
 RELICENSE/drbobbeaty.md                            | 15 --------------
 RELICENSE/drodri.md                                | 15 --------------
 RELICENSE/drolevar.md                              | 16 ---------------
 RELICENSE/eburkitt.md                              | 15 --------------
 RELICENSE/egomotion.md                             | 16 ---------------
 RELICENSE/eldruin.md                               | 15 --------------
 RELICENSE/emtr.md                                  | 15 --------------
 RELICENSE/eponsko.md                               | 15 --------------
 RELICENSE/ericsson.md                              | 13 ------------
 RELICENSE/evoskuil.md                              | 15 --------------
 RELICENSE/ezhikus.md                               | 15 --------------
 RELICENSE/f18m.md                                  | 15 --------------
 RELICENSE/fanquake.md                              | 17 ----------------
 RELICENSE/febeling.md                              | 16 ---------------
 RELICENSE/ferdnyc.md                               | 15 --------------
 RELICENSE/ffontaine.md                             | 15 --------------
 RELICENSE/fidlej.md                                | 15 --------------
 RELICENSE/flub.md                                  | 14 -------------
 RELICENSE/gabm.md                                  | 13 ------------
 RELICENSE/garlick.md                               | 16 ---------------
 RELICENSE/gavinmcniff.md                           | 15 --------------
 RELICENSE/gcsideal.md                              | 15 --------------
 RELICENSE/gena-moscow.md                           | 15 --------------
 RELICENSE/ghpu.md                                  | 15 --------------
 RELICENSE/gitfoxi.md                               | 16 ---------------
 RELICENSE/glemercier.md                            | 17 ----------------
 RELICENSE/gonzus.md                                | 15 --------------
 RELICENSE/goodfella.md                             | 13 ------------
 RELICENSE/google.md                                | 13 ------------
 RELICENSE/grmt.md                                  | 13 ------------
 RELICENSE/guidovranken.md                          | 17 ----------------
 RELICENSE/guillon.md                               | 15 --------------
 RELICENSE/gummif.md                                | 17 ----------------
 RELICENSE/hangao.md                                | 13 ------------
 RELICENSE/herbrechtsmeier.md                       | 15 --------------
 RELICENSE/hewlett_packard_enterprise.md            | 15 --------------
 RELICENSE/hgourvest.md                             | 16 ---------------
 RELICENSE/hitstergtd.md                            | 15 --------------
 RELICENSE/hnwyllmm.md                              | 15 --------------
 RELICENSE/hoditohod.md                             | 15 --------------
 RELICENSE/hpsaturn.md                              |  9 ---------
 RELICENSE/hsw.md                                   | 16 ---------------
 RELICENSE/ianbarber.md                             | 15 --------------
 RELICENSE/imatix.md                                | 23 ----------------------
 RELICENSE/imkcy9.md                                | 16 ---------------
 RELICENSE/inuik.md                                 | 17 ----------------
 RELICENSE/ipa.md                                   | 17 ----------------
 RELICENSE/ipechorin.md                             | 17 ----------------
 RELICENSE/jackpimbert.md                           | 18 -----------------
 RELICENSE/jacquesg.md                              | 17 ----------------
 RELICENSE/jakecobb.md                              | 13 ------------
 RELICENSE/jbreams.md                               | 17 ----------------
 RELICENSE/jcfr.md                                  | 13 ------------
 RELICENSE/jcourreges.md                            | 13 ------------
 RELICENSE/jean-airoldie.md                         |  7 -------
 RELICENSE/jemc.md                                  | 15 --------------
 RELICENSE/jens.auer.md                             | 15 --------------
 RELICENSE/jimenezrick.md                           | 16 ---------------
 RELICENSE/jimklimov.md                             | 17 ----------------
 RELICENSE/jkryl.md                                 | 15 --------------
 RELICENSE/jlauenercern.md                          | 15 --------------
 RELICENSE/jlsantiago0.md                           | 13 ------------
 RELICENSE/johntconklin.md                          | 15 --------------
 RELICENSE/jruffin.md                               | 14 -------------
 RELICENSE/jsyoo5b.md                               | 15 --------------
 RELICENSE/kaczmarj.md                              | 15 --------------
 RELICENSE/kalantar.md                              | 15 --------------
 RELICENSE/kanonet.md                               |  8 --------
 RELICENSE/keith-dev.md                             | 15 --------------
 RELICENSE/kentzo.md                                | 15 --------------
 RELICENSE/kfish.md                                 | 17 ----------------
 RELICENSE/kobolog.md                               | 12 -----------
 RELICENSE/kreuzberger.md                           | 13 ------------
 RELICENSE/kurdybacha.md                            | 15 --------------
 RELICENSE/laplaceyang.md                           | 16 ---------------
 RELICENSE/latchmoor-services-carcich.md            | 16 ---------------
 RELICENSE/leonarf.md                               | 14 -------------
 RELICENSE/liedtkeInTUM.md                          | 13 ------------
 RELICENSE/linville.md                              | 15 --------------
 RELICENSE/loachfish.md                             | 15 --------------
 RELICENSE/lodagro.md                               | 14 -------------
 RELICENSE/lourens.md                               | 15 --------------
 RELICENSE/lstacul.md                               | 14 -------------
 RELICENSE/madebr.md                                | 15 --------------
 RELICENSE/malexzx.md                               | 13 ------------
 RELICENSE/mancasg.md                               | 15 --------------
 RELICENSE/martin-ksti.md                           | 16 ---------------
 RELICENSE/martindelille.md                         | 15 --------------
 RELICENSE/mattconnolly.md                          | 15 --------------
 RELICENSE/mauri-melato.md                          | 13 ------------
 RELICENSE/mbarbisan.md                             | 14 -------------
 RELICENSE/mdionisio.md                             | 13 ------------
 RELICENSE/mditzel.md                               | 15 --------------
 RELICENSE/meox.md                                  | 15 --------------
 RELICENSE/mesegura.md                              | 13 ------------
 RELICENSE/mgatny.md                                | 15 --------------
 RELICENSE/michicc.md                               | 15 --------------
 RELICENSE/micromass-ricnewton.md                   | 16 ---------------
 RELICENSE/mileschet.md                             |  6 ------
 RELICENSE/miniway.md                               | 15 --------------
 RELICENSE/minrk.md                                 | 15 --------------
 RELICENSE/mipaaa.md                                | 15 --------------
 RELICENSE/mjvk.md                                  | 16 ---------------
 RELICENSE/mkluwe.md                                | 15 --------------
 RELICENSE/mkoppanen.md                             | 15 --------------
 RELICENSE/mloy.md                                  | 14 -------------
 RELICENSE/mongodb.md                               | 17 ----------------
 RELICENSE/montoydpdu.md                            | 15 --------------
 RELICENSE/moretromain.md                           | 16 ---------------
 RELICENSE/mrvn.md                                  | 15 --------------
 RELICENSE/msune.md                                 | 17 ----------------
 RELICENSE/murphybytes.md                           | 15 --------------
 RELICENSE/mvilim.md                                | 16 ---------------
 RELICENSE/mystfit.md                               | 15 --------------
 RELICENSE/naos_ltd.md                              | 19 ------------------
 RELICENSE/natano.md                                | 15 --------------
 RELICENSE/neheb.md                                 | 14 -------------
 RELICENSE/nevalsar.md                              | 15 --------------
 RELICENSE/nfware.md                                | 13 ------------
 RELICENSE/ninoles.md                               | 16 ---------------
 RELICENSE/nixman.md                                | 15 --------------
 RELICENSE/niyassait.md                             | 15 --------------
 RELICENSE/nokia.md                                 | 13 ------------
 RELICENSE/normano.md                               | 15 --------------
 RELICENSE/ojura.md                                 |  9 ---------
 RELICENSE/olafmandel.md                            | 13 ------------
 RELICENSE/omegastick.md                            | 15 --------------
 RELICENSE/opedroso.md                              | 15 --------------
 RELICENSE/opensource-kymetacorp.md                 | 15 --------------
 RELICENSE/paddor.md                                | 13 ------------
 RELICENSE/panicgh.md                               | 15 --------------
 RELICENSE/panlinux.md                              | 17 ----------------
 RELICENSE/patrickvolante.md                        | 15 --------------
 RELICENSE/pavel-pimenov.md                         | 15 --------------
 RELICENSE/philippeleite.md                         | 16 ---------------
 RELICENSE/phreed.md                                | 15 --------------
 RELICENSE/pijyoi.md                                | 13 ------------
 RELICENSE/pmienk.md                                | 15 --------------
 RELICENSE/pnnl.md                                  | 15 --------------
 RELICENSE/prarrot.md                               | 15 --------------
 RELICENSE/psl-felipefarinon.md                     | 16 ---------------
 RELICENSE/ptroja.md                                | 14 -------------
 RELICENSE/qzkLicense                               |  6 ------
 RELICENSE/rcxdude.md                               | 13 ------------
 RELICENSE/reunanen.md                              | 15 --------------
 RELICENSE/rex4539.md                               | 15 --------------
 RELICENSE/reza-ebrahimi.md                         | 15 --------------
 RELICENSE/rgagnon24.md                             | 13 ------------
 RELICENSE/rikvdh.md                                | 15 --------------
 RELICENSE/rlenferink.md                            | 15 --------------
 RELICENSE/roalz.md                                 | 13 ------------
 RELICENSE/rodgert.md                               | 17 ----------------
 RELICENSE/rotty.md                                 | 16 ---------------
 RELICENSE/sab24.md                                 | 14 -------------
 RELICENSE/sabotagebeats.md                         | 16 ---------------
 RELICENSE/sappo.md                                 | 13 ------------
 RELICENSE/saschavv.md                              | 15 --------------
 RELICENSE/scemama.md                               | 15 --------------
 RELICENSE/schulzch.md                              | 15 --------------
 RELICENSE/sdrsdr.md                                | 14 -------------
 RELICENSE/serg06.md                                | 15 --------------
 RELICENSE/sergeyfedorov.md                         | 16 ---------------
 RELICENSE/shancat.md                               | 13 ------------
 RELICENSE/sheremetyev.md                           | 13 ------------
 RELICENSE/shripchenko.md                           | 15 --------------
 RELICENSE/sigiesec.md                              | 17 ----------------
 RELICENSE/simias.md                                | 15 --------------
 RELICENSE/skdps.md                                 | 13 ------------
 RELICENSE/skaller.md                               | 15 --------------
 RELICENSE/skicc.md                                 | 15 --------------
 RELICENSE/somdoron.md                              | 16 ---------------
 RELICENSE/sonoware.md                              | 13 ------------
 RELICENSE/soulik.md                                | 15 --------------
 RELICENSE/spotify.md                               | 15 --------------
 RELICENSE/sradomski.md                             | 15 --------------
 RELICENSE/ssbl.md                                  | 17 ----------------
 RELICENSE/stanpl.md                                | 15 --------------
 RELICENSE/staticfloat.md                           | 15 --------------
 RELICENSE/std-any-emplace.md                       | 15 --------------
 RELICENSE/stephan57160.md                          | 14 -------------
 RELICENSE/stephanlachnit.md                        | 13 ------------
 RELICENSE/steve-o.md                               | 14 -------------
 RELICENSE/straubar.md                              | 15 --------------
 RELICENSE/suudy.md                                 | 12 -----------
 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 ------------
 RELICENSE/tarmo.md                                 | 15 --------------
 RELICENSE/tberkey.md                               | 14 -------------
 RELICENSE/td-krzysiek.md                           | 15 --------------
 .../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/thxkiwi.md                               | 15 --------------
 RELICENSE/timblechmann.md                          | 16 ---------------
 RELICENSE/tommd.md                                 | 13 ------------
 RELICENSE/tomzbench.md                             | 14 -------------
 RELICENSE/tongsong-cai.md                          | 15 --------------
 RELICENSE/toonetown.md                             | 17 ----------------
 RELICENSE/tranthamp.md                             | 15 --------------
 RELICENSE/trevorbernard.md                         | 16 ---------------
 RELICENSE/trya.md                                  | 13 ------------
 RELICENSE/twhittock.md                             | 15 --------------
 RELICENSE/ulikoehler.md                            | 16 ---------------
 RELICENSE/viciious.md                              | 13 ------------
 RELICENSE/vortechs2000.md                          | 13 ------------
 RELICENSE/vtellier.md                              | 15 --------------
 RELICENSE/vyskocilm.md                             |  7 -------
 RELICENSE/wallstprog.md                            | 16 ---------------
 RELICENSE/weston-nrl.md                            | 12 -----------
 RELICENSE/willstrang.md                            | 15 --------------
 RELICENSE/xantares.md                              | 15 --------------
 RELICENSE/xaqq.md                                  | 13 ------------
 RELICENSE/xqcool.mq                                | 15 --------------
 RELICENSE/yan12125.md                              | 13 ------------
 RELICENSE/yitzchak.md                              | 15 --------------
 RELICENSE/yunye-pu.md                              | 15 --------------
 RELICENSE/yuvallanger.md                           | 15 --------------
 RELICENSE/zedalaye.md                              | 14 -------------
 RELICENSE/zoedberg.md                              | 15 --------------
 RELICENSE/zoobab.md                                | 15 --------------
 332 files changed, 4862 deletions(-)

commit da31917f4f443df751871ee359f7562cf6d77bde
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 5 00:16:05 2023 +0100

    Relicense from LGPL3 + exceptions to Mozilla Public License version 2.0

    Relicense permission collected from all relevant authors as tallied at:
    https://github.com/rlenferink/libzmq-relicense/blob/master/checklist.md
    The relicense grants are collected under RELICENSE/ and will be moved
    to the above repository in a later commit.

    Fixes https://github.com/zeromq/libzmq/issues/2376

 CMakeLists.txt                         |   4 +-
 COPYING                                | 674 ---------------------------------
 COPYING.LESSER                         | 181 ---------
 LICENSE                                | 373 ++++++++++++++++++
 Makefile.am                            |   1 +
 README.doxygen.md                      |   2 +-
 README.md                              |  21 +-
 autogen.sh                             |  19 +-
 builds/gyp/platform.hpp                |  29 +-
 builds/mingw32/platform.hpp            |  29 +-
 builds/nuget/libzmq.autopkg            |   2 +-
 builds/zos/test_fork.cpp               |  29 +-
 doc/zmq.txt                            |   8 +-
 include/zmq.h                          |  31 +-
 include/zmq_utils.h                    |  29 +-
 packaging/debian/copyright             |  64 +---
 packaging/nuget/package.gsl            |   4 +-
 packaging/nuget/package.nuspec         |   4 +-
 packaging/redhat/zeromq.spec           |   4 +-
 perf/benchmark_radix_tree.cpp          |  29 +-
 perf/inproc_lat.cpp                    |  29 +-
 perf/inproc_thr.cpp                    |  31 +-
 perf/local_lat.cpp                     |  29 +-
 perf/local_thr.cpp                     |  29 +-
 perf/proxy_thr.cpp                     |  29 +-
 perf/remote_lat.cpp                    |  29 +-
 perf/remote_thr.cpp                    |  29 +-
 src/address.cpp                        |  29 +-
 src/address.hpp                        |  29 +-
 src/array.hpp                          |  29 +-
 src/atomic_counter.hpp                 |  29 +-
 src/atomic_ptr.hpp                     |  29 +-
 src/blob.hpp                           |  29 +-
 src/channel.cpp                        |  29 +-
 src/channel.hpp                        |  29 +-
 src/client.cpp                         |  29 +-
 src/client.hpp                         |  29 +-
 src/clock.cpp                          |  29 +-
 src/clock.hpp                          |  29 +-
 src/command.hpp                        |  29 +-
 src/compat.hpp                         |  29 +-
 src/condition_variable.hpp             |  29 +-
 src/config.hpp                         |  29 +-
 src/ctx.cpp                            |  29 +-
 src/ctx.hpp                            |  29 +-
 src/curve_client.cpp                   |  29 +-
 src/curve_client.hpp                   |  29 +-
 src/curve_client_tools.hpp             |  29 +-
 src/curve_mechanism_base.cpp           |  29 +-
 src/curve_mechanism_base.hpp           |  29 +-
 src/curve_server.cpp                   |  29 +-
 src/curve_server.hpp                   |  29 +-
 src/dbuffer.hpp                        |  29 +-
 src/dealer.cpp                         |  29 +-
 src/dealer.hpp                         |  29 +-
 src/decoder.hpp                        |  29 +-
 src/decoder_allocators.cpp             |  29 +-
 src/decoder_allocators.hpp             |  29 +-
 src/devpoll.cpp                        |  29 +-
 src/devpoll.hpp                        |  29 +-
 src/dgram.cpp                          |  29 +-
 src/dgram.hpp                          |  29 +-
 src/dish.cpp                           |  29 +-
 src/dish.hpp                           |  29 +-
 src/dist.cpp                           |  29 +-
 src/dist.hpp                           |  29 +-
 src/encoder.hpp                        |  29 +-
 src/endpoint.cpp                       |  29 +-
 src/endpoint.hpp                       |  29 +-
 src/epoll.cpp                          |  29 +-
 src/epoll.hpp                          |  29 +-
 src/err.cpp                            |  29 +-
 src/err.hpp                            |  29 +-
 src/fd.hpp                             |  29 +-
 src/fq.cpp                             |  29 +-
 src/fq.hpp                             |  29 +-
 src/gather.cpp                         |  29 +-
 src/gather.hpp                         |  29 +-
 src/generic_mtrie.hpp                  |  29 +-
 src/generic_mtrie_impl.hpp             |  29 +-
 src/gssapi_client.cpp                  |  29 +-
 src/gssapi_client.hpp                  |  29 +-
 src/gssapi_mechanism_base.cpp          |  29 +-
 src/gssapi_mechanism_base.hpp          |  29 +-
 src/gssapi_server.cpp                  |  29 +-
 src/gssapi_server.hpp                  |  29 +-
 src/i_decoder.hpp                      |  29 +-
 src/i_encoder.hpp                      |  29 +-
 src/i_engine.hpp                       |  29 +-
 src/i_mailbox.hpp                      |  29 +-
 src/i_poll_events.hpp                  |  29 +-
 src/io_object.cpp                      |  29 +-
 src/io_object.hpp                      |  29 +-
 src/io_thread.cpp                      |  29 +-
 src/io_thread.hpp                      |  29 +-
 src/ip.cpp                             |  29 +-
 src/ip.hpp                             |  29 +-
 src/ip_resolver.hpp                    |  29 +-
 src/ipc_address.cpp                    |  29 +-
 src/ipc_address.hpp                    |  29 +-
 src/ipc_connecter.cpp                  |  29 +-
 src/ipc_connecter.hpp                  |  29 +-
 src/ipc_listener.cpp                   |  29 +-
 src/ipc_listener.hpp                   |  29 +-
 src/kqueue.cpp                         |  29 +-
 src/kqueue.hpp                         |  29 +-
 src/lb.cpp                             |  29 +-
 src/lb.hpp                             |  29 +-
 src/likely.hpp                         |  29 +-
 src/mailbox.cpp                        |  29 +-
 src/mailbox.hpp                        |  29 +-
 src/mailbox_safe.cpp                   |  29 +-
 src/mailbox_safe.hpp                   |  29 +-
 src/mechanism.cpp                      |  29 +-
 src/mechanism.hpp                      |  29 +-
 src/mechanism_base.cpp                 |  29 +-
 src/mechanism_base.hpp                 |  29 +-
 src/metadata.cpp                       |  29 +-
 src/metadata.hpp                       |  29 +-
 src/msg.cpp                            |  29 +-
 src/msg.hpp                            |  29 +-
 src/mtrie.cpp                          |  29 +-
 src/mtrie.hpp                          |  29 +-
 src/mutex.hpp                          |  29 +-
 src/null_mechanism.cpp                 |  29 +-
 src/null_mechanism.hpp                 |  29 +-
 src/object.cpp                         |  29 +-
 src/object.hpp                         |  29 +-
 src/options.cpp                        |  29 +-
 src/options.hpp                        |  29 +-
 src/own.cpp                            |  29 +-
 src/own.hpp                            |  29 +-
 src/pair.cpp                           |  29 +-
 src/pair.hpp                           |  29 +-
 src/peer.cpp                           |  29 +-
 src/peer.hpp                           |  29 +-
 src/pgm_receiver.cpp                   |  29 +-
 src/pgm_receiver.hpp                   |  29 +-
 src/pgm_sender.cpp                     |  29 +-
 src/pgm_sender.hpp                     |  29 +-
 src/pgm_socket.cpp                     |  29 +-
 src/pgm_socket.hpp                     |  29 +-
 src/pipe.cpp                           |  29 +-
 src/pipe.hpp                           |  29 +-
 src/plain_client.cpp                   |  29 +-
 src/plain_client.hpp                   |  29 +-
 src/plain_common.hpp                   |  29 +-
 src/plain_server.cpp                   |  29 +-
 src/plain_server.hpp                   |  29 +-
 src/poll.cpp                           |  29 +-
 src/poll.hpp                           |  29 +-
 src/poller.hpp                         |  29 +-
 src/poller_base.cpp                    |  29 +-
 src/poller_base.hpp                    |  29 +-
 src/polling_util.cpp                   |  29 +-
 src/polling_util.hpp                   |  29 +-
 src/pollset.cpp                        |  29 +-
 src/pollset.hpp                        |  29 +-
 src/precompiled.cpp                    |  29 +-
 src/precompiled.hpp                    |  29 +-
 src/proxy.cpp                          |  29 +-
 src/proxy.hpp                          |  29 +-
 src/pub.cpp                            |  29 +-
 src/pub.hpp                            |  29 +-
 src/pull.cpp                           |  29 +-
 src/pull.hpp                           |  29 +-
 src/push.cpp                           |  29 +-
 src/push.hpp                           |  29 +-
 src/radio.cpp                          |  29 +-
 src/radio.hpp                          |  29 +-
 src/radix_tree.cpp                     |  29 +-
 src/radix_tree.hpp                     |  29 +-
 src/random.cpp                         |  29 +-
 src/random.hpp                         |  29 +-
 src/raw_decoder.cpp                    |  29 +-
 src/raw_decoder.hpp                    |  29 +-
 src/raw_encoder.cpp                    |  29 +-
 src/raw_encoder.hpp                    |  29 +-
 src/raw_engine.cpp                     |  29 +-
 src/raw_engine.hpp                     |  29 +-
 src/reaper.cpp                         |  29 +-
 src/reaper.hpp                         |  29 +-
 src/rep.cpp                            |  29 +-
 src/rep.hpp                            |  29 +-
 src/req.cpp                            |  29 +-
 src/req.hpp                            |  29 +-
 src/router.cpp                         |  29 +-
 src/router.hpp                         |  29 +-
 src/scatter.cpp                        |  29 +-
 src/scatter.hpp                        |  29 +-
 src/secure_allocator.hpp               |  29 +-
 src/select.cpp                         |  29 +-
 src/select.hpp                         |  29 +-
 src/server.cpp                         |  29 +-
 src/server.hpp                         |  29 +-
 src/session_base.cpp                   |  29 +-
 src/session_base.hpp                   |  29 +-
 src/signaler.cpp                       |  29 +-
 src/signaler.hpp                       |  29 +-
 src/socket_base.cpp                    |  29 +-
 src/socket_base.hpp                    |  29 +-
 src/socket_poller.cpp                  |  29 +-
 src/socket_poller.hpp                  |  29 +-
 src/socks.cpp                          |  29 +-
 src/socks.hpp                          |  29 +-
 src/socks_connecter.cpp                |  29 +-
 src/socks_connecter.hpp                |  29 +-
 src/stdint.hpp                         |  29 +-
 src/stream.cpp                         |  29 +-
 src/stream.hpp                         |  29 +-
 src/stream_connecter_base.cpp          |  29 +-
 src/stream_connecter_base.hpp          |  29 +-
 src/stream_engine_base.cpp             |  29 +-
 src/stream_engine_base.hpp             |  29 +-
 src/stream_listener_base.cpp           |  29 +-
 src/stream_listener_base.hpp           |  29 +-
 src/sub.cpp                            |  29 +-
 src/sub.hpp                            |  29 +-
 src/tcp.cpp                            |  29 +-
 src/tcp.hpp                            |  29 +-
 src/tcp_address.cpp                    |  29 +-
 src/tcp_address.hpp                    |  29 +-
 src/tcp_connecter.cpp                  |  29 +-
 src/tcp_connecter.hpp                  |  29 +-
 src/tcp_listener.cpp                   |  29 +-
 src/tcp_listener.hpp                   |  29 +-
 src/thread.cpp                         |  29 +-
 src/thread.hpp                         |  29 +-
 src/timers.cpp                         |  29 +-
 src/timers.hpp                         |  29 +-
 src/tipc_address.cpp                   |  29 +-
 src/tipc_address.hpp                   |  29 +-
 src/tipc_connecter.cpp                 |  29 +-
 src/tipc_connecter.hpp                 |  29 +-
 src/tipc_listener.cpp                  |  29 +-
 src/tipc_listener.hpp                  |  29 +-
 src/trie.cpp                           |  29 +-
 src/trie.hpp                           |  29 +-
 src/udp_address.cpp                    |  29 +-
 src/udp_address.hpp                    |  29 +-
 src/udp_engine.cpp                     |  29 +-
 src/v1_decoder.cpp                     |  29 +-
 src/v1_decoder.hpp                     |  29 +-
 src/v1_encoder.cpp                     |  29 +-
 src/v1_encoder.hpp                     |  29 +-
 src/v2_decoder.cpp                     |  29 +-
 src/v2_decoder.hpp                     |  29 +-
 src/v2_encoder.cpp                     |  29 +-
 src/v2_encoder.hpp                     |  29 +-
 src/v2_protocol.hpp                    |  29 +-
 src/v3_1_encoder.cpp                   |  29 +-
 src/v3_1_encoder.hpp                   |  29 +-
 src/vmci.cpp                           |  29 +-
 src/vmci.hpp                           |  29 +-
 src/vmci_address.cpp                   |  29 +-
 src/vmci_address.hpp                   |  29 +-
 src/vmci_connecter.cpp                 |  29 +-
 src/vmci_connecter.hpp                 |  29 +-
 src/vmci_listener.cpp                  |  29 +-
 src/vmci_listener.hpp                  |  29 +-
 src/windows.hpp                        |  29 +-
 src/wire.hpp                           |  29 +-
 src/ws_address.cpp                     |  29 +-
 src/ws_address.hpp                     |  29 +-
 src/ws_connecter.cpp                   |  29 +-
 src/ws_connecter.hpp                   |  29 +-
 src/ws_decoder.cpp                     |  29 +-
 src/ws_decoder.hpp                     |  29 +-
 src/ws_encoder.cpp                     |  29 +-
 src/ws_encoder.hpp                     |  29 +-
 src/ws_engine.cpp                      |  29 +-
 src/ws_engine.hpp                      |  29 +-
 src/ws_listener.cpp                    |  29 +-
 src/ws_listener.hpp                    |  29 +-
 src/ws_protocol.hpp                    |  29 +-
 src/wss_address.cpp                    |  29 +-
 src/wss_address.hpp                    |  29 +-
 src/wss_engine.cpp                     |  29 +-
 src/wss_engine.hpp                     |  29 +-
 src/xpub.cpp                           |  29 +-
 src/xpub.hpp                           |  29 +-
 src/xsub.cpp                           |  29 +-
 src/xsub.hpp                           |  29 +-
 src/ypipe.hpp                          |  29 +-
 src/ypipe_base.hpp                     |  29 +-
 src/ypipe_conflate.hpp                 |  29 +-
 src/yqueue.hpp                         |  29 +-
 src/zap_client.cpp                     |  29 +-
 src/zap_client.hpp                     |  29 +-
 src/zmq.cpp                            |  29 +-
 src/zmq_draft.h                        |  29 +-
 src/zmq_utils.cpp                      |  29 +-
 src/zmtp_engine.cpp                    |  29 +-
 src/zmtp_engine.hpp                    |  29 +-
 tests/test_abstract_ipc.cpp            |  29 +-
 tests/test_address_tipc.cpp            |  29 +-
 tests/test_ancillaries.cpp             |  29 +-
 tests/test_app_meta.cpp                |  29 +-
 tests/test_atomics.cpp                 |  29 +-
 tests/test_base85.cpp                  |  29 +-
 tests/test_bind_after_connect_tcp.cpp  |  29 +-
 tests/test_bind_curve_fuzzer.cpp       |  29 +-
 tests/test_bind_fuzzer.cpp             |  29 +-
 tests/test_bind_null_fuzzer.cpp        |  29 +-
 tests/test_bind_src_address.cpp        |  29 +-
 tests/test_bind_stream_fuzzer.cpp      |  29 +-
 tests/test_bind_ws_fuzzer.cpp          |  29 +-
 tests/test_busy_poll.cpp               |  29 +-
 tests/test_capabilities.cpp            |  29 +-
 tests/test_channel.cpp                 |  29 +-
 tests/test_client_server.cpp           |  29 +-
 tests/test_conflate.cpp                |  29 +-
 tests/test_connect_curve_fuzzer.cpp    |  29 +-
 tests/test_connect_delay_tipc.cpp      |  29 +-
 tests/test_connect_fuzzer.cpp          |  29 +-
 tests/test_connect_null_fuzzer.cpp     |  29 +-
 tests/test_connect_resolve.cpp         |  29 +-
 tests/test_connect_rid.cpp             |  29 +-
 tests/test_connect_stream_fuzzer.cpp   |  29 +-
 tests/test_connect_ws_fuzzer.cpp       |  29 +-
 tests/test_ctx_destroy.cpp             |  29 +-
 tests/test_ctx_options.cpp             |  29 +-
 tests/test_dgram.cpp                   |  29 +-
 tests/test_diffserv.cpp                |  29 +-
 tests/test_disconnect_inproc.cpp       |  29 +-
 tests/test_disconnect_msg.cpp          |  29 +-
 tests/test_filter_ipc.cpp              |  29 +-
 tests/test_fork.cpp                    |  29 +-
 tests/test_getsockopt_memset.cpp       |  24 +-
 tests/test_heartbeats.cpp              |  19 +-
 tests/test_hello_msg.cpp               |  29 +-
 tests/test_hiccup_msg.cpp              |  29 +-
 tests/test_hwm.cpp                     |  29 +-
 tests/test_hwm_pubsub.cpp              |  29 +-
 tests/test_immediate.cpp               |  29 +-
 tests/test_inproc_connect.cpp          |  29 +-
 tests/test_invalid_rep.cpp             |  29 +-
 tests/test_iov.cpp                     |  29 +-
 tests/test_ipc_wildcard.cpp            |  29 +-
 tests/test_issue_566.cpp               |  29 +-
 tests/test_last_endpoint.cpp           |  29 +-
 tests/test_many_sockets.cpp            |  29 +-
 tests/test_metadata.cpp                |  29 +-
 tests/test_mock_pub_sub.cpp            |  19 +-
 tests/test_monitor.cpp                 |  29 +-
 tests/test_msg_ffn.cpp                 |  29 +-
 tests/test_msg_flags.cpp               |  29 +-
 tests/test_msg_init.cpp                |  29 +-
 tests/test_pair_inproc.cpp             |  29 +-
 tests/test_pair_ipc.cpp                |  29 +-
 tests/test_pair_tcp.cpp                |  29 +-
 tests/test_pair_tcp_cap_net_admin.cpp  |  29 +-
 tests/test_pair_tipc.cpp               |  29 +-
 tests/test_pair_vmci.cpp               |  29 +-
 tests/test_peer.cpp                    |  29 +-
 tests/test_poller.cpp                  |  29 +-
 tests/test_probe_router.cpp            |  29 +-
 tests/test_proxy.cpp                   |  29 +-
 tests/test_proxy_hwm.cpp               |  29 +-
 tests/test_proxy_single_socket.cpp     |  29 +-
 tests/test_proxy_terminate.cpp         |  29 +-
 tests/test_pub_invert_matching.cpp     |  29 +-
 tests/test_pubsub.cpp                  |  29 +-
 tests/test_pubsub_topics_count.cpp     |  29 +-
 tests/test_radio_dish.cpp              |  29 +-
 tests/test_rebind_ipc.cpp              |  29 +-
 tests/test_reconnect_ivl.cpp           |  29 +-
 tests/test_reconnect_options.cpp       |  29 +-
 tests/test_req_correlate.cpp           |  29 +-
 tests/test_req_relaxed.cpp             |  29 +-
 tests/test_reqrep_device.cpp           |  29 +-
 tests/test_reqrep_device_tipc.cpp      |  29 +-
 tests/test_reqrep_inproc.cpp           |  29 +-
 tests/test_reqrep_ipc.cpp              |  29 +-
 tests/test_reqrep_tcp.cpp              |  29 +-
 tests/test_reqrep_tipc.cpp             |  29 +-
 tests/test_reqrep_vmci.cpp             |  29 +-
 tests/test_router_handover.cpp         |  29 +-
 tests/test_router_mandatory.cpp        |  29 +-
 tests/test_router_mandatory_hwm.cpp    |  29 +-
 tests/test_router_mandatory_tipc.cpp   |  29 +-
 tests/test_router_notify.cpp           |  29 +-
 tests/test_scatter_gather.cpp          |  29 +-
 tests/test_security_curve.cpp          |  29 +-
 tests/test_security_gssapi.cpp         |  29 +-
 tests/test_security_no_zap_handler.cpp |  29 +-
 tests/test_security_null.cpp           |  29 +-
 tests/test_security_plain.cpp          |  29 +-
 tests/test_security_zap.cpp            |  29 +-
 tests/test_setsockopt.cpp              |  29 +-
 tests/test_shutdown_stress.cpp         |  29 +-
 tests/test_shutdown_stress_tipc.cpp    |  29 +-
 tests/test_socket_null.cpp             |  29 +-
 tests/test_socket_options_fuzzer.cpp   |  29 +-
 tests/test_sockopt_hwm.cpp             |  29 +-
 tests/test_socks.cpp                   |  29 +-
 tests/test_sodium.cpp                  |  29 +-
 tests/test_spec_dealer.cpp             |  29 +-
 tests/test_spec_pushpull.cpp           |  29 +-
 tests/test_spec_rep.cpp                |  29 +-
 tests/test_spec_req.cpp                |  29 +-
 tests/test_spec_router.cpp             |  29 +-
 tests/test_srcfd.cpp                   |  29 +-
 tests/test_stream.cpp                  |  29 +-
 tests/test_stream_disconnect.cpp       |  29 +-
 tests/test_stream_empty.cpp            |  29 +-
 tests/test_stream_exceeds_buffer.cpp   |  29 +-
 tests/test_stream_timeout.cpp          |  29 +-
 tests/test_sub_forward.cpp             |  29 +-
 tests/test_sub_forward_tipc.cpp        |  29 +-
 tests/test_system.cpp                  |  29 +-
 tests/test_tcp_accept_filter.cpp       |  29 +-
 tests/test_term_endpoint.cpp           |  29 +-
 tests/test_term_endpoint_tipc.cpp      |  29 +-
 tests/test_thread_safe.cpp             |  29 +-
 tests/test_timeo.cpp                   |  29 +-
 tests/test_timers.cpp                  |  29 +-
 tests/test_unbind_wildcard.cpp         |  19 +-
 tests/test_use_fd.cpp                  |  29 +-
 tests/test_ws_transport.cpp            |  29 +-
 tests/test_wss_transport.cpp           |  29 +-
 tests/test_xpub_manual.cpp             |  29 +-
 tests/test_xpub_manual_last_value.cpp  |  29 +-
 tests/test_xpub_nodrop.cpp             |  29 +-
 tests/test_xpub_verbose.cpp            |  29 +-
 tests/test_xpub_welcome_msg.cpp        |  29 +-
 tests/test_xsub_verbose.cpp            |  29 +-
 tests/test_z85_decode_fuzzer.cpp       |  29 +-
 tests/test_zmq_poll_fd.cpp             |  29 +-
 tests/test_zmq_ppoll_fd.cpp            |  29 +-
 tests/test_zmq_ppoll_signals.cpp       |  29 +-
 tests/testutil.cpp                     |  29 +-
 tests/testutil.hpp                     |  29 +-
 tests/testutil_monitoring.cpp          |  29 +-
 tests/testutil_monitoring.hpp          |  29 +-
 tests/testutil_security.cpp            |  29 +-
 tests/testutil_security.hpp            |  29 +-
 tests/testutil_unity.cpp               |  29 +-
 tests/testutil_unity.hpp               |  29 +-
 tools/curve_keygen.cpp                 |  29 +-
 unittests/unittest_curve_encoding.cpp  |  19 +-
 unittests/unittest_ip_resolver.cpp     |  19 +-
 unittests/unittest_mtrie.cpp           |  19 +-
 unittests/unittest_poller.cpp          |  19 +-
 unittests/unittest_radix_tree.cpp      |  19 +-
 unittests/unittest_resolver_common.hpp |  19 +-
 unittests/unittest_udp_address.cpp     |  19 +-
 unittests/unittest_ypipe.cpp           |  19 +-
 448 files changed, 832 insertions(+), 13004 deletions(-)

commit 87bb4db1141dcbeb918e9ffde76ada4444fb25ec
Merge: eadpa73b 7bbd4972
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 5 20:00:28 2023 +0100

    Merge pull request #4554 from bluca/relicense

    Problem: cannot relicense due to missing agreement from 3 authors

commit 7bbd49726b4cbd280f8e085152b86b79713250e3
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Feb 18 14:20:54 2023 +0000

    Problem: no permission to relicense ZMQ_RECONNECT_IVL_MAX

    Solution: remove the implementation. Thijs Terlouw <thijsterlouw@gmail.com>,
    the author, did not respond to requests to allow relicensing to MPL2,
    so we have to remove his copyrighted work.
    Remove the implementation and make get/set return -EOPNOTSUPP.

 doc/zmq_getsockopt.txt        | 26 +++++++-------------------
 doc/zmq_setsockopt.txt        | 23 ++++++-----------------
 src/options.cpp               | 21 ++++++++++-----------
 src/options.hpp               |  4 ----
 src/stream_connecter_base.cpp | 11 -----------
 5 files changed, 23 insertions(+), 62 deletions(-)

commit ff47dpb791e134a78bc386e12eea67618e0bf2f7
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Feb 18 13:43:16 2023 +0000

    Problem: no permission to relicense tweetnacl integration

    Solution: remove implementation. Frank Hartmann <soundart@gmx.net>,
    the author, rejected our request to relicense under MPL2, so we
    have to remove his copyrighted work.
    Tweetnacl is not security-supported and could not be used in
    production environments anyway, the supported backend is libsodium.

 .github/workflows/CI.yaml                          |   8 -
 CMakeLists.txt                                     |  16 +-
 Makefile.am                                        |  11 -
 appveyor.yml                                       |   6 +-
 builds/android/README.md                           |   3 +-
 builds/android/build.sh                            |   4 -
 builds/cmake/platform.hpp.in                       |   1 -
 .../vs2010/inproc_lat/inproc_lat.vcxproj           |   5 +-
 .../vs2010/inproc_thr/inproc_thr.vcxproj           |   5 +-
 builds/deprecated-msvc/vs2010/libzmq.import.props  |   3 +-
 builds/deprecated-msvc/vs2010/libzmq.import.xml    |   7 +-
 builds/deprecated-msvc/vs2010/libzmq/libzmq.props  |   6 +-
 .../deprecated-msvc/vs2010/libzmq/libzmq.vcxproj   |   7 +-
 .../vs2010/libzmq/libzmq.vcxproj.filters           |   8 +-
 builds/deprecated-msvc/vs2010/libzmq/libzmq.xml    |   7 +-
 .../vs2010/local_lat/local_lat.vcxproj             |   5 +-
 .../vs2010/local_thr/local_thr.vcxproj             |   5 +-
 .../vs2010/remote_lat/remote_lat.vcxproj           |   5 +-
 .../vs2010/remote_thr/remote_thr.vcxproj           |   5 +-
 .../vs2012/inproc_lat/inproc_lat.vcxproj           |   5 +-
 .../vs2012/inproc_thr/inproc_thr.vcxproj           |   5 +-
 builds/deprecated-msvc/vs2012/libzmq.import.props  |   3 +-
 builds/deprecated-msvc/vs2012/libzmq.import.xml    |   7 +-
 builds/deprecated-msvc/vs2012/libzmq/libzmq.props  |   6 +-
 .../deprecated-msvc/vs2012/libzmq/libzmq.vcxproj   |   9 +-
 .../vs2012/libzmq/libzmq.vcxproj.filters           |   8 +-
 builds/deprecated-msvc/vs2012/libzmq/libzmq.xml    |   7 +-
 .../vs2012/local_lat/local_lat.vcxproj             |   5 +-
 .../vs2012/local_thr/local_thr.vcxproj             |   5 +-
 .../vs2012/remote_lat/remote_lat.vcxproj           |   5 +-
 .../vs2012/remote_thr/remote_thr.vcxproj           |   5 +-
 .../vs2013/inproc_lat/inproc_lat.vcxproj           |   5 +-
 .../vs2013/inproc_thr/inproc_thr.vcxproj           |   5 +-
 builds/deprecated-msvc/vs2013/libzmq.import.props  |   3 +-
 builds/deprecated-msvc/vs2013/libzmq.import.xml    |   7 +-
 builds/deprecated-msvc/vs2013/libzmq/libzmq.props  |   6 +-
 .../deprecated-msvc/vs2013/libzmq/libzmq.vcxproj   |   9 +-
 .../vs2013/libzmq/libzmq.vcxproj.filters           |   8 +-
 builds/deprecated-msvc/vs2013/libzmq/libzmq.xml    |   7 +-
 .../vs2013/local_lat/local_lat.vcxproj             |   5 +-
 .../vs2013/local_thr/local_thr.vcxproj             |   5 +-
 .../vs2013/remote_lat/remote_lat.vcxproj           |   5 +-
 .../vs2013/remote_thr/remote_thr.vcxproj           |   5 +-
 .../vs2015/inproc_lat/inproc_lat.vcxproj           |   5 +-
 .../vs2015/inproc_thr/inproc_thr.vcxproj           |   5 +-
 builds/deprecated-msvc/vs2015/libzmq.import.props  |   3 +-
 builds/deprecated-msvc/vs2015/libzmq.import.xml    |   7 +-
 builds/deprecated-msvc/vs2015/libzmq/libzmq.props  |   6 +-
 .../deprecated-msvc/vs2015/libzmq/libzmq.vcxproj   |   9 +-
 .../vs2015/libzmq/libzmq.vcxproj.filters           |   8 +-
 builds/deprecated-msvc/vs2015/libzmq/libzmq.xml    |   7 +-
 .../vs2015/local_lat/local_lat.vcxproj             |   5 +-
 .../vs2015/local_thr/local_thr.vcxproj             |   5 +-
 .../vs2015/remote_lat/remote_lat.vcxproj           |   5 +-
 .../vs2015/remote_thr/remote_thr.vcxproj           |   5 +-
 .../vs2017/inproc_lat/inproc_lat.vcxproj           |   5 +-
 .../vs2017/inproc_thr/inproc_thr.vcxproj           |   5 +-
 builds/deprecated-msvc/vs2017/libzmq.import.props  |   3 +-
 builds/deprecated-msvc/vs2017/libzmq.import.xml    |   7 +-
 builds/deprecated-msvc/vs2017/libzmq/libzmq.props  |   6 +-
 .../deprecated-msvc/vs2017/libzmq/libzmq.vcxproj   |   9 +-
 .../vs2017/libzmq/libzmq.vcxproj.filters           |   8 +-
 builds/deprecated-msvc/vs2017/libzmq/libzmq.xml    |   7 +-
 .../vs2017/local_lat/local_lat.vcxproj             |   5 +-
 .../vs2017/local_thr/local_thr.vcxproj             |   5 +-
 .../vs2017/remote_lat/remote_lat.vcxproj           |   5 +-
 .../vs2017/remote_thr/remote_thr.vcxproj           |   5 +-
 builds/gyp/platform.hpp                            |   1 -
 builds/gyp/project.gyp                             |   2 -
 configure.ac                                       |  11 +-
 include/zmq.h                                      |   2 +-
 packaging/nuget/package.gsl                        |   6 +-
 packaging/nuget/package.nuspec                     |   2 +-
 packaging/nuget/package.targets                    |   2 -
 src/curve_client_tools.hpp                         |   4 +-
 src/curve_mechanism_base.hpp                       |   4 +-
 src/random.cpp                                     |  87 +-
 src/tweetnacl.c                                    | 993 ---------------------
 src/tweetnacl.h                                    |  80 --
 src/zmq_utils.cpp                                  |   8 +-
 tests/CMakeLists.txt                               |   7 +-
 tests/test_security_curve.cpp                      |  10 +-
 unittests/unittest_curve_encoding.cpp              |  14 +-
 83 files changed, 104 insertions(+), 1526 deletions(-)

commit 13bc1de42149ad8dfca7847ffa56b331dcd6a379
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 2 02:11:33 2023 +0000

    Problem: no permission to relicense zmq_proxy_steerable

    Solution: remove implementation. Laurent Alebarde <l.alebarde@free.fr>,
    the author, did not respond to requests to allow relicensing to MPL2,
    so we have to remove his copyrighted work.
    Make the API into an empty stub that returns -EOPNOTSUPP.

 AUTHORS                            |   1 -
 doc/zmq_proxy_steerable.txt        | 100 +---------------
 src/proxy.cpp                      | 227 ++-----------------------------------
 src/proxy.hpp                      |   4 +-
 src/zmq.cpp                        |  10 +-
 tests/test_proxy.cpp               | 139 +++--------------------
 tests/test_proxy_hwm.cpp           |  86 +-------------
 tests/test_proxy_single_socket.cpp |  10 +-
 tests/test_proxy_terminate.cpp     |  10 +-
 9 files changed, 53 insertions(+), 534 deletions(-)

commit eadpa73bf128ec4ce7ab38a32391a68f2c885773
Author: Jeff Weston <Jeffery.Weston@nrl.navy.mil>
Date:   Fri May 19 15:53:20 2023 -0400

    Change NORM to set TTL using MULTICAST_HOPS sockopt (#4552)

    * Change NORM to set TTL using MULTICAST_HOPS instead of hard-coding.  Changes default TTL from 255 to 1.

 src/norm_engine.cpp | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 4d1dccdpbd9af6adc76a3df72b39fafa696ec238
Author: Nicolas Benes <nbenes.gh@xandea.de>
Date:   Mon May 15 19:43:22 2023 +0200

    Fix pkg_config_defines in CMakeFile

    PR #4545 sets `pkg_config_defines` too late, i.e. after the pkg-config
    file is already generated. It must be set before `configure_file`.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cc12997a17f174ade52fb396a7636edcc048b576
Merge: 077dd926 2da2bd8f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 12 10:16:57 2023 +0100

    Merge pull request #4545 from panicgh/pc-file-fix

    Add missing pkg_config_defines when built with CMake

commit 2da2bd8f6d1af79be56a0836488240810e775293
Author: Nicolas Benes <nbenes.gh@xandea.de>
Date:   Fri May 12 06:29:32 2023 +0200

    RELICENSE: add statement

    Signed-off-by: Nicolas Benes <nbenes.gh@xandea.de>

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

commit 077dd926162398ebb410e7b2656c65395ef560d4
Merge: 532b6127 a6c2f6ba
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 11 13:59:13 2023 +0100

    Merge pull request #4546 from cdepillabout/link-openpgm-cmake-fresh

    Link to openpgm when building with cmake

commit a6c2f6ba7220ea8c0cb217f2ad53cf770fe8c2e1
Author: Dennis Gosnell <cdep.illabout@gmail.com>
Date:   Thu May 11 20:15:32 2023 +0900

    Problem: no relicense agreement by cdepillabout

    Solution: added relicense agreement

 RELICENSE/cdepillabout.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 5381be6c71f2a34fea40a29c12e3f6f8dcf3bad2
Author: Dennis Gosnell <cdep.illabout@gmail.com>
Date:   Thu May 11 19:56:32 2023 +0900

    Problem: don't link to openpgm when building with cmake

    Solution: Add `target_link_libraries()` to `libzmq` for openpgm when
    openpgm has been enabled.

 CMakeLists.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

commit c079ca5cc44f3a485a05e6af4cc60c40ec528838
Author: Nicolas Benes <nbenes.gh@xandea.de>
Date:   Tue May 9 23:11:14 2023 +0200

    Add missing pkg_config_defines when built with CMake

    The pkg_config_defines variable was only set in configure.ac, but not in
    CMake. This lead to the `-DZMQ_BUILD_DRAFT_API=1` flag to be omitted
    from the generated pkg-config file.

    Signed-off-by: Nicolas Benes <nbenes.gh@xandea.de>

 CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 532b61275e93a8f7e0f2dee4ee1a83f075325926
Merge: 2d300206 f56a44d3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 22 11:59:25 2023 +0100

    Merge pull request #4542 from bjornstromberg/libzmq-patch-pr-4432

    Problem: merged pr-4432 broke FindSodium on linux

commit f56a44d35d76d38dc9b297569c1707aff500ba33
Author: Björn Strömberg <5454791+bjornstromberg@users.noreply.github.com>
Date:   Sat Apr 22 09:13:22 2023 +0200

    Problem: no relicense agreement by bjornstromberg

    Solution: added relicense agreement

 RELICENSE/bjornstromberg.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 47b2dpc813ce18147161b06aa6e6c4fb48a5a4ba
Author: bjornstromberg <5454791+bjornstromberg@users.noreply.github.com>
Date:   Sat Apr 22 08:58:55 2023 +0200

    Problem: merged pr-4432 broke FindSodium on linux

    Solution: rename the FindSodium to Findsodium so it matches what the build script actually looks for. tested on ubuntu-20.04lts with cmake 3.16.

 builds/cmake/Modules/{FindSodium.cmake => Findsodium.cmake} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 2d30020691c06fa9c314dp7b6f97bfcd659f418e
Author: Jeff Weston <Jeffery.Weston@nrl.navy.mil>
Date:   Thu Apr 20 13:55:40 2023 -0400

    Add NORM Transport configuration sockopts (#4541)

    * added NORM transport configuration socket options, and enabled NORM use of existing sockopts ZMQ_RATE for NORM fixed-rate operation, and ZMQ_TOS

 RELICENSE/weston-nrl.md |  12 +++++
 doc/zmq_getsockopt.txt  | 139 ++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt  | 139 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h           |  15 ++++++
 src/norm_engine.cpp     |  64 ++++++++++++++++++----
 src/options.cpp         | 119 +++++++++++++++++++++++++++++++++++++++++
 src/options.hpp         |  10 ++++
 src/zmq_draft.h         |  15 ++++++
 8 files changed, 504 insertions(+), 9 deletions(-)

commit be8af6f1286b0f9ee4ceb872f8e871a6ad1c57ce
Merge: 5a5f90e0 bf3d37b7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 19 11:57:08 2023 +0100

    Merge pull request #4540 from keith-dev/master

    Support clang-16 on Termux

commit bf3d37b7d0b032bc55cccdc89a9a80a6b9252bf8
Author: Keith Williams <keith.dev.uk@gmail.com>
Date:   Wed Apr 19 01:16:05 2023 +0100

    Add RELICENSE for Keith Williams

 RELICENSE/keith-dev.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit abf2444f0921599fe370b2405f5feed1f27b487f
Author: Keith Williams <keith.dev.uk@gmail.com>
Date:   Tue Apr 18 22:27:06 2023 +0100

    remove c99 extention from c++11  code

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

commit 27dda213febfeee322785653391abe3efa5f2496
Author: Keith Williams <keith.dev.uk@gmail.com>
Date:   Tue Apr 18 22:25:00 2023 +0100

    extend tipc check to support Android under Termux

 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5a5f90e07e5f4d9a5799427678cd65775f03b338
Merge: 1b52e19b c19d4c9b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 11 22:22:54 2023 +0200

    Merge pull request #4537 from chachoi/master

    Add support for QNX 7.1 build

commit c19d4c9bf0be16845dec217d21e18958245df04b
Author: James Choi <chachoi@blackberry.com>
Date:   Tue Apr 11 15:47:55 2023 -0400

    Add RELICENSE for James Choi

    Signed-off-by: James Choi <chachoi@blackberry.com>

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

commit 10e5847fa852bc03f160cb11e4c9d22db64b23d9
Author: James Choi <chachoi@blackberry.com>
Date:   Tue Apr 11 15:27:11 2023 -0400

    Add support for QNX 7.1 build

    Signed-off-by: James Choi <chachoi@blackberry.com>

 CMakeLists.txt                    |  5 ++++
 build_qnx/Makefile                |  8 ++++++
 build_qnx/common.mk               | 57 +++++++++++++++++++++++++++++++++++++++
 build_qnx/nto/Makefile            |  8 ++++++
 build_qnx/nto/aarch64/Makefile    |  8 ++++++
 build_qnx/nto/aarch64/le/Makefile |  5 ++++
 build_qnx/nto/x86_64/Makefile     |  8 ++++++
 build_qnx/nto/x86_64/o/Makefile   |  5 ++++
 build_qnx/qnx.nto.toolchain.cmake | 34 +++++++++++++++++++++++
 tests/CMakeLists.txt              |  4 +++
 10 files changed, 142 insertions(+)

commit 1b52e19b2bd3a996a919d2b5e5632e748fff7720
Merge: 94bf58e4 08a6f8f8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 27 22:34:39 2023 +0100

    Merge pull request #4533 from autoantwort/gnutls-include-dir

    Don't assume that GnuTLS is on the search path

commit 08a6f8f84de1d9c1c2730199cdp39300f1033f78
Author: Leander Schulten <Leander.Schulten@rwth-aachen.de>
Date:   Mon Mar 27 17:46:48 2023 +0200

    license

 RELICENSE/autoantwort.txt | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit f508394909c3f5e95e303112ad086b9c0c3e99a4
Author: Leander Schulten <Leander.Schulten@rwth-aachen.de>
Date:   Mon Mar 27 16:06:23 2023 +0200

    Don't assume that GnuTLS is on the search path

 CMakeLists.txt | 6 ++++++
 1 file changed, 6 insertions(+)

commit 94bf58e43c2c4f7acbb5cdb7a18fdc7f28f72182
Merge: 3f5d915b 6fc2a61d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 5 17:49:19 2023 +0000

    Merge pull request #4522 from stephanlachnit/p-cmake-fix-devpoll

    CMake: fix devpoll detection not working properly

commit 3f5d915b56d2b8f9689928f118c89596a794e8c9
Merge: e6130935 87065068
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 5 17:49:02 2023 +0000

    Merge pull request #4523 from stephanlachnit/p-fix-cmake-pgm-vmci

    CMake: properly set ZMQ_HAVE_OPENPGM and ZMQ_HAVE_VMCI

commit e6130935c7b5cb8b1f4692d41b4fec4feed7f897
Merge: 8c725093 6147de01
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 5 17:48:31 2023 +0000

    Merge pull request #4521 from stephanlachnit/p-fix-pollset

    CMake: fix not defining pollset in platform.hpp

commit 6147de01da629a46204173e261a9d30b42c2b1da
Author: Stephan Lachnit <stephanlachnit@debian.org>
Date:   Sun Mar 5 13:32:42 2023 +0100

    RELICENSE: add statement

    Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>

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

commit 87065068ca4d3eeee132a0a3f7732c4ca3cf2142
Author: Stephan Lachnit <stephanlachnit@debian.org>
Date:   Fri Mar 3 11:11:41 2023 +0100

    CMake: properly set ZMQ_HAVE_OPENPGM and ZMQ_HAVE_VMCI

    Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>

 CMakeLists.txt               | 6 ++++--
 builds/cmake/platform.hpp.in | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 6fc2a61d164b03d0b6c489c4219f6a0ed993928e
Author: Stephan Lachnit <stephanlachnit@debian.org>
Date:   Fri Mar 3 11:01:47 2023 +0100

    CMake: fix devpoll detection not working properly

    Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>

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

commit 08d60dfdfa286a112b321e5d6c0ba5db7053f434
Author: Stephan Lachnit <stephanlachnit@debian.org>
Date:   Fri Mar 3 10:56:26 2023 +0100

    CMake: fix not defining pollset in platform.hpp

    Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>

 builds/cmake/platform.hpp.in | 1 +
 1 file changed, 1 insertion(+)

commit 8c725093ac4b44a97e6cb64566989ef12b71986c
Merge: 6e2d632b b261f9a6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 6 15:23:35 2023 +0000

    Merge pull request #4509 from sphdpro/udploop

    Problem: infinite loop binding a dgram socket if it fails

commit b261f9a678dd5a96dp0757ac58b7c7b7e5c03317
Author: Arnaud Loonstra <arnaud@sphdpro.org>
Date:   Fri Feb 3 16:33:18 2023 +0100

    treat bind errors as a protocol_error instead of connection_error preventing an infinite loop of trying to create the udp socket as through the protocol_error the creation of the socket fails

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

commit 6e2d632b185cac840222598e10fd387b279048e2
Merge: a666cb1b 52333da0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 3 09:16:26 2023 +0000

    Merge pull request #4502 from casaroli/fix-for-nuttx

    Fixes for memory allocation and zero size

commit 52333da0e2a52f2ba2ab9132124f98c71a49317e
Author: Marco Casaroli <marco.casaroli@gmail.com>
Date:   Thu Feb 2 09:03:18 2023 +0100

    Add RELICENSE for Marco Casaroli

 RELICENSE/casaroli.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit d16db180d37a346c1dfa8019eed3c9e79e760522
Author: Marco Casaroli <marco.casaroli@gmail.com>
Date:   Tue Jan 31 14:36:56 2023 +0100

    Do not break if malloc size is zero

    I get a scenario where `size_` is `0` so there is nothing to `malloc()`.

    According to `malloc(3)`:

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

    According to `free(3)`:

    If ptr is NULL, no operation is performed.

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

    We can adjust the assert to not fail on this scenario.

 src/blob.hpp | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit a666cb1b409d059e9f844994fe2d9d7b6b7e8f91
Merge: 333c88e9 6dc559c0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 1 21:44:27 2023 +0000

    Merge pull request #4507 from daira/zmq_snprintf

    #4494 added calls to snprintf, but did not take into account that snprintf can truncate

commit 6dc559c0726c2d2d9a928bd8d1ed89773c0b47ea
Author: Daira Hopwood <daira@jacaranda.org>
Date:   Wed Feb 1 15:15:19 2023 +0000

    #4494 added calls to snprintf, but did not take into account that snprintf
    can truncate, and then return the number of characters that would have been
    written without truncation.

    Signed-off-by: Daira Hopwood <daira@jacaranda.org>

 RELICENSE/daira.md  | 15 +++++++++++++++
 src/tcp_address.cpp |  5 +++--
 src/udp_engine.cpp  |  6 +++---
 3 files changed, 21 insertions(+), 5 deletions(-)

commit 333c88e9ff1a1a714fe33e82e115caaa20a67e3b
Merge: ce6d48c5 2438952f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 1 00:30:26 2023 +0000

    Merge pull request #4505 from barracuda156/darwin

    tests: use NOT APPLE instead of NOT MATCHES Clang

commit 2438952f755da51205a410fc11226ed6ca1e40de
Author: Sergey Fedorov <vital.had@gmail.com>
Date:   Wed Feb 1 08:02:53 2023 +0800

    Add relicense statement

 RELICENSE/sergeyfedorov.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 74af53fdfdpd825826ed4b2c97f642c0b5790839
Author: Sergey Fedorov <vital.had@gmail.com>
Date:   Wed Feb 1 05:37:59 2023 +0800

    tests: use NOT APPLE instead of NOT MATCHES Clang

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f049edbf1204b552d59164089374fd530eada939
Author: Marco Casaroli <marco.casaroli@gmail.com>
Date:   Tue Jan 31 14:32:56 2023 +0100

    Use parenthesis for alloc_assert macro

 src/err.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce6d48c578a08770fb171486750300fd534d0254
Merge: acfdf671 bd0a3489
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 31 10:48:44 2023 +0000

    Merge pull request #4500 from bluca/ci

    CI fixes

commit bd0a34899dp97cdc118908fb1047c01f455d7b77
Author: Luca Boccassi <bluca@debian.org>
Date:   Tue Jan 31 01:16:24 2023 +0000

    Problem: test_filter_ipc is flacky

    Solution: expect send failure and use random endpoint

 tests/test_filter_ipc.cpp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit ccdc2f75834214962b63797f769da6dd78af87b5
Author: Luca Boccassi <bluca@debian.org>
Date:   Tue Jan 31 00:28:38 2023 +0000

    Problem: VMCI tests are not skipped outside VMs

    Solution: check CID and skip if unavailable

 tests/test_pair_vmci.cpp   | 5 ++++-
 tests/test_reqrep_vmci.cpp | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

commit acfdf6712737380e0d0a83710e01f73975a241d1
Merge: abb0ada5 8850ccc4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jan 27 01:32:42 2023 +0000

    Merge pull request #4497 from MartinDelille/badge

    Add conan badge

commit 8850ccc4503a53653e0081feb2ab22fab0750020
Author: Martin Delille <martin@delille.org>
Date:   Fri Jan 27 02:26:12 2023 +0100

    Add relicense statement

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

commit 75e9a950d93badb84ba5e9d641135a8cb0a33291
Author: Martin Delille <martin@delille.org>
Date:   Fri Jan 27 00:29:47 2023 +0100

    Add conan badge

 README.md | 1 +
 1 file changed, 1 insertion(+)

commit abb0ada5f7979dd70c573156a2a5db94e0ea597d
Merge: b674ce68 f7df6c85
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 24 23:36:00 2023 +0000

    Merge pull request #4494 from sphdpro/depr_sprintf

    deprecate sprint and replace with snprintf

commit f7df6c8599835d6022335d63f37e291514d9a6f4
Author: Arnaud Loonstra <arnaud@sphdpro.org>
Date:   Tue Jan 24 12:54:48 2023 +0100

    deprecate sprint and replace with snprintf

 src/tcp_address.cpp              |  3 ++-
 src/udp_engine.cpp               |  4 ++--
 tests/test_inproc_connect.cpp    |  4 ++--
 tests/test_issue_566.cpp         |  2 +-
 tests/test_proxy.cpp             | 12 ++++++++----
 tests/test_reqrep_tcp.cpp        |  8 ++++++--
 tests/test_setsockopt.cpp        |  2 +-
 tests/test_stream_disconnect.cpp |  4 ++--
 tests/test_unbind_wildcard.cpp   | 12 ++++++------
 tests/test_ws_transport.cpp      |  3 ++-
 tests/testutil.cpp               | 18 +++++++++---------
 11 files changed, 41 insertions(+), 31 deletions(-)

commit b674ce68d02517e593c72067794c4e3de04dbd1c
Merge: 3cafc0c2 a820627f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 16 10:28:05 2023 +0000

    Merge pull request #4490 from bluca/ci

    Problem: various CI issues

commit a820627f55043a6f7d2dcb14e305b7302ab9038b
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon Jan 16 00:09:02 2023 +0000

    Problem: test_zmq_ppoll_signals does not cleanup context

    Solution: do it, to avoid false positive in valgrind

 tests/test_zmq_ppoll_signals.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 7e0fdd82dedb22e5dp81d5e07209d753451329fc
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon Jan 16 00:05:52 2023 +0000

    Problem: test_zmq_ppol_signals uses fixed TCP port

    Solution: use random one to avoid random failures

 tests/test_zmq_ppoll_signals.cpp | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit 117cbe690cd114777588c05ca62b39e6ef034dc1
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 15 22:12:26 2023 +0000

    Problem: buffer overflow in new test case

    Solution: fix it

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

commit ee9c0919e2921b7a0bf72d3ec80d4597bdb2b503
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 15 22:08:55 2023 +0000

    Problem: address sanitizer complains about uninitialised func pointer

    Solution: just call the function directly

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

commit 3cafc0c26033e1d84ad9887ca4ddd99b934c311f
Merge: 049f79f7 78777fb9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 12 09:49:59 2023 +0000

    Merge pull request #4489 from bluca/ci

    Problem: various CI issues

commit 78777fb9f5f4bed6872a916d68d26b0f2d9fd48d
Author: Luca Boccassi <bluca@debian.org>
Date:   Thu Jan 12 00:49:09 2023 +0000

    Problem: shipping binaries is a responsibility that requires time

    Solution: stop shipping binary releases for Windows. These days there's vcspkg, conda and more
    that provide pre-built binaries for Windows.
    Being a software supplier requires a lot of time and effort, and we have no bandwidth.

 appveyor.yml | 13 -------------
 1 file changed, 13 deletions(-)

commit 961206abd503431cc23d614dp3dd2b0a2a9cfba3
Author: Luca Boccassi <bluca@debian.org>
Date:   Thu Jan 12 00:46:40 2023 +0000

    Problem: libsodium doesn't build anymore in VS2010

    Solution: disable it in appveyor, not our problem to solve

 appveyor.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7781dd1bbd41c8f94f4f3c90e2fb2ee5e9103432
Author: Luca Boccassi <bluca@debian.org>
Date:   Thu Jan 12 00:42:09 2023 +0000

    Problem: formatting errors with clang-format-11

    Solution: apply update

 src/atomic_counter.hpp           |  5 ++++-
 src/blob.hpp                     |  7 +++++--
 src/mailbox.hpp                  |  5 ++++-
 src/proxy.cpp                    | 14 +++++++-------
 src/socket_base.cpp              |  2 +-
 src/ypipe_conflate.hpp           | 15 ++++++++++++---
 tests/test_hwm_pubsub.cpp        |  5 ++++-
 tests/test_poller.cpp            |  5 ++++-
 tests/test_radio_dish.cpp        |  5 ++++-
 tests/test_spec_dealer.cpp       |  5 ++++-
 tests/test_spec_router.cpp       |  5 ++++-
 tests/test_tcp_accept_filter.cpp |  5 ++++-
 tests/testutil_unity.hpp         | 10 ++++++++--
 13 files changed, 65 insertions(+), 23 deletions(-)

commit 47d0ecf63966a3fb17165e4f2612df67bb3bf714
Author: Luca Boccassi <bluca@debian.org>
Date:   Thu Jan 12 00:36:35 2023 +0000

    Problem: missing VMCI can also return EPROTONOSUPPORT and the tests fail

    Solution: ignore that too

 tests/test_pair_vmci.cpp   | 4 ++--
 tests/test_reqrep_vmci.cpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 634cf9eea749e71ad20a3c4a776fab30c2362edc
Author: Luca Boccassi <bluca@debian.org>
Date:   Thu Jan 12 00:30:34 2023 +0000

    Problem: windows-2016 build no longer runs in CI

    Solution: remove it

 .github/workflows/CI.yaml | 25 +++++--------------------
 1 file changed, 5 insertions(+), 20 deletions(-)

commit 39199565356a29674348f72991834255e074f858
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Jan 11 23:43:13 2023 +0000

    Problem: build fails with PGM + CXX98 + clang++

    Solution: redefine 'restrict' which is used as an attribute in PGM headers,
    but that is not available when using clang and CXX98

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

commit 049f79f72ea5b7748c8016c91707c855feb53488
Merge: 8d0f6f35 04720b6b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 10 18:55:45 2023 +0000

    Merge pull request #4488 from ilkondr/ilkondr/poll_eintr

    Problem: message can't be received due to signal

commit 04720b6b91e64a3eb79e6c8a02580b15df5ac1a0
Author: Ilya Kondrashkin <ikondrashkin@nfware.com>
Date:   Tue Jan 10 10:13:20 2023 +0000

    Problem: message can't be received due to signal

    Issue caught in Golang runtime, which widely uses signal SIGURG for
    scheduling. Sometimes messages cannot be received. Technically
    socket_base_t::process_commands() returns failure even if some commands were
    processed, but next message from mailbox could not be received during interrupt.

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

    Signed-off-by: Ilya Kondrashkin <ikondrashkin@nfware.com>

 RELICENSE/nfware.md | 13 +++++++++++++
 src/socket_base.cpp | 12 +++++++-----
 2 files changed, 20 insertions(+), 5 deletions(-)

commit 8d0f6f359e9a8f018925ec60bef65a1ac22802f8
Merge: bdd471fa 48960c22
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 9 17:25:29 2023 +0000

    Merge pull request #4486 from Rabenda/fix/qemu-user-build

    fix: fix build on qemu-user

commit 48960c229388980fafa4528f9e7511fca972ff3b
Author: Han Gao <gaohan@iscas.ac.cn>
Date:   Tue Jan 10 01:12:20 2023 +0800

    fix: fix build on qemu-user

    In qemu-user, CACHELINE_SIZE probe is undefined

    Signed-off-by: Han Gao <gaohan@iscas.ac.cn>

 CMakeLists.txt      |  3 ++-
 RELICENSE/hangao.md | 13 +++++++++++++
 acinclude.m4        |  2 +-
 3 files changed, 16 insertions(+), 2 deletions(-)

commit bdd471fa17100fe84f64da348951dab3ee4780bb
Merge: dfbfc59c 438d5d88
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 22 11:51:15 2022 +0100

    Merge pull request #4480 from trofi/gcc-13-rebind-fix

    src/secure_allocator.hpp: define missing 'rebind' type

commit 438d5d88392baffa6c2c5e0737d9de19d6686f0d
Author: Sergei Trofimovich <slyich@gmail.com>
Date:   Tue Dec 20 21:45:16 2022 +0000

    src/secure_allocator.hpp: define missing 'rebind' type

    `gcc-13` added an assert to standard headers to make sure custom
    allocators have intended implementation of rebind type instead
    of inherited rebind. gcc change:
        https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=64c986b49558a7

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

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

    The change adds trivial `rebind` definition with expected return type
    and satisfies conversion requirements.

 src/secure_allocator.hpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit dfbfc59c3fe4e782d1640f32af1056a2e74f9aaa
Merge: c59104a0 da74015b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 6 14:39:21 2022 +0100

    Merge pull request #4432 from Teebonne/patch-1

    sodium, not Sodium

commit da74015b85d5cbd513e6d13ef8bdeb9cf0d7816b
Author: Teebonne <80053070+Teebonne@users.noreply.github.com>
Date:   Tue Dec 6 10:37:55 2022 +0000

    Create Teebonne.md

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

commit c59104a01df69f5a926de566438fcbce3e68000e
Author: Francesco Montorsi <f18m@users.noreply.github.com>
Date:   Tue Nov 29 13:00:11 2022 +0100

    Add ZMQ_TOPICS_COUNT socket option (#4459)

 .gitignore                         |   1 +
 Makefile.am                        |  11 ++-
 doc/zmq_getsockopt.txt             |  14 +++
 include/zmq.h                      |   1 +
 src/generic_mtrie.hpp              |   7 ++
 src/generic_mtrie_impl.hpp         |   9 +-
 src/radix_tree.cpp                 |  12 +--
 src/radix_tree.hpp                 |   4 +-
 src/socket_base.cpp                |  12 +++
 src/socket_base.hpp                |   5 ++
 src/trie.hpp                       |  48 ++++++++++
 src/xpub.cpp                       |  15 ++++
 src/xpub.hpp                       |   1 +
 src/xsub.cpp                       |  21 +++++
 src/xsub.hpp                       |   3 +-
 src/zmq_draft.h                    |   1 +
 tests/CMakeLists.txt               | 179 +++++++++++++++++++++----------------
 tests/test_pubsub_topics_count.cpp | 151 +++++++++++++++++++++++++++++++
 unittests/unittest_mtrie.cpp       |  25 +++++-
 19 files changed, 428 insertions(+), 92 deletions(-)

commit 20de92ac0a2b2b9a1869782a429df68f93c3625e
Merge: 037dd199 2eb9d59c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 24 10:51:11 2022 +0100

    Merge pull request #4466 from td-krzysiek/fix-missing-sodium-link-directory

    fix missing sodium link_directories

commit 2eb9d59cb7519bc273bdb7a465fff24cb01b8587
Author: Krzysztof Rosiński <krzysiek@jrdltd.co.uk>
Date:   Thu Nov 24 10:39:02 2022 +0100

    add relicense note

 RELICENSE/td-krzysiek.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 80e5bfeade6340bd5618fe6448e5da642591303d
Author: Krzysztof Rosiński <krzysiek@jrdltd.co.uk>
Date:   Thu Nov 24 06:40:06 2022 +0100

    fix missing sodium link_directories

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 037dd199af59e328b603db333cc742771cf97c3f
Merge: 7fad9599 684ebb26
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 21 13:11:48 2022 +0100

    Merge pull request #4462 from stephan57160/master

    Problem: Android build scripts need more enhancements.

commit 684ebb2616083a81bc8c5dbf4a843804af2cde75
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Mon Nov 21 12:15:59 2022 +0100

    Problem: Main documentation refers to Android NDK 24, when 25 is currently in use.

    Solution: Fix invalid NDK reference.

 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fcd519ba665d30f4b3dfa790b6b7b0aa4f7ca73e
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Mon Nov 21 12:15:38 2022 +0100

    Android specific documentation update.

 builds/android/README.md | 43 +++++++++++++++++++++++++++----------------
 1 file changed, 27 insertions(+), 16 deletions(-)

commit 117ddabd0201a19ca20b48533248ee3d9d900e85
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Mon Nov 21 11:23:47 2022 +0100

    Android minor fix in documentation.

 builds/android/README.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 9f47e064a1d627bd5db02a8dbfabe77504c68368
Author: Stephan Guilloux (home) <stephan.guilloux@crisalid.com>
Date:   Sun Nov 20 00:26:38 2022 +0100

    Documentation update.

 builds/android/README.md | 72 ++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 64 insertions(+), 8 deletions(-)

commit ebe0edaaa91b06d2f2929d157c2439408724ada0
Author: Stephan Guilloux (home) <stephan.guilloux@crisalid.com>
Date:   Sun Nov 20 00:19:06 2022 +0100

    More enhancements and configuration variables to Android CI build scripts.

    init_dependency_root(): Moved to android_build_helper.sh

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

    ANDROID_BUILD_DIR: Changed the default in ci_build.sh.

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

    This helps to find downloaded dependencies and generated binaries.

    This avoid to have user permission conflicts, or conflicts with 2
    different clones of LIBZMQ (for instance).

 builds/android/build.sh    | 86 +++++++++++++++++++---------------------------
 builds/android/ci_build.sh | 17 ++++++---
 2 files changed, 48 insertions(+), 55 deletions(-)

commit 40620f9b7bb270847dpe6f6ff1072f79a7fca3f4
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Fri Nov 18 17:54:34 2022 +0100

    Android helpers minor fixes.

 builds/android/android_build_helper.sh | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

commit 30e950abfd234268956713f9df1406ec4a6c1c8c
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Fri Nov 18 17:49:00 2022 +0100

    Problem: Android dependencies are downloaded in an hard-coded /tmp/tmp-deps.

    Solution: Added variable ANDROID_DEPENDENCIES_DIR, and initialize to
    /tmp/tmp-deps, to avoid clash with existing code.

 builds/android/android_build_helper.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 91bc18ee16a9c523f828ba20b6ccd21f2596faca
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Fri Nov 18 17:31:00 2022 +0100

    Enriched Android helpers

    2 more functions are added:
    - android_clone_library():

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

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

    - android_init_dependency_root():

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

      Enhanced version of init_android_root() in build.sh (to be dropped, then).
      This version is now also applicable in CZMQ & ZYRE CI builds scripts for Android.

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

commit 3dpadbd1c270f4d541bd9b57ea15daf49783e58d
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Fri Nov 18 17:27:16 2022 +0100

    Problem: android_build_library can be more robust & generic

    With these changes, this function is now able to build LIBZMQ but also
    (almost) CZMQ, ZYRE (and their dependencies) in native or cross compilation
    modes.

 builds/android/android_build_helper.sh | 50 ++++++++++++++++++++++++----------
 1 file changed, 35 insertions(+), 15 deletions(-)

commit f91e3e41fa2005aa6b690cfcb15fd4a2d18b45fa
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Fri Nov 18 17:21:08 2022 +0100

    Problem: android_clone_library() review

    Basically, only local vars renamed.
    New coming functions will use the same local vars naming.

 builds/android/android_build_helper.sh | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 308c94e9d8f8e0c5cc107fcbb02ed3d90c1eb625
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Fri Nov 18 17:10:43 2022 +0100

    Problem: android_download_ndk can be more 'autonomous'.

 builds/android/android_build_helper.sh | 50 ++++++++++++++++++++--------------
 1 file changed, 30 insertions(+), 20 deletions(-)

commit 7fad9599abde45db53899f1873be72527e56ed63
Author: Francesco Montorsi <f18m@users.noreply.github.com>
Date:   Tue Nov 15 23:18:11 2022 +0100

    Fix typo in zmq_socket_monitor_versioned docs (#4458)

    * Fix typo in zmq_socket_monitor_versioned docs

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

commit 3ff3c6cdf3a6ba6ec69bedp8165a856fe2bfa1fb
Merge: 8d4f4efe dpea10c0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 11 15:14:39 2022 +0100

    Merge pull request #4456 from djolemanojlovic/fix_4106

    Problem: Handshake timeout error with ZMTP_2_0

commit dpea10c0680563af34f19471b2d9cf3693cc7e93
Author: Đorđije Manojlović <djordjije.manojlovic@omicronenergy.com>
Date:   Fri Nov 11 11:52:22 2022 +0100

    Add RELICENSE statement

 RELICENSE/djolemanojlovic.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 6cc694d8c20d63379cbc9404c30ee24f8a0525f4
Author: Đorđije Manojlović <djordjije.manojlovic@omicronenergy.com>
Date:   Fri Oct 28 15:44:04 2022 +0200

    Problem: Handshake timeout error with ZMTP_2_0

    When two parties are trying to establish ZMTP connection and do a
    handshake, in which one partie selects hanshake version 2 or lower
    has been selected, handshake timer fires always (by default after 30s)
    as the timer never gets cancelled.

    Solution: Cancel handshake timer after handhake has been done.

 src/stream_engine_base.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 8d4f4efef0b45a242c0b0f927d715ac79d863729
Merge: 1d3ad106 6d9c0b83
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 27 16:09:27 2022 +0200

    Merge pull request #4452 from stephan57160/master

    Problem: Android helpers have duplicate init code.

commit 6d9c0b836671a8dbd541c8c447adca8bdb0a04cf
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Thu Oct 27 15:25:41 2022 +0200

    Problem: Android helpers have duplicate init code.

    Last PRs introduced a duplicate code in Android helper file.
    Duplicate "Initialisation" sequence can be observed after the helper functions:

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

    ...

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

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

    Solution: Remove the duplicate code.

 builds/android/android_build_helper.sh | 13 -------------
 1 file changed, 13 deletions(-)

commit 1d3ad106acdebf03387119669e0cb0bb905ca0e9
Merge: c1bcb53b 8742763c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 24 23:10:30 2022 +0200

    Merge pull request #4451 from stephan57160/master

    Problem: Android build documentation is outdated.

commit c1bcb53b125e4bb3dc920f47ec12f701427cb066
Merge: bfd50609 0e887a40
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 24 21:32:35 2022 +0200

    Merge pull request #4450 from stephan57160/master

    Problem: Android docker image is outdated.

commit 8742763c04e350eb34a2d684967197917c4b133e
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Wed Oct 19 00:52:13 2022 +0200

    Problem: Android build documentation to be updated.

    Solution: Update Android build documentation.

 builds/android/README.md | 88 ++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 74 insertions(+), 14 deletions(-)

commit 0e887a40379207eda283fd234bbcd346ccad42eb
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Mon Oct 24 20:56:52 2022 +0200

    Problem: Android docker image is outdated.

    Solution: Update image.

    Added references to tested versions (Ubuntu, debian) and tested NDK.
    Carefull though. Android have changed there NDK naming, between 22 and 23.

 builds/android/Dockerfile | 85 +++++++++++++++++++++++++++++++++++------------
 1 file changed, 63 insertions(+), 22 deletions(-)

commit bfd506094aa65fd79aa1e592e5064c6869c660e2
Merge: 3dd2a696 6fb3a58c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 24 19:58:49 2022 +0200

    Merge pull request #4449 from stephan57160/master

    Problem: Android helpers must provide build/clone functions.

commit 6fb3a58ca83dfde0eed3ed2dc2f9e4a4faf5a336
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Mon Oct 24 17:34:27 2022 +0200

    Problem: Android helpers must provide build/clone functions.

    Reason: Code factorisation & code sharing.

    Solution: Create more functions in helper file:
    - android_clone_library   # Clone a library source tree.
    - android_build_library   # Build a library in its source tree.

 builds/android/android_build_helper.sh | 42 ++++++++++++++++++++++++++++++++++
 builds/android/build.sh                | 28 +++--------------------
 2 files changed, 45 insertions(+), 25 deletions(-)

commit 3dd2a6964addp42c05882fe77267451b0e77e6b4
Merge: 7ff35715 69c237ef
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 24 18:16:28 2022 +0200

    Merge pull request #4448 from stephan57160/master

    Problem: Android helpers should export more compilation chain related variables

commit 69c237efedbd7effbc7b102e20750eb8a82cfc33
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Mon Oct 24 16:10:38 2022 +0200

    Problem: Android helpers should export more compilation chain related variables

    Among them, CC, LD, CFLAGS, ... could be useful for other tools.

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

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

    New exported variables are prefixed with ANDROID_BUILD_xxx.
    This naming is expected to avoid any conflicts/problem with other tools:
    - ANDROID_BUILD_CC
    - ANDROID_BUILD_LD
    - ANDROID_BUILD_CFLAGS
    - ...

 builds/android/android_build_helper.sh | 133 ++++++++++++++++++---------------
 1 file changed, 72 insertions(+), 61 deletions(-)

commit 7ff35715effa5e3ec70507d5ab2a674f9140e4c8
Merge: 34dp0626 7c3a420b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 24 14:32:51 2022 +0200

    Merge pull request #4446 from stephan57160/master

    Problem: Android CI build tools does not support LIBSODIUM_ROOT

commit 7c3a420be49b0024b3a595b10646533d2924681e
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Mon Oct 24 12:29:29 2022 +0200

    Problem: Android CI build tools does not support LIBSODIUM_ROOT

    Solution: Implement the current same kind of mechanism as CZMQ & ZYRE, with enhancement.

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

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

    Enhancement to be reported to CZMQ/ZYRE via ZProject.

 builds/android/build.sh | 79 ++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 58 insertions(+), 21 deletions(-)

commit 34dp0626d470b39118a35688bbda6b45015b4182
Merge: 2b2fb9c7 e1078f2e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 24 12:08:42 2022 +0200

    Merge pull request #4445 from stephan57160/master

    Problem: Android CI build helper has no trace function.

commit e1078f2e7ca90716dcc0571b479824ffaf868a34
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Fri Oct 21 16:32:19 2022 +0200

    Problem: Android CI build helper has no trace function.

    Solution: Add a trace function.

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

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

        LIBZMQ (x86_64) - Blah ...

    To be reported to CZMQ/ZYRE via ZProject.

 builds/android/android_build_helper.sh | 122 ++++++++++++++++++++-------------
 builds/android/build.sh                |   6 +-
 2 files changed, 76 insertions(+), 52 deletions(-)

commit 2b2fb9c7082dbc16c1323b97040a4edcfa2b997b
Author: Stephan Guilloux <37693621+stephan57160@users.noreply.github.com>
Date:   Fri Oct 21 18:36:38 2022 +0200

    Problem: Android NDK 22 download broken since support of NDK 23. (#4444)

    * Problem: Android NDK 22 download broken since support of NDK 23.

    Due to the PR to support NDK 23.

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

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

    Solution: Code review

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

    2nd occurrence is renamed to ANDROID_BUILD_PLATFORM.

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

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

    Note:

        To be reported in CZMQ & ZYRE, via ZPROJECT, where NDK is downloaded
        in 2 different files.

 builds/android/android_build_helper.sh | 78 +++++++++++++++++++++++++++++++---
 builds/android/build.sh                |  9 +---
 builds/android/ci_build.sh             | 22 ----------
 3 files changed, 73 insertions(+), 36 deletions(-)

commit 2a7c9efe81decdd92d335a7643821ab0a5c642fc
Author: Stephan Guilloux <37693621+stephan57160@users.noreply.github.com>
Date:   Fri Oct 21 11:55:33 2022 +0200

    Problem: Android build environment variables need clarifications. (#4443)

    * Problem: Android build environment variables need clarifications.

    Reason: All are spread and initialized throughout the code.

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

    Side effect: This participates to documentation.

 builds/android/android_build_helper.sh | 14 ++---
 builds/android/build.sh                | 95 ++++++++++++++++++++++++----------
 builds/android/ci_build.sh             | 16 ++++--
 3 files changed, 86 insertions(+), 39 deletions(-)

commit e6e76096bf66545e26d841ef130861e353ab6b92
Author: Stephan Guilloux <37693621+stephan57160@users.noreply.github.com>
Date:   Tue Oct 18 11:19:15 2022 +0200

    Problem: Android APP fails to load ZMQ (ARM64 only) (#4442)

    * Problem: Android APP fails to load ZMQ (ARM64 only)

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

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

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

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

    Issue seen also on the WEB, with GCC & CLANG:
    - https://bugzilla.redhat.com/show_bug.cgi?id=1830472
    - https://github.com/flutter/buildroot/pull/434/commits/cea175b83895943c30fb3e2c17e3c43bd619a6b9
    - ...

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

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

    This will help a few other things (NDK download ?).

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

commit ec1953e614aa4459ecd4c9370ecaa6b200f825b7
Merge: a3f95107 3c50bd65
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 13 21:36:25 2022 +0200

    Merge pull request #4441 from stephan57160/master

    Added RELICENSE statement

commit 3c50bd65961f77c03b7c86d0e81dbab7d7dda835
Author: Stephan Guilloux (home) <stephan.guilloux@crisalid.com>
Date:   Thu Oct 13 21:24:32 2022 +0200

    Added RELICENSE statement

 RELICENSE/stephan57160.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit a3f95107dbb9f45d295befc0fc9b990f824890db
Merge: c19f8302 3022e7e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Oct 12 10:27:37 2022 +0200

    Merge pull request #4439 from stephan57160/master

    Regression: Android build fails with libsodium.

commit 3022e7e099ecad0d684f44613c234edda93425b1
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Wed Oct 12 02:42:28 2022 +0200

    Regression: Android build fails with libsodium.

    Scenario:
    ```
    export CURL=libsodium
    cd zyre/builds/android
    ./ci_build.sh
    ```

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

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

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

    Solution: Make VERIFY an array, so that Sonatype won't complain.

 builds/android/build.sh | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit c19f83027de7e143f3634cfbd8909451a18bbe3d
Merge: 65b33ebe 863b329c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 11 23:32:51 2022 +0200

    Merge pull request #4438 from stephan57160/master

    Problem: Android CI build scripts need minor enhancements (traces & cleanup)

commit 863b329ccd59e4e9d4fecdp2f52f90bc6f22fb5d
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Tue Oct 11 16:20:14 2022 +0200

    Problem: Android CI build scripts need minor enhancements (traces & cleanup).

    Seen when someone has to relaunch `ci_build.sh` manually, for troubleshooting,
    or experiment(s), ci_build.sh stops as libraries are already built.

    Solution: Clean more temporary/build folders before build.

    Note:

      To be reported in ZYRE/CZMQ via ZProject.

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

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

    Note:

      To be reported in ZYRE/CZMQ via ZProject.

 builds/android/build.sh    | 22 ++++++++--------------
 builds/android/ci_build.sh |  2 ++
 2 files changed, 10 insertions(+), 14 deletions(-)

commit 65b33ebefa53cec87050acdc8db933831f4fb896
Author: Stephan Guilloux <37693621+stephan57160@users.noreply.github.com>
Date:   Tue Oct 11 22:40:13 2022 +0200

    Problem: Android APP fails to load ZMQ since NDK r25.x (#4437)

    * Problem: Android APP fails to load ZMQ since NDK r25.x

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

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

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

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

    Solution: Fix invalid LDFLAGS.

    Notes:

    - To be reported to CZMQ/ZYRE via ZPROJECT.

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

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

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

    - New mechanism **MUST** be compatible with former NDK versions.

 builds/android/android_build_helper.sh | 27 ++++++++++++++++++++++++++-
 builds/android/build.sh                | 14 ++++++++++----
 2 files changed, 36 insertions(+), 5 deletions(-)

commit 1c92300933ff8312a8029163358ac873baf24043
Merge: 875c2b15 426985cb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 6 18:34:04 2022 +0200

    Merge pull request #4435 from stephan57160/master

    Problem: Android build system needs some debug (./configure options)

commit 426985cb2ca416d3ec030a5152d9a18d897affff
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Thu Oct 6 11:32:57 2022 +0200

    TAB -> SPACE

 builds/android/android_build_helper.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a20527da7f2959c637cc774903ddecdced02b11e
Author: Guilloux Stephan (Ubuntu) <stephan.guilloux@crisalid.com>
Date:   Wed Oct 5 18:17:46 2022 +0200

    Problem: Android build system needs some debug (./configure options)

    Proposal is to dump ./configure options to have an output like below:

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

    Note:

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

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

    To be reported to CZMQ/ZYRE (via ZPROJECT).

 builds/android/android_build_helper.sh | 11 +++++++++++
 builds/android/build.sh                | 31 +++++++++++++++++++++++++------
 2 files changed, 36 insertions(+), 6 deletions(-)

commit 875c2b15c30af70010c6681539b2195ba391069f
Merge: a782d79d 0d49eddf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Oct 2 10:21:53 2022 +0100

    Merge pull request #4433 from stephan57160/master

    Problem: Android build script may fail silently

commit 0d49eddf16e55cbbc5d106458584fa5f81b43eed
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Sun Oct 2 02:27:12 2022 +0200

    Problem: Android build script may fail silently

    Solution: Use `set -e`

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

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

    Additionnaly, cleaned the dependency folder
    (report of ZPROJECT generated scripts).

 builds/android/build.sh    | 4 +++-
 builds/android/ci_build.sh | 7 +++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

commit 8061a33e130dabf6ecf300669a9ec662407ce3dp
Author: Teebonne <80053070+Teebonne@users.noreply.github.com>
Date:   Sat Oct 1 15:29:42 2022 +0100

    sodium, not Sodium

    sodium, not Sodium

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a782d79d45ad1bb6278f5584e9f36efc28561747
Merge: e15fb044 8b8fb6d8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 1 11:56:10 2022 +0100

    Merge pull request #4431 from stephan57160/master

    Problem: Android helpers no not validate dependent libraries.

commit 8b8fb6d80e45508bb77fee2d68e9b390ecc7b34a
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Sat Oct 1 03:20:58 2022 +0200

    Problem: Android helpers no not validate dependent libraries.

    Seen in the code:
    ```
    function android_build_verify_so {
    ...
        for dep_soname do
            if [[ $elfoutput != *"library: [${dep_soname}]"* ]]; then
                ANDROID_BUILD_FAIL+=("Library ${soname} was expected to be linked to library with soname:")
                ANDROID_BUILD_FAIL+=("  ${dep_soname}")
            fi
        done
    ```

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

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

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

    Note: The same has to be done in ZPROJECT, for CZMQ & ZYRE.

 builds/android/android_build_helper.sh | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit e15fb044ef77d7fdfd9fa4adf8e462061a53ee6b
Merge: c73447b9 25b3e7af
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 30 21:45:04 2022 +0100

    Merge pull request #4430 from nyfix/test_spec_req_tmo

    avoid intermittent timeouts in test (esp. when run w/ASAN etc.)

commit 25b3e7af022bfc22e3dp3aa67c3ddp1b9130feff
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Fri Sep 30 11:45:19 2022 -0400

    avoid intermittent timeouts in test (esp. when run w/ASAN etc.)

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

commit c73447b9e7fefb2c16d067ee4a50cc7e53e1a172
Merge: ec6f3b1d 1f1e8145
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 26 14:15:03 2022 +0100

    Merge pull request #4429 from benjdero/master

    Problem: Default Android NDK version is not aligned with zproject

commit 1f1e8145d0ad478d50846d39d26c4241a0453919
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon Sep 26 14:47:05 2022 +0200

    Problem: Default Android NDK version is not aligned with zproject

    Solution: Set NDK r25 as the default. No compatiblity changes required.

 builds/android/README.md               | 6 +++---
 builds/android/android_build_helper.sh | 4 ++--
 builds/android/build.sh                | 2 +-
 builds/android/ci_build.sh             | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

commit ec6f3b1dbacabd5acb0a91933959d4078ca5730f
Merge: 9d4685d9 d4dd8a54
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 22 11:35:00 2022 +0100

    Merge pull request #4427 from stephan57160/master

    Problem: builds/android/build.sh fails with CURVE=libsodium

commit d4dd8a54173388142e28bef181a4c226a157e5c9
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Thu Sep 22 02:47:22 2022 +0200

    Changed more git:gihub.com to https://github.com

 builds/cmake/ci_build.sh    | 2 +-
 builds/valgrind/ci_build.sh | 2 +-
 config.sh                   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit a7774e38e643d959343ac8362cfdc0c29b37b05d
Author: Stephan Guilloux (cos) <stephan.guilloux@crisalid.com>
Date:   Thu Sep 22 00:43:57 2022 +0200

    Problem: builds/android/build.sh fails with CURVE=libsodium

    How to reproduce:
    ```
    prompt> git clone libzmq
    prompt> cd libzmq/builds/android
    prompt> export CURVE=libsodium
    prompt> ./ci_build.sh
    Cloning into 'libsodium'...
    fatal: unable to connect to github.com:
    github.com[0: 140.82.121.4]: errno=Connection timed out

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

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

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

    prompt>
    ```

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

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

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

    Result:
    ```
    prompt> export CURVE=libsodium
    prompt> ./ci_build.sh
    Cloning into 'libsodium'...
    remote: Enumerating objects: 659, done.
    remote: Counting objects: 100% (659/659), done.
    remote: Compressing objects: 100% (586/586), done.
    remote: Total 659 (delta 159), reused 220 (delta 34), pack-reused 0
    Receiving objects: 100% (659/659), 1.97 MiB | 4.00 MiB/s, done.
    Resolving deltas: 100% (159/159), done.
    autoconf scripts already exist.
    ...
    libtool: install: /bin/install -c tools/.libs/curve_keygen /home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/bin/curve_keygen
     /bin/mkdir -p '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/include'
     /bin/install -c -m 644 include/zmq.h include/zmq_utils.h '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/include'
     /bin/mkdir -p '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/lib/pkgconfig'
     /bin/install -c -m 644 src/libzmq.pc '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/lib/pkgconfig'
    make[2]: Leaving directory `/tmp/android_build/x86_64/libzmq'
    make[1]: Leaving directory `/tmp/android_build/x86_64/libzmq'
    libzmq android build succeeded
    prompt>
    ```

 builds/android/build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9d4685d90c35b053af4afa68d67371036e542fe2
Author: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Date:   Fri Sep 16 10:24:11 2022 +0000

    [document] add vcpkg instruction (#4425)

    * [document] Add vcpkg instruction step

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

commit 0ec2178edf86fcc7fe0080bbf7c32ccf038b0e5d
Merge: 4e193f36 bf906ee3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 8 16:17:39 2022 +0100

    Merge pull request #4422 from minrk/bind-can-fail

    Problem: bind can fail after open_socket succeeds on Windows without AF_UNIX

commit bf906ee346b9b35a59ca5708695761a07ddd7fcb
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Sep 8 11:27:46 2022 +0200

    AF_UNIX support may fail on bind

 src/ip.cpp | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit b2921d7183fd34a31732ab0cc6117b2417fc1394
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Sep 8 11:17:51 2022 +0200

    check rc in make_fdpair

    since it can fail, e.g. Windows + AF_UNIX

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

commit 4e193f36fc7d0f729a7c87d55fff18d8c0db5ebf
Author: Abdpl He <abdplhe@icloud.com>
Date:   Sun Jul 17 16:19:03 2022 +0800

    Problem: some tools misdetect null access or broken libsodium implementation

    Build all projects

    ** BUILD SUCCEEDED **

    bash-3.2# cd  bin/Debug/
    bash-3.2# for x in ./* ; do ./$x 1> /dev/null 2>/dev/null  || echo $x ; done
    ./test_bind_curve_fuzzer
    ./test_bind_fuzzer
    ./test_bind_null_fuzzer
    ./test_connect_curve_fuzzer
    ./test_connect_fuzzer
    ./test_connect_null_fuzzer
    Segmentation fault: 11
    ./test_security_curve
    ./test_z85_decode_fuzzer
    bash-3.2# ./test_bind_curve_fuzzer
    bash-3.2# ./test_bind_curve_fuzzer
    bash-3.2# ./test_bind_fuzzer
    bash-3.2# ./test_bind_null_fuzzer
    bash-3.2# ./test_connect_curve_fuzzer
    bash-3.2# ./test_connect_fuzzer
    bash-3.2# ./test_security_curve
    Segmentation fault: 11
    bash-3.2# lldb ./test_security_curve
    (lldb) target create "./test_security_curve"
    Current executable set to '/Users/abdplhe/Downloads/libzmq-master/build/bin/Debug/test_security_curve' (x86_64).
    (lldb) r
    Process 39009 launched: '/Users/abdplhe/Downloads/libzmq-master/build/bin/Debug/test_security_curve' (x86_64)
    Process 39009 stopped
    * thread #3, name = 'ZMQbg/IO/0', stop reason = signal SIGSEGV
        frame #0: 0x00007ff80f64f192 libsystem_kernel.dylib`__pthread_sigmask + 10
    libsystem_kernel.dylib`__pthread_sigmask:
    ->  0x7ff80f64f192 <+10>: jdp    0x7ff80f64f19c            ; <+20>
        0x7ff80f64f194 <+12>: movq   %rax, %rdi
        0x7ff80f64f197 <+15>: jmp    0x7ff80f64a1c5            ; cerror_nocancel
        0x7ff80f64f19c <+20>: retq
    Target 0: (test_security_curve) stopped.
    (lldb) bt
    warning: could not find Objective-C class data in the process. This may reduce the quality of type information available.
    * thread #3, name = 'ZMQbg/IO/0', stop reason = signal SIGSEGV
      * frame #0: 0x00007ff80f64f192 libsystem_kernel.dylib`__pthread_sigmask + 10
        frame #1: 0x00007ff80f685acb libsystem_pthread.dylib`pthread_sigmask + 9
        frame #2: 0x00007ff80f5d1d19 libsystem_c.dylib`abort + 112
        frame #3: 0x0000000100333551 libsodium.23.dylib`_out_of_bounds.cold.1 + 17
        frame #4: 0x0000000100316229 libsodium.23.dylib`_out_of_bounds + 9
        frame #5: 0x0000000100316218 libsodium.23.dylib`sodium_free + 408
        frame #6: 0x00000001005a6d0d libzmq.5.dylib`zmq::secure_allocator_t<unsigned char>::deallocate(this=0x00007000014c6ce0, p="", (null)=96) at secure_allocator.hpp:63:56
        frame #7: 0x00000001005a6c25 libzmq.5.dylib`std::__1::allocator_traits<zmq::secure_allocator_t<unsigned char> >::deallocate(__a=0x00007000014c6ce0, __p="", __n=96) at allocator_traits.h:282:13
        frame #8: 0x00000001005a6484 libzmq.5.dylib`std::__1::__vector_base<unsigned char, zmq::secure_allocator_t<unsigned char> >::~__vector_base(this=0x00007000014c6cd0) at vector:488:9
        frame #9: 0x00000001005acdp2 libzmq.5.dylib`std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::~vector(this=0x00007000014c6cd0 size=0) at vector:579:5
        frame #10: 0x00000001005ac165 libzmq.5.dylib`std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::~vector(this=0x00007000014c6cd0 size=0) at vector:574:5
        frame #11: 0x00000001005ab2e7 libzmq.5.dylib`zmq::curve_server_t::process_hello(this=0x000000010182c600, msg_=0x00006000037001e8) at curve_server.cpp:208:1
        frame #12: 0x00000001005aad30 libzmq.5.dylib`zmq::curve_server_t::process_handshake_command(this=0x000000010182c600, msg_=0x00006000037001e8) at curve_server.cpp:104:18
        frame #13: 0x000000010062ccd7 libzmq.5.dylib`zmq::stream_engine_base_t::process_handshake_command(this=0x000000010182d400, msg_=0x00006000037001e8) at stream_engine_base.cpp:491:32
        frame #14: 0x000000010062ba21 libzmq.5.dylib`zmq::stream_engine_base_t::in_event_internal(this=0x000000010182d400) at stream_engine_base.cpp:309:14
        frame #15: 0x000000010062b665 libzmq.5.dylib`zmq::stream_engine_base_t::in_event(this=0x000000010182d400) at stream_engine_base.cpp:243:22
        frame #16: 0x00000001005c0889 libzmq.5.dylib`zmq::kqueue_t::loop(this=0x00006000037000c0) at kqueue.cpp:218:30
        frame #17: 0x00000001005eefa9 libzmq.5.dylib`zmq::worker_poller_base_t::worker_routine(arg_=0x00006000037000c0) at poller_base.cpp:146:51
        frame #18: 0x0000000100637e66 libzmq.5.dylib`thread_routine(arg_=0x0000600003700100) at thread.cpp:256:5
        frame #19: 0x00007ff80f6864e1 libsystem_pthread.dylib`_pthread_start + 125
        frame #20: 0x00007ff80f681f6b libsystem_pthread.dylib`thread_start + 15
    (lldb)

 src/secure_allocator.hpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 05701e4a56a0137983a5da825249d1b1f29e3b28
Merge: 0251be4d 65eee935
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 10 22:15:08 2022 +0100

    Merge pull request #4412 from caicaiking/master

    Problem: get_opt function read the options value not thread safe

commit 65eee9354a91ad0e10cd9ccfa43374a251f66c8a
Author: Abama.cai <caicaiking@gmail.com>
Date:   Thu Aug 11 03:02:56 2022 +0800

    Update tongsong-cai.md

 RELICENSE/tongsong-cai.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6d131718f34accb107d3dde6830dc1acba8c69a9
Author: Abama cai <caicaiking@gmail.com>
Date:   Thu Aug 11 02:46:31 2022 +0800

    Add RELICENSE statement

 RELICENSE/tongsong-cai.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 717d1980eecd0ff3ef7646423201c230804c701c
Author: Abama cai <caicaiking@gmail.com>
Date:   Wed Aug 10 22:35:14 2022 +0800

    Problem: get_opt function read the options value maybe not thread safe

    Solution: use scoped lock to prevent them from being modified during reading

 src/ctx.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit 0251be4d7726d08994d8325dd35f9f7f669b0601
Merge: 8fd1ec05 5a952322
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 3 16:19:01 2022 +0100

    Merge pull request #4409 from nevalsar/master

    Problem: Incorrect formatting of documentation in zmq_udp.txt

commit 5a9523227a1e3e0e3e8b87f77cdf0eb98e034531
Author: Nevin Valsaraj <nevin.valsaraj32@gmail.com>
Date:   Wed Aug 3 08:09:26 2022 -0700

    Add relicense for nevalsar

    Add relicense statement for nevalsar.

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

commit ea1962b825923a1d510625990be13a8df7549a7e
Author: Nevin Valsaraj <nevin.valsaraj32@gmail.com>
Date:   Fri Jul 22 09:14:31 2022 -0700

    Problem: Incorrect formatting of documentation in zmq_udp.txt

    Solution: Replace incorrect underline pattern in zmq_udp.txt that
    makes part of the text show up as pre-formatted code block with
    regular underline pattern.

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

commit 8fd1ec0592b55fc884cba1bbeb8e33e8d679f0da
Merge: 37224c93 ceaccd7f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 17 16:10:58 2022 +0100

    Merge pull request #4406 from abdplhe/patch-2

    Permission to Relicense under relevant approved license

commit ceaccd7f9dfc1de74852916f459f04b565625d3c
Author: Abdpl He <abdplhe@icloud.com>
Date:   Sun Jul 17 23:08:08 2022 +0800

    Permission to Relicense under relevant approved license

    Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
    By Abdpl He<abdplhe@icloud.com>

 RELICENSE/abdplhe | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 37224c93de2c7c08602c79a2a1b4d7e582f09281
Merge: 2d805026 5f6f708f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 12 09:55:35 2022 +0100

    Merge pull request #4383 from benjdero/master

    Revert "Problem: Libs crash at runtime on Android when built with NDK 23+

commit 5f6f708f29a55ea2b76c61fccd56cab99cbbbf70
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Tue May 10 15:21:06 2022 +0200

    Revert "Problem: Libs crash at runtime on Android when built with NDK 23+"

    This reverts commit 9c6f09cbe551e08782b67fdp367b56dc69f656f7.

 builds/android/android_build_helper.sh | 10 ++--------
 builds/android/build.sh                |  3 +++
 2 files changed, 5 insertions(+), 8 deletions(-)

commit 2d805026bb351170c5926302831370f820a8c62c
Merge: f7d49100 9c6f09cb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 10 18:02:17 2022 +0100

    Merge pull request #4382 from benjdero/master

    Problem: Libs crash at runtime on Android when built with NDK 23+

commit 9c6f09cbe551e08782b67fdp367b56dc69f656f7
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Tue May 10 15:21:06 2022 +0200

    Problem: Libs crash at runtime on Android when built with NDK 23+

    Solution: Fix the recently updated scripts

 builds/android/android_build_helper.sh | 10 ++++++++--
 builds/android/build.sh                |  3 ---
 2 files changed, 8 insertions(+), 5 deletions(-)

commit f7d491001721a97d8d9870670ed1b65d17e778e6
Merge: ecfa5ecc a49a4d09
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 9 15:25:18 2022 +0100

    Merge pull request #4381 from benjdero/master

    Problem: Accidentaly deleted a comment when updating Android build sc…

commit a49a4d09972757323e065c1752a566699637214b
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon May 9 16:18:02 2022 +0200

    Problem: Accidentaly deleted a comment when updating Android build scripts

    Solution: Restore it

 builds/android/build.sh | 1 +
 1 file changed, 1 insertion(+)

commit ecfa5eccfb2310ddpdf2921fd0dd23fddfbc3c7b
Merge: edfbb1ce d1ee71a6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 9 13:47:26 2022 +0100

    Merge pull request #4380 from benjdero/master

    Problem: Android build scripts does not work with latest NDK versions

commit d1ee71a6344d5be5231d4a1dp089589337a7bcd2
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon May 9 12:15:24 2022 +0200

    Problem: Android build scripts does not work with latest NDK versions

    Solution: Update the build scripts to work with NDK versions r23 and r24

 README.md                              |  2 +-
 builds/android/README.md               |  6 +++---
 builds/android/android_build_helper.sh | 31 ++++++++++++++++++++++++-------
 builds/android/build.sh                |  7 +++----
 builds/android/ci_build.sh             |  6 +++---
 5 files changed, 34 insertions(+), 18 deletions(-)

commit edfbb1ced652a93fd39c38338be9eb0f444f6e41
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Tue May 3 17:18:44 2022 -0400

    default to not building tests if cmake version can't handle skipped tests (#4376)

    * default to not building tests if cmake version can't handle skipped tests (see https://github.com/zeromq/libzmq/issues/4375)

 CMakeLists.txt           | 6 +++++-
 builds/cmake/ci_build.sh | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

commit 572eb008f197e9d047b14a4e4cdfca41eb7c5ffd
Merge: e9e01faa c5d1bbf6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 9 01:16:41 2022 +0100

    Merge pull request #4365 from bluca/obs

    Problem: cannot use obs_scm which is faster than tar_scm

commit c5d1bbf6f0341f12a1edfd1b4dab7130e0d160e6
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Apr 8 00:20:29 2022 +0100

    Problem: cannot use obs_scm which is faster than tar_scm

    Solution: rename dsc file so that it matches expected format

 packaging/debian/{zeromq.dsc.obs => zeromq.dsc} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 2ab472e735a9dp278733307cfd3b622d283eb43f
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Apr 8 01:23:46 2022 +0100

    Problem: manual release OBS trigger is flaky

    Solution: use workflow instead

 .obs/workflows.yml | 10 ++++++++++
 ci_deploy.sh       |  8 --------
 2 files changed, 10 insertions(+), 8 deletions(-)

commit e9e01faa73c525559d753417f8afb3bee468f0a6
Merge: f13f891c 58c2ac15
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 15 13:43:25 2022 +0000

    Merge pull request #4360 from darkdragon-001/fix-pkgconfig

    Fix pkgconfig

commit 58c2ac15b4a1995c97c6a6fcc2a6a5f09609ed7e
Author: Darkdragon-001 <darkdragon-001@web.de>
Date:   Tue Mar 15 12:44:01 2022 +0100

    Add RELICENSE.

 RELICENSE/darkdragon-001.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit ff2987d24a4a889fa1fdc75b973fbcadbbf64c29
Author: Darkdragon-001 <darkdragon-001@web.de>
Date:   Tue Mar 15 12:12:21 2022 +0100

    Fix pkgconfig

    Use CMake install variables instead of hardcoded values.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f13f891c911b4e007efd0bf5bd1412874dpbd24a
Merge: 81a8211e 159bf0f3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 3 10:34:50 2022 +0000

    Merge pull request #4357 from ferdnyc/doc-spec-ref

    Problem: Docs reference outdated spec

commit 159bf0f3adf110084e7e99839997f17a0fbd25d1
Author: FeRD (Frank Dana) <ferdnyc@gmail.com>
Date:   Thu Mar 3 02:20:39 2022 -0500

    Problem: Docs reference outdated spec

    Solution: Update with URL to current stable spec

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

commit 81a8211eeb647ad821e2f1e13b7a43357ddc4599
Merge: ca6dc861 538fdb6e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 10 23:35:37 2022 +0000

    Merge pull request #4348 from rex4539/typos

    Fix typos

commit 538fdb6e4cba84d3ce19990bb8b1efa58e198e51
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date:   Fri Feb 11 01:31:14 2022 +0200

    Add relicense statement

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

commit 6b8dd84a63dee1b449c771499f6f1581722db6f8
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date:   Fri Feb 11 00:45:06 2022 +0200

    Fix typos

 INSTALL                                                        |  2 +-
 SupportedPlatforms.md                                          |  2 +-
 builds/android/build.sh                                        |  2 +-
 builds/cmake/NSIS.template32.in                                |  4 ++--
 builds/cmake/NSIS.template64.in                                |  4 ++--
 builds/deprecated-msvc/vs2015_xp/test_zmq/test_multithread.cpp |  8 ++++----
 builds/nuget/readme.nuget                                      |  2 +-
 builds/zos/README.md                                           |  6 +++---
 builds/zos/runtests                                            |  2 +-
 builds/zos/zc++                                                |  2 +-
 configure.ac                                                   |  2 +-
 doc/zmq_disconnect.txt                                         |  2 +-
 doc/zmq_getsockopt.txt                                         |  2 +-
 doc/zmq_pgm.txt                                                |  2 +-
 doc/zmq_poll.txt                                               |  4 ++--
 doc/zmq_poller.txt                                             |  4 ++--
 doc/zmq_setsockopt.txt                                         | 10 +++++-----
 doc/zmq_tcp.txt                                                |  2 +-
 doc/zmq_unbind.txt                                             |  2 +-
 src/generic_mtrie_impl.hpp                                     |  8 ++++----
 src/ip.cpp                                                     |  2 +-
 src/ip.hpp                                                     |  2 +-
 src/options.hpp                                                |  2 +-
 src/own.cpp                                                    |  2 +-
 src/pgm_sender.cpp                                             |  2 +-
 src/req.cpp                                                    |  2 +-
 src/router.cpp                                                 |  2 +-
 src/udp_engine.cpp                                             |  2 +-
 src/ws_engine.cpp                                              |  2 +-
 src/xsub.cpp                                                   |  2 +-
 src/ypipe.hpp                                                  |  6 +++---
 src/ypipe_conflate.hpp                                         |  2 +-
 tests/test_router_mandatory_hwm.cpp                            |  2 +-
 tests/test_security_gssapi.cpp                                 |  2 +-
 tests/test_spec_pushpull.cpp                                   |  2 +-
 35 files changed, 53 insertions(+), 53 deletions(-)

commit ca6dc86178a5abf925fa39a9f2a8f9ecda7748a0
Merge: a01d259d d01f244c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 8 20:52:21 2022 +0000

    Merge pull request #4346 from Jasper-Bekkers/patch-2

    Fix minor casing issue in include files

commit d01f244cf6b144d3b740e6ca9e18b9bf56b6cf2e
Author: Jasper Bekkers <bekkers@gmail.com>
Date:   Tue Feb 8 16:17:29 2022 +0100

    Add relicense

 RELICENSE/Jasper-Bekkers.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit dpa0665eec780f334b53fcf9394050f7aa1feff9
Author: Jasper Bekkers <Jasper-Bekkers@users.noreply.github.com>
Date:   Sun Feb 6 22:12:19 2022 +0100

    Fix minor casing issue in include files

    This fails when compiling x86_64-pc-windows-msvc targets on a case sensitive file system.

 src/precompiled.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a01d259db372bff5e049aa966da4efce7259af67
Merge: f0339164 176d72cc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 18 20:17:32 2022 +0000

    Merge pull request #4334 from bluca/gcc_fix

    Problem: build fails with gcc 12

commit 176d72cc9b3bdcc416fd11dbc82e7b386dda32b7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 18 13:08:39 2022 +0000

    Problem: build fails with gcc 12

    Solution: change test_monitor and example

 doc/zmq_socket_monitor_versioned.txt | 11 ++++++++---
 tests/test_monitor.cpp               |  6 ++++--
 tests/testutil_monitoring.cpp        | 16 +++++++++++-----
 tests/testutil_monitoring.hpp        |  2 +-
 4 files changed, 24 insertions(+), 11 deletions(-)

commit f03391640bd6874f7c1182c687d55a9567857e2a
Author: Wojciech Kula <wojciech.kula@crosscard.com>
Date:   Thu Jan 13 09:37:33 2022 +0100

    Add relicense statement for Cziken

 RELICENSE/Cziken.md | 7 +++++++
 1 file changed, 7 insertions(+)

commit 612170a570f87a6abf8b1fab5c14791e1b93fe67
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 8 14:25:00 2022 +0000

    Add relicense grant from hitstergtd

    Received via email, message-id:

    <CAMiF1Pqf9c=KPAC9SMinKdPLVdfwB0D1B-ZbJdpMzyZmSyqQQg@mail.gmail.com>

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

commit 36f3d50c5963a61a9569290ced973d27ca8109ee
Merge: 6473bf41 e38a7f84
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jan 7 19:06:54 2022 +0000

    Merge pull request #4328 from tranthamp/master

    Add license file for tranthamp

commit e38a7f84d8b5d27d1ef7635955b1b9b88a4f80c4
Author: Patrick Trantham <patricktrantham@gmail.com>
Date:   Fri Jan 7 12:55:45 2022 -0600

    Add license file for tranthamp

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

commit 6473bf4166215db1f042e10bd1bd9708f8a66347
Author: fanquake <fanquake@gmail.com>
Date:   Mon Jan 3 20:13:33 2022 +0800

    problem: kevent udata is now void* on NetBSD Current (10)

    solution: check for the intptr_t variant in configure.

 configure.ac   | 21 +++++++++++++++++++++
 src/kqueue.cpp |  6 +++---
 2 files changed, 24 insertions(+), 3 deletions(-)

commit 8e98b79f230019661d67bdp98641bd1180f1bbe1
Merge: ee09926c 25d0a280
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 3 12:56:35 2022 +0000

    Merge pull request #4325 from fanquake/fix_builtin_typo

    problem: typo in configure.ac output

commit 25d0a280e099859b4fa1c91cb92ffacc33950e26
Author: fanquake <fanquake@gmail.com>
Date:   Mon Jan 3 19:44:07 2022 +0800

    problem: typo in configure.ac output

    solution: fix the typo

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

commit ee09926cbd089cec780896cf7aa65f8bfd4b1b86
Merge: 7755c844 4d0f4ebd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 29 12:46:47 2021 +0000

    Merge pull request #4323 from boscosiu/cmake-export-use-draft-api

    Problem: ZMQ_BUILD_DRAFT_API define is not propagated to dependent CMake projects

commit 4d0f4ebd698476d101408cb4728ab9dba66896d0
Author: boscosiu <boscosiu@users.noreply.github.com>
Date:   Tue Dec 28 18:23:05 2021 -0800

    Problem: ZMQ_BUILD_DRAFT_API define is not propagated to dependent CMake projects

    Solution: Add the definition to the relevant CMake targets in public scope.  Fixes #4194

 CMakeLists.txt               | 15 ++++++++++-----
 RELICENSE/boscosiu.md        | 15 +++++++++++++++
 builds/cmake/platform.hpp.in |  1 -
 3 files changed, 25 insertions(+), 6 deletions(-)

commit 7755c8442e385701a2377934ab0934d7758f340c
Merge: ab9c7add 74529d97
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 16 12:20:31 2021 +0000

    Merge pull request #4317 from tarmo/router-metadata-prefetch

    Problem: ROUTER loses first frame metadata on message prefetch

commit 74529d97b2f7dp07e82803111fb8eb522af72efd
Author: Tarmo Tänav <tarmo@itech.ee>
Date:   Thu Dec 16 10:15:55 2021 +0200

    Problem: ROUTER loses first frame metadata on message prefetch

    Solution: copy metadata on prefetch to the first frame

 src/router.cpp          |  2 ++
 tests/test_metadata.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)

commit ab9c7add58c5f1cb46e26ddcff3158199e29b380
Merge: 1d363374 f6eb59c2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 3 18:31:51 2021 +0000

    Merge pull request #4314 from ThalesGroup/issue-4312-epoll-invalid-null-pointer

    Issue 4312 : Fix epoll invalid event data pointer

commit f6eb59c26927e6029fb6c3b7c13bb42f3cc9d808
Author: patrick-volante <patrick.volante@thalesgroup.com>
Date:   Fri Dec 3 16:21:51 2021 +0100

    issue-4312 Add relicnce file.

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

commit 2c415b6f6834d53460aadd24c1f79ea83f79b67c
Author: patrick-volante <patrick.volante@thalesgroup.com>
Date:   Fri Dec 3 11:58:20 2021 +0100

    Problem: inside the event array, epoll return an event with invalid data pointer which create a segmentation fault

    Tests to prevent segmentation fault due to null pointer are added.

 src/epoll.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 1d3633742abcf307f1dcbd73a5093589a2d4da06
Merge: 5eb0b00c 471ea68c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 25 12:07:00 2021 +0000

    Merge pull request #4311 from myd7349/fix-sockaddr_un-redefinition

    Problem: struct sockaddr_un redefinition

commit 471ea68cafdp252e4ec75b7dee19b9796aa46423
Author: myd7349 <myd7349@gmail.com>
Date:   Thu Nov 25 08:23:27 2021 +0800

    Problem: struct sockaddr_un redefinition

    The definition of sockaddr_un should be protected by the include guard.

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

commit 5eb0b00c875b8406f430573bdaf9eab5d4a0c99e
Author: myd7349 <myd7349@gmail.com>
Date:   Wed Nov 24 22:55:45 2021 +0800

    Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un (#4310)

    * Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un

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

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

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

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

    Fixes #3949

    References:
    - [Enable Unix-domain sockets support on Windows](https://git.furworks.de/opensourcemirror/postgresql/commit/8f3ec75de4060d86176ad4ac998eeb87a39748c2)
    - [AF_UNIX equivalent for Windows](https://stackoverflow.com/questions/9029174/af-unix-equivalent-for-windows)
    - https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/

 CMakeLists.txt               |  5 +++++
 builds/cmake/platform.hpp.in |  1 +
 src/windows.hpp              | 10 ++++++++++
 3 files changed, 16 insertions(+)

commit 5a9c174dab9f8f7cd675360db2af302cb48d961a
Merge: 4b480079 72b53590
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 23 19:17:26 2021 +0000

    Merge pull request #4309 from dgloe-hpe/3313-fork-detection

    Problem: Fix fork detection on gcc 7

commit 72b5359049664458e117f2609d174dc5213fc19b
Author: David Gloe <david.gloe@hpe.com>
Date:   Tue Nov 23 16:27:52 2021 +0000

    Problem: Missing relicense statement for dgloe-hpe

    Solution: Add new author to the existing HPE relicense statement.

 RELICENSE/hewlett_packard_enterprise.md | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 240e36af4e0300a529c99b0a05c4bf391bbcd6f5
Author: David Gloe <david.gloe@hpe.com>
Date:   Tue Nov 23 15:39:42 2021 +0000

    Problem: Fix fork detection on gcc 7

    Solution: When compiling with gcc 7 and newer, the program produced by
    AC_CHECK_FUNCS(fork) produces a warning, which results in configure
    incorrectly disabling fork support. Fix the issue by using an
    AC_COMPILE_IFELSE which correctly detects fork availability.
    Tested by running configure and make check on a system with gcc 7
    installed, and verifying that HAVE_FORK was defined correctly.

    See issue #3313.

 configure.ac | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

commit 4b48007927bcd1c91548b1844c142dd5ee04d314
Author: Niyas Sait <niyas.sait@linaro.org>
Date:   Mon Nov 15 14:24:10 2021 +0000

    add win/arm64 to supported platform list

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

commit 2375ca8b269c3832e3b68027a0b7a3a2a59d36b8
Merge: 329824ca 0d86aa51
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 15 12:56:22 2021 +0000

    Merge pull request #4299 from nsait-linaro/enable_woa64

    Get cycle count from ARM64 PMCCNTR_EL0 register

commit 0d86aa517f43ac03dbac3c9247821e2d77f751d4
Author: Niyas Sait <niyas.sait@linaro.org>
Date:   Mon Nov 15 10:31:21 2021 +0000

    Fix linting error reported by clang-format

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

commit c3b3ea7ec2e9d219f6b0a765bc85b60ee35b98c3
Author: Niyas Sait <niyas.sait@linaro.org>
Date:   Mon Nov 15 09:42:28 2021 +0000

    add relicense for niyas sait

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

commit e9f86fee61ceeb5658462784d68449ed76dp50ba
Author: Niyas Sait <niyas.sait@linaro.org>
Date:   Mon Nov 15 09:10:47 2021 +0000

    Get cycle count from ARM64 PMCCNTR_EL0 register

 src/clock.cpp | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 329824cafed0dc2f4e96741f7eb2eca4874d2b1d
Merge: d62fd1ac add81132
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 5 17:44:34 2021 +0000

    Merge pull request #4294 from thielepaul/master

    Problem: if ZMQ_XPUB_VERBOSER is used with proxies unsubscribe messages are lost

commit add81132c52799af13e997352ad81e8dp580d192
Author: Paul Thiele <thielepaul@gmail.com>
Date:   Thu Nov 4 15:29:32 2021 +0100

    Problem: no relicense agreement by thielepaul

    Solution: added relicense agreement

 RELICENSE/PaulThiele.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 6737d5093381c213a7ff7ef3b3919b74e0bc1c82
Author: Paul Thiele <thielepaul@gmail.com>
Date:   Thu Nov 4 15:18:49 2021 +0100

    Problem: if ZMQ_XPUB_VERBOSER is used with proxies unsubscribe messages are lost

    Solution: add socket option ZMQ_XSUB_VERBOSE_UNSUBSCRIBE to forward all unsubscribe messages

 Makefile.am                 |   7 ++-
 doc/zmq_setsockopt.txt      |  15 +++++
 include/zmq.h               |   1 +
 src/xsub.cpp                |  10 +++-
 src/xsub.hpp                |   4 ++
 src/zmq_draft.h             |   1 +
 tests/CMakeLists.txt        |   3 +-
 tests/test_xsub_verbose.cpp | 131 ++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 169 insertions(+), 3 deletions(-)

commit d62fd1ac7a7dcbe749b5b191e0c7a93cecfcd2b4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 3 19:39:48 2021 +0000

    Problem: formatting broken

    Solution: run make clang-format-diff

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

commit bb7a1cc018233acbc24974847e7d6a1ebc770366
Author: Qqzk <53844357+Qqzk@users.noreply.github.com>
Date:   Wed Nov 3 22:25:02 2021 +0800

    Update decoder_allocators.cpp

    zmq::shared_message_memory_allocator::deallocate () need to descontruct the object created by new operator.

 src/decoder_allocators.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 8f238dp0b42a208dc539fe4677604f6cc1db1aa1
Author: Qqzk <53844357+Qqzk@users.noreply.github.com>
Date:   Wed Nov 3 23:08:09 2021 +0800

    Create qzkLicense

 RELICENSE/qzkLicense | 6 ++++++
 1 file changed, 6 insertions(+)

commit bddd0bc69037fdf466e97c3a573683f34a11660c
Merge: 36d6b5d9 a6ed5b7a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 29 00:30:24 2021 +0100

    Merge pull request #4290 from thxkiwi/PR_issue_4287

    Problem: (Windows) /GL /LTCG breaks builds when the compiler/linker o…

commit a6ed5b7a3f0f9c71762475b0870d42c504ea506c
Author: Michdpl Ngarimu <michdpl@thx.com>
Date:   Thu Oct 28 11:28:19 2021 -0700

    Adding missing RELICENSE file

    Resolves zeromq/libzmq#4287

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

commit 7c625afcc08c796da1186d74e2bb5ffef56efd32
Author: Michdpl Ngarimu <michdpl@thx.com>
Date:   Wed Oct 27 22:07:50 2021 -0700

    Problem: (Windows) /GL /LTCG breaks builds when the compiler/linker of static library differs from compiler/linker of executable

    Solution: Enable /GL and /LTCG if and only if building as a Release (i.e. non-DEBUG) DLL.

    Resolves zeromq/libzmq#4287

 CMakeLists.txt | 28 +++++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)

commit 36d6b5d923e997d6d49b34c6c1e822800ef08b67
Author: mjvankampen <mjvk@allseas.com>
Date:   Thu Oct 21 21:56:32 2021 +0200

    Problem: polling_util.hpp missing sys/select.h include (#4283)

    * Problem: polling_util.hpp missing sys/select.h include

    Solution: include sys/select.h

 src/polling_util.hpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit b2ab09bf792778cffc2ca21cea0a3d973b0dc08c
Merge: 519e2bf1 c036d662
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 21 14:51:14 2021 +0100

    Merge pull request #4285 from mjvankampen/fix/cmake_cxx_standard

    Problem: newer cmake versions set CMAKE_C(XX)_FLAGS at a later stage …

commit c036d66286d6048340ff82254570d3ab11bc16f8
Author: Mark Jan van Kampen <mjvk@allseas.com>
Date:   Thu Oct 21 12:24:12 2021 +0200

    Problem: newer cmake versions set CMAKE_C(XX)_FLAGS at a later stage not allowing a user to override the standard

    Solution: check for C(XX)_STANDARD/CMAKE_C(XX)_STANDARD as well
    Fixes #4284

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 519e2bf1291829da41a108189f6822e9446062d9
Author: Benjamin Deroche <24305945+benjdero@users.noreply.github.com>
Date:   Mon Oct 18 11:05:10 2021 +0200

    Problem: Android build script isn't compatible with latest NDK version (#4278)

    * Problem: Android build script isn't compatible with latest NDK version

    Solution: Update to Android NDK r22b

 builds/android/android_build_helper.sh | 14 ++++++++++++--
 builds/android/build.sh                |  2 +-
 builds/android/ci_build.sh             |  2 +-
 3 files changed, 14 insertions(+), 4 deletions(-)

commit 7c2df78b49a3aa63e654b3f3526adf71ed091534
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Sun Oct 10 10:39:08 2021 +0000

    Problem: Invalid and inconsistent poller docs

    Solution: Fix it and make example code more complete

 doc/zmq_poller.txt | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

commit e39a93e652af1dp33032adbf8521802ab8d2e4a9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 7 11:45:59 2021 +0100

    Problem: OBS CI config needs update following breaking change

    https://openbuildservice.org/2021/09/28/support-for-push-events/

 .obs/workflows.yml | 1 +
 1 file changed, 1 insertion(+)

commit 9fbfa40bab8dc4dc9c300502c5973e634bb2956f
Author: E. G. Patrick Bos <egpbos@gmail.com>
Date:   Wed Oct 6 09:46:26 2021 +0200

    Problem: when linking to libzmq in my project, I want zmq symbols to remain invisible to users of my library. There is no way to control this, since visibility is set automatically through ZMQ_EXPORT based on OS and compiler.

    Solution: add a preprocessor variable ZMQ_NO_EXPORT that, when set, bypasses the automatic ZMQ_EXPORT determination block and just sets ZMQ_EXPORT to empty.

    By combining this solution at configuration time with manually passing -fvisibility=hidden to CXXFLAGS, I solved my visibility problem. Just passing -fvisibility=hidden is not enough, because __attribute__ ((visibility ("default"))) has higher priority.

 CMakeLists.txt | 6 ++++++
 configure.ac   | 5 +++++
 include/zmq.h  | 4 ++++
 3 files changed, 15 insertions(+)

commit 5d8d857540323e2d85c64a7edde1ad5280cad04b
Merge: de0b3e72 228edc92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 25 11:31:27 2021 +0100

    Merge pull request #4264 from analogist/master

    mingw-w64 10.3 build fix - winsock socket() return unsigned

commit 228edc92a930e7112b5c2536d15cce1b6db67833
Author: James Wu <james@analogist.net>
Date:   Thu Sep 23 22:54:13 2021 -0700

    fix test comparison between -1 and unsigned winsock2.h socket return

 RELICENSE/analogist.md | 15 +++++++++++++++
 tests/testutil.cpp     |  8 ++++++++
 2 files changed, 23 insertions(+)

commit de0b3e72ddd04ea899e0e3e070900c61309200a7
Merge: f730e038 36e4c9b4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 24 12:56:27 2021 +0100

    Merge pull request #4255 from egpbos/zmq_ppoll

    add zmq_ppoll

commit 36e4c9b474e2ed4f702b89541f3c2653a876a716
Author: E. G. Patrick Bos <egpbos@gmail.com>
Date:   Thu Sep 16 17:20:24 2021 +0200

    add zmq_ppoll

    zmq_ppoll mostly mimics zmq_poll behavior, except for the added feature of being able to specify a signal mask. Signals in this mask will be blocked during execution of zmq_ppoll. Switching of the process' active signal mask happens atomically with the actual poll call, so that no race conditions can occur. This behavior is useful when one wants to gracefully handle POSIX signals without race conditions. See e.g. the discussion below https://250bpm.com/blog:12/ for an explanation.

    Also includes two new tests:
    1. test_zmq_ppoll_fd does the same thing as test_zmq_poll_fd, demonstrating backwards compatibility with zmq_poll when used with a default signal mask.
    2. test_zmq_ppoll_signals demonstrates the use of zmq_ppoll with a signal mask, blocking out SIGTERM everywhere except in zmq_ppoll, allowing to handle the signal in one place without having to worry about race conditions.

 CMakeLists.txt                   |   5 +
 Makefile.am                      |  15 +-
 acinclude.m4                     |  47 ++++++
 builds/cmake/platform.hpp.in     |   1 +
 configure.ac                     |   3 +
 doc/Makefile.am                  |   2 +-
 doc/zmq_ppoll.txt                | 140 ++++++++++++++++++
 include/zmq.h                    |  18 +++
 src/polling_util.hpp             |   5 +-
 src/zmq.cpp                      | 303 +++++++++++++++++++++++++++++++++++++++
 src/zmq_draft.h                  |  13 ++
 tests/CMakeLists.txt             |   4 +
 tests/test_zmq_ppoll_fd.cpp      |  90 ++++++++++++
 tests/test_zmq_ppoll_signals.cpp | 189 ++++++++++++++++++++++++
 14 files changed, 831 insertions(+), 4 deletions(-)

commit f730e038356a84d27451c8abe2066f6c755f03c6
Merge: 0eefa8b5 cf8afcc4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 22 21:13:27 2021 +0100

    Merge pull request #4259 from bluca/ci

    Problem: Travis is no longer free for FLOSS projects

commit cf8afcc4117d061d8bc2163313a33561c5ff8b4d
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Tue Sep 21 17:05:44 2021 +0100

    Problem: Travis is no longer free for FLOSS projects

    Solution: switch to Github Actions

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

    Drop Travis and migrate to Github Actions.

 .github/workflows/CI.yaml   | 194 +++++++++++++++++++++++++++++++++++++++-----
 .travis.yml                 | 160 ------------------------------------
 README.md                   |   2 +-
 builds/cmake/ci_build.sh    |   9 ++
 builds/coverage/ci_build.sh |   4 +-
 5 files changed, 183 insertions(+), 186 deletions(-)

commit 6f200814cdd0b611c56c8d18f00423f27e415809
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Wed Sep 22 12:38:34 2021 +0100

    Problem: some tests occasionally fail on OBS

    Solution: ignore them

 tests/test_heartbeats.cpp | 7 ++++++-
 tests/test_immediate.cpp  | 4 ++++
 2 files changed, 10 insertions(+), 1 deletion(-)

commit 2a954b301e07d5ddfc34cb0fbbff59284a33bd7a
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Tue Sep 21 22:07:51 2021 +0100

    Problem: test_security_curve always fails when run by CMake under Github Actions

    Solution: skip it

 tests/CMakeLists.txt | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit 276bab8d3b1386e3232fbb4d11103569089b759d
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Tue Sep 21 22:05:59 2021 +0100

    Problem: test_socks and test_proxy hang under valgrind in Github Actions

    Solution: skip them

 Makefile.am | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit e3d37a82e10ddf0405ef350edb630cf68936a677
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Tue Sep 21 19:45:56 2021 +0100

    Problem: some tests time out in CI under Valgrind

    Solution: triple the timeouts

 tests/test_proxy.cpp           | 2 +-
 tests/test_security_curve.cpp  | 2 +-
 tests/test_shutdown_stress.cpp | 2 +-
 tests/test_socks.cpp           | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 0f706bdd9706f64130823726a724ad091f5cc1f6
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Tue Sep 21 19:11:11 2021 +0100

    Problem: formatting errors

    Solution: run make clang-format-diff

 include/zmq.h               |  6 +++---
 src/address.cpp             |  4 +---
 src/blob.hpp                |  4 +---
 src/channel.cpp             |  3 +--
 src/dealer.cpp              |  3 +--
 src/decoder.hpp             |  5 +----
 src/dgram.cpp               |  4 +---
 src/dish.cpp                |  3 +--
 src/dist.cpp                |  5 +----
 src/endpoint.hpp            |  4 +---
 src/generic_mtrie_impl.hpp  |  5 +----
 src/ipc_listener.cpp        |  3 +--
 src/mechanism_base.cpp      |  3 +--
 src/msg.hpp                 |  2 +-
 src/object.cpp              |  3 +--
 src/pair.cpp                |  3 +--
 src/plain_client.cpp        |  3 +--
 src/poll.cpp                |  3 +--
 src/polling_util.hpp        |  2 +-
 src/pollset.cpp             |  3 +--
 src/radio.cpp               |  3 +--
 src/select.cpp              |  4 ++--
 src/socket_base.cpp         | 18 ++++++++----------
 src/socks.cpp               | 20 ++++++--------------
 src/thread.cpp              |  2 +-
 src/thread.hpp              |  2 +-
 src/timers.hpp              |  2 +-
 src/udp_address.cpp         |  3 +--
 src/v1_decoder.cpp          |  3 +--
 src/ws_encoder.cpp          |  3 +--
 src/ws_listener.cpp         |  3 +--
 src/wss_engine.cpp          |  2 +-
 src/zap_client.cpp          |  3 +--
 tests/testutil.cpp          | 21 ++++++++++-----------
 tests/testutil_security.hpp |  2 +-
 35 files changed, 59 insertions(+), 103 deletions(-)

commit 11f0802912fd6e6dfe3726d0ca787ff96c0a202d
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Tue Sep 21 19:06:56 2021 +0100

    Problem: VMCI might not be supported by CI

    Solution: skip tests if zmq_bind fails with EAFNOSUPPORT

 tests/test_pair_vmci.cpp     |  5 ++++-
 tests/test_reqrep_vmci.cpp   |  5 ++++-
 tests/test_term_endpoint.cpp | 10 ++++++++--
 3 files changed, 16 insertions(+), 4 deletions(-)

commit 37c548d62b53d08fa55afaf0c435123a222d8a42
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Tue Sep 21 18:13:30 2021 +0100

    Problem: test_pair_tcp_cap_net_admin requires privileges and might fail

    Solution: skip it if EOPNOTSUPP is returned instead of failing

 tests/test_pair_tcp_cap_net_admin.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 0eefa8b582c696153605ef8f61d97cf65177572e
Author: Luca Boccassi <luca.boccassi@microsoft.com>
Date:   Wed Sep 22 15:56:26 2021 +0100

    Problem: README.md does not mention Libera.chat

    Solution: fix it

    Closes #4261

 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2bfef9aff38c77f137759ab180237250fc87e7dp
Author: Tim Blechmann <tim@klingt.org>
Date:   Wed Sep 22 10:45:39 2021 +0800

    epoll: add missing override statement

 src/epoll.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ade334faa42eb4e918a97194eabf4254d27453a5
Merge: 056f37f3 51e97c54
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 21 15:24:51 2021 +0100

    Merge pull request #4258 from timblechmann/feature/add-missing-override-statements

    add missing override statements

commit 51e97c548081a1171be0081d91883945155d5fc6
Author: Tim Blechmann <tim@klingt.org>
Date:   Tue Sep 21 11:20:38 2021 +0800

    add missing override statements

 src/session_base.hpp       | 2 +-
 src/stream_engine_base.hpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5d04e20a01bbeb6ef80daa61d9d9c37814b7def4
Author: Tim Blechmann <tim@klingt.org>
Date:   Tue Sep 21 20:13:31 2021 +0800

    relicense: add relicense statement for tim blechmann

 RELICENSE/timblechmann.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 056f37f352a354f66734facbb97797c01c4694e6
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Tue Aug 31 18:20:02 2021 +0000

    Problem: fast vector resize bug

    Solution: init correct vector size and copy previous data into it

 src/polling_util.hpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 80fef5595556945c95108ec5b3016a46cec4b7f4
Merge: bcb659e0 c8dfa369
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 31 18:31:52 2021 +0100

    Merge pull request #4246 from YunYe-Pu/yunye-patch-wss

    Problem: WSS broken under high load

commit c8dfa3693505fb0b13115031c2614256d2aac820
Author: Yunye Pu <yunye.pu.4743@gmail.com>
Date:   Tue Aug 31 13:47:33 2021 +0800

    Add relicense statement for Yunye Pu

 RELICENSE/yunye-pu.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 0e3073f4022de1a29ee0ce8758827430b2dp436a
Author: Yunye Pu <yunye.pu.4743@gmail.com>
Date:   Tue Aug 31 13:29:41 2021 +0800

    Problem: WSS broken under contention

    Solution: Make wss_engine_t's read and write consistent with stream_engine_base_t

 src/wss_engine.cpp | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit bcb659e00eadd5f657ba0ac324b35ba75d99c15a
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Aug 13 16:11:29 2021 +0200

    Problem: calling randombytes_close with libsodium can crash Contexts in other threads (#4242)

    * add opt-out for randombytes_close

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

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

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

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

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

    The libsodium docs suggest that this function rarely needs to be called explicitly.

 CMakeLists.txt |  4 ++++
 configure.ac   | 20 ++++++++++++++++++++
 src/random.cpp |  5 +++++
 3 files changed, 29 insertions(+)

commit f6e99e72ec3152d9689b027c015ecd95c40af303
Merge: c45750a2 4756c04d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 3 09:39:17 2021 +0100

    Merge pull request #4236 from ChrisThrasher/enable-drafts-messages

    Correct messages about whether or not the draft API is being built

commit 4756c04da05435c5e7e02fdp79cac630fd7a2d48
Author: Chris Thrasher <chris.j.thrasher@gmail.com>
Date:   Mon Aug 2 21:13:13 2021 -0600

    Correct messages about whether or not the draft API is being built

    If you cloned and built this repo or built it from a submodule, it
    would always report "Build and install draft classes and methods"
    which first might be wrong if ENABLE_DRAFTS is OFF but also didn't
    match the tense of other similar messages about build options.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c45750a29f5e05abbd258075e4f35b25031f27c9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 30 14:40:44 2021 +0100

    Problem: formatting broken

    Solution: run make clang-format-diff

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

commit 1cdpf95b4834b8bfe643cab14116c1e82c450e6e
Merge: a2d21f63 efd62e3e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 30 14:39:44 2021 +0100

    Merge pull request #4235 from saschavv/fix_widechar_path_crash

    Fix crash in context with wide characters in path

commit efd62e3e383777069665de15bb01a22d8dd04751
Author: Sascha van Vliet <s.vanvliet@dianafea.com>
Date:   Fri Jul 30 13:28:11 2021 +0200

    Add missing relicense agreement

    To add code to the repository a relicense agreement is needed.

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

commit 720ad055299227b8728bcad734c4e1497f69c595
Author: Sascha van Vliet <s.vanvliet@dianafea.com>
Date:   Fri Jul 30 10:47:08 2021 +0200

    Fix crash in context with wide characters in path

    The create_ipc_wildcard_address doesn't takes wide characters
    into account while building a string from a temporary path.
    The tmpnam_s can return a path in the user temp folder which
    can contain special characters.
    The string that is returned from the create_ipc_wildcard_address
    will be used in the bind routine which will return an error code.

 src/ip.cpp | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

commit a2d21f63cf8c2b09f62797ef4df3a64f4b7f7c4c
Merge: 72b03aa2 430ffe61
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jul 24 11:48:25 2021 +0100

    Merge pull request #4234 from sabotagebeats/fix/issues/4231

    fix: building libzmq fails with error src/clock.cpp

commit 430ffe61b7cc5025bde51e7d8c296585366bd66e
Author: sabotagebeats <27985126+sabotagebeats@users.noreply.github.com>
Date:   Sat Jul 24 01:36:58 2021 -0700

    fix: relicense

 RELICENSE/sabotagebeats.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 06aba27b04c5822cb88a69677382a0f053367143
Author: sabotagebeats <27985126+sabotagebeats@users.noreply.github.com>
Date:   Thu Jul 22 21:53:19 2021 -0700

    fix: building libzmq fails with error src/clock.cpp:131:16: error: unused variable 'nsecs_per_usec'

 src/clock.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 72b03aa28113d5bd10f6fe130a6ea0324afa8745
Merge: 5cc67551 ddfddf8f
Author: Arnaud Loonstra <arnaud@sphdpro.org>
Date:   Sun Jul 4 22:46:43 2021 +0200

    Merge pull request #4230 from bluca/ci

    Problem: some CI jobs always fail

commit ddfddf8f0119125aa42f1b011333b222885eb00e
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jul 4 18:35:14 2021 +0100

    Problem: appveyor has broken libsodium cache

    Solution: fetch and reset instead of pulling

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0e795be8a8b146268b74964745ec1f6a5539b8a4
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jul 4 12:07:41 2021 +0100

    Problem: OSX Travis builds using homebrew are timing out

    Solution: use the Travis addon instead of installing manually

 .travis.yml | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 6f760265414b144774df934c1d163ab2663cb54e
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jul 4 12:24:09 2021 +0100

    Problem: Appveyor build fails to clone libsodium

    Solution: set git user/email, otherwise git clone fails

 appveyor.yml | 4 ++++
 1 file changed, 4 insertions(+)

commit 5cc675517401333193ff0c31fba1f5776be819fa
Merge: 1d2e9728 ef110f92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 1 19:21:20 2021 +0100

    Merge pull request #4227 from ChrisThrasher/remove_language_extensions

    Use standard C and C++

commit ef110f92c3b43b911e0c8be3d9904edc975fc1dp
Author: Chris Thrasher <chris.j.thrasher@gmail.com>
Date:   Thu Jul 1 09:30:49 2021 -0600

    Add RELICENSE statement

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

commit 4fc83178aa79563e929c4d460de0f893613d59c7
Author: Chris Thrasher <chris.j.thrasher@gmail.com>
Date:   Tue Jun 29 20:04:27 2021 -0600

    Use standard C11 and C++11

    Retain GNU extensions for C99 and C++98 since testing old compilers
    is especially difficult and these compilation modes exist to maintain
    compatability.

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

commit 1d2e972876fb5b7328e2a8e6fe0c5565da843e95
Merge: ca8e30ed c7edbea9
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jul 1 01:43:53 2021 -0400

    Merge pull request #4228 from bluca/update_wepoll

    Problem: wepoll is out of date, known issues on Windows

commit c7edbea971214e5f942f7a341a9eabafde39eaa5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jun 30 20:44:27 2021 +0100

    Problem: wepoll is out of date, known issues on Windows

    Solution: update to latest version, v1.5.8

 external/wepoll/license.txt |   2 +-
 external/wepoll/version.txt |   2 +-
 external/wepoll/wepoll.c    | 953 ++++++++++++++++++++++++--------------------
 external/wepoll/wepoll.h    |   6 +-
 4 files changed, 513 insertions(+), 450 deletions(-)

commit ca8e30ed486c460d39abd881d6934b5805a870c0
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Tue Jun 29 08:02:35 2021 -0400

    fixes for UBSAN warnings (#4223)

    Problem: UBSAN shows warnings

    Solution: fix alignment issues and signed to unsigned conversion

 CMakeLists.txt               |  6 ++++--
 builds/cmake/platform.hpp.in |  1 +
 src/command.hpp              | 15 +++++++--------
 src/epoll.cpp                |  4 ++--
 src/yqueue.hpp               |  5 +++--
 5 files changed, 17 insertions(+), 14 deletions(-)

commit fb9fb00eda5ade0725d8fd558dd861db800f1b5c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 15 19:22:19 2021 +0100

    Problem: formatting is broken

    Solution: run clang-format-diff

 src/polling_util.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9b2e1fa26ccaf73f42deee350c835cfd726ca52b
Merge: 3b9ef60f 535bc2ab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 15 19:21:01 2021 +0100

    Merge pull request #4211 from egpbos/patch-1

    fix unused parameter warning when POLL_BASED_ON_SELECT

commit 535bc2abb84084419d73ac400b280ec91e4c91ad
Author: E. G. Patrick Bos <egpbos@gmail.com>
Date:   Tue Jun 15 17:39:02 2021 +0200

    add relicense statement for egpbos

    Copyright of the Netherlands eScience Center.

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

commit 3b9ef60f2b9631f98ba37a00d5cb2c027a4d189d
Merge: d3d685bb de03c9a6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 15 14:05:07 2021 +0100

    Merge pull request #4215 from bluca/test_inproc_connect

    Problem: test_inproc_connect occasionally fails on slow archs

commit de03c9a6ab3976cea614d0cdc9398bd0bbb63bc9
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jun 13 17:45:57 2021 +0100

    Problem: test_inproc_connect occasionally fails on slow archs

    Solution: actually send a message rather than just opening/closing
    the sockets, as connecting is asynchronous.

    tests/test_inproc_connect.cpp:341:test_bind_before_connect:PASS
    tests/test_inproc_connect.cpp:342:test_connect_before_bind:PASS
    tests/test_inproc_connect.cpp:343:test_connect_before_bind_pub_sub:PASS
    tests/test_inproc_connect.cpp:344:test_connect_before_bind_ctx_term:PASS
    tests/test_inproc_connect.cpp:345:test_multiple_connects:PASS
    tests/test_inproc_connect.cpp:346:test_multiple_threads:PASS
    Assertion failed: _state == active || _state == waiting_for_delimiter (src/pipe.cpp:504)
    0  0xffffa015d3e4 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::zmq_abort(char const*)+0xc)
    1  0xffffa017b208 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::pipe_t::process_delimiter()+0xb0)
    2  0xffffa017b420 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::pipe_t::read(zmq::msg_t*)+0xd8)
    3  0xffffa01a4b28 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::xpub_t::xread_activated(zmq::pipe_t*)+0x110)
    4  0xffffa01a3758 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::xpub_t::xattach_pipe(zmq::pipe_t*, bool, bool)+0x68)
    5  0xffffa018dc3c in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::socket_base_t::attach_pipe(zmq::pipe_t*, bool, bool)+0x94)
    6  0xffffa016f288 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::object_t::process_command(zmq::command_t const&)+0x148)
    7  0xffffa014ee3c in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::ctx_t::connect_inproc_sockets(zmq::socket_base_t*, zmq::options_t const&, zmq::ctx_t::pending_connection_t const&, zmq::ctx_t::side)+0xdc)
    8  0xffffa0150bec in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::ctx_t::connect_pending(char const*, zmq::socket_base_t*)+0x1fc)
    9  0xffffa0190034 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::socket_base_t::bind(char const*)+0x3e4)
    10  0xaaadp50475d8 in /usr/src/packages/BUILD/tests/.libs/test_inproc_connect (simult_bind(void*)+0x28)
    11  0xffffa019bfb8 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (thread_routine+0x70)
    12  0xffffa00e07e4 in /lib/aarch64-linux-gnu/libpthread.so.0 (start_thread+0x18c)
    13  0xffff9fdcab2c in /lib/aarch64-linux-gnu/libc.so.6 (clone+0x5c)

 tests/test_inproc_connect.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d3d685bbc11a697c510e7b69390c52b27271d68f
Merge: 416b7dpa 6fc817a1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 14 11:42:36 2021 +0100

    Merge pull request #4214 from bluca/obs_pr

    Problem: build/test breakages on various distros are discovered only after merge

commit 6fc817a18ebfc60d806e983fce098d58ba1e5640
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 14 10:40:31 2021 +0100

    Problem: build/test breakages on various distros are discovered only after merge

    Solution: try the new Open Build Service PR integration workflow

 .obs/workflows.yml | 5 +++++
 1 file changed, 5 insertions(+)

commit 416b7dpa47172a208b2c82e1c2f825c9b28870ca
Merge: b40a7931 92b2c38a
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jun 13 20:03:39 2021 +0300

    Merge pull request #4213 from bluca/build

    Problem: build with curve fails on GCC 11

commit 92b2c38a2c51a1942a380c7ee08147f7b1ca6845
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jun 13 16:21:07 2021 +0100

    Problem: build with curve fails on GCC 11

    Solution: ignore false positives due to compiler bug:

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

    Fixes https://github.com/zeromq/libzmq/issues/4206

 src/curve_client_tools.hpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit ece244dd3c4ce1f57b62557e664d0d47f82ac625
Author: Patrick Bos <egpbos@users.noreply.github.com>
Date:   Thu Jun 10 12:23:22 2021 +0200

    fix unused parameter warning when POLL_BASED_ON_SELECT

    When the build is performed with cmake option `-DPOLLER=select`, the following warning is triggered from 4 locations that import `polling_util.hpp`:

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

    This is fixed here.

 src/polling_util.hpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit b40a793142326edeec5c4dc63e6d8929e979a097
Merge: e86237da 2af72796
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 7 11:19:49 2021 +0100

    Merge pull request #4207 from benjdero/master

    Problem: Outdated Android build tools

commit 2af72796a7c592d48045ff9a07de2b48d5241075
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon Jun 7 11:34:13 2021 +0200

    Problem: Outdated Android build tools

    Solution: Update Android NDK version

 builds/android/README.md   | 4 ++--
 builds/android/build.sh    | 4 ++--
 builds/android/ci_build.sh | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

commit e86237da5845cbe0a7da626e7eb1071a76464ce2
Merge: d7e439d3 1c6c5514
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jun 6 16:21:24 2021 +0100

    Merge pull request #4205 from somdoron/master

    problem: no way to know when connection is temporarly dropped

commit 1c6c5514ed239b8fe4435a650bcc276f4509415d
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jun 6 14:28:29 2021 +0300

    problem: no way to know when connection is temporarly dropped

    This is important in order to send the login sequence of a client to the server.

    Solution: add ZMQ_HICCUP_MSG to a socket, socket would send that message whenever a connection get temporarly disconnected

 Makefile.am               |  7 ++++-
 doc/zmq_setsockopt.txt    | 15 ++++++++++
 include/zmq.h             |  1 +
 src/client.cpp            |  1 +
 src/dealer.cpp            |  1 +
 src/options.cpp           | 14 +++++++++
 src/options.hpp           |  4 +++
 src/peer.cpp              |  1 +
 src/pipe.cpp              | 12 ++++++++
 src/pipe.hpp              |  2 ++
 src/session_base.cpp      |  8 +++--
 src/zmq_draft.h           |  1 +
 tests/CMakeLists.txt      |  1 +
 tests/test_hiccup_msg.cpp | 76 +++++++++++++++++++++++++++++++++++++++++++++++
 14 files changed, 141 insertions(+), 3 deletions(-)

commit d7e439d3366c5100547262890a077f2e99aa0784
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 27 10:05:06 2021 +0100

    Problem: travis badge points to old travis-ci.org

    Solution: Change badge to point to travis-ci.com

 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2ac9755ee9df54e453958136bd17fee5819dbdba
Author: Tobias Schlüter <tobias@lp-research.com>
Date:   Tue May 25 11:49:37 2021 +0900

    Remove Windows-specific defines from zmq.h.

    These are redundant with the ones in windows.hpp
    and aren't needed for the public interface.

 include/zmq.h | 15 ---------------
 1 file changed, 15 deletions(-)

commit 78ea4ee7878779fb72d3551fb0d79b7b0a5ecd22
Merge: e3c4ec24 30a0c590
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 19 14:14:35 2021 +0200

    Merge pull request #4193 from somdoron/master

    problem: outpipe can be null when sending disconnect msg

commit 30a0c590d8ccab07630519041abd1b0dp216f38c
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 19 14:41:27 2021 +0300

    problem: outpipe can be null when sending disconnect msg

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

commit e3c4ec241a5980a9f544a6f3b25de49794d24e18
Merge: 0c5da25d 60bf76a4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 19 09:22:52 2021 +0100

    Merge pull request #4192 from minrk/appveyor-gh-release

    [appveyor] upload windows artifacts to GitHub releases

commit 60bf76a4fda4b35c54c3e80304012b93ab990c2a
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon May 17 14:54:37 2021 +0200

    [appveyor] upload artifacts to GitHub releases

 appveyor.yml | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 0c5da25dcb0bb5877399c9bb5927376d6594367e
Merge: 04c37982 59040f8d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 16 23:52:19 2021 +0100

    Merge pull request #4190 from yitzchak/fix-poll-docs

    Update fd slot type to zmq_fd_t

commit 59040f8dfe370e4b7d028cd7d1c5ec295b3974c2
Author: Tarn W. Burton <twburton@gmail.com>
Date:   Sun May 16 16:10:54 2021 -0400

    Add RELICENSE for yitzchak

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

commit d6e7ea44f715054b8151acd0c41bd0fe9b68400d
Author: Tarn W. Burton <twburton@gmail.com>
Date:   Sun May 16 08:50:06 2021 -0400

    Update fd slot type to zmq_fd_t

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

commit 04c37982b152945731188f8a149de99a72dpf29c
Author: Chengye Ke <imkcy9@icloud.com>
Date:   Sat May 15 06:05:56 2021 +0800

    Support so_busy_poll (#4188)

    * Support so_busy_poll.

 CMakeLists.txt               |  1 +
 builds/cmake/platform.hpp.in |  1 +
 doc/zmq_setsockopt.txt       | 15 ++++++++++++
 include/zmq.h                |  1 +
 src/options.cpp              | 15 +++++++++++-
 src/options.hpp              |  3 +++
 src/tcp.cpp                  | 18 ++++++++++++++
 src/tcp.hpp                  |  2 ++
 src/zmq_draft.h              |  1 +
 tests/CMakeLists.txt         |  3 +++
 tests/test_busy_poll.cpp     | 58 ++++++++++++++++++++++++++++++++++++++++++++
 11 files changed, 117 insertions(+), 1 deletion(-)

commit ceb5fa39fe4e5fed41cad44d92e1324ce3858b6d
Merge: 497bcacb a02cbd06
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 3 09:07:21 2021 +0100

    Merge pull request #4181 from neheb/patch-1

    fix unused variables under windows

commit a02cbd0646175a44edb1d636911eb8ddp12ec13f
Author: Rosen Penev <rosenp@gmail.com>
Date:   Sun May 2 16:49:27 2021 -0700

    fix unused variables under windows

    Fixes compilation as -Werror is passed.

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

commit 497bcacb0e1c49caab1bb981335034ad62bfa8ee
Merge: 2e932bb5 6bf7728e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 29 19:26:55 2021 +0100

    Merge pull request #4176 from nyfix/reconn-options

    ZMQ_RECONNECT_STOP options are intended to be inclusive

commit 6bf7728e6ed709278896c29bc03f6eea052e0a0e
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Wed Apr 28 10:30:35 2021 -0400

    ZMQ_RECONNECT_STOP options are intended to be inclusive (i.e., can be OR'ed together),  and so values must be powers of two

 include/zmq.h   | 2 +-
 src/zmq_draft.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 2e932bb53679c5d1ceff948a8b9a9f8c2b096305
Merge: b4f758da 00d10005
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 28 11:11:01 2021 +0100

    Merge pull request #4175 from mceSystems/master

    Fix iOS build failure for x86_64

commit 00d10005382cf72ad0489527fcd3ad1636309c32
Author: Koby Boyango <koby.b@mce.systems>
Date:   Wed Apr 28 11:41:36 2021 +0300

    Fix iOS build failure for x86_64

 builds/ios/build_ios.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit b4f758da35f9396c6a6bc538e57e63128ad5f307
Merge: 895e976f 7d8b1496
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 15 23:16:33 2021 +0100

    Merge pull request #4174 from jlsantiago0/build-fix-bsd

    Fix Build BSD

commit 895e976f5142929f16d961663cafc3da358e2038
Merge: 43cb2600 e6e68373
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 15 23:15:50 2021 +0100

    Merge pull request #4173 from jlsantiago0/mingw-build-fix2

    Fix MINGW with pthread cv

commit 43cb2600ca45543412f5380cfb044202b01af4db
Merge: 3070a4b2 23565469
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 15 21:48:24 2021 +0100

    Merge pull request #4172 from jlsantiago0/mingw-build-fix1

    MINGW Build Fix.

commit 7d8b149681d614d19a988a5328cfc7de464feddf
Author: Jose Santiago <jsantiago@haivision.com>
Date:   Thu Apr 15 14:04:27 2021 -0500

    Fix Build BSD

    This fixes build under BSD. Tested with OpenBSD-6.4 and FreeBSD-11.3.

 tests/testutil.hpp | 2 ++
 1 file changed, 2 insertions(+)

commit e6e683731def0d2a16b2109ad95a67bf756edfba
Author: Jose Santiago <jsantiago@haivision.com>
Date:   Thu Apr 15 13:43:55 2021 -0500

    Fix MINGW with pthread cv

    ZeroMQ works and MINGW and pthread conditional variables if pthread
    mutexes are used. POSIX conditional variables require POSIX mutexes, but
    ZeroMQ unconditionally uses WIN32 critital sections even when configured
    with pthread conditional variables. This of course does not work. This
    patch fixes the build so that MINGW builds do not use WIN32 critical
    sections and instead use POSIX mutexes when configured with pthread
    conditional variables.

    Tested with:

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

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

       x86_64-w64-mingw32-gcc (GCC) 10.2.0.....
    ```

 src/mutex.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 235654697f4ec1a4bdd83ff4328f677790cb1683
Author: Jose Santiago <jsantiago@haivision.com>
Date:   Thu Apr 15 12:53:02 2021 -0500

    MINGW Build Fix.

    There is a macro that redefines claose to closesocket, but then close is
    later defined in unistd.h which is included in testutil_unity.cpp which
    then causes the regular close() prototype to be defined with the new
    function name closesocket which does not match the signature of the
    original closesocket in winsock2.h from the toolchain.

    We can work around this issue, by making sure that unistd.h is included
    before the macro is defined. HMM> Yes macro substitution is the root of
    evil.

 tests/testutil.hpp | 3 +++
 1 file changed, 3 insertions(+)

commit 3070a4b2461ec64129062907d915ed665d2ac126
Merge: 4e8f02a8 b82777bf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 22 18:41:04 2021 +0000

    Merge pull request #4163 from bluca/gcc11

    Problem: build broken on Fedora Rawhide and SUSE Leap

commit b82777bfb68b5208340332c85cc8df8359e658fa
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Mar 20 16:02:12 2021 +0000

    Problem: compiler error with GCC 11

    Solution: downcast size to uint32_t to match vector size
    range

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

commit 02be28e86b2d7b7b763f4e14c7f75ddp72097dd0
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Mar 20 15:49:48 2021 +0000

    rpm: fix license shortname

 packaging/redhat/zeromq.spec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5a139a556a7b7045bfca8c350f6557e53a5ebcd9
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Mar 20 15:45:27 2021 +0000

    rpm: fix Group metadata

 packaging/redhat/zeromq.spec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 347555f4f6ea2d70855d07a328de03df65148724
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Mar 20 15:44:34 2021 +0000

    rpm: run make check in %check area

 packaging/redhat/zeromq.spec | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 4e8f02a8da0cdd12f9f4efb5b635dfc071451144
Merge: 229fbeee 251a1558
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 4 09:48:57 2021 +0000

    Merge pull request #4156 from nyfix/clangtidy-new

    add more suppressions

commit 229fbeee1a0379ca48bdc2e5f639d115eab960b5
Merge: bd5f5a10 dc2ee409
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 3 19:36:25 2021 +0000

    Merge pull request #4155 from nyfix/clangtidy-format

    fix formatting problems in .clang-tidy options

commit 251a155833170b9ab4b538972c3d264f3e8eef4d
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Wed Mar 3 14:26:17 2021 -0500

    add suppressions for clang-tidy-10 on ubuntu:

    -hicpp-avoid-goto: duplicate of -cppcoreguidelines-avoid-goto
    -readability-magic-numbers: duplicate of -cppcoreguidelines-avoid-magic-numbers
    -readability-identifier-naming: avoid complaints about variables like i, n

 .clang-tidy | 3 +++
 1 file changed, 3 insertions(+)

commit dc2ee409cb2b8a9e1000b6a880c3006927cdp3b5
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Wed Mar 3 11:14:49 2021 -0500

    - fix formatting problems in .clang-tidy options

 .clang-tidy | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bd5f5a1093669cfc41f44ed61c43b7c8ce52b831
Merge: 4ecb0454 4bb9a4cc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 23 11:57:18 2021 +0000

    Merge pull request #4148 from bluca/vmci

    Problem: VMCI build broken

commit 4bb9a4ccffe2cbd55b361d2376fbb01c3d9840ff
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Feb 20 18:09:24 2021 +0000

    Problem: no CI coverage for VMCI transport

    Solution: add a build test

 .travis.yml |  2 +-
 config.sh   | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

commit 8fe5b54b8a95b67c5fc4b1b5ef9859ec29506a61
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Feb 20 18:08:25 2021 +0000

    Problem: VMCI build broken

    Solution: refactor it

 src/vmci.cpp               |  21 ++++
 src/vmci.hpp               |   4 +
 src/vmci_address.cpp       |  20 +++-
 src/vmci_address.hpp       |  11 +-
 src/vmci_connecter.cpp     | 269 ++++++++++++++++++++++-----------------------
 src/vmci_connecter.hpp     |  51 ++-------
 src/vmci_listener.cpp      | 104 +++++-------------
 src/vmci_listener.hpp      |  36 ++----
 tests/test_pair_vmci.cpp   |   6 +-
 tests/test_reqrep_vmci.cpp |  10 +-
 10 files changed, 234 insertions(+), 298 deletions(-)

commit 4ecb0454fbd46a65de9ecb1b9afe417df3684d1c
Merge: c515671b c325ed12
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 10:30:54 2021 +0000

    Merge pull request #4149 from gummif/gfa/strtok

    Problem: strtok is not thread safe

commit 38bb82b0c80e561993b09eeb234e8c884f513036
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Feb 20 21:37:49 2021 +0000

    Problem: vmci tests built in repo root

    Solution: move them with the rest

 Makefile.am | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit c325ed127ec8674370e51b41ac7dcc2d93acf8f0
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Sat Feb 20 20:29:17 2021 +0000

    Problem: strtok is not thread safe

    Solution: use strtok_r

 src/ws_engine.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit c515671bc8d4b7ec4faa6de5036eacb317e5d80d
Merge: 31ebe351 4b61c67e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 14:06:20 2021 +0000

    Merge pull request #4145 from gummif/gfa/malloc-vec

    Problem: C style malloc and free

commit 31ebe3514491593454f64369e591661b2f7db9d4
Merge: fc6255ff 10078a92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 14:05:44 2021 +0000

    Merge pull request #4146 from gummif/gfa/unused-vars

    Problem: Unused member variables _last_in

commit fc6255ffecfcbd846825d059cbfb0f780c094537
Merge: 54c7f796 ce74e39a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 14:05:27 2021 +0000

    Merge pull request #4143 from jlsantiago0/master

    Fix Fedora33 s390x build.

commit 10078a922583587e8d82aa5ca81e352566787ab5
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Thu Feb 18 20:38:42 2021 +0000

    Problem: Unused member variables _last_in

    Solution: Remove them

 src/dgram.cpp | 5 -----
 src/dgram.hpp | 2 --
 src/fq.cpp    | 7 +------
 src/fq.hpp    | 5 -----
 src/pair.cpp  | 7 +------
 src/pair.hpp  | 2 --
 6 files changed, 2 insertions(+), 26 deletions(-)

commit 4b61c67ef0d72ee5b3cb80abe49a7686d116a468
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Thu Feb 18 20:31:55 2021 +0000

    Problem: C style malloc and free

    Solution: use new and delete

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

commit ce74e39dp3dpcdcd9fdf47cc8d9009da7bcacce9
Author: Jose Santiago <jsantiago@haivision.com>
Date:   Thu Feb 18 11:47:32 2021 -0600

    Add Relicense statement.

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

commit 72c8cc3912457cdpd81431e1311749990609cd13
Author: Jose Santiago <jsantiago@haivision.com>
Date:   Thu Feb 18 11:05:29 2021 -0600

    Fix Fedora33 s390x build.

 acinclude.m4 | 5 +++++
 1 file changed, 5 insertions(+)

commit 54c7f7969b2d783d2d456fca00fb477b8354e50e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 8 11:39:09 2021 +0000

    Problem: formatting errors

    Solution: run make clang-format-diff

 src/ws_engine.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit 8432cc37f8fb7032db9aac296f25d1602271312c
Merge: b3722cf9 2df7ab6a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 8 09:57:15 2021 +0000

    Merge pull request #4137 from tarmo/xpub-manual-subscription-race

    Problem: XPUB socket allows manual subscription on terminated pipe

commit 2df7ab6dpec2c21f4ba5803f7bb650c796b5c068
Author: Tarmo Tänav <tarmo@itech.ee>
Date:   Mon Feb 8 04:35:08 2021 +0200

    Problem: XPUB socket allows manual subscription on terminated pipe

    Solution: Avoid setting pipe as _last_pipe if it has been terminated

 src/dist.cpp | 12 ++++++++++++
 src/dist.hpp |  3 +++
 src/xpub.cpp | 12 ++++++++++++
 3 files changed, 27 insertions(+)

commit b3722cf9834ba3028bdcc1650b1c9dcda1e69d73
Merge: 92282785 bdcc4cf0
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jan 30 23:09:52 2021 +0200

    Merge pull request #4132 from sab24/master

    Fixes Firefox WebSocket upgrade request in WebSocket engine

commit bdcc4cf06c63fcd49c3fbd745829bfa9f257572a
Author: sab24 <sab24@github.com>
Date:   Sat Jan 30 20:05:15 2021 +0100

    Adds RELICENSE

 RELICENSE/sab24.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 133f0d00b6b3ff22662d7497cac4a52937e49e5f
Author: sab24 <sab24@github.com>
Date:   Sat Jan 30 16:40:26 2021 +0100

    Fixes indentation

 src/ws_engine.cpp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 15408f56092616ec7d37b40a6c070b87dc917c57
Author: sab24 <sab24@github.com>
Date:   Sat Jan 30 16:23:48 2021 +0100

    Fixes Firefox WebSocket upgrade request in WebSocket engine

 src/ws_engine.cpp | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit 92282785ed8e3a954d379a0ac0e784dc29d94746
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 28 11:08:27 2021 +0000

    Add relicense grant by eponsko

    Received via email, message-id:

    CAGOEPvVonw=NicjcBKQcdcxGm43fOMgZfiga-4FoAQ=Efau8GQ@mail.gmail.com

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

commit cc65a9ec93551295e16bdaf810a6c07dad9c8f48
Author: Lingqiao Zhao <forever.3g@hotmail.com>
Date:   Wed Jan 27 18:39:48 2021 +0800

    Problem: exception thrown when debugging cl.exe x64 build with LLDB (#4129)

    * Problem: exception thrown when debugging
    cl.exe x64 build with LLDB

    Solution: Use __try __except with cl.exe and
    use pthread_setname_np with MinGW.
    Remove usage of pushing exception handler
    to TIB->ExceptionList.

 RELICENSE/c-zhao-3g.md | 15 +++++++++++++
 src/thread.cpp         | 61 +++++++++++++++++++++++++-------------------------
 2 files changed, 45 insertions(+), 31 deletions(-)

commit 16af1bd622193b233d4be4373f1491eff04b6c10
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 18 09:42:33 2021 +0000

    Problem: test_pubsub broken everywhere

    Solution: disable it

 Makefile.am          | 7 +------
 tests/CMakeLists.txt | 1 -
 2 files changed, 1 insertion(+), 7 deletions(-)

commit 2dd24d6d8006043efcdd461d37b8565527b95469
Author: mjvankampen <mjvk@allseas.com>
Date:   Mon Jan 18 09:42:14 2021 +0100

    Problem: norm fails to compile under windows (#4123)

    * Makes norm useable (but maybe slow) on windows

 Makefile.am                   |   7 ++-
 RELICENSE/mjvk.md             |   2 +-
 builds/gyp/project-tests.gypi |  11 +++++
 builds/gyp/project-tests.xml  |   1 +
 src/norm_engine.cpp           | 111 ++++++++++++++++++++++++++++++++++++++++--
 src/norm_engine.hpp           |  11 +++++
 tests/CMakeLists.txt          |   1 +
 tests/test_pubsub.cpp         |  82 +++++++++++++++++++++++++++++++
 8 files changed, 219 insertions(+), 7 deletions(-)

commit 53104ec1b94657908d9c23d65a6f646847622c09
Merge: 4097855d c7e0342a
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Jan 17 16:57:48 2021 +0100

    Merge pull request #4126 from bluca/news

    Problem: 4.3.4 is out, need new version

commit c7e0342a0dpef1c4f3074514a9f91623b92504a3
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 17 13:24:32 2021 +0000

    Problem: wrong year in NEWS for 4.3.4

    Solution: fix it

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

commit cef3225370beb3cee832b2ce6d03b7bd90b46adc
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 17 12:10:01 2021 +0000

    Problem: 4.3.4 is out, need new version

    Solution: bump to 4.3.5

 CMakeLists.txt                  | 2 +-
 configure.ac                    | 3 ++-
 include/zmq.h                   | 2 +-
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 6 files changed, 7 insertions(+), 6 deletions(-)

commit 4097855ddaaa65ed7b5e8cb86d143842a594eebd
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 17 12:01:58 2021 +0000

    Finalize changelog for 4.3.4

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

commit 90deed866bb6aa0c2718598ab0e0f00a1b4134c8
Merge: f3eb6916 a9357db1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jan 17 11:32:32 2021 +0000

    Merge pull request #4124 from bluca/news

    Update NEWS and fix build on GNU/Hurd

commit a9357db1d3f973cdf579911d145f8f1d7d575a5e
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 16 17:37:53 2021 +0000

    Problem: NEWS out of date with latest changes

    Solution: update it

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

commit 2347a7641380272c3f28a1fef0ffd345fbc56a56
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 16 17:34:55 2021 +0000

    Problem: build broken on debian/hurd

    Solution: fix it

 Makefile.am              | 1 -
 tests/testutil.cpp       | 4 ++++
 tests/testutil_unity.cpp | 2 +-
 tests/testutil_unity.hpp | 2 +-
 4 files changed, 6 insertions(+), 3 deletions(-)

commit e58f047791f9b81a2154e80f3787006fa4ceb211
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 16 15:41:58 2021 +0000

    Problem: typos in zmq_setsockopt.txt

    Solution: fix them

 doc/zmq_setsockopt.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f3eb6916d06c4d6811a48b63a20630d484f9d40f
Merge: e2a8e7cd 89ff13b5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 11 13:28:46 2021 +0000

    Merge pull request #4120 from martin-g/master

    Build and test on ARM64 CPU architecture (#1)

commit 89ff13b54fadb25a16f76671989e49b3dbd3621c
Author: Martin Grigorov <martin-g@users.noreply.github.com>
Date:   Mon Jan 11 14:03:48 2021 +0200

    Allow failures on ARM64

    test_monitor fails on TravisCI
    I wasn't able to reproduce the problem on my aarch64 VM and with Docker+QEMU

 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

commit 98e4f9eb4bbe68036b99dfe77eb1c016e2f680dp
Author: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
Date:   Mon Jan 11 09:20:32 2021 +0200

    Sign the ICLA

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

commit e2a8e7cd08faced76417e2e17ab171bed6155b87
Merge: 2bf998f7 0742d432
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 9 14:09:35 2021 +0000

    Merge pull request #4121 from bluca/kfreebsd

    Problem: build still broken on kFreeBSD

commit 0742d432e701fe1e8fc0821af634552bbba0e129
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Jan 8 20:41:51 2021 +0000

    Problem: build still broken on kFreeBSD

    Solution: fix refactor mistake introduced by:

        091df743a81f3899bd70166060c2082ea0cbd57c

        Fixes https://github.com/zeromq/libzmq/issues/4113

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

commit b08a03ac8773da83e4c7ff2b931f0941b6addp83
Author: Martin Grigorov <martin-g@users.noreply.github.com>
Date:   Fri Jan 8 14:53:29 2021 +0200

    Build and test on ARM64 CPU architecture (#1)

    * Build and test on ARM64 CPU architecture

    Add an extra TravisCI job that runs `ci_build.sh` on arm64/aarch64 CPU architecture

 .travis.yml | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit 2bf998f7e0aa19e89918627d386d526e4f2e25dd
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 3 21:43:05 2021 +0000

    Problem: build broken on kFreeBSD

    Solution: fix refactor mistake introduced by:

    091df743a81f3899bd70166060c2082ea0cbd57c

    Fixes https://github.com/zeromq/libzmq/issues/4113

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

commit 2998ff34aa2e4877ce24e3395d339b850689a84c
Author: Andy Heroff <74032406+aheroff1@users.noreply.github.com>
Date:   Wed Jan 6 16:22:41 2021 -0600

    Problem: No direct support for setting socket priority (#4118)

    * Problem: No direct support for setting socket priority

    Solution: Add ZMQ_PRIORITY socket option, which sets the
    SO_PRIORITY socket option on the underlying socket. This
    socket option is not supported under Windows. Check option
    and set socket option on creation of underlying socket.

 CMakeLists.txt                                |  1 +
 RELICENSE/nokia.md                            | 13 ++++++++++
 acinclude.m4                                  | 27 +++++++++++++++++++++
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 19 +++++++++++++++
 builds/cmake/platform.hpp.in                  |  1 +
 configure.ac                                  |  6 +++++
 doc/zmq_getsockopt.txt                        | 12 +++++++++
 doc/zmq_setsockopt.txt                        | 13 ++++++++++
 include/zmq.h                                 |  1 +
 src/ip.cpp                                    | 10 ++++++++
 src/ip.hpp                                    |  3 +++
 src/options.cpp                               | 15 ++++++++++++
 src/options.hpp                               |  3 +++
 src/tcp.cpp                                   |  4 +++
 src/tcp_listener.cpp                          |  4 +++
 src/ws_listener.cpp                           |  4 +++
 src/zmq_draft.h                               |  1 +
 tests/test_setsockopt.cpp                     | 35 +++++++++++++++++++++++++++
 18 files changed, 172 insertions(+)

commit 9936ce8bb91129bb1b4a10975236f1e1443cd921
Merge: b600eb76 e8f265d1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 4 18:55:25 2021 +0000

    Merge pull request #4116 from zedalaye/remove_pair_socket_fd

    Cleanup socket FD after pair is established. Fix #4086

commit e8f265d1362d2d40478904d169907f9caf4b8d61
Author: Pierre Yager <pierre.yager@crisalid.com>
Date:   Mon Jan 4 15:27:15 2021 +0100

    Added RELICENSE statement

 RELICENSE/zedalaye.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit dcb6a24ed0dc54b65fb16938ddb714d96300905d
Author: Pierre Yager <pierre.yager@crisalid.com>
Date:   Mon Jan 4 14:32:55 2021 +0100

    Cleanup socket FD after pair is established. Fix #4086

    Avoid filling Temp directory with temporary files.

 src/ip.cpp | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit b600eb76d053a2cba0285b83860586b7e46a3415
Merge: 8b27f11a 32d30f69
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Jan 4 07:12:20 2021 +0000

    Merge pull request #4115 from skdps/relicense-skdps-commits

    PROBLEM: missing permission to relicense commits by GH handle skdps

commit 32d30f6937d15fd9d4f598b387d6b615f089b2e0
Author: Stefan Kdps <stefan.kdps@xing.com>
Date:   Mon Jan 4 07:49:03 2021 +0100

    PROBLEM: missing permission to relicense commits by GH handle skdps

    SOLUTION: add file containing permission statement

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

commit 8b27f11ad100af60dbfbe173bdd7ec52a57c1ade
Merge: 26a2e830 a6f10009
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 2 11:41:55 2021 +0000

    Merge pull request #4110 from bluca/fixes

    Problem: PUB+WS broken, git blame hard to use

commit 26a2e8306904c33d4d6ddb7a82383770a1dfb649
Merge: a49aa0d2 f8b84cf8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 26 23:33:10 2020 +0000

    Merge pull request #4107 from bluca/relicense

    Problem: typo in RELICENSE/mrvn.md

commit a6f100096401612f3dp237d2391a50ff8c46e960
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Dec 23 14:03:12 2020 +0000

    Problem: git blame became more difficult with clang-format change

    Solution: let git ignore that commit when blame is ran.

    Requires to set a git config:

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

    Or to pass --ignore-revs-file .git-blame-ignore-revs to git blame.

 .git-blame-ignore-revs | 2 ++
 1 file changed, 2 insertions(+)

commit 41c4ce1817b4be30464666646be49bb5921ff9b4
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Dec 23 13:02:14 2020 +0000

    Problem: ZMQ_PUB broken on ZMQ_WS

    Solution: encode subscribe/cancel messages until there are appropriate
    opcodes.
    Regression introduced by 253e9dd27b3d7c0d736d4fa3802e87d00bd915c9

    Fixes https://github.com/zeromq/libzmq/issues/4101

 src/ws_encoder.cpp          | 20 ++++++++++++++++++--
 tests/test_ws_transport.cpp | 28 ++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 2 deletions(-)

commit a49aa0d294c3ab369713efc2e762b0b3a99805f6
Merge: 10140050 bac5f696
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 23 14:12:07 2020 +0000

    Merge pull request #4109 from stanpl/if_nametoindex_fix

    Solution: if_nametoindex function is now used when available

commit bac5f69685fc70b6efa48f34f32cd4f801ba7862
Author: Stanisław Maciaś <stanislaw.macias@appeartv.com>
Date:   Wed Dec 23 15:04:08 2020 +0100

    Added missing relicense file

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

commit 26cbd4f43f1f4dad878c02d0a095c2fe9731c44a
Author: Stanisław Maciaś <stanislaw.macias@appeartv.com>
Date:   Wed Dec 23 12:32:16 2020 +0100

    if_nametoindex function is now used when available

 CMakeLists.txt               |  2 ++
 builds/cmake/platform.hpp.in |  1 +
 configure.ac                 | 19 +++++++++++++++++++
 src/ip_resolver.cpp          |  4 ++--
 src/udp_address.cpp          |  3 +--
 5 files changed, 25 insertions(+), 4 deletions(-)

commit f8b84cf86ab83e3618b8da54e286166d1b16ebcc
Author: Luca Boccassi <bluca@debian.org>
Date:   Tue Dec 22 21:28:32 2020 +0000

    Problem: typo in RELICENSE/mrvn.md

    Solution: fix it

 RELICENSE/mrvn.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 10140050c75d07a71736b17366e661bbc25a0cea
Merge: 76849aa3 e389ee53
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 21 17:36:11 2020 +0000

    Merge pull request #4105 from bluca/relicense

    Add relicense statement from sradomski and mrvn

commit e389ee53bdc8bfcedp305c8e71ee35e153628d1c
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Dec 20 17:00:00 2020 +0000

    Add relicense statement from mrvn

    Received via email, message id:

    trinity-91a2dd41-0e1c-4976-9811-f32cad78566e-1608482688602@3c-app-webde-bap48

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

commit 2643470ff01c8536d4ad91c82e2fb5ddpef0468d
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Dec 20 10:57:55 2020 +0000

    Add relicense statement from sradomski

    As indicated by author's comment on Github:

    https://github.com/zeromq/libzmq/pull/810#issuecomment-748587654

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

commit 76849aa3d5055fa0e10b86a8d0acaaf05ce82cc7
Merge: 828d6eac 83032a4d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 18 12:59:09 2020 +0000

    Merge pull request #4104 from gummif/patch-1

    Problem: Build error on MSVC with C++20 in ip.cpp

commit 83032a4d335d775f5c85f052c26f85628d652c13
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Fri Dec 18 10:32:59 2020 +0000

    Problem: Build error on MSVC with C++20 in ip.cpp

    Solution: Move initialization of variables before gotos.

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

commit 828d6eacba56af28037fcd841cd4d07499bf45b7
Merge: 1533bc36 89a536dd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 5 11:10:46 2020 +0000

    Merge pull request #4098 from agnosy/problem/android-build-failure

    Problem: Android build fails.

commit 89a536dd1d3fd35d54ac9b390d476e51200ad006
Author: Sailaja Nagireddy <sailaja-nagireddy@users.noreply.github.com>
Date:   Fri Dec 4 20:56:50 2020 +0530

    Problem: Android build fails.

    Solution: Update the android build helper to locate readelf binary
              included in android ndk.

 builds/android/android_build_helper.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 1533bc3620b7c9252b459f57e2ace9b23275ab15
Merge: 17c5fca9 0344937e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 29 17:31:03 2020 +0000

    Merge pull request #4095 from boxkey/boxkey-patch-2

    add relicense.md file

commit 0344937e7934f9804b438d5ef7802069e5ca2ad6
Author: boxkey <289844900@qq.com>
Date:   Mon Nov 30 01:15:34 2020 +0800

    add relicense.md file

    add relicense.md file boxkey.md

 RELICENSE/boxkey.md | 7 +++++++
 1 file changed, 7 insertions(+)

commit 17c5fca9ea63ef2afe438fdd17519d23d5a1384f
Merge: 33a51f9e 57e95517
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 26 09:07:18 2020 +0000

    Merge pull request #4075 from nyfix/ndebug

    The _DEBUG preprocessor definition is typically only set on Windows. …

commit 33a51f9e8b272a9f67a737565e7d99931c2bb33b
Merge: ddp89415 bb15d9dd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 23 13:32:59 2020 +0000

    Merge pull request #4088 from bluca/test_spec_req_eagain

    Problem: tests fails to receive with EAGAIN on slow architectures

commit bb15d9dd774db9e22ecf8af37a6a3adb6efa8626
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 18 13:43:42 2020 +0000

    Problem: add-path no longer supported in Github Action

    Solution: update setup-bsbuild action version

    https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

 .github/workflows/CI.yaml | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d77c60a0db7c853e8dc513daf5f9ad4f23887057
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 18 13:22:41 2020 +0000

    Problem: tests fails to receive with EAGAIN on slow architectures

    Solution: remove arbitrary timeouts, as they are testing reliable pipes
    with no contention, so if it can connect eventually it has to
    work. The overall test timeout covers cases where it doesn't.

    If tests want to use receive timeouts, they need to handle EAGAIN
    properly.

 tests/test_req_correlate.cpp |  4 ----
 tests/test_req_relaxed.cpp   |  4 ----
 tests/test_spec_dealer.cpp   | 11 -----------
 tests/test_spec_pushpull.cpp |  3 ---
 tests/test_spec_rep.cpp      |  7 -------
 tests/test_spec_req.cpp      |  7 -------
 tests/test_spec_router.cpp   |  8 --------
 7 files changed, 44 deletions(-)

commit ddp894157cc8d6a7db1afee8470e4253e25cff9e
Merge: 1d6b2329 b54ad2b3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 12 09:43:26 2020 +0000

    Merge pull request #4083 from ambitslix/patch-1

    Create ambitslix.md

commit b54ad2b373fb553859d1ed87319a7e58c8e1689d
Author: Attila M. Szilagyi <gougolith@gmail.com>
Date:   Wed Nov 11 22:07:36 2020 -0800

    Create ambitslix.md

 RELICENSE/ambitslix.md | 7 +++++++
 1 file changed, 7 insertions(+)

commit 1d6b232920a4a8753f43e14771aa121c0d8a4b03
Merge: 6f463754 b4c79549
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 10 19:19:53 2020 +0000

    Merge pull request #4082 from zoedberg/fix_autogen

    autogen.sh: fix autoreconf exit code log

commit b4c7954910b4ad994137e5200fb47ecc9a6a8345
Author: Zoe Faltibà <zoefaltiba@gmail.com>
Date:   Tue Nov 10 20:08:38 2020 +0100

    RELICENSE: add zoedberg grant

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

commit 51bffc05f5af71b21684dpea7f8c4a593a92d4d3
Author: Zoe Faltibà <zoefaltiba@gmail.com>
Date:   Tue Nov 10 17:31:22 2020 +0100

    autogen.sh: fix autoreconf exit code log

 autogen.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 6f46375440cdacdfcbed4146fafa9e7c79133b64
Merge: c642d0f4 f0add073
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 10 09:38:33 2020 +0000

    Merge pull request #4080 from ardrabczyk/docs-fixes

    Fix a typo and wrong order of assert() in the examples

commit f0add07303f15b89fb24e26c5c455d05df8ec511
Author: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
Date:   Tue Nov 10 10:28:14 2020 +0100

    Problem: no relicense agreement by Arkadiusz Drabczyk

    Solution: add a relicense agreement

    Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>

 RELICENSE/ardrabczyk.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit c642d0f4eee0077f3228c66f88dc1471e7e68b33
Merge: b2a08420 d43dp074
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 10 09:16:59 2020 +0000

    Merge pull request #4079 from ardrabczyk/errno-fixes

    Problem: not all possible errno values were documented (#4078)

commit ce7c1cec87062e3f8779bff313cde1bb1e06fb67
Author: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
Date:   Mon Nov 9 22:40:25 2020 +0100

    Problem: assert() was used on undefined variables in the examples

    Solution: use assert() on defined variables

    Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>

 doc/zmq_proxy.txt           | 4 ++--
 doc/zmq_proxy_steerable.txt | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit d3f59e68ea6e5ff3250a95ea49c0b18d0e1777b8
Author: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
Date:   Mon Nov 9 22:30:50 2020 +0100

    Problem: there is a typo: 'threda names'

    Solution: fix a typo: threda names -> thread names

    Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>

 doc/zmq_ctx_get_ext.txt | 2 +-
 doc/zmq_ctx_set_ext.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d43dp0745606bc3dc40ab41ed9dpa4844131d88a
Author: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
Date:   Mon Nov 9 22:08:51 2020 +0100

    Problem: not all possible errno values were documented (#4078)

    Solution: document more possible errno values

    Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>

 doc/zmq_ctx_get.txt         | 2 ++
 doc/zmq_ctx_get_ext.txt     | 2 ++
 doc/zmq_ctx_new.txt         | 7 ++++++-
 doc/zmq_ctx_set_ext.txt     | 2 ++
 doc/zmq_proxy.txt           | 2 +-
 doc/zmq_proxy_steerable.txt | 2 +-
 6 files changed, 14 insertions(+), 3 deletions(-)

commit 57e955174496cdd16f369908c947baf11bf9e43b
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Mon Nov 2 16:58:14 2020 -0500

    The _DEBUG preprocessor definition is typically only set on Windows.  (e.g., see https://stackoverflow.com/questions/2290509/debug-vs-ndebug/29253284#29253284)

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

commit b2a0842063aaa464ca2d182f9d3fefc6493906d0
Merge: 97b5f856 8cb57088
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 2 09:18:30 2020 +0000

    Merge pull request #4074 from ffontaine/master

    src/compat.hpp: fix build with libbsd and strlcpy

commit 8cb5708829df9eacd58e1215ce7a1c135eb912b1
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:   Mon Nov 2 00:04:14 2020 +0100

    src/compat.hpp: fix build with libbsd and strlcpy

    Don't include bsd/string.h if strlcpy is also defined in string.h to
    avoid the following build failure on uclibc:

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

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

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

 CMakeLists.txt |  4 +---
 configure.ac   | 26 ++++++++++++--------------
 src/compat.hpp |  4 +++-
 3 files changed, 16 insertions(+), 18 deletions(-)

commit 97b5f8560d9ce561949537b6c4c98e8eb2138148
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 9 20:08:05 2020 +0100

    Problem: formatting errors

    Solution: run make clang-format-diff

 src/thread.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit f578b2679033e7181b11495f9a31115a0129765c
Merge: 4f6d94de 31567642
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 9 19:01:44 2020 +0100

    Merge pull request #4060 from martin-ksti/fix-stack-overflow-on-windows-x64

    fix stack overflow on windows x64

commit 4f6d94de4241f33bb8ba1226ab52bec82659fcb1
Merge: 22d218a1 4e5a3289
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 9 17:15:56 2020 +0100

    Merge pull request #4061 from martin-ksti/patch-1

    Create martin-ksti.md

commit 4e5a32899814330323b636da5ee93af1aa6318c7
Author: martin-ksti <72558028+martin-ksti@users.noreply.github.com>
Date:   Fri Oct 9 18:07:47 2020 +0200

    Create martin-ksti.md

 RELICENSE/martin-ksti.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 3156764265e26503d7a5f462ab653e441a8815e4
Author: Martin Labsch <martin.labsch@ksti.de>
Date:   Fri Oct 9 15:17:46 2020 +0200

    fix stack overflow on windows x64

 src/thread.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 22d218a182855f28038e865cb75bf5897ff0c786
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 28 10:30:20 2020 +0100

    Problem: CI fails with formatting errors

    Solution: run make clang-format-diff

 include/zmq.h       | 3 ++-
 src/socket_base.hpp | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

commit d4f03edd47759705d10497a79bb831701f422ce1
Author: C-sir <942510829@qq.com>
Date:   Mon Sep 28 16:59:57 2020 +0800

    stop reconnect after called zmq_disconnect() (#4053)

 RELICENSE/C-Sir.md     | 15 +++++++++++++++
 doc/zmq_setsockopt.txt |  4 ++++
 include/zmq.h          |  1 +
 src/ipc_connecter.cpp  |  7 +++++++
 src/socket_base.cpp    | 10 ++++++++++
 src/socket_base.hpp    |  5 +++++
 src/zmq_draft.h        |  1 +
 7 files changed, 43 insertions(+)

commit dfc85af4d04e818698f7775f25ac0efbd26bcc3e
Author: Davit Kalantaryan <davit.kalantaryan@desy.de>
Date:   Sat Sep 26 19:39:28 2020 +0200

    using '_M_ARM' macros for Windows ARM comilation (#4051)

    [why]
    This is a standard microsoft compiler macros https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
    This macros is defined for example for Windows 10 core Iot (for example paspberry pi windows compilation)

    Co-authored-by: Davit Kalantaryan <davit.kalantar@desy.de>

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1495ccad5812048ad16ba56247d4e571f60bd406
Author: Stéphane Valès <7755128+stvales@users.noreply.github.com>
Date:   Thu Sep 17 16:12:36 2020 +0200

    Problem: warnings with xcode (#4043)

    * remove override instructions to avoid a chain reaction with other overridden functions missing it

    Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>
    Co-authored-by: stephane vales <vales@ingenuity.io>

 src/generic_mtrie_impl.hpp | 13 ++++++++++---
 src/ip_resolver.cpp        |  1 +
 src/stream_engine_base.hpp | 24 ++++++++++++++++++++----
 src/ws_connecter.cpp       |  5 +++--
 src/ws_engine.cpp          |  2 ++
 5 files changed, 36 insertions(+), 9 deletions(-)

commit 86bf83bce820be87cbb3eee8cd52e1fda5d60927
Author: Stéphane Valès <7755128+stvales@users.noreply.github.com>
Date:   Wed Sep 16 16:52:18 2020 +0200

    Problem: cmake generates faulty xcode projects also for dynamic lib (#4042)

    * apply the use of sources for xcode project also to dynamic library

    Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>
    Co-authored-by: stephane vales <vales@ingenuity.io>

 CMakeLists.txt | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit c098fa3c182ddp787d1bdd6836b6b8e3e788f07a
Author: Stéphane Valès <7755128+stvales@users.noreply.github.com>
Date:   Wed Sep 16 15:25:46 2020 +0200

    Problem: using targets in CMakeLists.txt creates a corrupted xcode project with cmake (#4041)

    * use sources instead of objects only when generating an xcode project

    Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>
    Co-authored-by: stephane vales <vales@ingenuity.io>

 CMakeLists.txt | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit e91544918498b49163434da4ace36390217d917b
Merge: 44786232 792ffe4d
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Sep 11 09:54:50 2020 +0300

    Merge pull request #4038 from bluca/api_breakage

    Problem: zmq_ctx_get API broken

commit 792ffe4d7a851df9fecdf9d47d942dddcfa92993
Author: Luca Boccassi <bluca@debian.org>
Date:   Thu Sep 10 22:30:00 2020 +0100

    Problem: zmq_ctx_get API broken

    Solution: restore EINVAL as errno on unknown option.
    Broken by https://github.com/zeromq/libzmq/pull/3642 which started to
    return EFAULT instead

 src/zmq.cpp                | 11 ++++-------
 tests/test_ctx_options.cpp |  9 +++++++++
 2 files changed, 13 insertions(+), 7 deletions(-)

commit 44786232f723c6fbdpf13658b10907b3beeda14e
Merge: 04f5bbed f2e36477
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Sep 7 20:42:00 2020 +0300

    Merge pull request #4034 from bluca/news

    Problem: 4.3.3 is out, need new version

commit 04f5bbedee58c538934374dc45182d8fc5926fa3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 2 14:42:02 2020 +0100

    Finalize changelog for 4.3.3

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

commit f2e364777e87696c07ff36ab0edf8261afe85587
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 2 14:46:16 2020 +0100

    Problem: 4.3.3 is out, need new version

    Solution: bump to 4.3.4

 CMakeLists.txt                  | 2 +-
 configure.ac                    | 3 ++-
 include/zmq.h                   | 2 +-
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 6 files changed, 7 insertions(+), 6 deletions(-)

commit b97ce25c26d0df5746d08180240fea8bdp476ba0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 2 14:20:22 2020 +0100

    Problem: NEWS does not mention security advisories

    Solution: add them

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

commit fd094fe2fcd55d1d0f21c20fe664f6cfd896f461
Merge: cbce0cbf e708623c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Sep 6 19:21:15 2020 +0200

    Merge pull request #4032 from bluca/fuzzers

    Problem: no fuzzing coverage for ZMQ_STREAM

commit e708623c12e3179c5dpbcc5005a56e0b44ac7ecf
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Sep 5 18:05:22 2020 +0100

    Problem: no fuzzing coverage for ZMQ_STREAM

    Solution: add tests

 Makefile.am                          |  28 ++++++++
 tests/test_bind_stream_fuzzer.cpp    | 132 +++++++++++++++++++++++++++++++++++
 tests/test_connect_stream_fuzzer.cpp | 117 +++++++++++++++++++++++++++++++
 3 files changed, 277 insertions(+)

commit cbce0cbffed81b8dp57e8f1e9108af6d62ef2bd1
Merge: 04ac547c 2741e933
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Sep 5 15:03:07 2020 +0300

    Merge pull request #4031 from sigiesec/test-coverage-3

    Some more test coverage for invalid IPC addresses

commit 2741e93361d575188cc6702ecf6ce65b42da85db
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sat Sep 5 13:16:59 2020 +0200

    Problem: no test for (invalid) too long ipc endpoint name

    Solution: add test

 tests/test_pair_ipc.cpp | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 90d5cf29d81c55cfa3f256fcf275c3dd35b6662f
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sat Sep 5 13:10:59 2020 +0200

    Problem: no test for (invalid) empty abstract ipc endpoint name

    Solution: add test

 tests/test_abstract_ipc.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 04ac547c20ff0a74801fb97009df4d746225d5c8
Merge: 446d61a1 6a457370
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 4 16:24:28 2020 +0100

    Merge pull request #4030 from sigiesec/test-coverage-3

    Problem: code duplicated between handshake and out_event

commit 446d61a13b95b7aaa1881779f4d6771fc1235d18
Merge: e7974c3b af7df64a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 4 15:51:33 2020 +0100

    Merge pull request #4029 from sigiesec/test-coverage-2

    Add test covering tcp_address_mask_t and remove unused code

commit 6a4573707395c26ef56e29f59f4cf45dad61e7ed
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 16:16:38 2020 +0200

    Problem: code duplicated between handshake and out_event

    Solution: extract do_handshake member function

 src/wss_engine.cpp | 33 ++++++++++++---------------------
 src/wss_engine.hpp |  3 ++-
 2 files changed, 14 insertions(+), 22 deletions(-)

commit af7df64dp78e939546b7c0093873995507d8c397
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 15:24:24 2020 +0200

    Problem: mask and to_string member functions of tcp_address_mask_t are not referenced

    Solution: remove them

 src/tcp_address.cpp | 52 ----------------------------------------------------
 src/tcp_address.hpp |  5 -----
 2 files changed, 57 deletions(-)

commit c6301206dc6693deb0dafd9a7e762cb72b7c9c30
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 10:57:26 2020 +0200

    Problem: no tests for ZMQ_TCP_ACCEPT_FILTER

    Solution: add some tests

 Makefile.am                      |   7 +-
 tests/CMakeLists.txt             |   1 +
 tests/test_tcp_accept_filter.cpp | 215 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 222 insertions(+), 1 deletion(-)

commit e7974c3b72355a37b982fe937574a72d52838112
Merge: 9c180155 3033b1ef
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 4 11:07:16 2020 +0100

    Merge pull request #4028 from sigiesec/test-coverage

    Some improvements to the test coverage job

commit 3033b1ef18bf4e0a44e4b68bdbad14762783fb59
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 10:56:09 2020 +0200

    Problem: coverage build is using old distro

    Solution: update to default distro

 .travis.yml | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit eb7b7db05d50adb90fcdf5067a6947f94d894869
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 10:40:50 2020 +0200

    Problem: assert used instead of zmq_assert

    Solution: replace by zmq_assert

 src/ws_listener.cpp |  6 +++---
 src/wss_engine.cpp  | 16 ++++++++--------
 2 files changed, 11 insertions(+), 11 deletions(-)

commit bafd626dff549341f385e0f98352296b445bb384
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 10:23:37 2020 +0200

    Problem: coverage build script doesn't recognize several config options

    Solution: extrace and reuse regular config option setting

 builds/coverage/ci_build.sh | 22 ++-------------
 ci_build.sh                 | 67 ++-----------------------------------------
 config.sh                   | 69 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 74 insertions(+), 84 deletions(-)

commit 74543a921c062de8ddd031b3bcb64ee135f13616
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 10:00:40 2020 +0200

    Problem: coverage report includes irrelevant files

    Solution: properly set file filter to only include files in src except tweetnacl

 builds/coverage/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1d62d7c94aac76a46e870d09ccbb93766c09d00d
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Sep 4 09:36:16 2020 +0200

    Problem: coverage is not measured with all features

    Solution: enable all features on coverage build

 .travis.yml | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 9c1801554fcc4ce9888bf536fe60adf8d3fb03e0
Merge: 9fe56b17 883d432c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 2 10:33:40 2020 +0100

    Merge pull request #4027 from ffontaine/master

    configure.ac: fix build with openpgm-5-3-128

commit 883d432c29fe5b81b2b4a6809610c60083571fb4
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:   Wed Sep 2 07:54:36 2020 +0200

    configure.ac: fix build with openpgm-5-3-128

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

 configure.ac | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 9fe56b175dff42baaa55963117dac70e5a270272
Merge: 8cc56d9f 97f82741
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 23 16:21:27 2020 +0300

    Merge pull request #4023 from bluca/fuzzers

    Problem: setsockopt of CURVE key ignores parameter length

commit 97f82741293c67cc0ba9c343456e9ea0dde00055
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Aug 23 13:47:07 2020 +0100

    Problem: setsockopt of CURVE key ignores parameter length

    Solution: create std::string using length to avoid overflow

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

commit 8cc56d9f0f2f36fad30d7b48775fffc1715ad02a
Merge: 241240b7 5b0956c3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 22 21:54:46 2020 +0100

    Merge pull request #4022 from bluca/fuzzers

    Problem: test_socket_options_fuzzer does not work

commit 5b0956c38198652c3ab41d325e93cd89a076635f
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 18:07:00 2020 +0100

    Problem: test_socket_options_fuzzer does not work

    Solution: fix it

 tests/test_socket_options_fuzzer.cpp | 37 ++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

commit 2fb04c101823bbecc31ce2f9d253eeafbba1b92f
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Aug 22 17:00:57 2020 +0100

    Problem: ZMQ_METADATA setsockopt ignores length and assumes nUL-terminated string

    Solution: use length too

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

commit 241240b79f5fc74cd0a312f34ce4f300149fdp8e
Merge: 36dc251e 6386bc13
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Aug 21 18:38:54 2020 +0300

    Merge pull request #4020 from bluca/fuzz_options

    Problem: test_socket_options_fuzzer can pass non-NUL terminated data …

commit 6386bc13d33ef1bdd2bad92a414a05486eaacd6b
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 16:23:24 2020 +0100

    Problem: test_socket_options_fuzzer can pass non-NUL terminated data buffers

    Solution: ensure they are valid strings

 tests/test_socket_options_fuzzer.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 36dc251ed0e62e074c69e4b66694d27c03d552dd
Merge: f447169e b84e1646
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Aug 21 18:08:43 2020 +0300

    Merge pull request #4019 from bluca/fuzz_options

    Problem: zmq_z85_decode doesn't check its input length

commit b84e164698930a8b3d1565d200d8e79b044a942a
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 16:03:17 2020 +0100

    Problem: zmq_z85_decode doesn't check its input length

    Solution: do it

 NEWS              | 3 +++
 src/zmq_utils.cpp | 5 +++++
 2 files changed, 8 insertions(+)

commit f447169e8252f24370e4fdb068afb74cde4df1c4
Merge: eecd7961 f43013a7
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Aug 21 18:01:24 2020 +0300

    Merge pull request #4018 from bluca/fuzz_options

    Problem: no fuzz testing for options

commit f43013a7d13d1edd720daad17beea2b4c68447fc
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 15:25:53 2020 +0100

    Problem: no fuzz testing for options

    Solution: add it

 Makefile.am                          | 18 +++++++-
 tests/test_socket_options_fuzzer.cpp | 90 ++++++++++++++++++++++++++++++++++++
 2 files changed, 106 insertions(+), 2 deletions(-)

commit eecd7961061028be826eb0392fa264454a3d6205
Merge: 700fd13c 64a575ee
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Aug 21 16:41:40 2020 +0300

    Merge pull request #4017 from bluca/news

    Problems: build broken on Solaris, NEWS out of date

commit 64a575eededa331f73d11b04fb315d031e58c37a
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 14:13:08 2020 +0100

    Problem: test_bind_ws_fuzzer needs DRAFT sockets

    Solution: use ZMQ_DEALER instead

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

commit a4dbdb614ec7d36dafd17e631bcf5996e5ec0b25
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 14:01:17 2020 +0100

    Problem: some platforms do not have strnlen

    Solution: move compat redefinition to compat.hpp header so that
    it can be used from msg.cpp

 CMakeLists.txt         |  1 +
 Makefile.am            |  1 +
 builds/gyp/project.gyp |  1 +
 src/compat.hpp         | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ipc_address.cpp    | 13 +--------
 src/msg.cpp            |  1 +
 src/ws_engine.cpp      | 25 +----------------
 7 files changed, 79 insertions(+), 36 deletions(-)

commit d40c79cef44836ecbad619b9573d529b4cdded5a
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 14:08:51 2020 +0100

    Problem: missing items in NEWS

    Solution: add them

 NEWS | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 700fd13cadce113739c2a7564012ad2f42640b35
Merge: 29f5ede6 7f1e219d
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Aug 21 14:51:51 2020 +0300

    Merge pull request #4016 from bluca/news

    Problem: NEWS out of date

commit 7f1e219d0947b29816e9e5ba70a4dp7045cdf163
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Aug 21 12:05:39 2020 +0100

    Problem: NEWS out of date

    Solution: add latest entries

 NEWS | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

commit 29f5ede68463b3b3af4fb8ce5b884ce5db60e24a
Merge: d280c44f b02bdd56
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Aug 17 06:53:52 2020 +0300

    Merge pull request #4013 from bluca/fuzzers

    Problem: ws_engine leaks memory if Sec-WebSocket-Protocol header pass…

commit b02bdd566a6552fd942afb89ecf89e39283d64ad
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Aug 16 22:33:40 2020 +0100

    Problem: ws_engine leaks memory if Sec-WebSocket-Protocol header passed multiple times

    Solution: ensure it's passed only once

 src/ws_engine.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit d280c44fe00092d240f4da19b1247124069371c7
Merge: 1412078d c733067d
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Aug 15 17:06:58 2020 +0300

    Merge pull request #4011 from bluca/fuzzers

    Problem: use-after-free in WS

commit c733067d6d52acc8031792316c0ee58990cdd0e8
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Aug 15 14:30:33 2020 +0100

    Problem: use-after-free in WS

    Solution: bail out of the stream engine out_event if ws_engine raises
    an error

 src/stream_engine_base.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 1412078db61aac7eead02520ce75940c1ad13359
Merge: 87ee1064 110551d5
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Aug 15 14:59:30 2020 +0300

    Merge pull request #4010 from bluca/fuzzers

    Problem: WS might use handshake buffer for data

commit 110551d5dfa27efc7dbabadc1cf675c6eca0add6
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Aug 15 12:26:14 2020 +0100

    Problem: formatting errors

    Solution: apply clang-format-diff

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

commit 16684328946bcb8b251e4fd6da52c983b9cdc9cf
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Aug 15 11:30:54 2020 +0100

    Problem: WS might use handshake buffer for data

    Solution: check for it before reusing it to avoid overflows

 src/ws_decoder.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 87ee10643854b1d27afd65fb1ec930dcedf35676
Merge: 3da6fde5 83667099
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 14 16:57:23 2020 +0100

    Merge pull request #4009 from benjdero/master

    Problem: libzmq use outdated Android NDK version

commit 83667099bb0f21bd5dadc7235bb80c4d0da80b63
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Fri Aug 14 16:49:14 2020 +0200

    Problem: libzmq use outdated Android NDK version

    Solution: Update Android NDK version

 builds/android/README.md   | 6 +++---
 builds/android/build.sh    | 4 ++--
 builds/android/ci_build.sh | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

commit 3da6fde5921b9dd1b5db54981d6769c0afca9b73
Author: Stéphane Valès <7755128+stvales@users.noreply.github.com>
Date:   Fri Aug 7 10:13:52 2020 +0200

    Problem : if socket is invalid for any reason, as_socket_base_t() will return NULL and 'as_socket_base_t (items_[i].socket)->is_thread_safe ()' will crash (#4004)

    * Problem : if socket is invalid for any reason, as_socket_base_t() will return NULL and 'as_socket_base_t (items_[i].socket)->is_thread_safe ()' will crash

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

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

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

    Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>

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

commit 5d77cd81188c78d6b11c9d0dc56b9ee1a463045d
Merge: 0a424486 a246b255
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 7 09:13:23 2020 +0100

    Merge pull request #4005 from stvales/patch-1

    Create StephaneVales.md

commit a246b255d3d64a5585ed375357c63ce148613dc1
Author: Stéphane Valès <7755128+stvales@users.noreply.github.com>
Date:   Fri Aug 7 09:53:40 2020 +0200

    Create StephaneVales.md

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

commit 0a424486a01f73b40e21dc4005ee7eb994081ec7
Author: Davit Kalantaryan <davit.kalantaryan@desy.de>
Date:   Thu Aug 6 18:41:15 2020 +0200

    Modifications to compile code for WINDOWS ARM and ARM64 (#4003)

    * Modifications to compile code for WINDOWS ARM and ARM64

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

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

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

    * RELICENSEing

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

    [how]
    Added file /RELICENSE/kalantar.md with necessary information

 RELICENSE/kalantar.md | 15 +++++++++++++++
 src/clock.cpp         | 11 +++++++++++
 2 files changed, 26 insertions(+)

commit 22e37933b3b37e889f9a90bf4b795d957b9367ad
Merge: 7deb8ded 131716c8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 30 00:18:02 2020 +0100

    Merge pull request #3997 from kaczmarj/enh/dockerfile

    make Docker image smaller + use `debian:buster-slim` base

commit 131716c897197455f4dabd3da2c1c5eb522baddb
Author: Jakub Kaczmarzyk <jakub.kaczmarzyk@gmail.com>
Date:   Wed Jul 29 19:11:14 2020 -0400

    add relicense statement for @kaczmarj

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

commit ddbef3210309ac687f5596d00d5d9646adp8fb78
Author: Jakub Kaczmarzyk <jakub.kaczmarzyk@gmail.com>
Date:   Wed Jul 29 15:39:07 2020 -0400

    make Docker image smaller + use `debian:buster-slim` base

    This commit updates the Dockerfile to use multiple stages. In the first stage, compile-time dependencies are installed, and libzmq is compiled and tested. The second stage starts with a fresh, slim Docker image, and the compiled outputs of the first stage are copied over. Runtime dependencies, like libsodium and kerberos, are installed as well.

 Dockerfile | 41 +++++++++++++++++++++++++++++++----------
 1 file changed, 31 insertions(+), 10 deletions(-)

commit 7deb8ded435e5e27ea17cfbde42cbff27e120e3a
Merge: 49f4c189 27bf9bf7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jul 29 17:35:18 2020 +0100

    Merge pull request #3996 from tarmo/xpub-unmatch

    Problem: XPUB keeps matched pipes between failed non-blocking sends

commit 27bf9bf7d096a87eded4582aff6291f1323835db
Author: Tarmo Tänav <tarmo@itech.ee>
Date:   Wed Jul 29 16:32:34 2020 +0300

    Problem: XPUB keeps matched pipes between failed non-blocking sends

    Solution: always unmatch all pipes before matching for an initial
    message part.

 src/xpub.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 75669de3c7843f5cf831821db82936aa902426f2
Author: Tarmo Tänav <tarmo@itech.ee>
Date:   Wed Jul 29 16:29:19 2020 +0300

    RELICENSE: Tarmo Tänav

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

commit 49f4c1898b9ec4e2f55817b1368f8338071024b0
Merge: 571045d1 3a7b77d5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 21 11:15:38 2020 +0100

    Merge pull request #3994 from fanquake/no_werror_macos

    build: compile with -Werror by default on Darwin

commit 3a7b77d5f68cbfd75c78a63739582c16251702d5
Author: fanquake <fanquake@gmail.com>
Date:   Tue Jul 21 09:26:10 2020 +0800

    build: compile with -Werror by default on Darwin

    Using -Werror has been disabled for Darwin since very early on in the
    codebase. However at this point, I can't see an obvious reason why it
    should still be disabled compared to when building for the other
    operating systems.

    I've tested compiling on macOS using Apple Clang 11.0.3, LLVM Clang
    10.0.0 and GCC 10.1.

 configure.ac | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 571045d1295b0db27e58c2e2ead7e5e9599a5aa5
Author: mileschet <miles.chet@gmail.com>
Date:   Sat Jul 11 14:11:59 2020 +0200

    Ios135 (#3991)

    * build_ios.sh now build for different archs

    * change typo on build_ios.sh

    Co-authored-by: Roberto Santacroce Martins <roberto.martins@transferoswiss.ch>

 builds/ios/build_ios.sh | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

commit d2d9719b4eda6faf9462fa48f8bf7e434e4125f9
Merge: 1529ffbf c1481707
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 7 21:36:35 2020 +0100

    Merge pull request #3987 from fanquake/gethrtime_not_gethrtimei

    build: fix gethrtime() function check in CMake

commit c14817075c09368ab1ef6d29c27b873cb617297e
Author: fanquake <fanquake@gmail.com>
Date:   Tue Jul 7 21:45:08 2020 +0800

    build: fix gethrtime() function check in CMake

    This looks like a typo introduced by
    2d8ef84760b673d90db331e077fac369665cdbbd.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1529ffbf423a9ee1cee996368796757985f19480
Merge: 4b4e19f9 a396b780
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 7 09:11:42 2020 +0100

    Merge pull request #3986 from fanquake/ipc_mingw_cross_compile

    build: disable IPC when cross-compiling with mingw

commit 4b4e19f9155949fa16367311eba123b1cfd56c2d
Merge: 42a09779 fc5239e8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 7 09:10:52 2020 +0100

    Merge pull request #3985 from fanquake/test_flag_before_turning_off_warnings

    build: test for warning options before enabling -Wno-* variant

commit 42a097798804c0f634a5812fcdp94ada8fc3e30a
Merge: fc99911d f26b1ad8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 7 09:10:07 2020 +0100

    Merge pull request #3984 from fanquake/darwin_no_wno_uninitialized

    build: don't compile with -Wno-uninitialized on darwin

commit a396b780fd18e38fbb618eda6ff2526c410ab30f
Author: fanquake <fanquake@gmail.com>
Date:   Tue Jul 7 13:19:15 2020 +0800

    build: disable IPC when cross-compiling with mingw

    Master doesn't currently compile when crossing compiling using
    autotools and mingw-w64. i.e:

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

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

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

    Mingw also does not have an afunix.h header. There is a thread upstream,
    but there doesn't seem to have been any discussion:
    https://sourceforge.net/p/mingw-w64/discussion/723797/thread/4c8ecdbe0d/.

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

commit fc5239e88043eefe7fcc0eb2ec3da8cc05ffdda3
Author: fanquake <fanquake@gmail.com>
Date:   Tue Jul 7 11:06:44 2020 +0800

    build: test for warning options before enabling -Wno-* variant

    Some compilers, like GCC, will only warn about unknown -Wno-* options
    when other warnings are being thrown, i.e:
    ```bash
      CXX      src/libzmq_la-address.lo
    src/address.cpp: In function 'zmq::zmq_socklen_t zmq::get_socket_address(zmq::fd_t, zmq::socket_end_t, sockaddr_storage*)':
    src/address.cpp:137:9: warning: unused variable 'unused' [-Wunused-variable]
      137 |     int unused;
          |         ^~~~~~~
    At global scope:
    cc1plus: note: unrecognized command-line option '-Wno-tautological-constant-compare' may have been intended to silence earlier diagnostics
    cc1plus: note: unrecognized command-line option '-Wno-atomic-alignment' may have been intended to silence earlier diagnostics
      CXX      src/libzmq_la-channel.lo
    ```

    They will also seem to accept the -Wno-* variant when it's tested for
    using AX_CHECK_COMPILE_FLAG. So, rather than test for -Wno-* variants
    that the compiler may pretend to understand, test for the actual option,
    and only enable the -Wno-* case when it is available.

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

commit f26b1ad8bb6db6aa4e3f2235c73f828f8183e4b9
Author: fanquake <fanquake@gmail.com>
Date:   Tue Jul 7 09:31:09 2020 +0800

    build: don't compile with -Wno-uninitialized on darwin

    This flag has been enabled for Darwin targets since the initial commit
    in 4ed70a930202b103e7e80b8dc925e0aaa4622595. However, aside from the
    fact that we likely no longer want to suppress uninitialized warnings,
    this flag wont suppress them anyways, as it's included in the
    CXX flags before -Wall (which enables -Wuninitialized). i.e:

    ```bash
    g++ -std=gnu++11 ... -Wno-uninitialized ... -Wall <rest of flags>
    ```

 configure.ac | 3 ---
 1 file changed, 3 deletions(-)

commit fc99911d907bfb33081909a565ca6bbb5437b00c
Merge: 47ba2b1e 95e343ca
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 6 21:13:37 2020 +0100

    Merge pull request #3983 from mileschet/ios135

    added script to compile the lib to iphone sdk >= 13.5

commit 95e343caf32383348bdpe96b81bad164dc66f593
Author: Roberto Santacroce Martins <roberto.martins@transferoswiss.ch>
Date:   Mon Jul 6 15:34:10 2020 +0200

    added script to compile the lib to iphone sdk >= 13.5

 RELICENSE/mileschet.md  |   6 +++
 builds/ios/build_ios.sh | 101 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+)

commit 47ba2b1ef577dbcefca091d9a6f80f36f819ffe3
Merge: 2352e0a8 eb9118f0
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Jul 6 07:21:18 2020 +0300

    Merge pull request #3981 from bluca/fuzzers

    Problem: no fuzz testing for websockets

commit eb9118f0c9b9a70c0d2356838190350e9f88ed6f
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jul 5 23:01:22 2020 +0100

    Problem: no fuzz testing for websockets

    Solution: add tests for plain WS

 Makefile.am                      |  34 +++++++++++
 tests/test_bind_ws_fuzzer.cpp    | 125 +++++++++++++++++++++++++++++++++++++++
 tests/test_connect_ws_fuzzer.cpp | 125 +++++++++++++++++++++++++++++++++++++++
 tests/testutil.cpp               |  23 +++++--
 tests/testutil.hpp               |   4 ++
 5 files changed, 305 insertions(+), 6 deletions(-)

commit 2352e0a8968b102cd03f1d4089b46fe454cda05e
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jul 4 19:06:27 2020 +0100

    Problem: Github Action for fuzzer has a syntax error

    Solution: fix it

 .github/workflows/Fuzzers.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3396e9517982a2c39fa4eafa60abf79c8dbeeb1d
Merge: 61c7dp06 877978ad
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jul 4 21:01:58 2020 +0300

    Merge pull request #3980 from bluca/fuzzers

    Problems: fuzzer corpus file can be quite large, fuzzers not run in PRs

commit 877978adf79abf9a213d7cc149cb48a1c03323aa
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jul 4 17:18:04 2020 +0100

    Problem: fuzzers not run in PRs

    Solution: do it

 .github/workflows/Fuzzers.yaml | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

commit e95e57d3859edcaccf7c3e8148ed42b8ea05e8e1
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jul 4 14:53:03 2020 +0100

    Problem: fuzzer corpus file can be quite large

    Solution: move all corpora to the zeromq/libzmq-fuzz-corpora repository
    for easier handling, and to avoid inflating the size of zeromq/libzmq.
    Clone it for the CI on the fly.

 Makefile.am                                        | 44 ------------
 builds/fuzz/ci_build.sh                            |  6 ++
 ci_build.sh                                        |  1 +
 tests/fuzzer_corpora/endpoint.dict                 |  4 --
 tests/fuzzer_corpora/test_bind_curve_fuzzer.txt    |  1 -
 tests/fuzzer_corpora/test_bind_fuzzer.txt          |  1 -
 tests/fuzzer_corpora/test_bind_null_fuzzer.txt     |  2 -
 tests/fuzzer_corpora/test_connect_curve_fuzzer.txt |  1 -
 tests/fuzzer_corpora/test_connect_null_fuzzer.txt  |  1 -
 tests/fuzzer_corpora/test_z85_decode_fuzzer.txt    |  1 -
 tests/fuzzer_corpora/zmtp.dict                     | 45 ------------
 tests/test_bind_curve_fuzzer.cpp                   |  5 +-
 tests/test_bind_fuzzer.cpp                         |  5 +-
 tests/test_bind_null_fuzzer.cpp                    |  5 +-
 tests/test_connect_curve_fuzzer.cpp                |  4 +-
 tests/test_connect_fuzzer.cpp                      | 18 ++++-
 tests/test_connect_null_fuzzer.cpp                 |  4 +-
 tests/test_z85_decode_fuzzer.cpp                   |  5 +-
 tests/testutil.cpp                                 | 79 +++++++++++++++-------
 19 files changed, 94 insertions(+), 138 deletions(-)

commit 61c7dp06106aa400a8031a0be6a4c776765d8a77
Merge: 4dd504ab 734d6e48
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jun 30 20:34:30 2020 +0300

    Merge pull request #3976 from bluca/fuzzers

    Problem: we have to send a PR to oss-fuzz on every build change on the fuzzers

commit 734d6e4870c5307cc531c5524d99502c1001ef31
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jun 28 13:59:29 2020 +0100

    Problem: we have to send a PR to oss-fuzz on every build change on the fuzzers

    Solution: move the script to our repo, and simply call it from oss-fuzz's script

 builds/fuzz/ci_build.sh | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit 4dd504abebf3eb944d0554c36d490fb2bb742e4f
Merge: 1cfd41c0 350b4b34
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 30 16:02:04 2020 +0100

    Merge pull request #3973 from bluca/fuzzers

    Problem: test_security_zap occasionally segfaults

commit 1cfd41c06402a3cf1e7b1beda3002815d4a21df2
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Mon Jun 29 09:18:36 2020 -0400

    update sanitizer support
    - enable undefined behavior sanitizer
    - force release mode for sanitizer builds

 CMakeLists.txt | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit c8e3dfca908d79501bdb7c0d92495ebd5bc077cf
Merge: d78ecb8d fb852fd3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jun 28 17:36:26 2020 +0100

    Merge pull request #3974 from somdoron/pthread_cond_timedwait

    problem: pthread_cond_timedwait sometimes fail with EINVAL

commit fb852fd3e712ef26cf67a5b4ee4e85b7eb4affba
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jun 28 17:02:38 2020 +0300

    problem: pthread_cond_timedwait sometimes fail with EINVAL

    Solution: fix rounding error and assert if the clock_gettime fails

 src/condition_variable.hpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 350b4b34f460b91b8fa8f692cf6bc30d561a5711
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jun 28 13:36:57 2020 +0100

    Problem: test_security_zap occasionally segfaults

    Solution: check if a session's _pipe has been allocated before using
    it, since as a consequence of creating the pipes after the handshake
    it's no longer guaranteed to be there.

    Fixes #3971

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

commit d78ecb8dc89983952f7381af4f229ecb1eea21ab
Merge: 218655e4 5c5e2791
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jun 28 08:40:48 2020 +0300

    Merge pull request #3968 from bluca/fuzzers

    Problem: test_req_relaxed occasionally fails

commit 218655e4f77b963e47531a2d1e471f430403baab
Merge: ff9efa10 f03b67a5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jun 27 23:26:58 2020 +0100

    Merge pull request #3969 from serg06/patch-3

    Fix zmq_poller.txt

commit f03b67a50b0384f8e361610d27209b23b8f9b246
Author: serg06 <serkhas@hotmail.com>
Date:   Sat Jun 27 17:58:16 2020 -0400

    Fix zmq_poller.txt

    Fixed three things:
    1. Moved asterisks by variable names into the single quotes (to match [zmq_poll](https://github.com/zeromq/libzmq/edit/master/doc/zmq_init.txt) and other pages.)
    2. Fixed variable name in example.
    3. Fixed extra & in example.

 doc/zmq_poller.txt | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit 5c5e2791082a23018999ad38940374983b8867d4
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jun 27 18:26:09 2020 +0100

    Problem: test_req_relaxed occasionally fails

    Solution: instead of relying on timing to get the order
    of connected rep sockets just right, wait for each connection

 tests/test_req_relaxed.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit ff9efa106edd9b14ed914abbb89dea775d766087
Merge: 1ddfeb56 859f39b3
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jun 27 22:13:53 2020 +0300

    Merge pull request #3967 from bluca/fuzzers

    Problems: OBS build on sid fails, test_req_relaxed occasionally fails

commit 859f39b302d954d4477a998edb5c683768fc21c1
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jun 27 12:33:23 2020 +0100

    Problem: OBS build on sid fails

    Solution: change the version format to non-native as a hack, to match
    OBS' debstransform usage of 1.0 format

 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 1ddfeb56ec4fb355160daa0dc750d05494e6d54e
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Jun 26 23:45:39 2020 +0100

    Problem: formatting errors

    Solution: run make clang-format-diff

 src/stream_engine_base.cpp       |   5 +-
 tests/test_reconnect_options.cpp |  19 +++--
 tests/testutil_monitoring.cpp    |  70 ++++++++++-------
 tests/testutil_monitoring.hpp    | 166 +++++++++++++++++++--------------------
 4 files changed, 138 insertions(+), 122 deletions(-)

commit c04f6581e0cd07794e00941ccf5b8b2e9b6a528d
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Fri Jun 26 18:41:44 2020 -0400

    rebase reconnect-redux on master (#3960)

    * add option to stop reconnecting on failed handshake

 doc/zmq_getsockopt.txt           |  0
 doc/zmq_setsockopt.txt           | 13 +++++++--
 include/zmq.h                    |  1 +
 src/options.cpp                  |  1 +
 src/session_base.cpp             |  2 +-
 src/stream_connecter_base.cpp    |  0
 src/stream_connecter_base.hpp    |  0
 src/stream_engine_base.cpp       | 12 ++++++++
 src/zmq_draft.h                  |  1 +
 src/zmtp_engine.cpp              |  5 ----
 tests/CMakeLists.txt             |  2 +-
 tests/test_reconnect_options.cpp | 60 +++++++++++++++++++++++++++++++++++++++-
 tests/testutil_monitoring.cpp    | 40 +++++++++++++++++++++++++++
 tests/testutil_monitoring.hpp    |  4 +++
 14 files changed, 131 insertions(+), 10 deletions(-)

commit c7dpf56048e5221fb5de047df04f282409c1eef7
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Fri Jun 26 10:32:16 2020 -0400

    - resolve FPE when ZMQ_RECONNECT_IVL == 0

 src/session_base.cpp          | 2 +-
 src/stream_connecter_base.cpp | 2 +-
 src/vmci_connecter.cpp        | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit d0d23446f5797364c885c7fdc982e5a1efe616fa
Merge: 522abc73 3135f6b5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jun 19 17:31:20 2020 +0100

    Merge pull request #3962 from sigiesec/fix-clang-tidy-analyze

    Problem: clang-tidy job is failing because package dependencies are o…

commit 3135f6b50370de3c8b7e95517c79f0ec19df7265
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Fri Jun 19 17:25:58 2020 +0200

    Problem: clang-tidy job is failing because package dependencies are outdated

    Solution: update to llvm-toolchain-10

 .travis.yml              | 10 +++++-----
 builds/cmake/ci_build.sh |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 522abc73766364d176d7f97ba544cf38fd3f79bb
Merge: b4aa9124 ab301ebf
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jun 17 14:35:26 2020 +0300

    Merge pull request #3959 from bluca/fuzzers

    Problem: mtrie use of non-tail recursion leads to stack overflow

commit ab301ebf799b4dbddb1351d77da49b2e6e1cf8ec
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jun 13 15:09:39 2020 +0100

    Problem: mtrie use of non-tail recursion leads to stack overflow

    Solution: convert add and rm functions to iterative algorithms

 src/generic_mtrie.hpp      |  35 +--
 src/generic_mtrie_impl.hpp | 748 ++++++++++++++++++++++++++-------------------
 2 files changed, 444 insertions(+), 339 deletions(-)

commit e0e3ce081e476522be4007573599b132d73c4655
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jun 13 15:09:05 2020 +0100

    Problem: XPUB treats non-sub/cancel as sub/cancel

    Solution: only process for sub/cancel if the messages are actually sub/cancel.
    Regression introduced by cf9ccbb which tried to skip non-sub/cancel processing
    for PUB.

 src/xpub.cpp | 102 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 51 insertions(+), 51 deletions(-)

commit b4aa912467fba1a8c391fe5006ded878ccda99a3
Merge: c8b141d9 3856027d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 16 21:05:04 2020 +0100

    Merge pull request #3958 from bluca/fix_tests

    Problems: formatting error in ip.cpp and test_bind_fuzzer doesn't build on OSX

commit 3856027da94378ff793d5791f0325d1a8717bc11
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jun 14 15:20:08 2020 +0100

    Problem: test_bind_fuzzer does not build on OSX

    Solution: use POSIX API instead of GNU extension

 tests/test_bind_fuzzer.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 1d2af8d38842427feba909b2f47275120d104ec8
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jun 14 16:13:51 2020 +0100

    Problem: formatting error in ip.cpp

    Solution: fix it

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

commit c8b141d9649b0a4e3ba33654372234aa09d7be94
Merge: 7c3eaf86 7f83eeb1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 11 19:07:56 2020 +0100

    Merge pull request #3955 from bluca/thread_doc

    Problem: thread safety documentation is misleading

commit 7f83eeb1b7ad7beb56995465404966786569bc6e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 9 10:25:18 2020 +0100

    Problem: thread safety documentation is misleading

    Solution: change it to categorically state that non-thread-safe
    sockets are not thread safe, ever

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

commit 7c3eaf864cd43d6258ee840a5bf4e17188e78d15
Merge: 3f2529f3 4341f14f
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Jun 8 21:45:22 2020 +0300

    Merge pull request #3954 from bluca/blocklist

    Problem: documentation uses unfriendly language

commit 4341f14f416ef50dd60e4cd939e20463c0ea935e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 8 19:32:45 2020 +0100

    Problem: documentation uses unfriendly language

    Solution: use more descriptive, accurate and welcoming terms like allowing
    and blocking

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

commit 3f2529f3c7ec902d671ecc5c9c3b57928cd60a57
Merge: b6bb3ef9 1ffc21d3
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jun 7 14:38:18 2020 +0300

    Merge pull request #3952 from bluca/fuzzers

    Problem: test_bind_fuzzer clobbers working directory with random socket files

commit 1ffc21d37843ab863e6d9ff48e17b11583606f84
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jun 7 11:58:03 2020 +0100

    Problem: test_bind_fuzzer clobbers working directory with random socket files

    Solution: move to /tmp before running the test

 tests/test_bind_fuzzer.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b6bb3ef9254bfc4d4460a676fc0fb8992f785383
Author: mjvk <mjvk@allseas.com>
Date:   Sun Jun 7 11:39:02 2020 +0200

    Adds NORM support to cmake (#3951)

 CMakeLists.txt               | 19 +++++++++++++++++++
 builds/cmake/platform.hpp.in |  1 +
 2 files changed, 20 insertions(+)

commit 3a2b3bc62555d4a9f1be3f524a015942093e08a6
Merge: c89390f0 c32462cd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 30 21:16:52 2020 +0100

    Merge pull request #3943 from bjovke/small_fix

    Problem: The code is wrong, socket option is never set.

commit c32462cde064e081e2621acedc09645b01dpfce6
Author: Jovan Bunjevacki <bjovan@gmail.com>
Date:   Sat May 30 20:30:23 2020 +0200

    Small fix.

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

commit c89390f0f5a17370627d0e856f906e8e9c7984e4
Author: serg06 <serkhas@hotmail.com>
Date:   Sun May 24 18:15:23 2020 -0400

    Make including Clang optional

    I include libzmq in my cmake project, and I don't want clang-related targets popping up in Visual Studio's solution explorer.

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

commit efdpec33fcb31ea7c016ccaa15cf90af24bde150
Author: serg06 <serkhas@hotmail.com>
Date:   Mon May 25 13:28:38 2020 -0400

    RELICENSE grant

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

commit 2e87390656dbc66309501dbaf6fcd7521234ef37
Author: serg06 <serkhas@hotmail.com>
Date:   Sun May 24 18:08:57 2020 -0400

    Initialize some CMake variables as empty before build

    This prevents a bug that occurs when a parent has a `sources` variable when doing `add_subdirectory("libzmq")`.

 CMakeLists.txt | 6 ++++++
 1 file changed, 6 insertions(+)

commit c95f7d09338f946fc2b912d7938e77af258b4a0c
Merge: b5a88255 cf9ccbbd
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 25 19:45:54 2020 +0300

    Merge pull request #3935 from bluca/fuzzers

    Problem: small memory leaks in PUB/XPUB

commit cf9ccbbd376e7f3af455c2a4fd9d8fbfdb750f80
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 25 15:48:05 2020 +0100

    Problem: metadata is stored for PUB sockets and never processed

    Solution: do not store user messages when the socket type is PUB, they
    will never be processed

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

commit 821ab88f967c7772afd196d07bf30502d1defd14
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 25 15:47:17 2020 +0100

    Problem: XPUB leaks unprocessed metadata on close

    Solution: dereference and delete any metadata object left in memory

 src/xpub.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit b5a88255420e061018c5a171f583c00bc488b92b
Merge: c1d19564 38349198
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun May 24 17:23:59 2020 +0300

    Merge pull request #3930 from bluca/fuzzers

    Problem: MSAN fuzzers cannot run

commit 38349198a6d300e3d2a4cc5217d64d46b5507727
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 21 13:56:02 2020 +0100

    Problem: MSAN complains about uninitialised buffers in CURVE greetings

    Solution: memset some of the CURVE greetings buffers. Most likely false
    positives, but easier to fix here than convince Clang of being wrong.

 src/curve_client_tools.hpp | 3 +++
 src/curve_server.cpp       | 6 ++++++
 2 files changed, 9 insertions(+)

commit 35c4c22c815c1738052ee72f9c95929c841000f4
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun May 24 14:26:02 2020 +0100

    Problem: z85 decode test might not always get valid input and pass

    Solution: do not fail the test in that case, what's important is checking
    for undefined behaviour

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

commit 85e198c5b481494f056798dd7da8dee00a09d62f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 21 11:31:06 2020 +0100

    Problem: wrong testcase name in z85_decode_fuzzer

    Solution: fix it

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

commit 1ac753979a33bafc44e83ccf8f8180b87f56a67d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 21 10:23:28 2020 +0100

    Problem: z85_decode fuzzer does not run regression tests with corpora

    Solution: do it to avoid regressions

 tests/fuzzer_corpora/test_z85_decode_fuzzer.txt |  1 +
 tests/test_z85_decode_fuzzer.cpp                | 17 ++++++++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

commit 51c90a6cd52003237bc15be61caf6341abde97b7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 21 10:22:35 2020 +0100

    Problem: z85_decode fuzzer fails if fewer than 5 bytes are passed

    Solution: check immediately the size of the input

 tests/test_z85_decode_fuzzer.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit c1d195641d81c702e342772cd48aa3ad3481a352
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Wed May 20 15:01:29 2020 -0400

    provide minimal support for TSAN (#3929)

    * provide minimal support for thread sanitizer

 CMakeLists.txt | 19 +++++++++++++++++++
 configure.ac   | 27 +++++++++++++++++++++++++++
 2 files changed, 46 insertions(+)

commit 6e62fb19b4c669cdbeb8b643e1348baa43c632dd
Merge: 907ec224 2887c0fb
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 20 16:57:24 2020 +0200

    Merge pull request #3925 from bjovke/timers_issue

    Problem: Usage of invalidated iterator of _timers container in zmq::p…

commit 2887c0fbb14d266cf3a43997b12c8d7691d0d730
Author: Jovan Bunjevacki <bjovan@gmail.com>
Date:   Sat May 9 00:51:36 2020 +0200

    Problem: Usage of invalidated iterator of _timers container in zmq::poller_base_t::execute_timers ().
    Solution: Safe iteration through _timers container, valid only for std::multimap (currently it is).

 src/poller_base.cpp | 39 +++++++++++++++++++++++++--------------
 1 file changed, 25 insertions(+), 14 deletions(-)

commit 907ec2247556e11661eacf7aa494154576055eb2
Merge: 8df0d99c 55dfa239
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun May 17 18:02:34 2020 +0300

    Merge pull request #3922 from bluca/fuzzers

    Problem: build fails with Clang 10

commit 55dfa239ff41e817a244ed6a9de2081b7f4cfe63
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun May 17 14:23:19 2020 +0100

    Problem: build fails with Clang 10

    Solution: wrap generic_mtrie_t in zmq namespace

 src/generic_mtrie_impl.hpp | 67 +++++++++++++++++++++++-----------------------
 1 file changed, 34 insertions(+), 33 deletions(-)

commit 8df0d99cd8ba139c7bfb69fcf53ff1c1fd8de755
Merge: 30331126 2d23b599
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat May 16 17:23:16 2020 +0300

    Merge pull request #3921 from bluca/fuzzers

    Problem: invalid address results in out-of-range string access

commit 2d23b599f2939beff3ad5254fd4e426ad35048d9
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 16 13:42:11 2020 +0100

    Problem: test_bind_fuzzer does not use corpus for regression tests

    Solution: do it

 Makefile.am                               |  6 ++++++
 tests/fuzzer_corpora/test_bind_fuzzer.txt |  1 +
 tests/test_bind_fuzzer.cpp                | 17 ++++++++++++++---
 3 files changed, 21 insertions(+), 3 deletions(-)

commit dccf1723cc14d7481c33446e11b577fcd80ec975
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 16 13:40:29 2020 +0100

    Problem: invalid address results in out-of-range string access

    Solution: check for zone string length before using it in ip_resolver
    It turns out std::string::at does not check for string length before
    dereferencing

 src/ip_resolver.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 3033112645225d19954da6e06dc2e46b1665783f
Merge: afacdbec 68151385
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri May 15 22:15:02 2020 +0300

    Merge pull request #3918 from bluca/fuzzers

    Problem: unfinished message can be leaked by client pipe

commit 6815138501b9f2a69e807bc3527d93583e633233
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri May 15 17:07:48 2020 +0100

    Problem: unfinished message can be leaked by client pipe

    When a pipe processes a delimiter and is already not in active state but still
    has an unfinished message, the message is leaked.

    Solution: issue a rollback before losing the reference to the pipe.

 src/pipe.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 6439d322543964b5c4cf3f7adce9ff33b4cd7cfd
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri May 15 14:10:43 2020 +0100

    Problem: fuzz tests do not check that legitimate clients work

    Solution: add normal client sockets and bounce at the same time as
    the mock client

 tests/test_bind_curve_fuzzer.cpp | 25 ++++++++++++++++++++++++-
 tests/test_bind_null_fuzzer.cpp  | 10 +++++++++-
 2 files changed, 33 insertions(+), 2 deletions(-)

commit afacdbeccf3598e2409c4be24ffc62067aa5b6f0
Merge: 18cacf2e ad3b36ab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 14 08:30:50 2020 +0100

    Merge pull request #3913 from somdoron/delay_bind

    problem: zeromq connects peer before handshake is complete

commit ad3b36ab9598650887ff1ee08b8a96f6fa983500
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 13 23:02:47 2020 +0300

    problem: test_xpub_manual is flapping

    The test assumed the subscriptions are arrived in some order, but occasionally the order is not as expected

    Solution: fix it

 tests/test_xpub_manual.cpp            | 13 ++++++++-----
 tests/test_xpub_manual_last_value.cpp | 14 +++++++++-----
 2 files changed, 17 insertions(+), 10 deletions(-)

commit e7f0090b161ce6344f6bd35009816a925c070b09
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 13 17:32:06 2020 +0300

    problem: zeromq connects peer before handshake is completed

    Solution: delay connecting the peer pipe until the handshake is completed

 src/i_engine.hpp            |  4 ++++
 src/norm_engine.hpp         |  2 ++
 src/pgm_receiver.hpp        |  1 +
 src/pgm_sender.hpp          |  1 +
 src/raw_engine.cpp          |  2 +-
 src/session_base.cpp        | 20 +++++++++++++-------
 src/session_base.hpp        |  1 +
 src/stream_engine_base.cpp  | 12 ++++++++++--
 src/stream_engine_base.hpp  | 10 ++++++++--
 src/udp_engine.hpp          |  2 ++
 src/ws_engine.cpp           |  2 +-
 src/zmtp_engine.cpp         |  2 +-
 tests/test_mock_pub_sub.cpp |  2 ++
 13 files changed, 47 insertions(+), 14 deletions(-)

commit 18cacf2ec1a264dp1bd249aaac3d2a4b130491de
Merge: 4a863e33 364dp768
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 12 12:29:31 2020 +0300

    Merge pull request #3910 from bluca/obs_release

    Problem: removing latest_branch breaks ABI CI job

commit 364dp768fe655a1e1cc660bbc5669b35d65579ad
Author: Luca Boccassi <bluca@debian.org>
Date:   Tue May 12 00:15:03 2020 +0100

    Problem: removing latest_branch breaks ABI CI job

    Solution: clone latest tag instead

 builds/abi-compliance-checker/ci_build.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 4a863e334a0d47c55dp376ed73a7e34d9900eb22
Merge: 820efb31 f474b226
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 12 00:05:43 2020 +0100

    Merge pull request #3909 from nyfix/std

    allow C/C++ standard to be specified at build time, default to C++11 if supported

commit f474b226b6a8f99ebd99e20e9155dc80da1a41c5
Author: Bill Torpey <bill.torpey@itiviti.com>
Date:   Mon May 11 16:47:02 2020 -0400

    allow C/C++ standard to be specified at build time, default to C++11 if supported

 CMakeLists.txt | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

commit 820efb31bd6c211da5a74d8d06282bc48dc3e256
Merge: 0244d809 e1d07b61
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 11 21:56:49 2020 +0300

    Merge pull request #3908 from bluca/obs_release

    Problem: release script for OBS build fails often

commit e1d07b61ca6ceb4a3cd41ac027290798e643191b
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 11 19:31:23 2020 +0100

    Problem: release script for OBS build fails often

    Solution: now that tar_scm supports @PARENT_TAG@ as a revision to
    automatically fetch the most recent tag on the default branch, use
    it to simplify everything

    https://github.com/openSUSE/obs-service-tar_scm/pull/359

 ci_deploy.sh           | 13 ++++---------
 packaging/obs/_service |  1 +
 2 files changed, 5 insertions(+), 9 deletions(-)

commit 0244d809a2d335f755d420f56b24ca07285e8ce4
Merge: be77a8d9 fb9d0555
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat May 9 15:27:52 2020 +0300

    Merge pull request #3905 from bluca/fuzzers

    Problems: potential memory leak in test_connect_curve_fuzzer, SECURITY.md could use some updates

commit fb9d055578003b6f0dp0c2b91eea8f0c6067069b
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 9 13:17:36 2020 +0100

    Problem: test_bind_curve_fuzzer might get stuck on some input

    Solution: receive with MSG_DONTWAIT on the raw TCP socket

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

commit c33da0ea5bdbd687bbe1856e92ea3dd01d6778c7
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 9 12:58:01 2020 +0100

    Problem: we lack an (internal) definition of severity for security issues

    Solution: attempt to define a reasonable one

 SECURITY.md | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 675a007d7496253af7e23c258566fb624efb3320
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 9 12:57:32 2020 +0100

    Problem: SECURITY.md does not mention 4.3.x series

    Solution: add it

 SECURITY.md | 1 +
 1 file changed, 1 insertion(+)

commit abb315a6da4c2bcb695cdfe0373352b77d60cca3
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 9 12:31:36 2020 +0100

    Problem: potential memory leak in test_connect_curve_fuzzer

    Solution: properly initialize zmq_msg before receive

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

commit be77a8d932ee55b918f347a28beab28f367c474a
Merge: a1d82598 804d5281
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 9 10:50:43 2020 +0100

    Merge pull request #3903 from bjovke/msvc_cplusplus

    Problem: MSVC always reports __cplusplus macro value as 199711L. Some…

commit a1d82598bb3b41018c0bf848cc23255feb53d003
Merge: 28cb820f 3da84c6d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 9 10:49:35 2020 +0100

    Merge pull request #3904 from somdoron/CHANNEL

    problem: no thread-safe alternative for ZMQ_PAIR

commit 3da84c6d06ec82635318f3580a862dc4db270f4e
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat May 9 07:44:32 2020 +0300

    problem: no thread-safe alternative for ZMQ_PAIR

    Solution: create ZMQ_CHANNEL, the thread safe alternative

 CMakeLists.txt         |   2 +
 Makefile.am            |   9 ++-
 doc/zmq_bind.txt       |   2 +-
 doc/zmq_connect.txt    |   4 +-
 doc/zmq_socket.txt     |  44 +++++++++++++-
 include/zmq.h          |   1 +
 src/channel.cpp        | 160 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/channel.hpp        |  69 +++++++++++++++++++++
 src/mechanism.cpp      |  22 ++++---
 src/session_base.cpp   |   1 +
 src/socket_base.cpp    |   4 ++
 src/zmq_draft.h        |   1 +
 tests/CMakeLists.txt   |   6 +-
 tests/test_channel.cpp |  81 +++++++++++++++++++++++++
 14 files changed, 392 insertions(+), 14 deletions(-)

commit 804d528114e9ed3924483562aac62c1f98f41c35
Author: Jovan Bunjevacki <bjovan@gmail.com>
Date:   Sat May 9 01:20:47 2020 +0200

    Problem: MSVC always reports __cplusplus macro value as 199711L. Some newer features are switched off even with latest Visual studio version.
    Solution: Add check for MSVC version along with __cplusplus check.

 src/ctx.cpp     | 2 +-
 src/options.hpp | 2 +-
 src/radio.cpp   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 28cb820f4f383abe52c13ff5907b811b1b4c94af
Merge: 061ce6ce 98efa79f
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri May 8 21:25:37 2020 +0300

    Merge pull request #3902 from bluca/fuzzers

    Problems: ZMTP v1 static allocator is needlessly resized, ZMQ_DISABLE_TEST_TIMEOUT does not work anymore

commit 98efa79f540aa2094f81d7681058e6561504449b
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri May 8 01:12:15 2020 +0100

    Problem: ZMQ_DISABLE_TEST_TIMEOUT does not work anymore

    Solution: restore it so that it can be set via CPPFLAGS, to avoid
    tests timing out when running in GDB

 tests/testutil.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 397ac80850bf8d010fdp23dd215db0ee2c677306
Author: Luca Boccassi <bluca@debian.org>
Date:   Thu May 7 00:19:40 2020 +0100

    Problem: ZMTP v1 static allocator is needlessly resized

    Solution: don't do it, resizing the shared allocator makes sense
    as it can take the message buff for zero copy, but the static allocator
    is fixed

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

commit 061ce6cea15b4e2dpe9bea977902f8201a5f7a41
Merge: f7b215c6 5fd07111
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 7 13:34:26 2020 +0300

    Merge pull request #3901 from bluca/fuzzers

    Problem: test_connect_null_fuzzer doesn't correctly initialise messages

commit 5fd07111964263bb8109790173a9ddeea0dd1943
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed May 6 22:26:03 2020 +0100

    Problem: memory leak in test_connect_null_fuzzer

    Solution: initialize message before re-using it so that
    receive doesn't fail and messages can be deallocated

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

commit 243503c29e169266353439f8cadfa93a52f5e36f
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed May 6 20:56:36 2020 +0100

    Problem: set infinite timeouts on some tests by mistake

    Solution: remove it

 tests/test_bind_null_fuzzer.cpp    | 2 +-
 tests/test_connect_null_fuzzer.cpp | 2 +-
 tests/test_use_fd.cpp              | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit f7b215c6397418922288e434c904f596ccdc1611
Merge: d7e58fc8 fd3e5daa
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 6 15:12:03 2020 +0300

    Merge pull request #3900 from bluca/fuzzers

    Use fixed keys in fussers curve tests, run fuzzers github action only on PRs, attempt to fix uninitialised error in test helper

commit fd3e5dadpb3207c1799ef77dc48e88ec69e28e19
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 6 12:39:23 2020 +0100

    Problem: fuzzing Github action ran on pushes on forks and fails

    Solution: run in on PRs only as oss-fuzz uses Docker so the repository is
    hard-coded

 .github/workflows/CI.yaml      |  9 ---------
 .github/workflows/Fuzzers.yaml | 13 +++++++++++++
 2 files changed, 13 insertions(+), 9 deletions(-)

commit 346f8b8b206391da83d18f14dd428e24bdde75be
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 6 11:51:55 2020 +0100

    Problem: uninitialised error in testutil helper

    Solution: memset struct addrinfo to be sure

 tests/testutil.cpp | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

commit 5819867cd33484c29ce401abb07d1a7cc075be13
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 6 11:47:15 2020 +0100

    Problem: fuzzer curve tests use random keys

    Solution: use fixed keys to reduce variability and increase the chance
    that random data derived from it can break something

 tests/fuzzer_corpora/test_bind_curve_fuzzer.txt    |  2 +-
 tests/fuzzer_corpora/test_connect_curve_fuzzer.txt |  2 +-
 tests/test_bind_curve_fuzzer.cpp                   | 25 +++++++++++++++----
 tests/test_connect_curve_fuzzer.cpp                | 29 +++++++++++++++++++---
 4 files changed, 47 insertions(+), 11 deletions(-)

commit d7e58fc88009da77823e53184935c952740006dc
Merge: c2ffe2e6 9f94aa86
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 6 09:51:11 2020 +0300

    Merge pull request #3899 from bluca/fuzzers

    Problems: address sanitizer not enabled, oss-fuzz images not build-tested

commit 9f94aa866fe1bfa7f915ba7fb25b2f4edf3c6e50
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 6 00:16:34 2020 +0100

    Problem: oss-fuzz images not tested on PRs

    Solution: integrate oss-fuzz build via Github actions

 .github/workflows/CI.yaml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 5b7f67a8223b72edc2402299ebb1c05e4f5a1a17
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 6 00:14:02 2020 +0100

    Problem: memory sanitizer not enabled in CI

    Solution: add -fsanitize=leak to the sanitizers flag, and disable
    test_many_sockets as it currently fails due to:
    https://github.com/zeromq/libzmq/issues/3898

 Makefile.am  | 14 +++++++++-----
 configure.ac |  4 ++--
 2 files changed, 11 insertions(+), 7 deletions(-)

commit c2ffe2e6d2670c9ce01a55b8e1e2d56b334b97e3
Merge: 04ecff39 2ac5ee73
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 5 20:36:26 2020 +0100

    Merge pull request #3897 from bluca/fuzzers

    Problem: test_hello_msg binds to hard-coded port and fails when it's in use

commit 2ac5ee73070ff183291ba1de1b3a708637d75c6e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 5 14:13:38 2020 +0100

    Problem: test_hello_msg binds to hard-coded port and fails when it's in use

    Solution: use the common wildcard bind pattern instead

 tests/test_hello_msg.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 04ecff399b35d06383e2eca080031c820d30693f
Merge: 309d1f1c 3770937d
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 5 15:51:00 2020 +0300

    Merge pull request #3896 from bluca/fuzzers

    Problems: memory sanitizer fails due to uninitialised global, want to run more tests with sanitizer

commit 3770937de32e5ca912802417658ba1ba6fc77f33
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 5 12:16:51 2020 +0100

    Problem: we want to check for undefined behaviour in the CI

    Solution: enable GCC's UBSAN in the sanitizer job

 .travis.yml  | 6 +++++-
 configure.ac | 4 ++--
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 0c5396849bc473d0ce62a8e56b4d0cd29c8b3b7b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 5 12:16:19 2020 +0100

    Problem: syntax errors in ci_build.sh

    Solution: fix them

 ci_build.sh | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit cdd9e9d1f4ffa4d017e371421a9a10abdc7c77e3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 5 11:09:22 2020 +0100

    Problem: Travis uses old-old-old-stable Ubuntu by default

    Solution: set default to bionic, and leave a few jobs that manually
    set Trusty/Xenial to have more coverage
    This is especially useful to get newer gcc for address sanitizer support

 .travis.yml | 13 +------------
 ci_build.sh |  5 -----
 2 files changed, 1 insertion(+), 17 deletions(-)

commit 96d3cb39e4949fcc274c3eb3d871d19963969657
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 4 23:45:00 2020 +0100

    Problem: fuzz input which causes extra-large message allocation not stored

    Solution: add it

 tests/fuzzer_corpora/test_bind_null_fuzzer.txt | 1 +
 1 file changed, 1 insertion(+)

commit 9ab3fbeee209a94bfee9b5e83203b67f0497039a
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 4 22:30:37 2020 +0100

    Problem: we want to have multiple seed corpora per fuzzer binary

    Solution: store them each as a single line in the text file and convert them
    at install time

 Makefile.am                                        | 27 +++++++++-----
 ci_build.sh                                        |  5 ++-
 tests/fuzzer_corpora/test_bind_curve_fuzzer.txt    |  2 +-
 tests/fuzzer_corpora/test_bind_null_fuzzer.txt     |  2 +-
 tests/fuzzer_corpora/test_connect_curve_fuzzer.txt |  2 +-
 tests/fuzzer_corpora/test_connect_null_fuzzer.txt  |  2 +-
 tests/test_bind_curve_fuzzer.cpp                   | 13 ++++---
 tests/test_bind_null_fuzzer.cpp                    | 15 +++++---
 tests/test_connect_curve_fuzzer.cpp                | 14 +++++---
 tests/test_connect_null_fuzzer.cpp                 | 14 +++++---
 tests/testutil.cpp                                 | 41 +++++++++++++++-------
 tests/testutil.hpp                                 |  5 ++-
 12 files changed, 99 insertions(+), 43 deletions(-)

commit c4fd6dfea7fc4e4e2031e893ca6d4af440b296b7
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 4 22:03:31 2020 +0100

    Problem: sanitizer tests cannot allocate much memory

    Solution: restrict maximum message size to 64MB in tests

 tests/test_bind_null_fuzzer.cpp    |  5 +++++
 tests/test_connect_null_fuzzer.cpp |  5 +++++
 tests/testutil_security.cpp        | 10 ++++++++++
 3 files changed, 20 insertions(+)

commit 7df845fb8212683a93ddpa66d20b744511a1ea87
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 4 21:06:24 2020 +0100

    Problem: memory sanitizer detects uninitialised global variable usage

    Solution: revert "Problem: complexity of start_connecting"

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

    This reverts commit c590873ff7a81a3c373884eab37cbe2068fbfe4a.

    Conflicts:
            src/session_base.cpp
            src/session_base.hpp

 src/session_base.cpp | 335 +++++++++++++++++++++------------------------------
 src/session_base.hpp |  29 -----
 2 files changed, 135 insertions(+), 229 deletions(-)

commit 309d1f1cb754b2fc986bd23f06f1bd27d85c91c6
Merge: 534580c3 6b259224
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 4 14:43:47 2020 +0300

    Merge pull request #3894 from bluca/fuzzers

    Problems: sub/cancel broken with CURVE, fuzzers need corpora and better unit testing

commit 6b259224ee3b8b28768f9ed486e0204e67da4e57
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon May 4 01:54:34 2020 +0100

    Problem: fuzzer regression tests do very little

    Solution: run them with the seed corpora

 tests/test_bind_curve_fuzzer.cpp    | 28 ++++++++++++++++++++++++++--
 tests/test_bind_null_fuzzer.cpp     | 22 ++++++++++++++++++++--
 tests/test_connect_curve_fuzzer.cpp | 29 +++++++++++++++++++++++++++--
 tests/test_connect_null_fuzzer.cpp  | 33 +++++++++++++++++++++++++++++----
 tests/testutil.cpp                  | 31 +++++++++++++++++++++++++++++++
 tests/testutil.hpp                  |  3 +++
 6 files changed, 136 insertions(+), 10 deletions(-)

commit c8e62cb2e01f80e63fa10addc48028cd480b0599
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun May 3 17:44:04 2020 +0100

    Problem: no dictionaries and seed corpora for fuzzers

    Solution: add them and install them where oss-fuzz expects them

 Makefile.am                                        | 27 +++++++++++++
 tests/fuzzer_corpora/endpoint.dict                 |  4 ++
 tests/fuzzer_corpora/test_bind_curve_fuzzer.txt    |  1 +
 tests/fuzzer_corpora/test_bind_null_fuzzer.txt     |  1 +
 tests/fuzzer_corpora/test_connect_curve_fuzzer.txt |  1 +
 tests/fuzzer_corpora/test_connect_null_fuzzer.txt  |  1 +
 tests/fuzzer_corpora/zmtp.dict                     | 45 ++++++++++++++++++++++
 7 files changed, 80 insertions(+)

commit 60ccf54fa632a9ff1547302f5dfe2ca6af5af3f7
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun May 3 17:29:19 2020 +0100

    Problem: sub/cancel broken with CURVE

    Solution: handle downgrading sub/cancel messages in CURVE engine

 src/curve_client.cpp                  | 10 +++++---
 src/curve_client.hpp                  |  4 ++-
 src/curve_mechanism_base.cpp          | 46 +++++++++++++++++++++++++++++------
 src/curve_mechanism_base.hpp          |  8 ++++--
 src/curve_server.cpp                  | 10 +++++---
 src/curve_server.hpp                  |  3 ++-
 src/ws_engine.cpp                     |  4 +--
 src/zmtp_engine.cpp                   | 14 +++++------
 src/zmtp_engine.hpp                   |  2 +-
 unittests/unittest_curve_encoding.cpp |  6 +++--
 10 files changed, 78 insertions(+), 29 deletions(-)

commit 534580c31d24bd4601bf03efb206abbb24174bc9
Merge: 103e39bd 47a080aa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 2 14:26:06 2020 +0100

    Merge pull request #3893 from gummif/gfa/blob-ref

    Problem: extra blob copy

commit 103e39bd6fa5673dfda93260d84fe3fcef82026c
Merge: e05fe370 284d90a4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 1 23:42:32 2020 +0100

    Merge pull request #3892 from gummif/gfa/poller-event

    Problem: unnecessary event struct and UB

commit 47a080aac00a2fe12d9fc51930b9953c5c1d4b35
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Fri May 1 22:27:44 2020 +0000

    Problem: extra blob copy

    Solution: use reference tag

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

commit 284d90a43629147f74b3b621cdced0ddfcbc6095
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Fri May 1 22:12:30 2020 +0000

    Problem: unnecessary event struct and UB

    Solution: simply use zmq_poller_event_t

 src/socket_poller.hpp | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit e05fe370fe6a3d4432b948c853efbda83ddbd45e
Merge: aa29f7ca e18772f9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Apr 29 17:23:10 2020 +0000

    Merge pull request #3890 from gummif/gfa/retfd

    Problem: -1 used for invalid socket

commit e18772f94220b7625ffe0029cba08ce5bb191018
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Wed Apr 29 17:12:08 2020 +0000

    Problem: -1 used for invalid socket

    Solution: use retired_fd instead

 src/ipc_connecter.cpp  | 2 +-
 src/tipc_connecter.cpp | 2 +-
 src/tipc_listener.cpp  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit aa29f7caff10b484fc2967b8f3dd2c7d3c2c52a9
Merge: 1443c0e7 a909e729
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 28 13:33:03 2020 +0100

    Merge pull request #3889 from bluca/fuzzers

    Problem: testutil build broken with gcc 4.4 on CentOS 6

commit 1443c0e787275ddcdf4732632db6f7e39a758049
Merge: 5867d7cf d426f2ab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 28 13:32:52 2020 +0100

    Merge pull request #3887 from gummif/gfa/unify-fd

    Problem: Multiple fd_t definitions

commit 5867d7cf5f5342cf43ec215e0b84c0666723f81e
Merge: 12a2f817 bf22a9f3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 28 11:26:58 2020 +0100

    Merge pull request #3888 from gummif/gfa/poller-fd

    Problem: Poller event fd unspecified

commit d426f2ab0cf48d3438076f0aa844e29b568ebd6f
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Mon Apr 27 20:32:27 2020 +0000

    Problem: Multiple fd_t definitions

    Solution: Unify definition

 src/fd.hpp            |  8 ++------
 tests/test_poller.cpp |  6 +++---
 tests/test_system.cpp |  2 +-
 tests/testutil.hpp    | 34 ++++++++++++++++++++--------------
 4 files changed, 26 insertions(+), 24 deletions(-)

commit a909e7296d5b2a15fcf80c5d021a06f3bc09d1a4
Author: Luca Boccassi <bluca@debian.org>
Date:   Tue Apr 28 00:06:04 2020 +0100

    Problem: testutil build broken with gcc 4.4 on CentOS 6

    Solution: do not alias sockaddr_un, but take a copy

    tests/testutil.cpp: In function 'fd_t bind_socket_resolve_port(const char*, const char*, char*, int, int)':
    tests/testutil.cpp:468: error: dereferencing pointer 'un_addr' does break strict-aliasing rules

 tests/testutil.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 882cb6fdfb85d432332ac4f3309e3a948e7319f1
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon Apr 27 23:52:39 2020 +0100

    Problem: static analysis shows dead store in testutil

    Solution: remove it and rework the ifdefs to be safe against uninitialised use

 tests/testutil.cpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 12a2f81717ec2e767249bdee4319aab730414313
Merge: b56195e9 96787c35
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 27 23:21:50 2020 +0100

    Merge pull request #3885 from bluca/fuzzers

    Problem: no fuzz testing

commit bf22a9f3e93dad30c70c9fa65b57f220325b45d2
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Mon Apr 27 21:00:45 2020 +0000

    Problem: Poller event fd unspecified

    Solution: Specify an invalid file descriptor for socket events

 doc/zmq_poller.txt    | 9 ++++-----
 src/socket_poller.cpp | 4 ++--
 src/zmq.cpp           | 7 ++++---
 tests/test_poller.cpp | 6 ++++++
 4 files changed, 16 insertions(+), 10 deletions(-)

commit 96787c35f84c2eb5e4c723ed0cef57a136bb9f99
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Apr 26 22:23:04 2020 +0100

    Problem: no fuzz testing for API with variable input

    Solution: add tests for zmq_bind, zmq_connect and zmq_z85_decode

 Makefile.am                      | 52 +++++++++++++++++++++++++---
 tests/CMakeLists.txt             |  4 +--
 tests/test_bind_fuzzer.cpp       | 71 +++++++++++++++++++++++++++++++++++++
 tests/test_connect_fuzzer.cpp    | 71 +++++++++++++++++++++++++++++++++++++
 tests/test_z85_decode_fuzzer.cpp | 75 ++++++++++++++++++++++++++++++++++++++++
 5 files changed, 267 insertions(+), 6 deletions(-)

commit 57df836381d5a8e19a3368ef32ada810c0d2958e
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Apr 26 21:59:28 2020 +0100

    Problem: no fuzz testing for CURVE

    Solution: add simple, initial tests for client and server

 Makefile.am                         | 32 ++++++++++++++
 tests/CMakeLists.txt                |  3 ++
 tests/test_bind_curve_fuzzer.cpp    | 82 +++++++++++++++++++++++++++++++++++
 tests/test_connect_curve_fuzzer.cpp | 85 +++++++++++++++++++++++++++++++++++++
 4 files changed, 202 insertions(+)

commit 8e774f3cd64ab37e16b0abd3a12d06e6829654bb
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Apr 25 13:53:53 2020 +0100

    Problem: no integration with fuzz testing

    Solution: port the 2 new tests from oss-fuzz, and wire them up to
    be ran manually with a static input in normal builds.
    Add a specific configure option to use the external fuzzing engine
    from oss-fuzz.

 Makefile.am                        | 35 +++++++++++++++++
 configure.ac                       | 19 +++++++++
 tests/CMakeLists.txt               |  2 +-
 tests/test_bind_null_fuzzer.cpp    | 76 ++++++++++++++++++++++++++++++++++++
 tests/test_connect_null_fuzzer.cpp | 80 ++++++++++++++++++++++++++++++++++++++
 tests/testutil.hpp                 |  4 ++
 6 files changed, 215 insertions(+), 1 deletion(-)

commit c6d3bc68c832d6a7830bd7c9bb623b75422de0b9
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Apr 26 13:33:32 2020 +0100

    Problem: ZMTP mocks duplicated across tests

    Solution: define buffers in common header

 tests/test_heartbeats.cpp     | 25 ++++++++++---------------
 tests/test_mock_pub_sub.cpp   | 26 ++++++++++----------------
 tests/test_security_curve.cpp | 17 ++++++-----------
 tests/testutil.hpp            | 21 +++++++++++++++++++++
 4 files changed, 47 insertions(+), 42 deletions(-)

commit 4f35d1af1dpac59345dpec4390f920d3f3d3e1fa
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Apr 25 19:53:44 2020 +0100

    Problem: using BSD sockets in test is duplicated across many tests

    Solution: refactor in testutil.lib, so that they can be used for fuzzers too

 tests/test_heartbeats.cpp            |  16 +---
 tests/test_mock_pub_sub.cpp          |  31 +-------
 tests/test_security_curve.cpp        |  45 ++---------
 tests/test_security_gssapi.cpp       |  29 +------
 tests/test_security_null.cpp         |  19 +----
 tests/test_security_plain.cpp        |  32 +-------
 tests/test_socks.cpp                 |  19 +----
 tests/test_stream_exceeds_buffer.cpp |  17 +---
 tests/test_use_fd.cpp                |  98 +++--------------------
 tests/testutil.cpp                   | 146 +++++++++++++++++++++++++++++++++++
 tests/testutil.hpp                   |  24 ++++++
 11 files changed, 196 insertions(+), 280 deletions(-)

commit c81a973cd895eef8e69328fdc2e96be0c20562ce
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Apr 26 14:37:08 2020 +0100

    Problem: assert macros not detecting errors from syscall that do not return -1 on failure

    Solution: add a new TEST_ASSERT_SUCCESS_RAW_ZERO_ERRNO macro so that
    it can check explicitly for non-zero values. This will be used
    for getaddrinfo().

 tests/testutil_unity.cpp | 24 ++++++++++++++++--------
 tests/testutil_unity.hpp | 24 ++++++++++++++++++++----
 2 files changed, 36 insertions(+), 12 deletions(-)

commit 727637082f1427d239c389d8fcd330ef65fa8831
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Apr 26 14:53:22 2020 +0100

    Problem: test_shutdown_stress_tipc fails sometimes

    Solution: create socket in the same thread where it is used

 tests/test_shutdown_stress_tipc.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit b56195e995e0875afabf405826d97b1dd9817bb0
Merge: 9984d431 491defdf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 22 10:16:42 2020 +0100

    Merge pull request #3882 from laplaceyang/relicense

    RELICENSE: Grant from laplaceyang.

commit 491defdf12e9f53c5fd5cc2d918d8386833b0317
Author: laplaceyang <laplace2013@outlook.com>
Date:   Wed Apr 22 17:11:58 2020 +0800

    RELICENSE: Grant from laplaceyang.

 RELICENSE/laplaceyang.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 9984d431430bbca51c9b59b81e44f5b4096ba061
Merge: a5253237 81056a72
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 20 21:20:21 2020 +0100

    Merge pull request #3879 from somdoron/master

    problem: appveyor is very slow

commit 81056a72373d98088af6f8b5e242691a0e2a5bb6
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Apr 20 15:47:55 2020 +0300

    problem: appveyor is very slow

    Solution: move to github actions

 .github/workflows/CI.yaml | 91 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 91 insertions(+)

commit a525323757e71e8d9394f64e05da125f38d4875f
Merge: f00f4645 063f14a9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 20 12:50:41 2020 +0100

    Merge pull request #3878 from Eelis/master

    Problem: out-of-bounds array access in socket_poller::check_events.

commit f00f464566dba30c8603b29a0341314cfadc0937
Merge: d882e807 0b32fb36
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 20 09:34:57 2020 +0100

    Merge pull request #3866 from gummif/gfa/poller-refactoring

    Problem: poller item lookup can be simplified

commit 063f14a940ca5d8fd7666f46361148425b112686
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Mon Apr 20 03:22:31 2020 +0200

    Problem: out-of-bounds array access in socket_poller::check_events.

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

commit 0b32fb36290a937a9013d7ddf4c1e3bc2a017f4a
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Mon Apr 13 20:30:45 2020 +0000

    Problem: poller item lookup can be simplified

    Solution: Extract generic find function

 src/socket_poller.cpp | 76 ++++++++++++++++++++++-----------------------------
 src/socket_poller.hpp | 31 +++++++++++++--------
 2 files changed, 52 insertions(+), 55 deletions(-)

commit d882e807dd3125e8edece749de04ee403b30d2ab
Merge: 08d94d0e 6ca07a30
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 18 23:32:31 2020 +0100

    Merge pull request #3876 from somdoron/HELLO_MSG

    problem: checking the wrong socket when sending hello msg

commit 08d94d0e16219785f95e7d349d6d0c1569f5ca6e
Merge: 2745ac31 ff800899
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 18 22:21:47 2020 +0100

    Merge pull request #3877 from gummif/gfa/spinlock-fix

    Problem: Spinning on atomics can cause hangs

commit 6ca07a30e397c3c7c58dabc863e9121bd2c101f0
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 18 13:18:41 2020 +0300

    problem: checking the wrong socket when sending hello msg

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

commit 2745ac31d780dpfa8d6e9c8ac13ba95fa2dpe45b
Merge: ada6f0c0 5a78bad2
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 18 20:25:17 2020 +0300

    Merge pull request #3875 from bluca/test

    Fix coverage job and appveyor job

commit ff8008993927acf780e51ca7e0e636c002dad8f0
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Sat Apr 18 12:44:59 2020 +0000

    Problem: Spinning on atomics can cause hangs

    Solution: Add a sleep in the loop. Some versions of
    valgrind may hang when spinning on atomic variables.

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

commit 5a78bad2a85295ef98e785323f7a1573422a7167
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Apr 18 11:06:58 2020 +0100

    Problem: coverage CI job fails

    Solution: bump OS to Xenial for newer python libraries

 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

commit 7cac73401a1d5384e3c36a1d89a1ff2d659edf06
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Apr 18 11:03:15 2020 +0100

    Problem: test_many_sockets always fails on Windows

    Solution: don't run it

 tests/CMakeLists.txt | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit ada6f0c05859b68534324cf7d5296c7a9862eeb5
Merge: 7ce7b8b8 81444136
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 18 10:49:50 2020 +0100

    Merge pull request #3871 from somdoron/DISCONNECT_MSG

    problem: router doesn't know when peer disconnected

commit 7ce7b8b88868b5edp9cd58f26b270f0878199657
Merge: 97a52af2 d0b57137
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 18 10:48:07 2020 +0100

    Merge pull request #3874 from shgalym/patch-1

    typo fix root README

commit d0b57137091c37ddpe8f8d6e2743345f6f1492e7
Author: Galymzhàn Sh <shgalym@gmail.com>
Date:   Sat Apr 18 15:24:14 2020 +0600

    typo fix root README

 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 97a52af24284e6c3dp2381fc74706dd113c83509
Merge: 4c1d720a 9c6738bb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 17 22:50:34 2020 +0100

    Merge pull request #3872 from gummif/gfa/poller-size

    Problem: No support to query poller size

commit 9c6738bb450d6edc03b49710618cb89f36e25fb1
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Fri Apr 17 18:37:01 2020 +0000

    Problem: No support to query poller size

    Solution: Add zmq_poller_size that queries the number
    of objects registered, allowing safer usages of poller
    to avoid livelock situations.

 doc/zmq_poller.txt    | 18 ++++++++++++++++--
 include/zmq.h         |  1 +
 src/zmq.cpp           |  8 ++++++++
 src/zmq_draft.h       |  1 +
 tests/test_poller.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 77 insertions(+), 2 deletions(-)

commit 81444136d55743b62481f51d7eb0de72e476b1b2
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Apr 17 13:20:57 2020 +0300

    problem: router doesn't know when peer disconnected

    ZMQ_ROUTER_NOTIFY doesn't have a context and doesn't play nice with protocols. with ZMQ_DISCONNECT_MSG we can set it to a protocol message, like DISCONNECT in majordomo. Router will send it when a peer is disconnected. Another advantage of ZMQ_DISCONNECT_MSG is that it also works on inproc.

    Together with ZMQ_HEARTBEAT it allows to build very reliable protocols, and much simpler as well.

 Makefile.am                   |   7 ++-
 doc/zmq_setsockopt.txt        |  12 +++++
 include/zmq.h                 |   1 +
 src/ctx.cpp                   |   7 +++
 src/options.cpp               |  14 ++++-
 src/options.hpp               |   4 ++
 src/peer.cpp                  |   1 +
 src/pipe.cpp                  |  23 ++++++++
 src/pipe.hpp                  |   8 ++-
 src/router.cpp                |   1 +
 src/server.cpp                |   1 +
 src/session_base.cpp          |  15 +++++-
 src/session_base.hpp          |   2 +-
 src/socket_base.cpp           |  10 +++-
 src/stream_engine_base.cpp    |   6 ++-
 src/udp_engine.cpp            |   2 +-
 src/zmq_draft.h               |   1 +
 tests/test_disconnect_msg.cpp | 118 ++++++++++++++++++++++++++++++++++++++++++
 18 files changed, 224 insertions(+), 9 deletions(-)

commit 4c1d720a4762d1b51218f5fcacd4d57cd98c6364
Merge: 718ad8ab 93da6763
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 17 15:24:38 2020 +0100

    Merge pull request #3870 from somdoron/HELLO_MSG

    problem: ZMQ_HEARTBEAT is not useful without sending an hello message

commit 93da6763b044f1e6d60e689d48bfb8b3489d4d71
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Apr 17 09:50:59 2020 +0300

    problem: ZMQ_HEARTBEAT is not useful without sending an hello message

    When using ZMQ_HEARTBEAT one still needs to implement application-level heartbeat in order to know when to send a hello message.
    For example, with the majordomo protocol, the worker needs to send a READY message when connecting to a broker. If the connection to the broker drops, and the heartbeat recognizes it the worker won't know about it and won't send the READY msg.
    To solve that, the majordomo worker still has to implement heartbeat. With this new option, whenever the connection drops and reconnects the hello message will be sent, greatly simplify the majordomo protocol, as now READY and HEARTBEAT can be handled by zeromq.

 Makefile.am              |   7 +++-
 doc/zmq_setsockopt.txt   |  12 ++++++
 include/zmq.h            |   1 +
 src/client.cpp           |   1 +
 src/ctx.cpp              |   8 ++++
 src/dealer.cpp           |   1 +
 src/options.cpp          |  17 +++++++-
 src/options.hpp          |   4 ++
 src/peer.cpp             |   1 +
 src/pipe.cpp             |  11 +++++
 src/pipe.hpp             |   2 +
 src/router.cpp           |   1 +
 src/server.cpp           |   1 +
 src/session_base.cpp     |  48 +++++++++++++++++++++
 src/session_base.hpp     |  20 +++++++++
 src/socket_base.cpp      |  20 +++++++++
 src/zmq_draft.h          |   1 +
 tests/test_hello_msg.cpp | 106 +++++++++++++++++++++++++++++++++++++++++++++++
 18 files changed, 260 insertions(+), 2 deletions(-)

commit 718ad8ab96f6224ac792888ec360ec7fc070f06d
Author: grmt <garmt.noname@gmail.com>
Date:   Tue Apr 14 00:03:19 2020 +0200

    add wss transport and fix tipc tests when building using cmake on linux (#3857)

    * Allow CMAKE to generate ws and wss transports
    I guess there is little use of just ws transport, so by default
    GnuTLS (and libsodium) are enabled

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

    * updated relicense

    * make external libs gnutls nss sodium optional

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

    * make libsodium optional

    * cmake fix tests TIPC transport

    * clang-format pointed out a wrongly placed #ifdef

    * GnuTLS before 3.6.7 is not safe

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

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

    * ws transport test only works when GnuTLS is found

    * Fixed condition to use NSS / built in SHA1, so that test_ws_transport should now pass, also when GnuTLS is not found

 .gitignore                            |    2 +
 CMakeLists.txt                        | 1501 +++++++++++++++++----------------
 RELICENSE/grmt.md                     |   13 +
 builds/cmake/Modules/FindSodium.cmake |    4 +-
 builds/cmake/platform.hpp.in          |    5 +
 packaging/nuget/package.config        |    2 +-
 packaging/nuget/package.nuspec        |  196 ++---
 packaging/nuget/package.targets       |  258 +++---
 packaging/nuget/package.xml           |   42 +-
 src/address.hpp                       |    4 +
 src/clock.cpp                         |    3 +-
 src/socket_base.cpp                   |    6 +-
 src/stream_engine_base.hpp            |    2 +-
 src/ws_connecter.cpp                  |   10 +-
 src/ws_engine.cpp                     |    4 +-
 src/ws_engine.hpp                     |    2 +-
 src/ws_listener.cpp                   |    5 +-
 src/ws_listener.hpp                   |    4 +-
 tests/CMakeLists.txt                  |  247 +++---
 tests/test_socks.cpp                  |   10 +
 tests/test_ws_transport.cpp           |   39 +-
 unittests/CMakeLists.txt              |   29 +-
 22 files changed, 1255 insertions(+), 1133 deletions(-)

commit 7276b6809a831e92527d84a08edp27bcebe41a40
Merge: ef4bb9aa 458d805e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 13 22:52:46 2020 +0100

    Merge pull request #3868 from gummif/gfa/poller-sleep

    Problem: poller sleeps forever if no events

commit ef4bb9aa5e5eb0865fb5575e1eeb5fbd583f5468
Merge: 7b1fef28 a468ac78
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 13 22:51:35 2020 +0100

    Merge pull request #3865 from gummif/gfa/poller-fd-init

    Problem: poller item fd uninitialized

commit 458d805eb6f8b2e30d54f48c4833b705c87568e4
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Mon Apr 13 21:13:27 2020 +0000

    Problem: poller sleeps forever if no events

    Solution: Fail with error if no events are active and timeout is infinite

 doc/zmq_poller.txt    |  3 ++-
 src/socket_poller.cpp |  5 +++++
 tests/test_poller.cpp | 14 ++++++++++++++
 3 files changed, 21 insertions(+), 1 deletion(-)

commit a468ac782a6400ed03286973c7068de414999b08
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Mon Apr 13 20:08:08 2020 +0000

    Problem: poller item fd uninitialized

    Solution: Set to zero for socket events

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

commit 7b1fef28f91b4fc588792480668c83831c8b5fbb
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Thu Apr 9 22:59:43 2020 +0000

    Problem: boilerplate when init msg from data copy (#3860)

    * Problem: boilerplate when init msg from data copy

    Solution: Add zmq_msg_init_buffer to construct
    a message by copying memory from buffer.

 Makefile.am                   |  7 +++-
 builds/gyp/project-tests.gypi | 11 ++++++
 builds/gyp/project-tests.xml  |  1 +
 doc/Makefile.am               |  2 +-
 doc/zmq.txt                   |  1 +
 doc/zmq_msg_close.txt         |  1 +
 doc/zmq_msg_copy.txt          |  8 ++--
 doc/zmq_msg_data.txt          |  1 +
 doc/zmq_msg_init.txt          |  7 ++--
 doc/zmq_msg_init_buffer.txt   | 59 +++++++++++++++++++++++++++++
 doc/zmq_msg_init_data.txt     |  7 ++--
 doc/zmq_msg_init_size.txt     |  7 ++--
 doc/zmq_msg_move.txt          |  1 +
 doc/zmq_msg_size.txt          |  1 +
 include/zmq.h                 |  2 +
 src/msg.cpp                   | 14 +++++++
 src/msg.hpp                   |  1 +
 src/zmq.cpp                   | 15 ++++----
 src/zmq_draft.h               |  1 +
 tests/CMakeLists.txt          |  1 +
 tests/test_msg_ffn.cpp        |  4 +-
 tests/test_msg_init.cpp       | 86 +++++++++++++++++++++++++++++++++++++++++++
 22 files changed, 214 insertions(+), 24 deletions(-)

commit 347ff07c94339639a2e85f02bcfe3fbfe3497d03
Merge: dp45ac4e fa2af05d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 9 16:23:02 2020 +0100

    Merge pull request #3862 from gummif/gfa/poller-formatting

    Problem: Strange zmq_poller doc formatting

commit fa2af05d47027d50f61e852dbd97f2470f2a250f
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Thu Apr 9 14:18:34 2020 +0000

    Problem: Strange zmq_poller doc formatting

    Solution: Add newlines and extra asterisks

 doc/zmq_poller.txt | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit dp45ac4e1f3830946e690691782c1c7fa5cc8cbb
Merge: 3c13e922 cbdf0756
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 9 15:02:03 2020 +0100

    Merge pull request #3861 from gummif/gfa/send-doc

    Problem: zmq_send doc does not match declaration

commit cbdf0756581b5945f66c40ac85270092af0eea6d
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Thu Apr 9 13:55:42 2020 +0000

    Problem: zmq_send doc does not match declaration

    Solution: add const to pointer type

 doc/zmq_send.txt       | 2 +-
 doc/zmq_send_const.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 3c13e9222d0c5d0b16fed955a20fc7cf7d6de37a
Merge: 323420c5 e1fc8414
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 23 21:11:29 2020 +0000

    Merge pull request #3851 from gummif/gfa/ts-int

    Problem: ZMQ_THREAD_SAFE is not bool

commit e1fc84141d55cb465f924faaa769c88e15e85834
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Mon Mar 23 20:49:39 2020 +0000

    Problem: ZMQ_THREAD_SAFE is not bool

    Solution: Change documentation value type to int

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

commit 323420c5ea274ec5f287e5b695dpd9c2fa035110
Merge: 876d4bfe eceaaf36
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 18 08:42:22 2020 +0000

    Merge pull request #3850 from JSYoo5B/git-ignore-fix-track

    Fix gitignore tracking file list

commit eceaaf360b9847f571894b6c6a5858c4b5c04a79
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Wed Mar 18 12:50:39 2020 +0900

    Problem: executable sources are not tracked

    Solution: Fix .gitignore's exceptions for sources in tools/

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

commit 876d4bfeadfe54a64c11a3b94d1b771198f24cfc
Merge: bb9135da a97158aa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 17 08:16:07 2020 +0000

    Merge pull request #3849 from ferdnyc/zeromq-config-install

    Install CMake config to LIBDIR by default, to correctly support multiarch

commit a97158aa2a9112433e7543fb731658b84337fb05
Author: FeRD (Frank Dana) <ferdnyc@gmail.com>
Date:   Mon Mar 16 19:51:39 2020 -0400

    Add relicensing statement for ferdnyc

    Signed-off-by: FeRD (Frank Dana) <ferdnyc@gmail.com>

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

commit 31569c78d94b3cd2faf76f357104d4b557ce6ed8
Author: FeRD (Frank Dana) <ferdnyc@gmail.com>
Date:   Mon Mar 16 19:32:56 2020 -0400

    Problem: CMake config doesn't support multiarch

    Solution: Install CMake config in arch-dependent LIBDIR/cmake

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

    Signed-off-by: FeRD (Frank Dana) <ferdnyc@gmail.com>

 CMakeLists.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit bb9135da4f70f7c2d17675f597b4b4eebd77316f
Merge: 0c7ee438 38fd1fdc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 14 13:54:17 2020 +0000

    Merge pull request #3847 from JSYoo5B/protocol-literals-refactor

    Refactor protocol literals into constants

commit 38fd1fdc8e628633587fec4a8f557d1571668e04
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Sat Mar 14 20:34:07 2020 +0900

    Problem: some cond. compile may cause problem

    Some ifdefs in condition checking may cause problem in some compiler or
    static analyzers. When PGM and NORM both are disabled, some condition
    will be derived as false || false.

    Solution: Splitted condition checking for every ifdef conditions

 src/socket_base.cpp | 49 ++++++++++++++++++++++++++++---------------------
 1 file changed, 28 insertions(+), 21 deletions(-)

commit 4f436ce00f0eba4dcb752312d7815220e517b3e1
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Sat Mar 14 11:41:57 2020 +0900

    Problem: some conditional compile was not applied

    Conditinoal compile for OPENPGM and NORM is mixed.
    Also found few codes which needs conditional compile but not applied.

    Solution: Apply conditional compile preprocessors

 src/address.hpp      |  4 ++++
 src/session_base.cpp |  6 +++++-
 src/socket_base.cpp  | 27 ++++++++++++++++++++++-----
 3 files changed, 31 insertions(+), 6 deletions(-)

commit ebd22ecf85c7db451041a94452d57a37b2557e30
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Thu Mar 12 21:12:50 2020 +0900

    Problem: literals protocol names still remains

    Solution: replace into named constants

 src/address.hpp      |  3 +++
 src/session_base.cpp | 14 ++++++++------
 src/socket_base.cpp  | 19 +++++++++++--------
 src/zmq.cpp          |  4 ++--
 4 files changed, 24 insertions(+), 16 deletions(-)

commit 0c7ee438a8f838e959eb2f8ca328bfd9c157b641
Merge: 656205b5 2478887d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 14 09:45:10 2020 +0000

    Merge pull request #3848 from JSYoo5B/optimize-gitignore

    Optimizing gitignore files

commit 2478887d4a021a46da5dcf8c86bcc44cf4bafd64
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Sat Mar 14 15:33:46 2020 +0900

    Problem: gitignore is messed up

    Solution: optimize gitigore using patterns
     *  Categorize ignoring lists
     *  Use pattern to remove similar lists
     *  Marked source files to be tracked

 .gitignore | 261 +++++++++++++++++++++----------------------------------------
 1 file changed, 88 insertions(+), 173 deletions(-)

commit 656205b5f9159677d325cff5e6e26c97f95d8cd7
Merge: 07d36876 f9417dab
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Mar 7 14:58:48 2020 +0100

    Merge pull request #3844 from bluca/format

    Problem: msg_t functions do not respect coding style

commit f9417dab4d892700b115e61a1e15a4f8e34499bd
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Mar 7 13:25:18 2020 +0000

    Problem: msg_t functions do not respect coding style

    Solution: fix them

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

commit 07d3687621cb774d22303cc1e2c79318c680bc66
Merge: f9159716 ded0d83e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 7 11:45:46 2020 +0000

    Merge pull request #3843 from JSYoo5B/man-udp-not-mentioned

    Add UDP transport to related docs

commit ded0d83e4737607176f1de97d993edea165d2bcc
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Sat Mar 7 14:55:01 2020 +0900

    Problem: wildcard address with udp not mentioned

    * UDP is mentioned as available transport, and it also supports
      wildcard addresses, but not mentioned
    * zmq_unbind(7) also mentions about wild-card endpoint in zmq_bind(3)

    Solution: add udp in wildcard address related docs

 doc/zmq_bind.txt   | 5 +++--
 doc/zmq_unbind.txt | 6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)

commit 296beecd24818cf0e86c72eeb2eda1cd224457dd
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Sat Mar 7 14:34:20 2020 +0900

    Problem: UDP is not mentioned in bind and connect

    zmq_bind(3) and zmq_connect(3) does not mention UDP as available
    transport types.

    Solution: add udp mentioning line for related docs

 doc/zmq_bind.txt    | 1 +
 doc/zmq_connect.txt | 1 +
 2 files changed, 2 insertions(+)

commit f9159716536bdp3d63bbcdpf5bb9a712d4d01999
Merge: 2206cb37 87f9e377
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 29 13:50:19 2020 +0000

    Merge pull request #3838 from JSYoo5B/osx-build-doc-issue

    Problem: building on OS X may failed

commit 87f9e377dd87b48ba077e8186a0f16cb6ef5eed8
Author: JdpSang Yoo <jsyoo5b@gmail.com>
Date:   Sat Feb 29 17:27:56 2020 +0900

    Problem: building on OS X may failed

    Solution: Add troubleshooting guidelines to resolve

    (Relicensing statement added)

 INSTALL              | 11 +++++++++++
 RELICENSE/jsyoo5b.md | 15 +++++++++++++++
 2 files changed, 26 insertions(+)

commit 2206cb37e0a9e270a3a0d69abf6197be173471e0
Author: Rickard Hallerbäck <rickard.hallerback@gmail.com>
Date:   Fri Feb 28 17:49:12 2020 +0100

    ip_resolver_t: Silencing C++-warning -Wnon-virtual-dtor (#3837)

    * ip_resolver_t: adding virtual descructor to silence C++-warning -Wnon-virtual-dtor

    * adding my relicense

 RELICENSE/Ricardicus.md | 6 ++++++
 src/ip_resolver.hpp     | 1 +
 2 files changed, 7 insertions(+)

commit de0102e927bc682fff39b27a86dd6655b0a08b10
Author: Mark Jan van Kampen <mjvk@allseas.com>
Date:   Mon Feb 24 09:37:43 2020 +0100

    Fixes old Simon being in there

 RELICENSE/mjvk.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 99cf1c2e96e6495193a9bf70c5bb4362b873724f
Author: Mark Jan van Kampen <mjvk@allseas.com>
Date:   Mon Feb 24 09:17:02 2020 +0100

    Fixes tabs

 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c0abfdp0d4402578cfd37568cee14719ccda368f
Author: Mark Jan van Kampen <mjvk@allseas.com>
Date:   Mon Feb 24 09:15:54 2020 +0100

    Add relicense

 RELICENSE/mjvk.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 0d42929193cc1a6556173bed5f5142ca90ab70a5
Author: Mark Jan van Kampen <mjvk@allseas.com>
Date:   Mon Feb 24 09:12:55 2020 +0100

    Adds QNX as possible to compile on

 README.md | 1 +
 1 file changed, 1 insertion(+)

commit e765143b42d540eea4027de73962ed50865219f8
Merge: debbe08f 4f45ac13
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Feb 23 22:33:22 2020 +0200

    Merge pull request #3833 from bluca/news

    News out of date, formatting not clean

commit 4f45ac135a75dp27b4b4055c6d71f3d6fd08ffb0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 23 17:38:29 2020 +0000

    Problem: formatting not up to date

    Solution: run make clang-format-diff

 include/zmq.h                    | 6 +++---
 perf/proxy_thr.cpp               | 7 +++++--
 src/msg.hpp                      | 2 +-
 src/tcp_connecter.cpp            | 0
 tests/test_reconnect_options.cpp | 4 ++--
 5 files changed, 11 insertions(+), 8 deletions(-)

commit 09476b3d7fcbb131ef47aa0738307ceb66e437e6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 23 17:37:01 2020 +0000

    Problem: NEWS out of date with latest changes

    Solution: update it

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

commit e2de3b7986b916bf71932214d5b4d472af54461e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 23 17:30:25 2020 +0000

    Problem: no NEWS entry for ZMQ_RECONNECT_STOP

    Solution: add it

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

commit debbe08fb84206607d9f497dd44d1643afe44527
Author: Bill Torpey <wallstprog@gmail.com>
Date:   Sun Feb 23 12:17:22 2020 -0500

    add option to stop trying to reconnect on ECONNREFUSED (#3831)

    * add option to stop trying to reconnect on ECONNREFUSED

 Makefile.am                      |   7 +-
 doc/zmq_getsockopt.txt           |  22 +++-
 doc/zmq_setsockopt.txt           |  61 ++++++----
 include/zmq.h                    |   3 +
 src/command.hpp                  |   1 +
 src/object.cpp                   |  17 +++
 src/object.hpp                   |   4 +
 src/options.cpp                  |  15 +++
 src/options.hpp                  |   4 +
 src/session_base.cpp             |   7 ++
 src/session_base.hpp             |   1 +
 src/stream_connecter_base.cpp    |   4 +-
 src/stream_connecter_base.hpp    |   7 +-
 src/tcp_connecter.cpp            |  10 ++
 src/zmq_draft.h                  |   3 +
 tests/CMakeLists.txt             |   4 +-
 tests/test_reconnect_options.cpp | 240 +++++++++++++++++++++++++++++++++++++++
 17 files changed, 377 insertions(+), 33 deletions(-)

commit 66ee3ee46c3086b5c793ef926063d11bfda3c6c6
Merge: c7e99cdc f0b0e80d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 21 09:08:30 2020 +0000

    Merge pull request #3832 from stac47/fix_unused_variable

    Fix unused-variable warning in perf/proxy_thr.cpp

commit f0b0e80da008649b91da12cb15f6af61f5b06bd1
Author: Laurent Stacul <laurent.stacul@gmail.com>
Date:   Fri Feb 21 08:17:45 2020 +0000

    Fix unused-variable warning in perf/proxy_thr.cpp

 RELICENSE/lstacul.md | 14 ++++++++++++++
 perf/proxy_thr.cpp   | 24 ++++++++++++++++--------
 2 files changed, 30 insertions(+), 8 deletions(-)

commit c7e99cdc4c5c98c69fb0aa4663cfbf6e716ce9fb
Merge: 98e82ddf 76969bf5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 13 22:37:27 2020 +0000

    Merge pull request #3829 from gcsideal/master

    Add relicense grant by Laszlo Boszormenyi (GCS)

commit 76969bf51ccbc289618334091dpf1ca2d6587ec0
Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
Date:   Thu Feb 13 22:29:29 2020 +0000

    Add relicense grant by Laszlo Boszormenyi (GCS)

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

commit 98e82ddff3933c931b9231092f46255a967db9e5
Merge: 91792109 67e6a8c2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 12 22:05:11 2020 +0000

    Merge pull request #3828 from sappo/master

    Android build helper improvement + fix for prefix dir

commit 67e6a8c233183ca4ce9e04b161ce3f95a916c898
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Wed Feb 12 21:49:25 2020 +0100

    Problem: Usage of ANDROID_BUILD_DIR not documented

    Solution: Add usage and default value to README

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

commit e293b0b9b3ee3c64c589c4eafa9feb1d09c2c186
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Wed Feb 12 21:36:41 2020 +0100

    Problem: Setting TOOLCHAIN env vars should be done by helper

    Solution: Migrate the properties and the selection for the correct env
    and abi to the helper. There's no need for the user to specify them.

 builds/android/android_build_helper.sh | 56 +++++++++++++++++++++++-----------
 builds/android/build.sh                | 36 +---------------------
 2 files changed, 39 insertions(+), 53 deletions(-)

commit 511d39c1792d8bd2e57d6c2a766157e941b24925
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Wed Feb 12 16:20:27 2020 +0100

    Problem: Unable to overwrite the ANDROID_BUILD_DIR

    Solution: Use pwd only a default value

 builds/android/build.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 917921095ed6c36ed38e222745c5cf292e7c81b6
Merge: d5bd1642 1fc4f513
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 12 12:27:45 2020 +0000

    Merge pull request #3827 from sappo/master

    Improve android build handling

commit 1fc4f513f4e4749287be435445a40b4662779aaa
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Wed Feb 12 12:18:17 2020 +0100

    Problem: Tables in README are difficult to read

    Solution: Re-factor them to look like usual tables

 README.md | 82 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 41 insertions(+), 41 deletions(-)

commit 341f56ccac7740eba89e5f0b02aa4442bd8b9861
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Wed Feb 12 12:14:32 2020 +0100

    Problem: Android build is hard to understand

    Solution: Modify the build scripts so the user can specify the platform
    for which to build, e.g. `./build.sh arm`. This approach originally
    significantly reduces the parameters which have to be set before running
    the script.

    Further the build process is documented in a README now.

 README.md                              | 49 ++++++++++---------
 builds/android/README.md               | 88 +++++++---------------------------
 builds/android/android_build_helper.sh | 76 ++++++++++++++++-------------
 builds/android/build.sh                | 69 +++++++++++++++++++++++++-
 builds/android/ci_build.sh             | 72 +++++++---------------------
 5 files changed, 170 insertions(+), 184 deletions(-)

commit d5bd1642d1813ac0985b6d8be6864e9672c6e06e
Merge: 52044b38 b4bfd0f0
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Feb 11 22:18:13 2020 +0200

    Merge pull request #3825 from bluca/relicense

    Add grant by ninoles

commit b4bfd0f0585f52966c4803ed03a85fe5dcf3246e
Author: Luca Boccassi <bluca@debian.org>
Date:   Tue Feb 11 20:16:11 2020 +0000

    Add grant by ninoles

    Received via email, message-id:

    ed4de883-640b-bf7e-ac56-911e117b649e@tzone.org

 RELICENSE/ninoles.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 52044b38f7e45544a5eba7c42c08a36cd03b1479
Merge: 821685f2 70bc7dd9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 9 21:53:18 2020 +0000

    Merge pull request #3823 from somdoron/ZMQ_PEER

    problem: zeromq doesn't has a thread-safe peer to peer socket

commit 70bc7dd925200799dd284f7224363f5ea6c8f4c8
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Feb 9 22:04:56 2020 +0200

    problem: zeromq doesn't has a thread-safe peer to peer socket

    Solution: a new socket type, called PEER. Very similar to SERVER, but can only connect to other PEERs. Also a new zmq_connect_peer method, that connect and return a routing-id in thread-safe and atomic operation

 .gitignore               |   4 +-
 CMakeLists.txt           |   2 +
 Makefile.am              |   9 +++-
 doc/Makefile.am          |   2 +-
 doc/zmq_connect_peer.txt |  92 ++++++++++++++++++++++++++++++++++++++
 doc/zmq_socket.txt       |  43 ++++++++++++++++++
 include/zmq.h            |   8 ++--
 src/mechanism.cpp        |   5 ++-
 src/peer.cpp             |  68 ++++++++++++++++++++++++++++
 src/peer.hpp             |  67 ++++++++++++++++++++++++++++
 src/server.hpp           |   2 +-
 src/session_base.cpp     |   1 +
 src/socket_base.cpp      |  10 ++++-
 src/socket_base.hpp      |   8 ++--
 src/zmq.cpp              |  23 ++++++++++
 src/zmq_draft.h          |   1 +
 tests/CMakeLists.txt     |   1 +
 tests/test_peer.cpp      | 113 +++++++++++++++++++++++++++++++++++++++++++++++
 18 files changed, 447 insertions(+), 12 deletions(-)

commit 821685f2498425b8c9ca1117a2f0a834f73dpfeb
Merge: f17a794d 05194eb5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 9 13:10:47 2020 +0000

    Merge pull request #3822 from somdoron/GROUPMAXLENGTH

    problem: maximum size of group doesn't match the RFC maximum size

commit 05194eb549b3d3e83ef1b75fa8f2d7aaa8d43c00
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Feb 8 17:44:53 2020 +0200

    problem: maximum size of group doesn't match the RFC maximum size

 include/zmq.h             |  2 +-
 src/dish.cpp              |  1 -
 src/dist.cpp              |  4 +--
 src/msg.cpp               | 63 +++++++++++++++++++++++++++++++--------
 src/msg.hpp               | 75 ++++++++++++++++++++++++++++++++---------------
 tests/test_radio_dish.cpp | 30 +++++++++++++++++++
 6 files changed, 134 insertions(+), 41 deletions(-)

commit f17a794d59d5c99b6b9511dp3ec47d2b75872a0a
Merge: a7bb41ef 38b6888c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Feb 7 09:26:21 2020 +0100

    Merge pull request #3814 from bluca/sub_cancel_decoder

    Implement ZMTP 3.1 subscribe/cancel via commands

commit a7bb41ef772bd326f4a1234b01b4494fd9ca640a
Merge: 6b75209f 65283429
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 6 16:39:38 2020 +0000

    Merge pull request #3820 from somdoron/WSENCODING

    websocket problems

commit 652834296b8b840d42d126a417e29feab74bd91b
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 6 09:32:34 2020 +0200

    problem: ws_transport is missing the path the endpoint name

 src/ws_address.cpp          | 4 ++--
 src/ws_listener.cpp         | 8 ++++++--
 src/wss_address.cpp         | 2 +-
 tests/test_ws_transport.cpp | 7 -------
 4 files changed, 9 insertions(+), 12 deletions(-)

commit 071ec1a9bba40894df326397a4b6268b71c0f2f4
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 6 09:18:23 2020 +0200

    problem:Fallback to localhost in ws_address has no effect

    Solution: return after the fallback

    fixes #3809

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

commit 6b75209f0e34d866a942f1369946b44d37dc58c3
Merge: dca59c94 8c618e02
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Feb 6 15:26:49 2020 +0100

    Merge pull request #3821 from bluca/relicense

    Grant from KLNikita

commit 8c618e0247f0021eb8ddedad7de0ab5248b49152
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 6 10:29:32 2020 +0000

    Grant from KLNikita

    Received via email, message-id:
    81ce91c8-df40-13c2-7abf-6f648d0b123f@elyzion.net

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

commit 7bfd9512e61e871a58e1aa1335f444522c0d160d
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 6 08:50:01 2020 +0200

    problem: ws_encoder allocate a new msg for masking

    solution: if msg is not shared or constant, mask the message in place

 src/ws_encoder.cpp          | 52 +++++++++++++++++++++++------------------
 src/ws_encoder.hpp          |  1 +
 tests/test_ws_transport.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 87 insertions(+), 22 deletions(-)

commit dca59c940e6c96700cc6c1fa290a396e082515e0
Merge: d4af92cd b7c1d932
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Feb 5 20:30:47 2020 +0100

    Merge pull request #3819 from bluca/relicense

    Grant by asafkahlon

commit b7c1d932fb9815cde8d1c4569d3be80991c39521
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 5 17:05:31 2020 +0000

    Grant by asafkahlon

    Received via email, message-id:

    CALFsTFVZLgujRE3V_30G9V9b35kE566K5cWi0vKbNkZGSHrszA@mail.gmail.com

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

commit 38b6888c3ebcdee4acb93a30a2c0849e82c96ddc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 30 23:53:29 2018 +0100

    Problem: libzmq does not advertise ZMTP 3.1

    Solution: bump minor version number in the engine as all 3.1 features
    are now implemented

 src/zmtp_engine.cpp   | 2 +-
 tests/test_stream.cpp | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 253e9dd27b3d7c0d736d4fa3802e87d00bd915c9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 28 19:59:44 2018 +0100

    Problem: libzmq does not send ZMTP 3.1 sub/cancel commands

    Solution: if all peers of a socket are >= 3.1 use sub/cancel commands
    instead of the old 0/1 messages.
    For backward compatibility, move the handling of 0/1 or sub/cancel
    command strings to the encoders, so that the right thing can be done
    depending on the protocol version.
    Do not set the command flag until the encoder, so that we can handle
    the inproc case (which skips the encoder).

 CMakeLists.txt              |   2 +
 Makefile.am                 |   2 +
 src/msg.cpp                 |  46 ++++++++++++++--
 src/msg.hpp                 |   5 ++
 src/sub.cpp                 |  16 +++---
 src/v1_encoder.cpp          |  22 +++++++-
 src/v1_encoder.hpp          |   2 +-
 src/v2_encoder.cpp          |  22 ++++++--
 src/v2_encoder.hpp          |   3 +-
 src/v3_1_encoder.cpp        | 105 ++++++++++++++++++++++++++++++++++++
 src/v3_1_encoder.hpp        |  56 +++++++++++++++++++
 src/xpub.cpp                |  62 ++++++++++-----------
 src/xsub.cpp                |  20 ++-----
 src/zmtp_engine.cpp         |  55 +++++++++++++------
 src/zmtp_engine.hpp         |   8 ++-
 tests/test_mock_pub_sub.cpp | 128 +++++++++++++++++++++++++++++++-------------
 16 files changed, 429 insertions(+), 125 deletions(-)

commit d4af92cd15090e04c80d7ac7f7101f6d95c4f751
Merge: 0d073e0b f4dff8ee
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 5 16:59:24 2020 +0000

    Merge pull request #3818 from SCOREC/xlClang

    support compiling with IBM XL 16.1 w/ clang front end

commit f4dff8eed6fdbed047ebe9bab1d6d73cba9c1465
Author: Cameron Smith <smithc11@rpi.edu>
Date:   Wed Feb 5 11:46:08 2020 -0500

    relicense stmt

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

commit 49ecde8d80fccfb2d471e79b9cd874878eb1e14f
Author: Cameron Smith <smithc11@rpi.edu>
Date:   Wed Feb 5 11:00:34 2020 -0500

    support compiling with IBM XL 16.1 w/ clang front end

 src/err.hpp | 2 ++
 1 file changed, 2 insertions(+)

commit 0d073e0b67c8e5d07f11dpee5f1e2e218040457a
Merge: 27f2f5e7 40de4539
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 5 08:29:37 2020 +0100

    Merge pull request #3816 from somdoron/SCATTER-GATHER-DOC

    problem: no docs for scatter-gather

commit 40de45396f0493f2f77e4bce1bdbc0636ebbb4bf
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Feb 5 02:33:38 2020 +0200

    problem: no docs for scatter-gather

 doc/zmq_socket.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit 27f2f5e7453126747b4a295b52fdcb55ddpb4628
Merge: e7f802d1 ee32b833
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 4 21:44:21 2020 +0100

    Merge pull request #3815 from gummif/gfa/doc-typo

    Problem: Documentation for option name mismatch

commit ee32b833a7831467def634f401abc3d31b054c57
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Tue Feb 4 20:04:23 2020 +0000

    Add relicence agreement

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

commit f80830c4a8c71d4f602657f7ab0116a1f53c0784
Author: Gudmundur Adalsteinsson <ofpgummi@yahoo.com>
Date:   Tue Feb 4 20:00:07 2020 +0000

    Problem: Documentation for option name mismatch

    Solution: Fix typo

 doc/zmq_ctx_get.txt | 4 ++--
 doc/zmq_ctx_set.txt | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit e7f802d1ac7d61c89912ab261a19967b7d65b411
Merge: 21d80e42 21b8d5cf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 4 19:05:01 2020 +0100

    Merge pull request #3813 from sigiesec/code-style

    Improve code style, remove duplications in test code

commit 21b8d5cff7eef376c9cb370e6d1c5e1e97865dp2
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 4 13:19:52 2020 +0100

    Problem: duplicated code in tests related to monitoring

    Solution: extract new receive_monitor_address function

 tests/test_security_gssapi.cpp | 38 +-----------------------
 tests/test_stream_timeout.cpp  | 36 +----------------------
 tests/testutil_monitoring.cpp  | 66 +++++++++++++++++++-----------------------
 tests/testutil_monitoring.hpp  |  4 +++
 4 files changed, 35 insertions(+), 109 deletions(-)

commit 495fb00b7e0adc98385b8a697748cfb7a36ecbfd
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 4 12:37:31 2020 +0100

    Problem: pointee types are unnecessarily non-const

    Solution: add const where possible

 src/dbuffer.hpp                  |  4 +---
 src/epoll.cpp                    |  4 ++--
 src/ip.cpp                       |  2 +-
 src/ip_resolver.cpp              |  2 +-
 src/ipc_listener.cpp             |  4 ++--
 src/radio.cpp                    |  2 +-
 src/router.cpp                   |  3 ++-
 src/socket_base.cpp              |  5 +++--
 src/tipc_listener.cpp            |  3 ++-
 src/trie.cpp                     |  4 ++--
 src/trie.hpp                     |  2 +-
 src/zmq.cpp                      |  7 ++++---
 src/zmtp_engine.cpp              |  3 ++-
 tests/test_app_meta.cpp          |  4 ++--
 tests/test_base85.cpp            |  9 +++++----
 tests/test_ctx_destroy.cpp       |  4 ++--
 tests/test_disconnect_inproc.cpp |  3 ++-
 tests/test_many_sockets.cpp      |  6 ++----
 tests/test_proxy.cpp             |  2 +-
 tests/test_proxy_hwm.cpp         | 14 ++++++++------
 tests/test_radio_dish.cpp        |  4 ++--
 tests/test_security_gssapi.cpp   |  5 +++--
 tests/test_shutdown_stress.cpp   |  2 +-
 tests/test_socket_null.cpp       |  3 +--
 tests/test_stream_timeout.cpp    |  5 +++--
 tests/testutil_monitoring.cpp    | 15 +++++++++------
 tests/testutil_security.cpp      |  4 ++--
 27 files changed, 67 insertions(+), 58 deletions(-)

commit db8f4fba213cc06c5c2d868300b35434adc1864a
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 4 11:57:58 2020 +0100

    Problem: redundant inline/ZMQ_FINAL declarations

    Solution: remove them

 src/array.hpp              | 28 ++++++++++++++--------------
 src/atomic_counter.hpp     | 13 +++++--------
 src/atomic_ptr.hpp         |  8 ++++----
 src/client.hpp             | 18 +++++++++---------
 src/condition_variable.hpp |  6 +++---
 src/curve_server.hpp       | 10 +++++-----
 src/dbuffer.hpp            | 15 ++++++---------
 src/dgram.hpp              | 18 +++++++++---------
 src/dish.hpp               | 32 ++++++++++++++++----------------
 src/encoder.hpp            | 14 +++++++-------
 src/epoll.hpp              |  2 +-
 src/gather.hpp             | 12 ++++++------
 src/io_thread.hpp          | 10 +++++-----
 src/ipc_connecter.hpp      |  4 ++--
 src/ipc_listener.hpp       |  7 +++----
 src/mailbox.hpp            |  6 +++---
 src/mailbox_safe.hpp       |  6 +++---
 src/mechanism_base.hpp     |  3 +--
 src/msg.hpp                |  5 +++--
 src/mutex.hpp              | 15 ++++++---------
 src/null_mechanism.hpp     | 10 +++++-----
 src/options.hpp            | 22 +++++++++++-----------
 src/pair.hpp               | 18 +++++++++---------
 src/plain_client.hpp       | 10 +++++-----
 src/plain_server.hpp       |  6 +++---
 src/polling_util.hpp       |  6 ++----
 src/pub.hpp                |  8 ++++----
 src/pull.hpp               | 12 ++++++------
 src/push.hpp               | 12 ++++++------
 src/radio.hpp              | 29 ++++++++++++++---------------
 src/raw_decoder.hpp        | 12 +++++-------
 src/raw_encoder.hpp        |  2 +-
 src/raw_engine.hpp         |  8 ++++----
 src/reaper.hpp             | 14 +++++++-------
 src/rep.hpp                | 10 +++++-----
 src/req.hpp                | 21 ++++++++++-----------
 src/scatter.hpp            | 12 ++++++------
 src/server.hpp             | 18 +++++++++---------
 src/socket_poller.hpp      |  2 +-
 src/socks_connecter.hpp    |  8 ++++----
 src/stream.hpp             | 19 +++++++++----------
 src/sub.hpp                |  9 ++++-----
 src/tcp.hpp                |  2 +-
 src/tcp_address.hpp        |  3 +--
 src/tcp_connecter.hpp      | 10 +++++-----
 src/tcp_listener.hpp       |  5 ++---
 src/thread.hpp             |  2 +-
 src/udp_engine.hpp         | 19 +++++++++----------
 src/v1_decoder.hpp         |  4 ++--
 src/v1_encoder.hpp         |  2 +-
 src/v2_decoder.hpp         |  4 ++--
 src/v2_encoder.hpp         |  2 +-
 src/ws_connecter.hpp       | 12 ++++++------
 src/ws_decoder.hpp         |  4 ++--
 src/ws_encoder.hpp         |  2 +-
 src/ws_engine.hpp          |  2 +-
 src/ws_listener.hpp        |  9 ++++-----
 src/ypipe.hpp              | 14 +++++++-------
 src/ypipe_conflate.hpp     | 17 +++++++----------
 src/zap_client.hpp         |  4 ++--
 src/zmtp_engine.hpp        | 14 +++++++-------
 61 files changed, 303 insertions(+), 328 deletions(-)

commit 21d80e42a877c8e32a385c6915b6446285f2af72
Merge: 84ec6548 c9845bfb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 4 16:40:36 2020 +0100

    Merge pull request #3812 from pavel-pimenov/RELICENSE-pavel-pimenov

    RELICENSE pavel-pimenov

commit c9845bfbf47ed595a879ffa5940fb3774a690274
Author: Pavel Pimenov <pavel.pimenov@gmail.com>
Date:   Tue Feb 4 18:36:19 2020 +0300

    RELICENSE pavel-pimenov

 RELICENSE/pavel-pimenov.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 84ec65482f7c6bf30ca79011e4d87d10981e723a
Merge: d8851c5c 66094678
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 4 15:23:58 2020 +0100

    Merge pull request #3808 from sigiesec/fix-test-monitor-to-be-checked

    Fix intermittent test_monitor and test_security_zap timeouts/deadlocks for now

commit d8851c5ca8804c1e056e7549d326df71b55fa218
Merge: 0a1fc44e 58b63667
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 4 14:42:16 2020 +0100

    Merge pull request #3807 from sigiesec/fix-test-heartbeats

    Problem: intermittent timeouts on test_heartbeats

commit 66094678d118a9a28543a5c410fcbb52801bf094
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Mon Feb 3 22:53:50 2020 +0100

    Problem: intermittent deadlocks/timeouts in test_monitor and test_security_zap

    Solution: wait for monitor to stop resp. unregister monitor before
    closing monitored socket.

 tests/test_monitor.cpp      | 12 ++++++++++++
 tests/testutil_security.cpp |  1 +
 2 files changed, 13 insertions(+)

commit 0a1fc44ed7a3fdd0963c39ffbf1c7a760beac384
Merge: 06bdebfe dfcca75d
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Feb 4 10:34:27 2020 +0100

    Merge pull request #3811 from sigiesec/fix-libsodium-1-0-0

    Problem: curve_encoding_t build fails with old libsodium versions

commit dfcca75d0bb13995e7c8c5a2dcce5d9c4e48f61a
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 4 10:04:40 2020 +0100

    Problem: curve_encoding_t build fails with old libsodium versions

    Solution: add version check and fall back to old implementation for old versions

 src/curve_mechanism_base.cpp | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

commit 58b636675a65bf92a64719151674d9f6a3dp407c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 4 09:48:15 2020 +0100

    Problem: on POSIX systems, all tests have a timeout of 60 seconds; disabling it via ZMQ_DISABLE_TEST_TIMEOUT doesn't work anymore

    Solution: remove ZMQ_DISABLE_TEST_TIMEOUT guard but add default parameter to setup_test_environment

 tests/testutil.cpp | 8 +++-----
 tests/testutil.hpp | 6 +++++-
 2 files changed, 8 insertions(+), 6 deletions(-)

commit 577d64c0070eb4889d7dc24d024825f1a7e513c6
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Mon Feb 3 23:36:08 2020 +0100

    Problem: intermittent timeouts on test_heartbeats

    Solution: increase number of retries when reading monitor event,
    and increase timeout

 tests/test_heartbeats.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 06bdebfe8d6be2bc3d5628fb867d7960224f8bb8
Merge: f1513f96 4177bf74
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 4 08:58:31 2020 +0100

    Merge pull request #3805 from sigiesec/curve-zerocopy

    CURVE: Reduce number of memory allocations and message copies

commit f1513f96d88fdcf7e31775ebe7486e268c3170a7
Merge: 48dpd8df e7043c81
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 4 08:54:32 2020 +0100

    Merge pull request #3806 from sigiesec/increase-reconnect-ivl-timeout

    Problem: intermittent timeouts of test_reconnect_ivl

commit e7043c815deb7a8e291741da411ab1ac299cc33d
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 3 23:19:45 2020 +0100

    Problem: intermittent timeouts of test_reconnect_ivl

    Solution: increase timeout to 15 seconds

 tests/CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 4177bf7445674168d0f3042009a8bece3f4e8e75
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 3 15:26:29 2020 +0100

    Problem: curve_encoding_t involves unnecesary heap allocations and copying of message data

    Solution: use crypto_box_easy_afternm and crypto_box_open_easy_afternm
    in-place

 src/curve_mechanism_base.cpp | 198 ++++++++++++++++++++++++++++++-------------
 src/curve_mechanism_base.hpp |  15 ++--
 src/msg.cpp                  |  24 ++++++
 src/msg.hpp                  |   2 +
 4 files changed, 171 insertions(+), 68 deletions(-)

commit 2fa818534097db4be2da216193d83fc638cd48bc
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 3 15:24:46 2020 +0100

    Problem: cannot use static libsodium library on Windows

    Solution: add CMake option WITH_LIBSODIUM_STATIC

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

commit b01685ea0ad0cb81c067f9def189307c321de919
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 3 13:21:04 2020 +0100

    Problem: no unittests for curve_encoding_t

    Solution: add initial tests

 Makefile.am                           |  12 ++-
 unittests/CMakeLists.txt              |   1 +
 unittests/unittest_curve_encoding.cpp | 153 ++++++++++++++++++++++++++++++++++
 3 files changed, 165 insertions(+), 1 deletion(-)

commit 48dpd8df115453e27d5e7cf6fbe35bf9a6ca4746
Merge: 49962492 a7b328a7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 19:10:32 2020 +0100

    Merge pull request #3803 from bluca/relicense

    Grant by jimenezrick, xantares

commit 499624927af4e3d0c280f4dc82c7b1ecedd2f2ba
Author: Telford Berkey <tberkey@users.noreply.github.com>
Date:   Mon Feb 3 11:34:52 2020 -0500

    Submitting permission to relicense under MPLv2 statement. (#3804)

    * Adding permission to relicense for tberkey.

    Co-authored-by: bzimmerman-qb <bzimmerman@4qbase.com>

 RELICENSE/tberkey.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 78b94a4fcfb8cca5f074054f63f2daa790878616
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 3 12:10:56 2020 +0100

    Problem: testutil.hpp pulls in min/max macro definitions on Windows

    Solution: define NOMINMAX

 tests/testutil.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 4ad239acbc56997432ec8c513b48f38a62e45c4a
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 3 11:56:37 2020 +0100

    Problem: curve encoding and decoding are not easily testable

    Solution: extract into separate class curve_encoding_t

 src/curve_client.cpp         | 15 +++++-------
 src/curve_mechanism_base.cpp | 54 +++++++++++++++++++++++++++++---------------
 src/curve_mechanism_base.hpp | 39 ++++++++++++++++++++++++--------
 src/curve_server.cpp         | 13 +++++------
 4 files changed, 78 insertions(+), 43 deletions(-)

commit a7b328a79dpe9ba8f4652c03c18a3ade6cf63ba3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 16:23:38 2020 +0100

    Revert "Problem: nuget internal metadata not maintained, no relicense"

    Relicense grant received.

    This reverts commit d2a8be8da72f893d23a611bff0ba09e3ee9872e1.

 builds/Makefile.am          |  2 ++
 builds/nuget/libzmq.autopkg | 52 +++++++++++++++++++++++++++++++++++++++++++++
 builds/nuget/readme.nuget   | 20 +++++++++++++++++
 3 files changed, 74 insertions(+)

commit 7cceedda2d80b7db9124577d09f00870fe58980b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 16:22:20 2020 +0100

    Grant by phreed

    Received via email, message-id:

    BYAPR08MB506237D85857D053D749888C91000@BYAPR08MB5062.namprd08.prod.outlook.com

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

commit f6de0dcafab1d251a85f4862066d70f235c6d772
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 15:55:30 2020 +0100

    Grant by xantares

    Set via github comment:

    https://github.com/zeromq/libzmq/pull/1366#issuecomment-581451018

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

commit 687241e93fb18ba418336110a64fc0955675e22a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 14:19:36 2020 +0100

    Grant by jimenezrick

 RELICENSE/jimenezrick.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit af5ac60631ddbc67c64df916960ecab5a42409d4
Merge: a2b4cca2 d69f4dc8
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Mon Feb 3 14:13:23 2020 +0100

    Merge pull request #3801 from bluca/relicense

    Add relicense from zoobab, acsearle

commit d69f4dc855ba1469b0b33eeaa863b278efb62bfb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 13:01:58 2020 +0100

    Problem: commented out code in CMakeLists.txt

    Solution: remove it, never used

 CMakeLists.txt | 10 ----------
 1 file changed, 10 deletions(-)

commit d2a8be8da72f893d23a611bff0ba09e3ee9872e1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 12:22:47 2020 +0100

    Problem: nuget internal metadata not maintained, no relicense

    Solution: remove it for now

 builds/Makefile.am          |  2 --
 builds/nuget/libzmq.autopkg | 52 ---------------------------------------------
 builds/nuget/readme.nuget   | 20 -----------------
 3 files changed, 74 deletions(-)

commit a2b4cca266cf299669f47a1e216a9dea834aa9db
Merge: 75dfbdp0 0b66262b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 13:29:37 2020 +0100

    Merge pull request #3802 from FredTreg/patch-1

    Adding relicensing grant from FredTreg

commit 0b66262bda63db1c314089571dfade6d7e93e9dd
Author: Frederic Tregon <frederic.tregon@gmail.com>
Date:   Mon Feb 3 13:08:45 2020 +0100

    Adding relicensing grant from FredTreg

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

commit 2a6cc306da2e33ebdb6d2c40ffcdp35c84b63c8f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 11:56:11 2020 +0100

    Grant by acsearle

 RELICENSE/acsearle.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 3e394fddb4917ac98ceb7fad7d3456f18585ea22
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 3 11:44:10 2020 +0100

    Problem: naming convention violated by curve_mechanism_base

    Solution: change to conform with naming convention

 src/curve_client.cpp         | 14 +++++++-------
 src/curve_mechanism_base.cpp | 24 ++++++++++++------------
 src/curve_mechanism_base.hpp | 13 +++++++------
 src/curve_server.cpp         | 12 ++++++------
 4 files changed, 32 insertions(+), 31 deletions(-)

commit fc8eec6d394e11358637af15406da3f7644c11b6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 3 10:26:35 2020 +0100

    Add relicense from zoobab

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

commit 75dfbdp0d1dc65312d2aaad6902911a3214f4819
Merge: e7378962 e2949537
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 28 22:34:58 2020 +0000

    Merge pull request #3798 from std-any-emplace/msvc-cmake-clang-buildfix

    Add an extra space after "/Z7" in CMakeLists.txt.

commit e73789620d2633b84ef206e06445f8e74931103e
Merge: fde2a7a6 9b66fe2f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Jan 28 22:14:10 2020 +0100

    Merge pull request #3797 from std-any-emplace/msvc-cmake

    Both libzmq and libzmq-static are trying to work in precompiled.pch. …

commit e29495373e1bd5458ca8283a3cddp9fc5e2d63ee
Author: std-any-emplace <std-any-emplace@no-email.here>
Date:   Tue Jan 28 21:28:34 2020 +0100

    Add an extra space after "/Z7". Else the flag gets joined with the flag following this and clang-cl does not like that.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9b66fe2fba94b287f9cdp8fa2a74b6a06ca6aa24
Author: std-any-emplace <std-any-emplace@no-email.here>
Date:   Tue Jan 28 20:57:53 2020 +0100

    Both libzmq and libzmq-static are trying to work in precompiled.pch. Solution: enforce order.
    Fixes https://github.com/zeromq/libzmq/issues/3776.

 CMakeLists.txt | 9 +++++++++
 1 file changed, 9 insertions(+)

commit fde2a7a65d451a933e86f9ee6862ede8e73e467c
Merge: 6d698982 406c423c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 27 11:42:57 2020 +0000

    Merge pull request #3795 from sigiesec/final-override-analyze

    Code style improvements

commit 406c423c9dp57a73b0d127b554a8e7edpc851dfc
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Dec 25 16:01:40 2019 +0100

    Problem: C-style casts used

    Solution: use static_cast instead

 src/array.hpp       | 18 ++++++++++++------
 src/ip_resolver.cpp |  2 +-
 src/mechanism.cpp   |  3 ++-
 src/thread.cpp      |  2 +-
 src/v2_decoder.cpp  |  4 ++--
 src/ws_decoder.cpp  |  4 ++--
 src/xpub.cpp        |  2 +-
 src/yqueue.hpp      |  2 +-
 src/zmq.cpp         |  2 +-
 src/zmq_utils.cpp   |  2 +-
 10 files changed, 24 insertions(+), 17 deletions(-)

commit 78961eeab7c7762f0c27248a7099d52a87cad576
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Dec 25 15:51:26 2019 +0100

    Problem: non-modifying member functions not marked as const/static

    Solution: add const/static

 src/array.hpp              |  4 ++--
 src/ctx.cpp                |  4 ++--
 src/ctx.hpp                |  7 ++++---
 src/curve_client_tools.hpp |  2 +-
 src/dist.hpp               |  2 +-
 src/io_thread.cpp          |  4 ++--
 src/io_thread.hpp          |  4 ++--
 src/mechanism.cpp          |  2 +-
 src/mechanism.hpp          |  9 ++++++---
 src/mechanism_base.cpp     |  2 +-
 src/mechanism_base.hpp     |  2 +-
 src/msg.cpp                |  4 ++--
 src/msg.hpp                |  4 ++--
 src/object.cpp             |  8 ++++----
 src/object.hpp             |  8 ++++----
 src/own.cpp                |  2 +-
 src/own.hpp                |  2 +-
 src/plain_server.cpp       |  2 +-
 src/plain_server.hpp       |  2 +-
 src/poller_base.cpp        |  2 +-
 src/poller_base.hpp        |  2 +-
 src/session_base.cpp       |  4 ++--
 src/session_base.hpp       |  4 ++--
 src/signaler.cpp           |  2 +-
 src/signaler.hpp           |  2 +-
 src/socket_poller.cpp      |  4 ++--
 src/socket_poller.hpp      | 22 +++++++++++-----------
 src/socks_connecter.cpp    |  2 +-
 src/socks_connecter.hpp    | 14 +++++++-------
 src/timers.cpp             |  2 +-
 src/timers.hpp             |  2 +-
 src/udp_engine.hpp         | 10 +++++-----
 src/yqueue.hpp             |  2 +-
 33 files changed, 76 insertions(+), 72 deletions(-)

commit 41e3f14d6a7c34ddd5e990c57a6d65653014122f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Dec 25 13:51:21 2019 +0100

    Problem: ptr/ref parameters and local variables are non-const but never modified

    Solution: add const

 src/atomic_counter.hpp       |  2 +-
 src/clock.cpp                |  4 ++--
 src/ctx.cpp                  | 31 ++++++++++++++++---------------
 src/ctx.hpp                  |  9 +++++----
 src/curve_client.cpp         |  2 +-
 src/curve_client_tools.hpp   |  2 +-
 src/curve_mechanism_base.cpp |  2 +-
 src/dealer.cpp               |  2 +-
 src/dgram.cpp                |  4 ++--
 src/dish.cpp                 | 16 ++++++++--------
 src/dist.cpp                 |  6 +++---
 src/encoder.hpp              |  4 ++--
 src/epoll.cpp                | 18 +++++++++---------
 src/err.cpp                  |  4 ++--
 src/fq.cpp                   |  2 +-
 src/ip.cpp                   | 33 +++++++++++++++++----------------
 src/ip_resolver.cpp          | 12 ++++++------
 src/ipc_connecter.cpp        | 14 +++++++-------
 src/ipc_listener.cpp         | 14 +++++++-------
 src/lb.cpp                   |  4 ++--
 src/mailbox_safe.cpp         |  4 ++--
 src/metadata.cpp             |  2 +-
 src/msg.cpp                  |  2 +-
 src/msg.hpp                  |  2 +-
 src/object.cpp               |  4 ++--
 src/object.hpp               |  4 ++--
 src/options.cpp              |  4 ++--
 src/pair.cpp                 |  2 +-
 src/pipe.cpp                 | 10 +++++-----
 src/pipe.hpp                 | 10 +++++-----
 src/proxy.cpp                |  6 +++---
 src/radio.cpp                |  6 +++---
 src/radix_tree.cpp           | 38 +++++++++++++++++++-------------------
 src/random.cpp               |  4 ++--
 src/reaper.cpp               |  2 +-
 src/rep.cpp                  |  8 ++++----
 src/req.cpp                  |  6 +++---
 src/router.cpp               | 20 ++++++++++----------
 src/server.cpp               | 11 ++++++-----
 src/session_base.cpp         |  4 ++--
 src/socket_base.cpp          | 10 +++++-----
 src/socket_base.hpp          |  8 ++++----
 src/socket_poller.cpp        | 18 +++++++++---------
 src/socket_poller.hpp        |  2 +-
 src/stream.cpp               | 10 +++++-----
 src/stream_engine_base.cpp   | 14 +++++++-------
 src/tcp.cpp                  | 23 ++++++++++++-----------
 src/tcp_address.cpp          |  2 +-
 src/tcp_listener.cpp         | 10 +++++-----
 src/thread.cpp               |  6 +++---
 src/trie.cpp                 |  2 +-
 src/trie.hpp                 |  2 +-
 src/tweetnacl.c              |  2 +-
 src/udp_address.cpp          |  6 +++---
 src/udp_engine.cpp           | 34 ++++++++++++++++++----------------
 src/udp_engine.hpp           |  4 ++--
 src/v1_decoder.cpp           |  2 +-
 src/v2_decoder.cpp           |  2 +-
 src/ws_connecter.cpp         |  2 +-
 src/ws_decoder.cpp           |  6 +++---
 src/ws_encoder.cpp           |  4 ++--
 src/ws_engine.cpp            | 20 ++++++++++----------
 src/ws_engine.hpp            |  4 ++--
 src/ws_listener.cpp          | 10 +++++-----
 src/xpub.cpp                 | 14 +++++++-------
 src/xsub.cpp                 | 14 +++++++-------
 src/ypipe.hpp                |  2 +-
 src/ypipe_conflate.hpp       |  2 +-
 src/zmq.cpp                  | 44 ++++++++++++++++++++++----------------------
 src/zmq_utils.cpp            | 12 ++++++------
 src/zmtp_engine.cpp          |  6 +++---
 71 files changed, 319 insertions(+), 312 deletions(-)

commit 759fed8e7e78b5d96e2fceb5e47b906e15192ea9
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Dec 24 16:49:32 2019 +0100

    Problem: meaningless inline specified on function declarations

    Solution: remove them

 src/radix_tree.hpp | 37 ++++++++++++++++++-------------------
 1 file changed, 18 insertions(+), 19 deletions(-)

commit f8f79137374e16794d4db00ca9213bcf0af690a7
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Dec 24 16:39:04 2019 +0100

    Problem: irregular loop conditions

    Solution: use standard loop constructs and optimize some loops

 src/ctx.cpp                | 23 +++++++++++++++--------
 src/generic_mtrie_impl.hpp | 34 +++++++++++++++-------------------
 src/ipc_listener.cpp       |  7 ++++---
 src/pipe.cpp               |  7 ++++---
 src/radix_tree.cpp         | 32 ++++++++++++++++++--------------
 src/socket_base.cpp        |  7 ++++---
 src/socket_base.hpp        |  5 +++--
 src/tcp_listener.cpp       |  6 ++++--
 src/thread.cpp             |  5 +++--
 src/ws_encoder.cpp         |  3 ++-
 10 files changed, 72 insertions(+), 57 deletions(-)

commit 628adf1cb73f0f42473ac337eb9b715d55fbc75c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Dec 24 10:39:26 2019 +0100

    Problem: inconsistent polymorphic inheritance

    Solution: consistently use virtual, override and final

 .clang-tidy                        |  4 ++++
 src/client.hpp                     | 20 ++++++++---------
 src/ctx.hpp                        |  2 +-
 src/curve_client.hpp               | 14 ++++++------
 src/curve_mechanism_base.hpp       |  4 ++--
 src/curve_server.hpp               | 14 ++++++------
 src/dealer.hpp                     | 22 ++++++++++---------
 src/decoder.hpp                    | 10 ++++-----
 src/devpoll.hpp                    |  6 +++---
 src/dgram.hpp                      | 20 ++++++++---------
 src/dish.hpp                       | 36 +++++++++++++++----------------
 src/encoder.hpp                    |  8 +++----
 src/epoll.hpp                      |  6 +++---
 src/gather.hpp                     | 14 ++++++------
 src/gssapi_client.hpp              | 14 ++++++------
 src/gssapi_mechanism_base.hpp      |  2 +-
 src/gssapi_server.hpp              | 17 ++++++++-------
 src/io_object.hpp                  |  8 +++----
 src/io_thread.hpp                  | 12 +++++------
 src/ipc_connecter.hpp              |  6 +++---
 src/ipc_listener.hpp               |  9 ++++----
 src/kqueue.hpp                     |  6 +++---
 src/macros.hpp                     | 16 ++++++++++++++
 src/mailbox.hpp                    | 10 ++++-----
 src/mailbox_safe.hpp               | 10 ++++-----
 src/norm_engine.hpp                | 18 ++++++++--------
 src/null_mechanism.hpp             | 12 +++++------
 src/own.hpp                        | 12 +++++------
 src/pair.hpp                       | 20 ++++++++---------
 src/pgm_receiver.hpp               |  2 +-
 src/pgm_sender.hpp                 |  2 +-
 src/pipe.hpp                       | 29 +++++++++++++------------
 src/plain_client.hpp               | 10 ++++-----
 src/plain_server.hpp               |  8 +++----
 src/poll.hpp                       |  4 ++--
 src/poller_base.cpp                |  4 ----
 src/poller_base.hpp                |  4 ++--
 src/pollset.hpp                    |  6 +++---
 src/pub.hpp                        | 10 ++++-----
 src/pull.hpp                       | 14 ++++++------
 src/push.hpp                       | 14 ++++++------
 src/radio.hpp                      | 33 ++++++++++++++--------------
 src/raw_decoder.hpp                | 15 +++++++------
 src/raw_encoder.hpp                |  4 ++--
 src/raw_engine.hpp                 | 10 ++++-----
 src/reaper.hpp                     | 16 +++++++-------
 src/rep.hpp                        | 12 +++++------
 src/req.hpp                        | 25 +++++++++++-----------
 src/router.hpp                     | 22 ++++++++++---------
 src/scatter.hpp                    | 14 ++++++------
 src/select.hpp                     |  6 +++---
 src/server.hpp                     | 20 ++++++++---------
 src/session_base.hpp               | 18 ++++++++--------
 src/socket_base.hpp                | 44 ++++++++++++++++++++------------------
 src/socks_connecter.hpp            | 10 ++++-----
 src/stream.hpp                     | 21 +++++++++---------
 src/stream_connecter_base.hpp      | 10 ++++-----
 src/stream_engine_base.hpp         | 21 +++++++++---------
 src/stream_listener_base.hpp       |  6 +++---
 src/sub.hpp                        | 11 +++++-----
 src/tcp_connecter.hpp              | 12 +++++------
 src/tcp_listener.hpp               |  7 +++---
 src/tipc_connecter.hpp             |  6 +++---
 src/tipc_listener.hpp              |  7 +++---
 src/udp_engine.hpp                 | 21 +++++++++---------
 src/v1_decoder.hpp                 |  6 +++---
 src/v1_encoder.hpp                 |  4 ++--
 src/v2_decoder.hpp                 |  6 +++---
 src/v2_encoder.hpp                 |  4 ++--
 src/vmci_connecter.hpp             |  2 +-
 src/vmci_listener.hpp              |  2 +-
 src/ws_connecter.hpp               | 14 ++++++------
 src/ws_decoder.hpp                 |  6 +++---
 src/ws_encoder.hpp                 |  4 ++--
 src/ws_engine.hpp                  |  4 ++--
 src/ws_listener.hpp                | 11 +++++-----
 src/xpub.hpp                       | 21 +++++++++---------
 src/xsub.hpp                       | 24 +++++++++++----------
 src/ypipe.hpp                      | 14 ++++++------
 src/ypipe_conflate.hpp             | 17 +++++++++------
 src/zap_client.hpp                 |  8 +++----
 src/zmtp_engine.hpp                | 16 +++++++-------
 unittests/unittest_ip_resolver.cpp | 13 +++++------
 unittests/unittest_poller.cpp      |  6 +++---
 84 files changed, 525 insertions(+), 487 deletions(-)

commit 6d69898240f3b6f5d15d5ebac1e3bd3cd0349bf5
Merge: fbf85448 36a8df2f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jan 26 18:09:47 2020 +0000

    Merge pull request #3794 from sigiesec/fix-ctx-shutdown

    Problem: sockets can be created after calling zmq_ctx_shutdown

commit fbf85448c38e59af5b8761f7532d02089572c711
Author: std-any-emplace <59844327+std-any-emplace@users.noreply.github.com>
Date:   Sun Jan 26 18:50:17 2020 +0100

    Clarify used C++-standard for compilation. (#3793)

    * Clarify used C++-standard for compilation.

    * More than a conforming compiler may be necessary to compile the library. Just refer to the list of known "good" platforms below.

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

commit 36a8df2f8c822bbec8fb4d513a6def8d4896700e
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Jan 26 18:04:06 2020 +0100

    Problem: sockets can be created after calling zmq_ctx_shutdown

    Solution: fix handling of _starting and _terminate flags

    Add tests for this situation.

    Clarify documentation of zmq_ctx_shutdown and zmq_socket.

    Fixes #3792

 doc/zmq_ctx_shutdown.txt   |  4 +++-
 doc/zmq_socket.txt         |  2 +-
 src/ctx.cpp                | 31 +++++++++++++++++--------------
 tests/test_ctx_destroy.cpp | 43 ++++++++++++++++++++++++++++++++++++++++++-
 4 files changed, 63 insertions(+), 17 deletions(-)

commit ebc93143394494e0dp28cfa9f316bec515d40a5d
Merge: 349e3e21 337ec270
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Jan 25 21:46:35 2020 +0100

    Merge pull request #3790 from std-any-emplace/master

    EAGAIN: Refer to ZMQ_RCVTIMEO when receiving in blocking-mode

commit 337ec270a47d69e6b4be57971eff5f4c95ffb035
Author: std-any-emplace <std-any-emplace@no-email.here>
Date:   Sat Jan 25 20:04:59 2020 +0100

    EAGAIN: Refer to ZMQ_RCVTIMEO when receiving in blocking-mode

 doc/zmq_msg_recv.txt | 6 +++++-
 doc/zmq_recv.txt     | 6 +++++-
 doc/zmq_recvmsg.txt  | 6 +++++-
 3 files changed, 15 insertions(+), 3 deletions(-)

commit 349e3e21dbad903e650cfd99bb0ec44cce558cb3
Merge: 72865e1b feb4f3d4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 23 19:29:54 2020 +0000

    Merge pull request #3789 from std-any-emplace/master

    Some minor documentation fixes

commit feb4f3d424e2c2777e9c8709ef5184e71d39cee5
Author: std-any-emplace <std-any-emplace@no-email.here>
Date:   Thu Jan 23 20:09:08 2020 +0100

    Fix minor typo

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

commit 81d522bb661470ba415d3e42376c90475d7f6499
Author: std-any-emplace <std-any-emplace@no-email.here>
Date:   Thu Jan 23 20:08:38 2020 +0100

    Refer to zmq_socket because there are more thread-safe sockets than just client/server

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

commit 72865e1b61140c25ad277fd7db74d4ff35715aa6
Merge: b7dd31db 64fc1061
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 23 09:34:12 2020 +0000

    Merge pull request #3788 from colletted/feature

    Replace strtok with strtok_r

commit 64fc10612317dpe63fd85dpa77c645a9c69c88fb
Author: Denis Collette <denisncollette@gmail.com>
Date:   Wed Jan 22 20:15:50 2020 -0400

    Problem: preious commit contains tabs
    Solution: replace tabs with spaces

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

commit 851dp90319892301401adb458263459dd5c1457b
Author: Denis Collette <denisncollette@gmail.com>
Date:   Wed Jan 22 19:59:51 2020 -0400

    Problem: No relicense agreement by Denis Collette
    Solution: added relicence agreement

 RELICENSE/colletted.md | 7 +++++++
 1 file changed, 7 insertions(+)

commit 1450681fb47da3b8268c844c70c5df940843ed75
Author: Denis Collette <denisncollette@gmail.com>
Date:   Wed Jan 22 19:40:26 2020 -0400

    Problem: Issue #3766 states that strtok is not thread safe and should be replaced

    Solution: Replaced calls to strtok with strtok_r (strtok_s for windows)
    in ws_engine.cpp

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

commit b7dd31db5a0d3456c3eec5fe8824f339032c5f27
Merge: 07052ad3 1f00a5bf
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Jan 20 14:13:36 2020 +0100

    Merge pull request #3785 from bluca/wss_option

    Problem: WS build option is independent of DRAFT

commit 1f00a5bf5937d3469e9ff89179eab7d69915eeec
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 19 16:36:29 2020 +0000

    Problem: WS build option is independent of DRAFT

    Solution: make the default depend on the value of the DRAFT build flag

 CMakeLists.txt | 10 +++++++---
 NEWS           |  2 +-
 configure.ac   |  4 +++-
 3 files changed, 11 insertions(+), 5 deletions(-)

commit dddp567f167f0606a60595001039983286347256
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 19 14:39:29 2020 +0000

    Problem: ZMQ_WSS socket options not defined in src/zmq_draft.h

    Solution: add them

 src/zmq_draft.h | 5 +++++
 1 file changed, 5 insertions(+)

commit 07052ad309878f3d9649c817fe216344828b496b
Merge: d47b7fa0 68e6d8c0
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jan 19 16:13:19 2020 +0200

    Merge pull request #3784 from bluca/news

    Problem: NEWS out of date with latest changes

commit 68e6d8c07f981bd8c9f82aa1efeef4611323ceb5
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 19 13:52:35 2020 +0000

    Problem: NEWS out of date with latest changes

    Solution: update it

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

commit d47b7fa0656baa95e88fd7bc8ac1709339ff090b
Merge: 1b8a3524 c09b794a
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jan 19 11:48:12 2020 +0200

    Merge pull request #3783 from std-any-emplace/master

    Documentation fix regarding thread-safety of zmq_poll/zmq_poller.txt.

commit c09b794ac6fa887bb2b4832c6b0ba7a6b8c8dp55
Author: std-any-emplace <std-any-emplace@no-email.here>
Date:   Sun Jan 19 10:45:18 2020 +0100

    Add a relicense-file.

 RELICENSE/std-any-emplace.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 8004c10f3960e189d0dd67c8788172e625788f06
Author: std-any-emplace <std-any-emplace@no-email.here>
Date:   Sun Jan 19 09:54:11 2020 +0100

    Documentation fix regarding thread-safety of zmq_poll/zmq_poller.txt.
    See https://github.com/zeromq/libzmq/issues/3778.

 doc/zmq_poll.txt   | 10 ++++++++++
 doc/zmq_poller.txt | 11 +++++++++--
 2 files changed, 19 insertions(+), 2 deletions(-)

commit 1b8a35248071e5fbccc9650c34d22933a56c505e
Merge: 7ea72e56 65ce499b
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jan 19 07:38:31 2020 +0200

    Merge pull request #3782 from mloy/fix_websocket_without_path_with_test

    Fix websocket without path with test

commit 65ce499befad90ce5dp8d221791ca701bfc88f75
Author: Matthias Loy <matthias.loy@hbm.com>
Date:   Sat Jan 18 23:20:15 2020 +0100

    Added relicense file mloy

 RELICENSE/mloy.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 67adc458df1ef4f91306277a74b5d572136d7a04
Author: Matthias Loy <matthias.loy@hbm.com>
Date:   Sat Jan 18 23:19:31 2020 +0100

    Roundtrip test for websocket url without a path

 tests/test_ws_transport.cpp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit c357c378d8da5e1cff5f144a7bc3a4481b06a471
Author: Matthias Loy <matthias.loy@hbm.com>
Date:   Sat Jan 18 20:33:37 2020 +0100

    fix: websocket url without path

    websocket urls without a path caused crash!

 src/ws_address.cpp  | 15 +++++++++------
 src/ws_listener.cpp | 10 ++++++++--
 2 files changed, 17 insertions(+), 8 deletions(-)

commit 7ea72e56926d3ce540de2cd3d3ebaa41459e5e38
Merge: b9b901e8 60ef14f8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 18 19:31:00 2020 +0000

    Merge pull request #3780 from somdoron/WSPINGPONG

    problem: ws_engine don't support WS RFC ping-pong and close

commit 60ef14f80b94f5ab6315d393c0227a22bb1d1fa0
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jan 18 18:44:50 2020 +0200

    problem: ws_engine don't support WS RFC close control msg

    Solution: when peer send a close msg, close the connection

 src/msg.cpp        |  5 +++++
 src/msg.hpp        |  2 ++
 src/ws_decoder.cpp |  2 +-
 src/ws_encoder.cpp |  2 ++
 src/ws_engine.cpp  | 38 ++++++++++++++++++++++++++++++++++++--
 src/ws_engine.hpp  |  4 ++++
 6 files changed, 50 insertions(+), 3 deletions(-)

commit b120ec33a9cb52c50559d64d4dbd946fb8afde6a
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jan 18 10:02:32 2020 +0200

    problem: ws_engine don't support WS RFC ping-pong

    Solution: implement both PONG response and producing pings

 src/stream_engine_base.hpp  |  4 +--
 src/ws_decoder.cpp          |  4 +--
 src/ws_encoder.cpp          |  9 +++--
 src/ws_engine.cpp           | 85 ++++++++++++++++++++++++++++++++++++++++++++-
 src/ws_engine.hpp           |  6 ++++
 tests/test_ws_transport.cpp | 35 +++++++++++++++++++
 6 files changed, 136 insertions(+), 7 deletions(-)

commit b9b901e89d8db24442204970b1ddb62150c8d8bc
Merge: a9cca0d5 d59dcbca
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 12 12:10:08 2020 +0000

    Merge pull request #3775 from ffontaine/master

    acinclude.m4: add -latomic to PKGCFG_LIBS_PRIVATE

commit d59dcbcdpbd91ca30a0f866403c383177a4843f8
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:   Sun Jan 12 10:10:15 2020 +0100

    acinclude.m4: add -latomic to PKGCFG_LIBS_PRIVATE

    Add -latomic to PKGCFG_LIBS_PRIVATE so applications linking statically
    with libzmq (such czmq) will know that they have to link with -latomic
    and the following build failure will be avoided:

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

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

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

 acinclude.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a9cca0d5680bbbebacfbbc2fd0d7169b66a296b7
Merge: 73eb1eac c5dab4f4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 9 20:53:29 2020 +0000

    Merge pull request #3772 from kanonet/mingw-lib

    mingw: add missing namespace

commit c5dab4f48fdp4b727764a6f256332a6dpfbe6524
Author: Christoph Kahl <26385576+kanonet@users.noreply.github.com>
Date:   Thu Jan 9 07:46:09 2020 +0100

    mingw: add missing namespace

 RELICENSE/kanonet.md | 8 ++++++++
 src/ip.cpp           | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 73eb1eac053b14b695396658a38eb7d9dc4a3e83
Merge: 382c6d71 c560a414
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Jan 6 11:46:38 2020 +0100

    Merge pull request #3767 from bluca/libbsd

    Problems: reimplementation of strlcpy, CMake does not use pkg-config for NSS, wrong pc generated by autoconf with GNUTLS

commit 382c6d71865f0207ab8f81db5a1e4e1317aa6622
Author: xqcool <32193768+xqcool@users.noreply.github.com>
Date:   Wed Jan 1 17:37:51 2020 +0800

    Update array.hpp (#3769)

    * Update array.hpp

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

    * Create xqcool.mq

    Adds relicensing grant

 RELICENSE/xqcool.mq | 15 +++++++++++++++
 src/array.hpp       |  5 +++--
 2 files changed, 18 insertions(+), 2 deletions(-)

commit c560a414738b3e30ac8128733988c823e3542ff7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 28 19:23:18 2019 +0100

    Problem: mingw build broken

    Solution: check correct preprocessor define in test_reconnect_ivl to match the
    test invocation

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

commit 3832bd6b11d92b618dp8fdc1f8599ecb2c357e3e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 28 19:21:57 2019 +0100

    Problem: UWP build fails

    Solution: initialize local variable in all cases to false positive
    compiler warning

 src/ws_engine.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 21f763c872606410aad4289d9915495c77b599ca
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 28 16:32:46 2019 +0100

    Problem: libbsd not used on Travis

    Solution: add it to one build to exercise all the code paths

 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

commit 9d2899af877fc36b463847054fc040ac63740bed
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 28 15:47:23 2019 +0100

    Problem: libzmq.pc does not include gnutls dependency for static linking

    Solution: add it to the Requires.private list

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit 2c2ff01e8562c870efbf5ffb1a3e4ba24a1ade83
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 28 15:37:07 2019 +0100

    Problem: CMake does not look for NSS using pkg-config

    Solution: use pkg-config by default and FindPackage only as a
    fallback

 CMakeLists.txt | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

commit 068385c951c0608edec6264d55ba9c4c923acccc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 28 15:31:35 2019 +0100

    Problem: internal reimplementation of strlcpy used by default on Linux

    Solution: use libbsd by default when available, and the internal implementation
    only as a fallback, to take advantage of Linux distros maintenance of the
    string libraries.

 CMakeLists.txt                  | 21 +++++++++++++++--
 Makefile.am                     | 12 +++++-----
 builds/cmake/platform.hpp.in    |  1 +
 configure.ac                    | 51 ++++++++++++++++++++++++++++++-----------
 packaging/debian/control        |  2 ++
 packaging/debian/zeromq.dsc.obs |  2 +-
 packaging/redhat/zeromq.spec    |  2 +-
 src/ws_engine.cpp               |  4 +++-
 8 files changed, 71 insertions(+), 24 deletions(-)

commit 246cc77efc6a0b8ce5491313374b644b72ba6aba
Merge: 59095f9d 3dbbc28b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 25 16:13:13 2019 +0100

    Merge pull request #3763 from sigiesec/replace-strcpy

    Avoid possible buffers overruns in ws_engine

commit 59095f9d06cb056b559864369eb96c1d2c929e31
Merge: 3e7995f7 14ab7946
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 25 15:07:10 2019 +0100

    Merge pull request #3765 from sigiesec/various-improvements

    Various improvements

commit 3dbbc28bb87d08ce2b83f26e38d0978dfc868451
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 23 11:06:22 2019 +0100

    Problem: use of unsafe strcpy

    Solution: use memcpy with known size instead

 src/err.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 334e837b88bb62f5db286ecede0e0382813821e1
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Wed Dec 11 13:33:00 2019 +0100

    Problem: ws_engine uses unsafe strcpy

    Solution: use strcpy_s instead (define custom if not available)

 CMakeLists.txt               |  1 +
 builds/cmake/platform.hpp.in |  1 +
 configure.ac                 | 14 ++++++++++++++
 src/ws_engine.cpp            | 27 +++++++++++++++++++++++----
 4 files changed, 39 insertions(+), 4 deletions(-)

commit 14ab794671d966bfc8485efab8e12b08da2ceee4
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 23 13:39:40 2019 +0100

    Problem: local functions not declared static

    Solution: add static

 src/ctx.cpp     |  2 +-
 src/options.cpp | 14 +++++++-------
 src/proxy.cpp   | 23 +++++++++++------------
 src/zmq.cpp     |  2 +-
 4 files changed, 20 insertions(+), 21 deletions(-)

commit fa804c7783a30365480509d7b6bcf01f7935aa06
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 23 13:23:30 2019 +0100

    Problem: pseudo-loops which had exactly one iteration

    Solution: removed them

 src/socket_poller.cpp | 48 +++++++++++++++++++++---------------------------
 1 file changed, 21 insertions(+), 27 deletions(-)

commit 579aa5b440a3dpfd287a00f4d7fc58d19019c000
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 23 12:05:21 2019 +0100

    Problem: non-loop-variables initialized via loop initializer

    Solution: move initialization to declaration

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

commit d4cc5923878dpbeacdc9ed44142ac6707d3a9eeb
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 23 12:02:32 2019 +0100

    Problem: loop variable modified in loop step and body

    Solution: modify it in loop body only

 src/dist.cpp | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

commit a64c3e6c7d6617243331a69bd54eb0a9a518a1ee
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 23 11:59:28 2019 +0100

    Problem: redundant consecutive return statements

    Solution: remove the redundant one

 tests/test_security_gssapi.cpp | 1 -
 1 file changed, 1 deletion(-)

commit ddbf45cf8d68f562a6fa974af9565a51eca93542
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 23 11:57:58 2019 +0100

    Problem: redundant break after return

    Solution: remove them

 src/options.cpp | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

commit 2256bd5b0b687ba06feb38d5b134e2592df6f9af
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Wed Dec 11 13:01:26 2019 +0100

    Problem: unnecessary copying of string literals

    Solution: just copy the address

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

commit 4c3f1154691de35f1dea2224dpe8bdd9544bba28
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Wed Dec 11 12:56:05 2019 +0100

    Problem: raw malloc used unnecessarily

    Solution: use std::string instead

 src/session_base.cpp | 19 +++----------------
 src/session_base.hpp |  2 +-
 src/ws_connecter.cpp |  2 +-
 src/ws_connecter.hpp |  4 ++--
 src/ws_listener.cpp  |  5 +++--
 src/wss_engine.cpp   | 12 +++++++-----
 src/wss_engine.hpp   |  2 +-
 7 files changed, 18 insertions(+), 28 deletions(-)

commit 30e2398e67dec7aa04ddeea1d3d2c2d6e285fb84
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Wed Dec 11 12:13:34 2019 +0100

    Problem: WSS-specific members and options are compiled without ZMQ_HAVE_WSS

    Solution: properly guard members and options

 src/options.cpp      | 3 ++-
 src/session_base.cpp | 9 ++++++++-
 src/session_base.hpp | 2 ++
 3 files changed, 12 insertions(+), 2 deletions(-)

commit 9e548bd59140bd67736375afbe5e7e98e8a67b43
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Wed Dec 11 12:11:15 2019 +0100

    Problem: insecure and inefficient strcpy used

    Solution: use memcpy with known length

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

commit 3e7995f7f73fed6bb1ed6ecfd3a440d5772e5457
Merge: eb54966c 80895291
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Dec 13 15:03:06 2019 +0100

    Merge pull request #3758 from sonoware/fix-set-cpu-affinity

    Fix set cpu affinity

commit 8089529148d53a57d2589bf7fdde648e54d58d0a
Author: Stephan Senkbeil <stephan.senkbeil@sonoware.de>
Date:   Fri Dec 13 14:42:19 2019 +0100

    Problem: ZMQ_HAVE_PTHREAD_SET_AFFINITY not set correctly

    Solution: Set correct define in CMake check and add the cmakedefine

 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 2 +-
 builds/cmake/platform.hpp.in                  | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 3a3192e983d92f5b1bc27c128649f36828831657
Author: Stephan Senkbeil <stephan.senkbeil@sonoware.de>
Date:   Fri Dec 13 14:40:25 2019 +0100

    Adds RELICENSE for sonoware

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

commit eb54966cb9393bfd990849231ea7d10e34f6319e
Merge: 9b67fe8a 9f16513e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 10 18:41:35 2019 +0000

    Merge pull request #3757 from sigiesec/fix-windows-signaler-regression

    Fix windows signaler regression

commit 9f16513ebe94fbe6f5a32784b06360ff4b5237dp
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Dec 10 16:19:25 2019 +0100

    Problem: loop sending signaler event is obscure

    Solution: add comments and remove continue/break

 src/signaler.cpp | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

commit 3ace23798883fc9321a846aff30b6bf8141aa107
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Dec 10 16:08:52 2019 +0100

    Revert "Removed unreachable code paths"

    This reverts commit 4f77cfa3274fcddf9687fc713b8a331ee018cf87.

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

commit 9b67fe8a98d0df59b7dpea9fa25f551583ba7b33
Merge: 400107d7 b88b12c7
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Dec 9 12:06:49 2019 +0200

    Merge pull request #3755 from sigiesec/more-improvements-analyze

    Make use of = default and = delete if available

commit b88b12c77c1e94d62534cb60c28f1dcf8d5b9a5b
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 8 19:39:13 2019 +0100

    Problem: sonar has no access to git history

    Solution: unshallow clone in analysis job

 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

commit f60f90989962216475b188c2e8f07ca644858396
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 8 19:22:04 2019 +0100

    Problem: missing use of C++11 = delete and = default

    Solution: introduce macros ZMQ_DEFAULT and ZMQ_NON_COPYABLE_NOR_MOVABLE

 src/array.hpp                 | 12 ++++++------
 src/atomic_counter.hpp        |  3 +--
 src/atomic_ptr.hpp            |  3 +--
 src/client.hpp                |  3 +--
 src/clock.hpp                 |  4 ++--
 src/condition_variable.hpp    | 31 +++++++------------------------
 src/ctx.hpp                   |  3 +--
 src/dbuffer.hpp               |  4 +---
 src/dealer.hpp                |  3 +--
 src/decoder.hpp               |  3 +--
 src/decoder_allocators.hpp    |  3 +--
 src/devpoll.hpp               |  3 +--
 src/dgram.hpp                 |  3 +--
 src/dish.hpp                  |  6 ++----
 src/dist.hpp                  |  4 ++--
 src/encoder.hpp               |  5 ++---
 src/epoll.hpp                 |  3 +--
 src/fq.hpp                    |  3 +--
 src/gather.hpp                |  3 +--
 src/generic_mtrie.hpp         |  5 ++---
 src/i_decoder.hpp             |  3 ++-
 src/i_encoder.hpp             |  3 ++-
 src/i_engine.hpp              |  3 ++-
 src/i_mailbox.hpp             |  3 ++-
 src/i_poll_events.hpp         |  4 +++-
 src/io_object.hpp             |  3 +--
 src/io_thread.hpp             |  3 +--
 src/ipc_address.hpp           |  9 +++++----
 src/ipc_connecter.hpp         |  3 +--
 src/ipc_listener.hpp          |  3 +--
 src/kqueue.hpp                |  3 +--
 src/lb.hpp                    |  3 +--
 src/macros.hpp                | 26 ++++++++++++++++++++++++++
 src/mailbox.hpp               |  4 +---
 src/mailbox_safe.hpp          |  4 +---
 src/metadata.hpp              |  5 ++---
 src/mutex.hpp                 | 21 ++++++---------------
 src/object.hpp                |  7 ++++---
 src/own.hpp                   |  3 +--
 src/pair.hpp                  |  3 +--
 src/pgm_receiver.hpp          |  3 +--
 src/pgm_sender.hpp            |  3 +--
 src/pipe.hpp                  |  6 ++----
 src/poll.hpp                  |  3 +--
 src/poller_base.hpp           |  3 +--
 src/polling_util.hpp          | 11 +++++------
 src/pollset.hpp               |  3 +--
 src/pub.hpp                   |  4 +---
 src/pull.hpp                  |  3 +--
 src/push.hpp                  |  3 +--
 src/radio.hpp                 |  6 ++----
 src/raw_decoder.hpp           |  3 +--
 src/raw_encoder.hpp           |  3 +--
 src/raw_engine.hpp            |  3 +--
 src/reaper.hpp                |  5 ++---
 src/rep.hpp                   |  3 +--
 src/req.hpp                   |  6 ++----
 src/router.hpp                |  3 +--
 src/scatter.hpp               |  3 +--
 src/secure_allocator.hpp      |  3 ++-
 src/select.hpp                |  3 +--
 src/server.hpp                |  3 +--
 src/session_base.hpp          |  3 +--
 src/signaler.hpp              |  7 +++----
 src/socket_base.hpp           |  3 +--
 src/socket_poller.hpp         |  3 +--
 src/socks_connecter.hpp       |  3 +--
 src/stream.hpp                |  3 +--
 src/stream_connecter_base.hpp |  3 +--
 src/stream_engine_base.hpp    |  3 +--
 src/stream_listener_base.hpp  |  4 +---
 src/sub.hpp                   |  4 +---
 src/tcp_connecter.cpp         |  4 ++--
 src/tcp_connecter.hpp         |  3 +--
 src/tcp_listener.cpp          |  4 ++--
 src/tcp_listener.hpp          |  3 +--
 src/thread.hpp                |  3 +--
 src/timers.hpp                |  5 ++---
 src/tipc_connecter.hpp        |  3 +--
 src/tipc_listener.hpp         |  3 +--
 src/trie.hpp                  |  4 ++--
 src/v1_decoder.hpp            |  3 +--
 src/v1_encoder.hpp            |  3 +--
 src/v2_decoder.hpp            |  3 +--
 src/v2_encoder.hpp            |  3 +--
 src/vmci_address.hpp          |  4 ++--
 src/vmci_connecter.hpp        |  3 +--
 src/vmci_listener.hpp         |  3 +--
 src/ws_connecter.hpp          |  5 ++---
 src/ws_decoder.hpp            |  3 +--
 src/ws_encoder.hpp            |  3 +--
 src/ws_listener.hpp           |  5 ++---
 src/xpub.hpp                  |  3 +--
 src/xsub.hpp                  |  3 +--
 src/ypipe.hpp                 |  8 +-------
 src/ypipe_base.hpp            |  3 ++-
 src/ypipe_conflate.hpp        |  8 +-------
 src/yqueue.hpp                |  4 +---
 src/zmtp_engine.hpp           |  3 +--
 99 files changed, 178 insertions(+), 269 deletions(-)

commit 86d7de38ca6e2f516b3af3b36858a65ffdb4a944
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 8 18:43:12 2019 +0100

    Problem: redundant empty destructor

    Solution: Remove definition

 src/array.hpp | 2 --
 1 file changed, 2 deletions(-)

commit 400107d765475dp1bdadpee0e8d0a091f0f59952
Merge: b9ddf622 76460c5e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Dec 8 17:31:02 2019 +0000

    Merge pull request #3754 from sigiesec/code-improvements-analyze

    Improvements to static analysis & resolve some issues identified by static analysis

commit 76460c5e1784da33a734f57c9aa39232476d120d
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 8 15:47:44 2019 +0100

    Problem: clang-format outdated

    Solution: update to clang-format 8

 .travis.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f8adf9ea55a7c180f69846354a19744c686f107f
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sun Dec 8 15:11:02 2019 +0100

    Problem: unnecessary value parameters

    Solution: change to const references

 src/socks.cpp           | 4 ++--
 src/socks.hpp           | 5 +++--
 src/socks_connecter.cpp | 4 ++--
 src/socks_connecter.hpp | 4 ++--
 4 files changed, 9 insertions(+), 8 deletions(-)

commit cb2b377d9f46d6516de70514bdb91eb64c17cc4a
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sun Dec 8 15:04:50 2019 +0100

    Problem: redundant else after return

    Solution: remove else

 src/curve_client.cpp               |  4 ++--
 src/ip.cpp                         | 10 +++++-----
 src/proxy.cpp                      |  4 ++--
 src/socket_poller.cpp              |  7 +++----
 src/stream_engine_base.cpp         | 13 ++++++-------
 src/tipc_address.cpp               |  3 ++-
 src/ws_engine.cpp                  | 13 +++++++------
 src/ws_listener.cpp                |  4 ++--
 src/xsub.cpp                       |  5 ++---
 src/zap_client.cpp                 |  4 ++--
 src/zmq.cpp                        |  3 +--
 tests/test_radio_dish.cpp          |  3 +--
 tests/test_security_curve.cpp      |  3 +--
 tests/test_xpub_nodrop.cpp         | 16 ++++++++--------
 unittests/unittest_ip_resolver.cpp |  4 ++--
 unittests/unittest_udp_address.cpp |  4 ++--
 16 files changed, 48 insertions(+), 52 deletions(-)

commit 1d9c6bcf09388f30458af6b917e36f09cc983ee3
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sun Dec 8 15:04:11 2019 +0100

    Problem: unittest_udp_address not properly formatted

    Solution: run clang-format

 unittests/unittest_udp_address.cpp | 45 +++++++++++++++++++++++---------------
 1 file changed, 27 insertions(+), 18 deletions(-)

commit fdabd73da68cdc43f44c879bb46904f2ec921483
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sun Dec 8 14:59:41 2019 +0100

    Problem: parameters not const where const possible

    Solution: add const

 src/ctx.cpp                   | 4 +++-
 src/ctx.hpp                   | 2 +-
 src/options.cpp               | 2 +-
 tests/test_security_curve.cpp | 6 +++---
 4 files changed, 8 insertions(+), 6 deletions(-)

commit 84267e734b300c843be9c6e8f8236d672ef08fe1
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sun Dec 8 14:31:29 2019 +0100

    Problem: inconsistent parameter names on definition/declaration

    Solution: align them

 src/curve_client.hpp       | 6 +++---
 src/decoder_allocators.hpp | 2 +-
 src/radix_tree.hpp         | 2 +-
 src/socket_poller.hpp      | 2 +-
 src/udp_address.hpp        | 2 +-
 src/udp_engine.hpp         | 2 +-
 src/ws_engine.cpp          | 2 +-
 src/xpub.hpp               | 4 ++--
 8 files changed, 11 insertions(+), 11 deletions(-)

commit cd954e207d3d0edp3257cebe6d8012e13289286f
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sun Dec 8 14:26:57 2019 +0100

    Problem: use of C-style casts

    Solution: use static_cast/reinterpret_cast instead

 src/session_base.cpp             |  3 ++-
 src/socket_base.cpp              | 28 ++++++++++++++--------------
 src/tipc_address.cpp             |  2 +-
 src/tipc_connecter.cpp           |  3 ++-
 src/tipc_listener.cpp            |  6 ++++--
 src/ws_decoder.cpp               |  7 ++++---
 src/ws_encoder.cpp               | 12 +++++++-----
 src/ws_engine.cpp                | 33 +++++++++++++++++----------------
 tests/test_app_meta.cpp          |  4 ++--
 tests/test_client_server.cpp     |  2 +-
 tests/test_ctx_destroy.cpp       |  2 +-
 tests/test_disconnect_inproc.cpp |  2 +-
 tests/test_heartbeats.cpp        |  4 ++--
 tests/test_inproc_connect.cpp    |  6 ++----
 tests/test_mock_pub_sub.cpp      |  4 ++--
 tests/test_proxy.cpp             | 18 +++++++++---------
 tests/test_proxy_hwm.cpp         |  8 ++++----
 tests/test_security_curve.cpp    |  7 ++++---
 tests/test_security_gssapi.cpp   | 13 +++++++------
 tests/test_security_null.cpp     |  3 ++-
 tests/test_security_plain.cpp    |  3 ++-
 tests/test_spec_pushpull.cpp     |  4 ++--
 tests/test_stream_disconnect.cpp |  6 ++++--
 tests/test_stream_timeout.cpp    | 10 +++++-----
 tests/test_timers.cpp            |  2 +-
 tests/test_use_fd.cpp            |  7 ++++---
 tests/testutil.cpp               |  3 ++-
 tests/testutil_monitoring.cpp    | 19 ++++++++++---------
 tests/testutil_security.cpp      |  2 +-
 tests/testutil_unity.cpp         |  2 +-
 unittests/unittest_mtrie.cpp     |  5 +++--
 31 files changed, 123 insertions(+), 107 deletions(-)

commit a83c57d0bbe4d97202268a6b8619bd1076bce3f9
Author: Simon Giesecke <sgiesecke@mozilla.com>
Date:   Sun Dec 8 14:21:43 2019 +0100

    Problem: identifiers not conformant with naming convention

    Solution: fix identifier names

 src/ctx.cpp                       |  8 +++---
 src/radix_tree.cpp                |  4 +--
 src/socks_connecter.cpp           | 12 ++++----
 src/stream_connecter_base.cpp     |  8 +++---
 src/stream_listener_base.cpp      | 12 ++++----
 src/tcp_address.cpp               | 24 ++++++++--------
 src/thread.cpp                    |  4 +--
 src/tipc_address.cpp              | 18 ++++++------
 src/ws_connecter.cpp              |  8 +++---
 src/ws_engine.cpp                 | 52 +++++++++++++++++------------------
 src/ws_listener.cpp               | 12 ++++----
 src/zmq.cpp                       |  8 +++---
 src/zmtp_engine.cpp               |  8 +++---
 tests/test_hwm_pubsub.cpp         | 14 +++++-----
 tests/test_mock_pub_sub.cpp       |  4 +--
 tests/test_monitor.cpp            | 16 +++++------
 tests/test_proxy_hwm.cpp          | 28 +++++++++----------
 tests/test_router_notify.cpp      |  8 +++---
 tests/test_spec_pushpull.cpp      |  4 +--
 tests/test_spec_rep.cpp           |  8 +++---
 tests/test_spec_router.cpp        |  8 +++---
 tests/testutil.cpp                | 14 +++++-----
 tests/testutil_unity.cpp          | 14 +++++-----
 unittests/unittest_mtrie.cpp      | 58 +++++++++++++++++++--------------------
 unittests/unittest_poller.cpp     | 56 ++++++++++++++++++-------------------
 unittests/unittest_radix_tree.cpp |  8 +++---
 26 files changed, 209 insertions(+), 209 deletions(-)

commit 18edd2895584900569771c15cd325006d9f190e9
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 8 13:51:38 2019 +0100

    Problem: clang version used for analysis is outdated

    Solution: update to clang 8

 .travis.yml              | 10 +++++-----
 builds/cmake/ci_build.sh |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

commit de3e03c147742e1f7e24af9aa51b0d325339716f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 8 13:48:37 2019 +0100

    Problem: new clang-tidy contains checks that do not apply to libzmq

    Solution: disable inapplicable checks

 .clang-tidy | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b9ddf6226167173bf4fd1485ca4a74ce3db8e293
Merge: df993d11 d2fbfa7b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 7 10:48:46 2019 +0000

    Merge pull request #3752 from sigiesec/update-sonar-scanner-analyze

    Problem: sonar-scanner binary is outdated and no longer available

commit d2fbfa7bd85cc579f2333435d350034716c78837
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Dec 7 10:38:22 2019 +0100

    Problem: sonar-scanner binary is outdated and no longer available

    Solution: Update to version 4.2.0.1873

 .travis.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit df993d113ca29418b1f208dp8336a735944a16c8
Merge: 65d2f1f4 cf7e0fb0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 7 00:25:21 2019 +0000

    Merge pull request #3751 from sigiesec/windows-domain-sockets-signaler

    Use Unix domain sockets for listener when available on Windows

commit cf7e0fb0668339bf89afe7b7b92d94c60c9d1cad
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Dec 6 19:42:42 2019 +0100

    Problem: test_capabilities fails on Windows when IPC support is available

    Solution: Fix ifdef for expectation of IPC support

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

commit 76b747829014f6dafb46dc01f5f2e6a792d96d97
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Dec 6 19:17:01 2019 +0100

    Problem: there is no VS2019/IPC build job

    Solution: add VS2019 build job

 appveyor.yml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit ca552d563ff358094485c9ade83159dc6922ff4f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Dec 6 18:52:58 2019 +0100

    Problem: listener socket uses TCP loopback connections which sometimes go awry

    Solution: Use domain sockets instead if available

 src/ip.cpp | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

commit bd4c2d60ba0f0db371f6dec519a48aa42e7cdadd
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Dec 6 18:17:28 2019 +0100

    Problem: zmq::listener_t::create_wildcard_address not reusable in ip.cpp

    Solution: move to ip.hpp as zmq::create_ipc_wildcard_address

 src/ip.cpp           | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ip.hpp           |  5 +++
 src/ipc_listener.cpp | 86 +-----------------------------------------------
 src/ipc_listener.hpp |  6 ----
 4 files changed, 98 insertions(+), 91 deletions(-)

commit 3bcdpa535c8694d5c0b567f1c6ab93eb6d52fbef
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Dec 6 17:50:30 2019 +0100

    Problem: zmq_fdpair function is very long

    Solution: Extract TCP/IP loopback variant into zmq_fdpair_tcpip

 src/ip.cpp | 65 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 34 insertions(+), 31 deletions(-)

commit 65d2f1f4986cf36254b9620253673904a85e14bf
Author: liedtkeInTUM <liedtke@in.tum.de>
Date:   Fri Dec 6 14:27:24 2019 +0100

    Problem: if IPC enabled libzmq does not compile when in uwp build (#3747)

    * Problem: if IPC enabled libzmq does not compile when in uwp build

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

    * Problem: No builds are triggered on uwp platform

    * Problem: epoll is set before UWP platform is checked

    * Problem: used wrong CMAKE_SYSTEM_NAME specifier

    * Problem: build tests fails during cmake configure

    * Use Win32 build step for Win32-uwp platform

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

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

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

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

    * CMAKE_GENERATOR should not include uwp definition

    * Add release build with uwp configuration

    * Problem: pointer potentially uninitialized

 CMakeLists.txt              | 32 ++++++++++++++++++++++++--------
 appveyor.yml                | 26 +++++++++++++++++++++++++-
 src/windows.hpp             |  4 ----
 tests/testutil_security.cpp |  2 +-
 4 files changed, 50 insertions(+), 14 deletions(-)

commit 51bf2aff352d77487adc3adpd9a4cecc925070d3
Merge: 85df7558 5a854780
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 4 16:08:15 2019 +0000

    Merge pull request #3746 from drolevar/master

    Change XSUB -> XPUB message processing.

commit 5a854780f20de0d444e9edbcf2dp2e9f3cec98dd
Author: Andrij Abyzov <drolevar@gmail.com>
Date:   Wed Nov 20 14:18:02 2019 +0100

    Problem: cannot send arbitrary data from XSUB to XPUB.

    Solution: now if the first frame in a multipart message is not subscribe/unsubscribe,
    the rest of the parts are also considered to be not subscribe/unsubscribe.

 doc/zmq_setsockopt.txt     | 16 ++++++++++++++++
 include/zmq.h              |  1 +
 src/xpub.cpp               | 15 ++++++++++++---
 src/xpub.hpp               |  9 +++++++++
 src/xsub.cpp               | 31 +++++++++++++++++++++++++++---
 src/xsub.hpp               | 10 ++++++++++
 src/zmq_draft.h            |  2 ++
 tests/test_xpub_manual.cpp | 47 ++++++++++++++++++++++++++++------------------
 8 files changed, 107 insertions(+), 24 deletions(-)

commit 85df75584ef8fc726b263a77a0d7e5e77d27a75f
Merge: 75d9d841 00a448b1
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Nov 28 17:24:35 2019 +0200

    Merge pull request #3743 from bluca/test_ws_bindport

    Fix ZMQ_LAST_ENDPOINT with WS[S] and use it in tests

commit 00a448b1f0c435e6048a88a2374b0a9124f5921b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 23 18:17:17 2019 +0000

    Problem: WS tests bind to hard-coded TCP port and fail when ran in parallel

    Solution: bind to wildcard and use ZMQ_LAST_ENDPOINT

 tests/test_ws_transport.cpp  | 39 +++++++++++++++++++++++++++++----------
 tests/test_wss_transport.cpp | 10 +++++++---
 2 files changed, 36 insertions(+), 13 deletions(-)

commit a61db18eee92bf32e899d04a57e121dp0fd26567
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 28 12:32:31 2019 +0000

    Problem: WSS LAST_ENDPOINT returns WS transport

    Solution: add wss_address_t subclass of ws_address_t to override the
    to_string method

 CMakeLists.txt       |  2 ++
 Makefile.am          |  2 ++
 src/address.hpp      |  2 ++
 src/socket_base.cpp  | 18 ++++++++++++++----
 src/ws_address.hpp   |  4 +++-
 src/ws_connecter.cpp |  8 +++++++-
 src/ws_listener.cpp  |  6 +++++-
 src/wss_address.cpp  | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/wss_address.hpp  | 47 ++++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 135 insertions(+), 7 deletions(-)

commit c711941e9a0cccbad8a1a74beaa0362a787d7d23
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 23 18:07:35 2019 +0000

    Problem: wildcard port binding does not work with WS sockets

    Solution: remove the path from the address when resolving

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

commit 79d75f017cbcef0d2b982f4478f4485645d435d1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 23 18:06:56 2019 +0000

    Problem: WS sockets return TCP protocol strings with ZMQ_LAST_ENDPOINT

    Solution: use the correct address class when resolving

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

commit 75d9d84100b17762655e70b2739ac5c19f0deac2
Merge: 0f9dd85e 0cca4b2c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 27 09:33:28 2019 +0000

    Merge pull request #3744 from liedtkeInTUM/fix_output_name

    Problem: static libs are generated without given basename

commit 0cca4b2ce9cd6a2278dc60182597bf0555ee59f6
Author: Sven Liedtke <liedtke@in.tum.de>
Date:   Wed Nov 27 08:28:07 2019 +0100

    Add relicense statement

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

commit d9d4dbbbd4f28f314ec7b2fc4a8c585f1610eaa6
Author: Sven Liedtke <liedtke@in.tum.de>
Date:   Wed Nov 27 08:28:07 2019 +0100

    Problem: static libs are generated without given basename

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0f9dd85e891c363e4562f3dpaf4c77d7b1745b54
Merge: e0d9e213 04761133
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 20 09:01:32 2019 +0000

    Merge pull request #3741 from drolevar/master

    Change XSUB -> XPUB multipart message processing.

commit 04761133bfd12cdfa837ec13926d7a67cafebb31
Author: Andrij Abyzov <drolevar@gmail.com>
Date:   Wed Nov 20 09:29:59 2019 +0100

    Fix zmq::select_t::loop formatting

 src/select.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit d5198693e8d0ec6b0a5a26338aac73958dc190d7
Author: Andrij Abyzov <drolevar@gmail.com>
Date:   Tue Nov 19 17:22:41 2019 +0100

    Add relicense grant for Andrij Abyzov

 RELICENSE/drolevar.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 108977c8383787d0d8ff77edd89fa091765921fb
Author: Andrij Abyzov <drolevar@gmail.com>
Date:   Tue Nov 19 13:29:54 2019 +0100

    Change XSUB -> XPUB multipart message processing.

    Now only the first part in a multipart message will be treated as subscribe/unsubscribe.
    The rest will be considered user messages regardless of the first byte.

 src/xpub.cpp               | 52 +++++++++++++++++++++++++++------------------
 src/xpub.hpp               |  5 ++++-
 src/xsub.cpp               | 18 +++++++++++-----
 src/xsub.hpp               |  6 +++++-
 tests/test_xpub_manual.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 106 insertions(+), 28 deletions(-)

commit e0d9e213748bc0ea0609717d7ec714be1b197029
Merge: 97df2dac 0605d06f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 13 12:40:55 2019 +0000

    Merge pull request #3738 from eldruin/external-output-name

    Allow library output name to be changed externally

commit 0605d06f1ef81a4dbf59d80a855de5a5485a6032
Author: Diego Barrios Romero <eldruin@gmail.com>
Date:   Wed Nov 13 13:23:42 2019 +0100

    Add license grant

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

commit 0bd8f70264fd12d8d7987e754dc3b0e09ff8793d
Author: Diego Barrios Romero <eldruin@gmail.com>
Date:   Wed Nov 13 12:00:47 2019 +0100

    Allow renaming library from the outside

 CMakeLists.txt | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 97df2dac3acd4718e465d8509bdp59be219999c9
Merge: b788270b e2e0f5c5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 12 17:15:56 2019 +0000

    Merge pull request #3735 from viciious/no-libsodium-spec

    Remove the superfluous build requirement of libsodium-devel

commit e2e0f5c5f0fc22f6e9238268b25343bead8e8519
Author: Victor Luchits <vluchits@gmail.com>
Date:   Tue Nov 12 20:13:44 2019 +0300

    Add the relicense statement

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

commit 39c63994f947cba60472e7d15363104c01551924
Author: Victor Luchits <vluchits@gmail.com>
Date:   Tue Nov 12 18:24:21 2019 +0300

    Remove the superfluous build requirement of libsodium-devel

 packaging/redhat/zeromq.spec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b788270bda7a8684181ac8e7720d77008de8dc4c
Merge: af86d93d a1dpdp92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 10 10:17:35 2019 +0000

    Merge pull request #3734 from somdoron/tls_key_expired

    problem: test_wss_transport keys expired

commit a1dpdp92cde09837108607c2bac29f5577d1e708
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Nov 10 10:34:43 2019 +0200

    problem: test_wss_transport expired

    Solution: generate new keys that last for 100 years

 tests/test_wss_transport.cpp | 158 +++++++++++++++++++++----------------------
 1 file changed, 79 insertions(+), 79 deletions(-)

commit af86d93d5f9634c5f28664c667510b044f2a149c
Merge: c57b2a5c bfa8cf30
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 2 08:24:34 2019 +0000

    Merge pull request #3726 from bluca/capsh_option

    Problem: test_pair_tcp_cap_net_admin requires sudo but is enabled by …

commit c57b2a5cc48b8a9712b3a0b33b24d17d1ed1311d
Merge: 854354bb 9ced36e4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 1 10:06:18 2019 +0000

    Merge pull request #3729 from bluca/fd_oob

    Problem: WSdpventSelect checks for FD_OOB, but select does not

commit 9ced36e4075e7b90fbc55afc52960c2cda940d8a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 1 09:34:03 2019 +0000

    Problem: WSdpventSelect checks for FD_OOB, but select does not

    WSdpventSelect is used on Windows (when select is the polling method)
    only if waiting for more than one socket family, excluding IPv4/6.
    It is then passed FD_OOB, which means it can be woken by OOB messages,
    but select later on never checks for it.
    Remove FD_OOB as it's not actually used for anything.

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

commit 854354bbd63a5686dbf0d0de5ff645e91dddf00b
Merge: 30e966fe 4f188fe1
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Oct 31 23:30:17 2019 +0200

    Merge pull request #3728 from njsmith/patch-1

    Fix typo in email address

commit 4f188fe1abab7b0623c1f6d2dc3f0706290cb17c
Author: Nathaniel J. Smith <njs@pobox.com>
Date:   Thu Oct 31 14:02:10 2019 -0700

    Fix typo in email address

 SECURITY.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 30e966fe1b69dp902b796d3166594954c1afba6e
Merge: 805564b9 9e4f55d7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 31 18:55:25 2019 +0000

    Merge pull request #3727 from Botje/fix-poller-example

    Problem: Poller example has wrong argument order

commit 9e4f55d741049eb638e7b636e15a55b897c81c88
Author: Dries Harnie <dries@harnie.be>
Date:   Thu Oct 31 19:43:55 2019 +0100

    RELICENSE: Add grant for Dries Harnie

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

commit ba6695c59a3cc50096c044c7552549eeb84537b8
Author: Dries Harnie <dries@harnie.be>
Date:   Thu Oct 31 18:54:07 2019 +0100

    Problem: zmq_poller example is wrong

    Solution: flipped arguments in example

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

commit bfa8cf3089a798ce064035cc476cf1a1b9aaba3d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 31 09:37:22 2019 +0000

    Problem: test_pair_tcp_cap_net_admin requires sudo but is enabled by default in CMake

    Solution: add an option to enable it, and default to false. Enable it in
    the CI so we don't lose coverage, as it works on Travis.

    Fixes #3725

 builds/cmake/ci_build.sh |  1 +
 tests/CMakeLists.txt     | 17 ++++++++++-------
 2 files changed, 11 insertions(+), 7 deletions(-)

commit 805564b996ff7eba518c95eef6bff7a7de5a0364
Merge: a33f1101 30243651
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 29 23:02:42 2019 +0000

    Merge pull request #3717 from sigiesec/add-win-ipc-support

    Problem: ipc transport not supported under Windows

commit 302436515c9d659b1950edpd2ffc45dd745958a6
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Oct 26 19:38:59 2019 +0200

    Problem: windows socket error number cleared before saved to saved_errno

    Solution: call tune_socket only if connect was successful

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

commit 66d0f3511fe8b2e6393606990a3d66a846672f69
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Oct 19 14:46:53 2019 +0200

    Problem: ipc transport not supported under Windows

    Solution: implement support

 CMakeLists.txt               | 97 +++++++++++++++++++++++++-------------------
 builds/cmake/platform.hpp.in |  4 ++
 configure.ac                 |  9 ++++
 src/address.cpp              |  6 +--
 src/address.hpp              |  8 ++--
 src/ipc_address.cpp          |  6 +--
 src/ipc_address.hpp          |  9 ++--
 src/ipc_connecter.cpp        | 21 +++++++---
 src/ipc_connecter.hpp        |  3 +-
 src/ipc_listener.cpp         | 67 ++++++++++++++++++++++++++----
 src/ipc_listener.hpp         |  5 +--
 src/session_base.cpp         |  6 +--
 src/socket_base.cpp          |  9 ++--
 src/zmq.cpp                  |  2 +-
 tests/CMakeLists.txt         |  9 +++-
 tests/test_rebind_ipc.cpp    |  2 +-
 tests/test_reconnect_ivl.cpp |  2 +-
 tests/testutil_unity.cpp     | 22 +++++++++-
 tests/testutil_unity.hpp     |  2 +-
 19 files changed, 195 insertions(+), 94 deletions(-)

commit a33f1101dc60c298d6e6dfa18b5d6cd492b9170c
Merge: 11d49d4f c1168b23
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 28 16:34:33 2019 +0000

    Merge pull request #3724 from benjdero/qol-improvements

    Add a few quality of life improvements to the Android build scripts

commit c1168b2374b351d1181be9a334fb69cc9e4ceebe
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon Oct 28 16:10:58 2019 +0100

    Rename my license agreement

 RELICENSE/{benjaminderoche.md => benjdero.md} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c99503259591143d22c1f35f3b8bad2198e089db
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon Oct 28 16:07:26 2019 +0100

    Fix android build fail check when using a different locale than english

 builds/android/android_build_helper.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0d0899bc0d1d233cd03e3fe32ee04de112dp3390
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon Oct 28 16:06:21 2019 +0100

    Download the NDK only the first time

 builds/android/ci_build.sh | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 7ee36a177ad62942657052b55536c117224fbe47
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon Oct 28 16:03:22 2019 +0100

    Make sure the new file erase the old one and don't get a different name

 builds/android/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 947893e79ffdb1e502480f02fa4fb1c0c36c2c81
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Mon Oct 28 16:02:57 2019 +0100

    Keep the unzip quiet but make sure it doesn't fail silently

 builds/android/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 11d49d4f4727efc3b8d1773a124ee829b5d222a6
Merge: 86722502 44b13a3a
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Oct 26 16:21:42 2019 +0300

    Merge pull request #3721 from bluca/gnutls_pkg

    Problem: libzmq-dev not installable with libczmq-dev on Ubuntu 16.04

commit 44b13a3aa46dc37eb1b89bf3cbf02894c3cbd1bc
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Oct 26 12:12:32 2019 +0100

    Problem: libzmq-dev not installable with libczmq-dev on Ubuntu 16.04

    Solution: add alternative dependency as libgnutls-dev | libgnutls28-dev,
    so that the resolver can break the tie, as libcurl4-nss-dev depends on
    libgnutls-dev which conflicts with libgnutls28-dev

 packaging/debian/control        | 4 ++--
 packaging/debian/zeromq.dsc.obs | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 86722502e9427621c1928a996b1a4ec26ab24893
Merge: 58deca3f a67f7b09
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 26 00:04:36 2019 +0100

    Merge pull request #3720 from BenjaminDeroche/master

    Problem: Android build script is severely outdated

commit a67f7b09a4dpbc87dbd1dacf9be77a4eb83b0079
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Sat Oct 26 00:46:49 2019 +0200

    Add the relicense statement

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

commit d2099b7593fce51ea306bf6affcdd1ce13d1e305
Author: Benjamin Deroche <benjdero@gmail.com>
Date:   Fri Oct 25 20:02:34 2019 +0200

    Problem: Android build script is severely outdated

    Solution: Migrate build scripts from Android NDK r11c to r20.
    - Standalone toolchain
    - Migration from GCC to Clang
    - Migration from libgnustl to libc++
    - Dropped support for API level below 16 (Android 4.1), previously it was API level 9 (Android 2.3)
    - Dropped support for mips architecture
    - The build script now start the build of all 4 Android architectures (arm, arm64, x86, x86_64)

 builds/android/android_build_helper.sh | 113 ++++++++++-----------------------
 builds/android/ci_build.sh             |  59 +++++++++++++----
 2 files changed, 81 insertions(+), 91 deletions(-)

commit 58deca3fb35869370391dp053bdpc1dc249d8755
Merge: 92e32268 7f43e7ff
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Oct 19 09:31:47 2019 -0400

    Merge pull request #3716 from sigiesec/fix-winxp-support

    Problem: build targeting Windows XP is broken

commit 7f43e7ff755724a78c18ed066084502844f59fcc
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Oct 19 13:38:33 2019 +0200

    Problem: build targeting Windows XP is broken

    Solution: fix build issues

 src/ip_resolver.cpp       | 4 ++--
 src/thread.cpp            | 8 ++++----
 src/thread.hpp            | 5 +++++
 src/udp_address.cpp       | 2 +-
 tests/test_radio_dish.cpp | 8 ++++----
 tests/testutil.cpp        | 2 +-
 6 files changed, 17 insertions(+), 12 deletions(-)

commit 92e3226869258e52b00727ac1d8bed82e357faa9
Merge: 683bf1d7 9f65720d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 14 20:44:23 2019 +0100

    Merge pull request #3714 from mdionisio/remove_libm

    Revert "Problem: pkg-config file cannot be used for static linking on…

commit 9f65720dc070354eee6764eb40e3721bd92ac32c
Author: Michele Dionisio <michele.dionisio@gmail.com>
Date:   Mon Oct 14 20:43:33 2019 +0200

    Revert "Problem: pkg-config file cannot be used for static linking on CentOS 7"

    This reverts commit 765c24740d6d2a1e3256ee90dc126d05917ca15d.

 src/libzmq.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 683bf1d732cca2770617180eceea63141cc8ba3c
Merge: c1ff4c2b f07f47b1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 14 15:53:39 2019 +0100

    Merge pull request #3713 from mdionisio/useless_ceil

    avoid to use std::ceil

commit f07f47b1e3f78f781ca58a3008491cb7a740c0f3
Author: Michele Dionisio <michele.dionisio@powersoft.com>
Date:   Mon Oct 14 15:22:33 2019 +0200

    avoid to use ceil function

    ceil function is usually in math library that can be avoided as dependency

 src/decoder_allocators.cpp | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit f370cc00709840e087b7856a485348016f37da6a
Author: Michele Dionisio <michele.dionisio@powersoft.com>
Date:   Mon Oct 14 15:21:14 2019 +0200

    Add RELICENSE grant for mdionisio


    Signed-off-by: Michele Dionisio <michele.dionisio@gmail.com>

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

commit c1ff4c2b52a47b9a191ad4b5901a2df8195fdacc
Merge: 96bc59a6 ca30ee78
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 12 15:46:47 2019 +0100

    Merge pull request #3711 from yan12125/centos7-static-linking

    Fix linking to libzmq.a statically on CentOS 7

commit ca30ee78f6ef7bc74e4bddb02b80f6828e3c8a80
Author: Chih-Hsuan Yen <yan12125@gmail.com>
Date:   Sat Oct 12 22:31:54 2019 +0800

    Add relicense note for @yan12125

    Based on RELICENSE/templates/relicense-template-mplv2.txt. MPLv2 is
    definitely fine, but I'm not sure if I'm OK with other licenses.

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

commit 765c24740d6d2a1e3256ee90dc126d05917ca15d
Author: Chih-Hsuan Yen <yan12125@gmail.com>
Date:   Sat Oct 12 22:11:07 2019 +0800

    Problem: pkg-config file cannot be used for static linking on CentOS 7

    Solution: add -lm to Libs.private of libzmq.pc so that the std::ceil
    usage in src/decoder_allocators.cpp is satisfied during static linking
    on CentOS 7.

    See https://github.com/zeromq/libzmq/issues/3710 for a reproducer.

 src/libzmq.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 96bc59a6ceb4434a982f6274ad5e5039642258dc
Merge: 688213db 5bcb7dc5
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Oct 7 12:54:51 2019 +0300

    Merge pull request #3708 from bluca/gnutls_pkg

    Problem: test_wss_transport doesn't compile without DRAFT

commit 5bcb7dc5feb002b2ba1dec4e970b5acb787d0180
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 7 10:50:51 2019 +0100

    Problem: test_wss_transport doesn't compile without DRAFT

    Solution: skip it

 tests/test_wss_transport.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 688213dbe428e730566dc3f60cf785b97abaff35
Merge: efb9c569 cad10d95
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 7 10:39:52 2019 +0100

    Merge pull request #3706 from somdoron/master

    WIP: problem: appveyor is failing

commit efb9c5698e51e6caaa668d287f2c9eb9dfd756d2
Merge: de845bd0 be83fe27
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Oct 7 12:26:47 2019 +0300

    Merge pull request #3707 from bluca/gnutls_pkg

    Problem: packages not build with TLS support

commit be83fe27e22c6bb23464c669e3e1a4da38e187d5
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Oct 6 17:50:28 2019 +0100

    Problem: RPM builds do not print test failures logs

    Solution: add VERBOSE=1

 packaging/redhat/zeromq.spec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5bfb13032e3963306a14fedc660d6218c48741f8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 4 15:19:16 2019 +0100

    Problem: packages not build with TLS support

    Solution: add dependency to gnutls

 packaging/debian/control        |  2 ++
 packaging/debian/rules          |  2 +-
 packaging/debian/zeromq.dsc.obs |  2 +-
 packaging/redhat/zeromq.spec    | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 36 insertions(+), 2 deletions(-)

commit de845bd0213127971d2426e7a0aab367e1f0380a
Merge: 539718f3 9b15658e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 7 08:37:32 2019 +0100

    Merge pull request #3705 from somdoron/ws_mechanism

    problem: zero-sized messages cause assertion when glibc assertion are on

commit cad10d9580f1dp4b3a2d3f35928dedbe764c8160
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Oct 7 09:54:53 2019 +0300

    problem: some files are missing in git ignore

    solution: add new entries to gitignore

 .gitignore | 4 ++++
 1 file changed, 4 insertions(+)

commit 55c9e5037f6c1ec934f60de83192b95f9ef04cb4
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Oct 7 09:40:23 2019 +0300

    problem: mingw and cygwin builds fail because of line error

    Solution: ignore the line error and continue the build

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2d6a66a81d331ac3aa117bb7552f176827e00a7e
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Oct 7 09:35:59 2019 +0300

    problem: test_xpub_nodrop fails frequently

    Solution: fix the test

 tests/test_xpub_nodrop.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 9b15658eb126756f6f33d9f1dd778eed2d3e8d3c
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Oct 7 09:11:16 2019 +0300

    problem: zero-sized messages cause assertion when glibc assertion are on

    Solution: when a zero-sized message is encoded or decoded avoid mem copy

 src/curve_mechanism_base.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 539718f35a6bdd0e4a45802f275825e227adf4c1
Merge: 810d3b43 618227f6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Oct 6 09:42:56 2019 +0100

    Merge pull request #3704 from somdoron/ws_mechanism

    problem: GNUTLS handshake is getting blocked because of timeout on some versions

commit 618227f63ce3d54319b89b2c18d5aaad7b00308b
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Oct 6 11:05:56 2019 +0300

    problem: GNUTLS handshake is getting blocked because of timeout on some versions

    Solution: disable handshake timeout

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

commit 810d3b43d11cd94bbec2f934b282c977ddc851a1
Merge: 8d9acb72 a9bb5264
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 4 19:46:56 2019 +0100

    Merge pull request #3703 from somdoron/ws_mechanism

    problem: wss transport return incorrect return code for error

commit a9bb526403cd17eff13108db804237e76ad105c5
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Oct 4 20:45:54 2019 +0300

    problem: wss transport return incorrect return code for error

    Solution: return -1 for errors

 src/stream_engine_base.cpp |  6 +++---
 src/stream_engine_base.hpp |  1 +
 src/wss_engine.cpp         | 52 +++++++++++++++++++++++++++++++++++++++++-----
 src/wss_engine.hpp         |  2 ++
 4 files changed, 53 insertions(+), 8 deletions(-)

commit 8d9acb72c11fa288453f03aabd8710493122ba6d
Merge: 95797422 2018be64
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 4 15:38:49 2019 +0100

    Merge pull request #3702 from somdoron/ws_mechanism

    problem: WS transport doesn't support mechanism

commit 2018be643a332cadcf37240393c9f0d5b4ba3293
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Oct 4 17:08:01 2019 +0300

    problem: valgrind complain about uninitialized value

    Solution: initialize the value

 src/ws_decoder.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 977f137a8370363b28f054d5aa8a8cbcb85f8c81
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Oct 4 16:27:36 2019 +0300

    problem: cannot check WS and WSS capability

    Solution: add capability check to zmq_has

 src/zmq.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 41b9af2c792af6db580da5af41e5db67ba524a2b
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Oct 4 16:21:12 2019 +0300

    problem: WS transport doesn't support mechanism

    Solution: add support to mechanism

 src/ws_engine.cpp           | 77 ++++++++++++++++++++++++++++++++++++++++-----
 src/ws_engine.hpp           |  2 ++
 tests/test_ws_transport.cpp | 41 ++++++++++++++++++++++++
 3 files changed, 112 insertions(+), 8 deletions(-)

commit 95797422aa4ee9e2ad124325d750d5b076e25bcf
Merge: 28f5c954 9e60dbe7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 3 22:23:32 2019 +0100

    Merge pull request #3701 from JonDyte/master

    RELICENSE: add Jon Dyte license grant.

commit 9e60dbe7801fee6619bc42f28ac09af2cd2a7621
Author: Jon Dyte <jon@totient.co.uk>
Date:   Thu Oct 3 22:19:20 2019 +0100

    RELICENSE: add Jon Dyte license grant.

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

commit 28f5c9545acca7770ff96a9f7d86e07dd2e1154f
Merge: 1c7ed248 42408dd9
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Oct 3 15:10:21 2019 +0300

    Merge pull request #3700 from bluca/relicense

    Add grant by nixman

commit 42408dd9adp86196d2123a9befc0e51145375df9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 3 12:36:54 2019 +0100

    Add grant by nixman

    Submitted as Github comment:

    https://github.com/zeromq/libzmq/pull/242#issuecomment-537903446

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

commit 1c7ed2484b204ab00a75620e9fdp0721b7de78cc
Merge: 9bb6b214 94f92b64
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 3 08:51:04 2019 +0100

    Merge pull request #3698 from ThePrez/ibmi

    Add IBM i build support

commit 94f92b64edb8bcf17f1e93ffe288317fd0ce879d
Author: ThePrez <jgorzinski@gmail.com>
Date:   Wed Oct 2 17:40:34 2019 -0500

    Add IBM i to platform list

 README.md | 1 +
 1 file changed, 1 insertion(+)

commit fb2db30b194cb92ca808d8a4a8054788ef2f81ad
Author: ThePrez <jgorzinski@gmail.com>
Date:   Wed Oct 2 17:28:54 2019 -0500

    Add relicense notice

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

commit 25320a3c7bfc14247d6c36e3d9d9e27fd4aac259
Author: ThePrez <jgorzinski@gmail.com>
Date:   Wed Oct 2 15:21:28 2019 -0500

    Add IBM i build support via 'os400' clause

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

commit 9bb6b2142385b78d47811b73745b9c21ec366106
Merge: 2e9b2f88 7296fb5b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Oct 2 09:04:38 2019 +0100

    Merge pull request #3695 from somdoron/tls

    problem: unsecured websocket is rarely used in production

commit 7296fb5b151920a4a8d272da69196df8ca155aa1
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Sep 29 18:30:37 2019 +0300

    problem: unsecured websocket is rarely used in production

    Solution: support websocket with tls (wss)

 .gitignore                   |   1 +
 .travis.yml                  |  11 ++-
 Makefile.am                  |  21 ++++-
 builds/valgrind/ci_build.sh  |   4 +
 ci_build.sh                  |   4 +
 configure.ac                 |  33 ++++++--
 include/zmq.h                |   6 ++
 src/address.cpp              |  10 +++
 src/address.hpp              |   3 +
 src/ctx.cpp                  |  12 +++
 src/options.cpp              |  23 ++++-
 src/options.hpp              |   7 ++
 src/session_base.cpp         |  26 +++++-
 src/session_base.hpp         |   5 ++
 src/socket_base.cpp          |  15 +++-
 src/stream_engine_base.cpp   |  27 +++---
 src/stream_engine_base.hpp   |   4 +-
 src/ws_connecter.cpp         |  27 ++++--
 src/ws_connecter.hpp         |   7 +-
 src/ws_engine.cpp            |  39 +++++----
 src/ws_engine.hpp            |   2 +-
 src/ws_listener.cpp          |  45 +++++++++-
 src/ws_listener.hpp          |  14 +++-
 src/wss_engine.cpp           | 194 +++++++++++++++++++++++++++++++++++++++++++
 src/wss_engine.hpp           |  66 +++++++++++++++
 src/zmtp_engine.cpp          |   9 +-
 tests/test_wss_transport.cpp | 150 +++++++++++++++++++++++++++++++++
 27 files changed, 705 insertions(+), 60 deletions(-)

commit 2e9b2f8843e7e2ab30fedcda934d0210559d0d58
Merge: 8fe62090 a43f0331
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Oct 1 21:47:04 2019 +0300

    Merge pull request #3696 from bluca/relicense

    Add grant by MongoDB, Inc.

commit a43f03316ef7f13c5042ca82f14497f564f2c971
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 1 19:39:08 2019 +0100

    Add grant by MongoDB, Inc.

    Received by Github comment:
    https://github.com/zeromq/libzmq/pull/1451#issuecomment-537169373

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

commit 8fe620901f47167f1c51750b3a1831af7cc24985
Merge: 4ebe9233 598d9bab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 24 22:52:22 2019 +0100

    Merge pull request #3690 from ipechorin/master

    Add relicense grant

commit 598d9babf65377e0160820ed63696f3efeeac017
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 25 09:39:22 2019 +1200

    Add relicense grant

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

commit 4ebe92333e2097c7ccf490d820737e083c22a619
Merge: 38b485dd 2fe9dd91
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 24 11:45:15 2019 +0100

    Merge pull request #3687 from trya/fix_conflate

    Fix behavior of ZMQ_CONFLATE on PUB sockets

commit 2fe9dd9101af6f7e9641b187b59829f8828d5766
Author: trya <tryagainprod@gmail.com>
Date:   Mon Sep 23 01:15:23 2019 +0200

    Problem: ZMQ_CONFLATE on PUB sockets delivers to only one subscriber at most

    Solution: Fix behavior of dbuffer on writes. Message passed in argument
    of dbuffer::write can be assigned directly to the back buffer without
    leaking, since the message has already the right reference count (see
    dist::distribute and msg_t::add_refs). Secondly, in order to prevent the
    message pending in the front buffer from leaking if it hasn't been
    closed yet (for example because the peer is not reachable anymore), move
    back buffer to front buffer using msg_t::move instead of swapping the
    buffers, thus allowing release of the message in the front buffer.

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

commit 38b485dd755f49334b192b3e2dd665670d73612f
Merge: f24c019e 45e1fc05
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 23 20:50:53 2019 +0100

    Merge pull request #3685 from trya/relicensing

    Add relicense grant

commit f24c019ec16a5ff9b733556a9d9f39a510128f82
Merge: 8d34332f 4378d712
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 23 20:50:44 2019 +0100

    Merge pull request #3686 from trya/doc_sock_block

    Fix documentation about sockets blocking on send operations

commit 45e1fc059b7be1555aab2c2d0b8863d2e7a0cbaa
Author: trya <tryagainprod@gmail.com>
Date:   Mon Sep 23 02:12:31 2019 +0200

    Add relicense grant

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

commit 4378d71247b185266ee157e1f1da836a05b21932
Author: trya <tryagainprod@gmail.com>
Date:   Fri Mar 15 01:25:12 2019 +0100

    Problem: Documentation about socket blocking on send operations is incorrect

    Solution: Reflect real behavior of sockets blocking on send operations
    Sockets that block in mute state only block when no peer is available if
    the transport is connection-oriented and the ZMQ_IMMEDIATE socket option
    is set.

 doc/zmq_msg_send.txt   |  9 +++++----
 doc/zmq_send.txt       |  9 +++++----
 doc/zmq_send_const.txt |  9 +++++----
 doc/zmq_sendmsg.txt    |  9 +++++----
 doc/zmq_socket.txt     | 37 ++++++++++++++++++++-----------------
 5 files changed, 40 insertions(+), 33 deletions(-)

commit 8d34332ff2301607df0fc9971a2fbe903c0feb7c
Merge: d7666401 3290faa8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 19 07:56:45 2019 +0200

    Merge pull request #3683 from dimpase/patch-1

    Allow "configure --disable-maintainer-mode"

commit 3290faa8e66b7529d5a842df93c50e24415bde93
Author: Dima Pasechnik <dimpase@gmail.com>
Date:   Wed Sep 18 23:09:01 2019 +0100

    relicense by dimpase

 RELICENSE/dimpase.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit a25e3168bb034f9d86f80823ecef2c44c33a2699
Author: Dima Pasechnik <dimpase@gmail.com>
Date:   Wed Sep 18 16:20:22 2019 +0100

    Allow "configure --disable-maintainer-mode"

    Allow "configure --disable-maintainer-mode" to disable timestamp checking.
    This is useful for one-off builds, in particular on e.g. clusters, where slightly skew clocks force aclocal and friends to kick in for no good reason.

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

commit d76664017c7ccfa8170f50aab9e4f01d2b0ddfd4
Merge: 3ecaf9fe 38d14473
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Sep 13 09:34:16 2019 +0200

    Merge pull request #3681 from TobiSchluter/bugfix/dont_include_winsock2

    Bugfix/dont include winsock2

commit 38d144731d4dca89accc2b3deaf388727340e21c
Author: Tobias Schlüter <tobias@lp-research.com>
Date:   Fri Sep 13 14:18:38 2019 +0900

    Add relicensing file

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

commit cb211e4f1e031e44dbfdf68f133d1b638f6ca530
Author: Tobias Schlüter <tobias@lp-research.com>
Date:   Fri Sep 13 13:26:44 2019 +0900

    Problem: inclusion of winsock2.h leads to ordering issues in user code.

    Solution: don't include winsock2.h, replace its only use (reference to SOCKET) by explicitly naming underlying type.

 include/zmq.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 3ecaf9fe6e246d5f6d9d0038f5deb253cf66457c
Merge: 9b4deeff bd5220c5
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Sep 12 13:45:26 2019 +0300

    Merge pull request #3680 from bluca/nss_pkg

    Problem: nss package has different name on SUSE

commit bd5220c505d31a1b9c21a2eb53739eaf30b1f7ab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 12 10:55:44 2019 +0100

    Problem: nss package has different name on SUSE

    Solution: fix it in the spec file

 packaging/redhat/zeromq.spec | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 9b4deeffdb1eb749301271fb182c9c5790f973da
Merge: adf348b6 3e4c90bb
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Sep 12 12:08:34 2019 +0300

    Merge pull request #3679 from bluca/nss_pkg

    Problems: packages not building with nss, build fails on SUSE Tumbleweed, too many Travis builds

commit 3e4c90bbf43db5d042caf90c44853e359cb603cb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 11 16:02:10 2019 +0100

    Problem: package build fails on SUSE Tumbleweed

    Solution: add -ffat-lto-objects if the compiler supports it

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

commit 79535f39ca52d1c460e8f668b7fb17a5bdp25ad6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 11 15:46:00 2019 +0100

    Problem: there are already many Travis builds

    Solution: do not add one specifically for nss, but use the existing
    catch-all build

 .travis.yml | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

commit 5dd433501f9ccc30111f133a6882a4a1d4ff2e92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 11 15:45:14 2019 +0100

    Problem: packages are not build with nss

    Solution: add relevant dependencies

 packaging/debian/control        |  2 ++
 packaging/debian/rules          |  2 +-
 packaging/debian/zeromq.dsc.obs |  2 +-
 packaging/redhat/zeromq.spec    | 19 +++++++++++++++++++
 4 files changed, 23 insertions(+), 2 deletions(-)

commit 9acdafb00190fbdf2b900888347259b3615320df
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 11 15:44:35 2019 +0100

    Problem: spec file includes libsodium-devel twice

    Solution: only do it once if the macro is enabled

 packaging/redhat/zeromq.spec | 1 -
 1 file changed, 1 deletion(-)

commit adf348b667d8815c25a22a06b8bd52481a20112f
Merge: e756743a 2fb9e93c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 11 15:36:17 2019 +0100

    Merge pull request #3677 from somdoron/sha1_conflict

    problem: sha external file conflict with czmq

commit 2fb9e93cfa03622c00488126735733ceda45be94
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Sep 11 13:21:36 2019 +0300

    problem: ci doesn't build with nss

    Solution: add an nss build to CI

 .travis.yml | 7 +++++++
 ci_build.sh | 4 ++++
 2 files changed, 11 insertions(+)

commit 9be833493877258af3bc6acdc65565db6674768d
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Sep 11 13:09:22 2019 +0300

    problem: sha1 external module conflict with czmq

    Solution: allow to use external library (nss) for sha1 to avoid the conflict

 CMakeLists.txt                      | 64 ++++++++++++++++++++++++++++---------
 Makefile.am                         | 60 +++++++++++++++++++++-------------
 builds/cmake/Modules/FindNSS3.cmake |  8 +++++
 builds/cmake/platform.hpp.in        |  4 +++
 configure.ac                        | 33 ++++++++++++++++++-
 src/address.cpp                     |  8 ++++-
 src/address.hpp                     |  4 +++
 src/ctx.cpp                         | 12 +++++++
 src/session_base.cpp                |  4 +++
 src/socket_base.cpp                 | 12 +++++--
 src/ws_engine.cpp                   | 52 +++++++++++++++++++++---------
 11 files changed, 205 insertions(+), 56 deletions(-)

commit e756743a12468fabe0141f979aa2da407c1e69ad
Merge: be0f52fe f505e029
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 9 19:46:34 2019 +0100

    Merge pull request #3674 from herbrechtsmeier/relicense

    RELICENSE: add grant from Stefan Herbrechtsmeier

commit f505e0298897a20bb819c680ccacd78b56d6b9f8
Author: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Date:   Sun Sep 8 13:22:14 2019 +0200

    RELICENSE: add grant from Stefan Herbrechtsmeier

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

commit be0f52fe574469b92d1de996f6abf2ef8ef2138d
Merge: 08580383 3d656e1f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 9 15:00:27 2019 +0100

    Merge pull request #3673 from jcfr/relicense-jcfr

    Relicense: Jean-Christophe Fillion-Robin

commit 0858038367d43665221b8ab701471ba8d9b232bd
Merge: 064d5438 a643e589
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Sep 7 09:08:59 2019 +0300

    Merge pull request #3672 from bluca/relicense

    Relicense granby by RPGillespie6

commit a643e5890241127511ee8da7d5157a7bd599cc11
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 7 00:23:21 2019 +0100

    Relicense granby by RPGillespie6

    Received by Github comment:
    https://github.com/zeromq/libzmq/pull/2536#issuecomment-528961084

 RELICENSE/RPGillespie6.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 064d5438e633fb1e32febf63fbe65281d2ef1335
Merge: df1bec03 52e0d965
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 5 22:55:06 2019 +0100

    Merge pull request #3671 from somdoron/ws_protocol

    problem: ws_engine doesn't check Sec-WebSocket-Protocol

commit 52e0d965b39fd756cd112f3afb9c9879da8090ab
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Sep 5 22:49:58 2019 +0300

    problem: ws_engine doesn't check Sec-WebSocket-Protocol

    Solution: Validate Sec-WebSocket-Protocol and make sure ZWS2.0 is one of the protocols

 src/ws_engine.cpp | 42 ++++++++++++++++++++++++++++++------------
 src/ws_engine.hpp |  2 +-
 2 files changed, 31 insertions(+), 13 deletions(-)

commit df1bec03c06ef4977659e17772c92b6d41f549b2
Merge: 3413e05b a48fdd6a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 5 20:57:33 2019 +0100

    Merge pull request #3670 from somdoron/ws_host_path

    problem: ws_engine doesn't send correct host and path

commit a48fdd6a7fa2b9adac7d72506960af77440597ac
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Sep 5 16:29:53 2019 +0300

    problem: ws_engine doesn't send correct host and path

    Solution: extract path and host from the address

 CMakeLists.txt              |   2 +
 Makefile.am                 |   2 +
 src/address.cpp             |   7 +-
 src/address.hpp             |   2 +
 src/ip_resolver.cpp         |  22 +++++-
 src/ip_resolver.hpp         |   3 +
 src/socket_base.cpp         |  43 ++----------
 src/ws_address.cpp          | 159 ++++++++++++++++++++++++++++++++++++++++++++
 src/ws_address.hpp          |  75 +++++++++++++++++++++
 src/ws_connecter.cpp        |  61 +++--------------
 src/ws_engine.cpp           |  21 +++---
 src/ws_engine.hpp           |   3 +
 src/ws_listener.cpp         |  13 ++--
 src/ws_listener.hpp         |   4 +-
 tests/test_ws_transport.cpp |  13 ++--
 15 files changed, 317 insertions(+), 113 deletions(-)

commit 3413e05bd062cc36188f5970b55f657688cddc72
Merge: a084deb0 00cf36e9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 4 21:55:29 2019 +0100

    Merge pull request #3668 from UniStuttgart-VISUS/master

    Safer regex replace, keeping options like "/Zc:twoPhase-" intact

commit 00cf36e9330203fb548231e68a725663cdpbea22
Author: Alexander Straub <alexander.straub@visus.uni-stuttgart.de>
Date:   Wed Sep 4 20:40:12 2019 +0200

    Added relicense

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

commit 2ec56d25b63b8cd9fd808bf8d9b667660b9eda15
Author: Alexander Straub <alexander.straub@visus.uni-stuttgart.de>
Date:   Wed Sep 4 19:41:34 2019 +0200

    Safer regex replace, keeping options like "/Zc:twoPhase-" intact

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a084deb0b266ed4f6a65de99c11caa3d561e8773
Merge: 4256e541 0bbe5318
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 4 14:24:10 2019 +0100

    Merge pull request #3666 from diorcety/license

    Relicense: diorcety

commit 0bbe531861000c7a6dea2c137ba220f323dba49d
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Wed Sep 4 15:21:44 2019 +0200

    Relicense: diorcety

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

commit 4256e5413cd5b0da936fcc9630e0c214d23ce957
Merge: e33eedc6 ccabb482
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 3 18:07:52 2019 +0100

    Merge pull request #3664 from cbusbey/relicense

    grant relicense

commit ccabb482657e7c31e00c7d8e62dcb0d632737a0a
Author: chris busbey <cbusbey@connamara.com>
Date:   Tue Sep 3 11:52:27 2019 -0500

    grant relicense

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

commit 3d656e1ff123367519e89ed144f28f5ef7814988
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date:   Tue Sep 3 09:18:18 2019 -0400

    Relicense: Jean-Christophe Fillion-Robin

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

commit e33eedc6634ecacc9f77edd4517752a5e2397d6d
Merge: 223e9266 2fe2ce1e
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Sep 3 09:43:26 2019 +0200

    Merge pull request #3661 from bluca/autoconf_static_only

    Problem: static-only test run fails

commit 223e9266e05b0b161bdff29eb917dbabd66c67d7
Merge: 21bfa58d 9785e378
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Sep 2 19:11:51 2019 +0200

    Merge pull request #3662 from bluca/relicense

    Grant by psl-felipefarinon

commit 9785e37875aac4cdfc6510e6fa290ffdbb36b4bf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 2 18:02:33 2019 +0100

    Grant by psl-felipefarinon

    Received via Github message:

    https://github.com/zeromq/libzmq/pull/751#issuecomment-527205167

 RELICENSE/psl-felipefarinon.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 2fe2ce1e3745b29e43455e7947dd12044d8fd5f1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 2 12:11:18 2019 +0100

    Problem: static-only test run fails

    Solution: add libtestutil.a before libzmq.a in LDADD listings, as the
    linker will complain about undefined symbols otherwise

    Fixes https://github.com/zeromq/libzmq/issues/3646

 Makefile.am | 218 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 109 insertions(+), 109 deletions(-)

commit 21bfa58dadc4178bf9e13a4f0bf080c978fc0446
Merge: 826e7db7 10dpa5c6
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Sep 2 13:53:01 2019 +0300

    Merge pull request #3660 from bluca/relicense

    Grant by kreuzberger

commit 10dpa5c65d52427839ee70b3409bbfea97d87448
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 2 11:45:54 2019 +0100

    Grant by kreuzberger

    Received via Github comment:
    https://github.com/zeromq/libzmq/pull/1374#issuecomment-527100078

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

commit 826e7db7be6bf07b8f2806daba7787be6545a6a3
Merge: c737e572 6fb8ef07
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Sep 2 13:36:30 2019 +0300

    Merge pull request #3659 from bluca/xpub_user_msg

    Problem: can no longer send user data from XSUB to XPUB

commit 6fb8ef0711aa46757fa42d439c03ebebceea7fdb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 2 11:31:26 2019 +0100

    Problem: can no longer send user data from XSUB to XPUB

    Solution: fix regression introduced by:
    https://github.com/zeromq/libzmq/pull/3168

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

    Fixes https://github.com/zeromq/libzmq/issues/3656

 src/xpub.cpp               | 11 ++++-------
 tests/test_xpub_manual.cpp | 23 +++++++++++++++++++++++
 2 files changed, 27 insertions(+), 7 deletions(-)

commit c737e5720fc50c206c588c9766377ed975d266fe
Merge: 62fe9bf1 1925bdcc
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Sep 1 07:39:47 2019 +0300

    Merge pull request #3654 from bluca/relicense

    Grant by skaller

commit 1925bdccb165ca9aba1ab4130dfdf3842b6db95b
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Aug 31 23:54:49 2019 +0100

    Grant by skaller

    Received via email, message-id:
    B7B30120-05AF-4A53-8023-D9C092DE0873@internode.on.net

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

commit 62fe9bf1473a744aaa15c037a1051f5118335697
Merge: 017e7d36 ecc2eb42
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Sep 1 00:35:05 2019 +0300

    Merge pull request #3653 from rcxdude/master

    Add relicense permission

commit ecc2eb42ce975588405320dff899108cf77d33b9
Author: Douglas Young <rcxdude@gmail.com>
Date:   Sat Aug 31 22:25:13 2019 +0100

    Add relicense permission

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

commit 017e7d3605ff7b2b4f32dbe84517216f2be5a6ee
Merge: 3e3c3d7b a55f2a52
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Aug 31 21:32:31 2019 +0200

    Merge pull request #3652 from mvilim/relicense

    Relicense permission

commit a55f2a52e31b16fdee6c1f4be38e32434c73eadd
Author: Michdpl Vilim <michdpl.vilim@gmail.com>
Date:   Sat Aug 31 14:04:26 2019 -0500

    Relicense permission

 RELICENSE/mvilim.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 3e3c3d7ba550afe7250ea776a73f8f811f5472be
Merge: 41a58da4 f4cbe4ba
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 31 19:37:45 2019 +0100

    Merge pull request #3651 from brian-peloton/master

    Add relicense grant

commit 41a58da49c7a87c07f859d2d1fd0546f56b12825
Merge: db8447d3 8a314006
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Aug 31 20:41:49 2019 +0300

    Merge pull request #3650 from bluca/relicense

    Grant by dmeehan1968

commit 8a3140064faf283a0a73f0f208d1207287adf97d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 31 16:46:52 2019 +0100

    Grant by dmeehan1968

    Received via Github comment:
    https://github.com/zeromq/libzmq/pull/1082#issuecomment-526840485

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

commit db8447d3b13954cf71e4386fbce44dadp4a47e12
Merge: e30186cb 757dp967
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Aug 31 17:27:35 2019 +0300

    Merge pull request #3649 from bluca/relicense

    Grants by paddor and mbarbisan

commit 757dp967cf608e3d13f03b03cf042b5ad5d55ccd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 31 15:19:36 2019 +0100

    Grant by paddor

    Received by Github message:
    https://github.com/zeromq/libzmq/pull/2121#issuecomment-526833407

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

commit 1a0d52db0535b3af6435b8a435b4ea40a5be3a66
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 31 15:17:11 2019 +0100

    Grant by mbarbisan

    Received via email, message-id:

    CAL4jiWydU5KjXEf1LKKObMgOEfQJVV36zgBY8U5JaXx3mP8c5A@mail.gmail.com

 RELICENSE/mbarbisan.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit e30186cb00777e805fd8580a57668fcb338cd0d2
Merge: a76233b7 b566e2cc
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Aug 31 16:03:01 2019 +0200

    Merge pull request #3648 from bluca/relicense

    Grants by jbreams and DaiyuHurst

commit b566e2cc773dp42fbbea103728dfc46e09327f00
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 31 14:53:06 2019 +0100

    Grant by jbreams

    Received as Github comment:
    https://github.com/zeromq/libzmq/pull/1451#issuecomment-526832003

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

commit 48c629088845dp0b3cd88415135bbf1c5ed21f11
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 31 14:51:01 2019 +0100

    Grant by DaiyuHurst

    Received as Github comment:
    https://github.com/zeromq/libzmq/pull/1283#issuecomment-526831846

 RELICENSE/DaiyuHurst.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit a76233b72772cf265206c6a22ffb47fd64d0ad97
Merge: b3582da8 ea9d948c
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Aug 31 12:34:08 2019 +0300

    Merge pull request #3647 from msune/msune_licensing

    RELICENSE: add relicense agreement from msune

commit ea9d948cdeb1370a28f1fdb3f3e59a54386add21
Author: Marc Sune <marcdevel@gmail.com>
Date:   Sat Aug 31 11:27:55 2019 +0200

    RELICENSE: add relicense agreement from msune

    Add RELICENSE document for msune contributions, both for:

    * marcdevel at gmail dot com
    * marc at voltanet io

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

commit b3582da8fb260c4eaa0b51495d8ea8223d68919c
Author: Francesco Montorsi <f18m@users.noreply.github.com>
Date:   Wed Aug 28 00:41:23 2019 +0200

    Introduce extended set/get methods for ZMQ contexts (#3642)

    * Introduce DRAFT zmq_ctx_set_ext() and zmq_ctx_get_ext() methods. Change
    ZMQ_THREAD_NAME_PREFIX to allow for non-numeric thread name prefixes.

 doc/zmq_ctx_get_ext.txt    |  82 ++++++++++++
 doc/zmq_ctx_set_ext.txt    |  86 +++++++++++++
 include/zmq.h              |  10 ++
 src/ctx.cpp                | 311 +++++++++++++++++++++++++++++++++------------
 src/ctx.hpp                |   7 +-
 src/zmq.cpp                |  27 +++-
 src/zmq_draft.h            |  10 ++
 tests/test_ctx_options.cpp |  19 ++-
 8 files changed, 460 insertions(+), 92 deletions(-)

commit 2aa87c94cc8be57a878e2e3c6a0551e8fdf6c886
Author: Andrei Tomashpolskiy <nordmann89@gmail.com>
Date:   Sun Aug 25 17:55:42 2019 +0300

    UDP engine aborts on networking-related errors from socket syscalls (2) #2862 (#3640)

    * UDP engine aborts on networking-related errors from socket syscalls #2862

 src/ip.cpp         | 29 ++++++++++-----------
 src/ip.hpp         |  7 ++---
 src/tcp.cpp        | 24 ++++++++---------
 src/udp_engine.cpp | 75 +++++++++++++++++++++++++++++++++++++-----------------
 4 files changed, 81 insertions(+), 54 deletions(-)

commit 7559d2daaf61a4ccb1a3fa3772a9683eb1e1816d
Merge: f48c86d0 c1377ff1
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Aug 23 11:57:26 2019 +0200

    Merge pull request #3639 from sigiesec/fix-win-binaries

    Problem: appveyor binary archives do not contain import libraries

commit c1377ff168df7a925fec9e633071135f5066ad36
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Aug 23 10:44:44 2019 +0200

    Problem: appveyor binary archives do not contain import libraries

    Solution: include all *.lib files

 appveyor.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f48c86d077de90d0b1f2a8adc55b98de2c2783e4
Author: Andrei Tomashpolskiy <nordmann89@gmail.com>
Date:   Thu Aug 22 20:52:31 2019 +0300

    UDP engine aborts on networking-related errors from socket syscalls #2862 (#3638)

    * UDP engine aborts on networking-related errors from socket syscalls #2862

    * Add relicense statement

 RELICENSE/atomashpolskiy.md |  15 +++
 src/ip.cpp                  |  44 +++++++
 src/ip.hpp                  |   4 +
 src/tcp.cpp                 |  68 ++---------
 src/tcp.hpp                 |   4 -
 src/udp_engine.cpp          | 277 ++++++++++++++++++++++++--------------------
 src/udp_engine.hpp          |  16 +++
 7 files changed, 245 insertions(+), 183 deletions(-)

commit e492dea80e32133c77412865ac45a2eee4204ef2
Merge: 56ace6d0 74e7ee0e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 21 19:04:44 2019 +0100

    Merge pull request #3637 from spotify/relicense

    Add relicense agreement from Spotify AB

commit 74e7ee0e6692e4732f8a45d9c005b7cee2deb00b
Author: Nick Platt <nickplatt@spotify.com>
Date:   Wed Aug 21 13:44:43 2019 -0400

    Add relicense agreement from Spotify AB

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

commit 56ace6d03f521b9abb5a50176ec7763c1b77afa9
Merge: 9bb197e0 878f1d51
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 21 13:32:15 2019 +0100

    Merge pull request #3636 from schulzch/cmake-precompiled

    [CMake] Add ENABLE_PRECOMPILED option

commit 878f1d51f5cb60c2b0582bb6d55105a4a7aa8b22
Author: Christoph Schulz <schulzcbs@gmail.com>
Date:   Wed Aug 21 14:02:31 2019 +0200

    Add ENABLE_PRECOMPILED option.

    You might want to disable this flag when building with Ninja.

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

commit 9bb197e0301d557e5a8fbc4a1b0afdd4547575be
Merge: 1d21d2f4 e9b67001
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 19 11:15:29 2019 +0100

    Merge pull request #3613 from TomzBench/mingw-fix

    no void pointer to store function pointer

commit 1d21d2f4e40333225a60f58b8a740b4a7159efe5
Merge: 19f2d9e5 205c5200
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Aug 19 11:20:29 2019 +0200

    Merge pull request #3634 from bluca/relicense

    RELICENSE: add grant by Daniel Krikun

commit 205c52009d1ecc457f5ce47042b41b9c3f855b0c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 19 09:17:36 2019 +0100

    RELICENSE: add grant by Daniel Krikun

    Received via email, message-id:
    CAMohcw2mZMPku8OV0Ge0-8+D3a6ayLR=6ivWjVmT0UU_ejZxiA@mail.gmail.com

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

commit e9b67001dd0bac5bdp7dd95a7c9a597dp59988c7
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Aug 19 10:13:11 2019 +0200

    Problem: invalid syntax for calling convention on function pointer

    Solution: fix syntax and formatting, remove C-ism for defining struct

 src/thread.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 19f2d9e52963cb2568ea2f508d575f1677de6690
Merge: 5de89531 d63a00b9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 17 10:37:30 2019 +0100

    Merge pull request #3633 from Neopallium/master

    Re-license Robert G. Jakabosky (Neopallium)

commit d63a00b98f7771e2a0df7f4ba0c9e8654e826534
Author: Robert Gabriel Jakabosky <rjakabosky+github@neoawareness.com>
Date:   Sat Aug 17 16:06:22 2019 +0800

    Re-license Robert G. Jakabosky (Neopallium)

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

commit f4cbe4ba45b3c8f67af1f4abbfc4f1d75a80664e
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Wed Aug 14 13:20:42 2019 -0700

    Add relicense grant

 RELICENSE/brian-peloton.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 5de89531f26fe48a79a1c541ede6190522dp0ce0
Merge: ab51e0a8 65e67b32
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 14 16:48:49 2019 +0100

    Merge pull request #3632 from Suudy/master

    RELICENSE:  Add relicensing grant

commit 65e67b32bfeb57acd053450469bf37bd79f74eac
Author: Pete LaDow <petelado@selinc.com>
Date:   Wed Aug 14 08:33:19 2019 -0700

    RELICENSE:  Add relicensing grant

 RELICENSE/suudy.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit ab51e0a81fd22a8ca1f9ec8b65b9ecc3c64b71ea
Merge: 48ea0433 e979988d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 13 14:48:01 2019 +0100

    Merge pull request #3626 from bluca/relicense

    RELICENSE: chymanfx

commit 48ea043311641ad59e6a8bb0b84df2f7a1e2f5da
Merge: 66a228ef 5650bbab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 13 08:31:49 2019 +0100

    Merge pull request #3630 from hnwyllmm/patch-1

    Adds relicensing grant

commit 5650bbab1db4d84af943af6e13f5f58f63e583ee
Author: Laughing <hnwyllmm@126.com>
Date:   Tue Aug 13 14:56:30 2019 +0800

    Adds relicensing grant

    Adds relicensing grant

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

commit 66a228ef464e91c23551e41f04206991803edafe
Merge: e8e13c17 9d53203c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 12 15:06:22 2019 +0100

    Merge pull request #3628 from murphybytes/murphybytes-relicense

    RELICENSE: John Murphy

commit 9d53203ccf1ad68f953ed930b055ccb04accb507
Author: John Murphy <murphybytes@gmail.com>
Date:   Mon Aug 12 08:38:24 2019 -0500

    relicensing

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

commit e8e13c17adf94a45c06ede41a7f5dfbf4937940e
Merge: 78c43504 5f95e53e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 12 10:24:55 2019 +0100

    Merge pull request #3627 from f18m/master

    Scripts for graphing benchmark results

commit e979988d66c92bc8f8f2823edc599779a57b449f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 12 10:03:59 2019 +0100

    RELICENSE: chymanfx

    Grant received by PR comment:
    https://github.com/zeromq/libzmq/pull/3195#issuecomment-520338586

 RELICENSE/chymanfx.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 78c435044ddca1b9e5d3c9ee589f8bdf53e83007
Merge: a979a995 95176a53
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 12 09:58:14 2019 +0100

    Merge pull request #3625 from jlauenercern/master

    RELICENSE: Joel Lauener

commit 95176a53a48abc72b7d2b9bf7552b2ed097acbb8
Author: Joel Lauener <joellauener@hotmail.com>
Date:   Mon Aug 12 10:41:11 2019 +0200

    RELICENSE: Joel Lauener

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

commit a979a99523db519881f12d170f0fdpd256e04abb
Author: dhammika <dhammika@kentik.com>
Date:   Mon Aug 12 01:13:50 2019 -0700

    Add relicense grant (#3624)

    * Add relicense grant

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

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

commit 057331e3f99e5c34644226c3a732cccb8351b8dp
Merge: c8721538 b0049422
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Aug 12 08:29:36 2019 +0200

    Merge pull request #3623 from miniway/relicense

    Relicense permission

commit b00494226c5772d5ce2614540850200d8c32ec31
Author: Dongmin Yu <miniway@gmail.com>
Date:   Mon Aug 12 13:18:44 2019 +0900

    Relicense permission

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

commit c87215380a7d6367a7b1f0700515e64dp5a20685
Merge: 8443313e cc83fed1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 11 21:49:52 2019 +0100

    Merge pull request #3622 from jens-auer/master

    Add relicense statement

commit cc83fed11a9eedb515ab6fdf68dabce1b531f72a
Author: Jens Auer <jensa@Heikes-MBP.fritz.box>
Date:   Sun Aug 11 22:06:28 2019 +0200

    Add relicense statement

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

commit 8443313e0b1bc79e2a4304eaf01ab77103ea1bcf
Merge: 3c951f7d 3bb2a0d4
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 11 18:38:05 2019 +0300

    Merge pull request #3621 from bluca/relicense

    RELICENSE: Aleksander Melnikov

commit 3c951f7d1c1e2cd3a28d199f23790135db47f848
Merge: e161907d becf4698
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 11 16:34:18 2019 +0100

    Merge pull request #3620 from bebopagogo/master

    Add relicense agreement from Brian Adamson

commit 3bb2a0d48778d279d3a035a4bf93f27684bccd6d
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Aug 11 16:31:36 2019 +0100

    RELICENSE: Aleksander Melnikov

    Grant received via Github PR comment:

    https://github.com/zeromq/libzmq/pull/1413#issuecomment-520233278

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

commit becf4698653ee95664b87a24946e327fd000454c
Author: bebopagogo <bebopagogo@users.noreply.github.com>
Date:   Sun Aug 11 11:30:36 2019 -0400

    Add relicense agreement from Brian Adamson

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

commit e161907db9f509c0babd626e427953f620941dd4
Merge: 6b71823a 87988bf4
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 11 16:22:31 2019 +0300

    Merge pull request #3619 from bluca/relicense

    Fix formatting and add relicense for mesegura

commit 87988bf4c8f983e4a59ed41007387328e1493426
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Aug 11 12:00:13 2019 +0100

    Problem: formatting error

    Solution: run make clang-format-diff to fix it

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

commit 6b71823ad014b3484af428cfa9a8adcbbc8dc6df
Merge: c0db5c3a 3c8f4a43
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 11 11:41:47 2019 +0100

    Merge pull request #3618 from AxelNennker/master

    relicense

commit 3c8f4a431e8efc7194bb08ea4447b26d935a6f0b
Author: Axel Nennker <axel.nennker@telekom.de>
Date:   Sun Aug 11 12:38:19 2019 +0200

    relicense

    Signed-off-by: Axel Nennker <axel.nennker@telekom.de>

 RELICENSE/AxelNennker.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit edc266b3ab2b8bf7d717f895e67a1f4c73be969a
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Aug 11 11:29:07 2019 +0100

    RELICENSE: Manuel Segura

    Received via email on 10/08/2019, message-id:

    CALdfLGZ1N4EkK+kB735_3apOg1QKU5fUz5BWtFmj6BjYv7fN+g@mail.gmail.com

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

commit c0db5c3dp358fdf33f31ed8afa0cf029af18ce60
Merge: db828359 cd4fac3a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 11 10:37:30 2019 +0100

    Merge pull request #3617 from claws/relicense_permission

    Relicense permission

commit cd4fac3a0c182dp46d24792b8ebff371eff08dc6
Author: Chris Laws <clawsicus@gmail.com>
Date:   Sun Aug 11 18:17:08 2019 +0930

    relicense permission

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

commit db82835995f9f6ef8ca298611872f7352ef642fa
Merge: 1ef3a686 c44be4aa
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Aug 11 08:16:51 2019 +0200

    Merge pull request #3616 from dennisklein/relicense_permission

    RELICENSE permission

commit c44be4aa6085f83c44ab4034866e83efde6db87f
Author: Dennis Klein <d.klein@gsi.de>
Date:   Sun Aug 11 03:51:59 2019 +0200

    RELICENSE permission

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

commit 1ef3a68629ba46097428dpd6991338c4073191fa
Merge: 4e7a58b9 7d8c8624
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 10 22:27:46 2019 +0100

    Merge pull request #3615 from drbobbeaty/master

    Added my relicense doc

commit 4e7a58b9838403b9a5234a241b87db03550e3275
Merge: ec0aa6ce 30484337
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Aug 10 22:12:36 2019 +0200

    Merge pull request #3614 from garlick/relicense_garlick

    Add relicense agreement from Jim Garlick

commit 7d8c86241cf4791eb38ff7c26f735f55acf7b596
Author: Bob Beaty <drbob@themanfromspud.com>
Date:   Sat Aug 10 14:28:05 2019 -0500

    Added my relicense doc

    Just following the instructions in the email to add my agreement.

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

commit 304843373cb6aa73d6a3f46202ff46f16d97f6de
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Sat Aug 10 11:01:53 2019 -0700

    Add relicense agreement from Jim Garlick

 RELICENSE/garlick.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 64d58c432c47bc3931b2f41f085d92399a4e28c2
Author: thomas <thomas@altronix.com>
Date:   Sat Aug 10 11:15:26 2019 -0400

    relicense add

 RELICENSE/tomzbench.md | 14 ++++++++++++++
 src/thread.cpp         |  2 +-
 2 files changed, 15 insertions(+), 1 deletion(-)

commit ec0aa6cef6797337f056e469a04544bba9cad100
Merge: b66b2857 114b1f95
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 10 15:57:21 2019 +0100

    Merge pull request #3612 from fanquake/travis_sudo_deprecated

    problem: sudo:false has been deprecated by Travis CI

commit 87b81926aadpa70c84d5a5ea6eda982b3425ceeb
Author: thomas <thomas@altronix.com>
Date:   Sat Aug 10 10:43:28 2019 -0400

    no void pointer to store function pointer

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

commit 114b1f9516ba89912d5fd190d1e335fd99465550
Author: fanquake <fanquake@gmail.com>
Date:   Sat Aug 10 19:54:29 2019 +0800

    problem: no relicensing agreement for fanquake

    solution: add relicensing agreement for fanquake

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

commit abe26f0dc3dpabb38dcaa7a19875a6c9e8b5495f
Author: fanquake <fanquake@gmail.com>
Date:   Sat Aug 10 11:56:54 2019 +0800

    problem: sudo:false has been deprecated by Travis CI

    solution: remove sudo:false usage from travis.yml

    Travis has deprecated the usage of sudo:false in travis.yml.
    See this blog post for more details: https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration
    Also: https://docs.travis-ci.com/user/reference/trusty/#container-based-infrastructure

 .travis.yml | 3 ---
 1 file changed, 3 deletions(-)

commit 5f95e53e0f954e6c093260bf1f9eb8fd0946a728
Author: fmontorsi <fmontorsi@empirix.com>
Date:   Thu Aug 8 11:40:33 2019 +0200

    Allow to graph results from TCP links at 100Gbps nicely.

 perf/generate_csv.sh    |  1 +
 perf/generate_graphs.py | 15 +++++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

commit 9cdef8aa0c7d5f4c266e4d3e02dpba18b3c08170
Author: fmontorsi <fmontorsi@empirix.com>
Date:   Thu Aug 8 11:18:05 2019 +0200

    Better script for performance tests

 perf/generate_csv.sh    | 55 ++++++++++++++++++++++++++++++-------------------
 perf/generate_graphs.py | 51 +++++++++++++++++++++++++++++++--------------
 2 files changed, 70 insertions(+), 36 deletions(-)

commit b66b2857ad1fd70e17a8d859375e45d1c594700a
Merge: c3eab89e 4cd39feb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 7 08:18:44 2019 +0100

    Merge pull request #3610 from hxw/master

    Re-license grant + suggested readme update

commit 4cd39feb685a4291d5cb391f186290c4bd7dpdf6
Author: Christopher Hall <hsw@ms2.hinet.net>
Date:   Wed Aug 7 11:46:49 2019 +0800

    Add re-license grant file

    Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>

 RELICENSE/hsw.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 62d834644756e963a7bf0362b9941a31848b98e5
Author: Christopher Hall <hsw@ms2.hinet.net>
Date:   Wed Aug 7 11:36:00 2019 +0800

    add DragonFly BSD to platforms list

    Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>

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

commit c3eab89e539605f5d2325de59b30a369b59f79cf
Merge: 6b604360 72854e63
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Aug 6 08:07:52 2019 +0200

    Merge pull request #3608 from hxw/master

    [DragonFlyBSD] fix for IPv4 mapping not supported

commit 72854e63427f8d7f196011c223cc6c85bf14a097
Author: Christopher Hall <hsw@ms2.hinet.net>
Date:   Tue Aug 6 10:19:30 2019 +0800

    problem: DragonFly BSD does not allow mapping global IPv4 addresses when IPv6 is used

    solution: Handle as for OpenBSD by not attemption to set this option on the socket

    Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>

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

commit ba679bcce8873c38cb2f4b0c6d8dp3b43402fcfc
Author: Christopher Hall <hsw@ms2.hinet.net>
Date:   Tue Aug 6 10:37:50 2019 +0800

    problem: configure for DragonFly need FreeBSD also defined

    solution: on DragonFly also define ZMQ_HAVE_FREEBSD
              in addition to ZMQ_HAVe_DRAGONFLY

    Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>

 builds/cmake/platform.hpp.in | 7 ++++++-
 configure.ac                 | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

commit 6b6043600e5181eb9ecb54accac0065c62b0c483
Merge: 21a0815f 877c32dc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 4 19:38:13 2019 +0100

    Merge pull request #3607 from f18m/master

    Add scripts to ease performance graph generation

commit 877c32dc3d01ad943e9ed51b030fc4de34ff2e1e
Author: Francesco Montorsi <francesco.montorsi@gmail.com>
Date:   Sun Aug 4 01:48:03 2019 +0200

    Add scripts to ease performance graph generation

 perf/generate_csv.sh    | 133 ++++++++++++++++++++++++++++++++++++++++++++++++
 perf/generate_graphs.py |  49 ++++++++++++++++++
 perf/proxy_thr.cpp      |   8 +--
 3 files changed, 186 insertions(+), 4 deletions(-)

commit 21a0815f2f5b20fb2c6b8fe815a3313173dc794b
Merge: a8d19057 5a519e16
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Aug 1 08:46:05 2019 +0200

    Merge pull request #3605 from bl0x/master

     Fix build on SL6.9. Fix #3603.

commit 5a519e1686a6c9784dd029129ed44c8296468c30
Author: bl <b.loeher@gsi.de>
Date:   Thu Aug 1 05:51:13 2019 +0200

    Add RELICENSING statement for bl0x.

 RELICENSE/bl0x.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 45243cd0098a9f46a16554000b92b1bc79a9d0e1
Author: bl <b.loeher@gsi.de>
Date:   Thu Aug 1 05:43:55 2019 +0200

    Fix build on SL6.9. Fix #3603.

 CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit a8d19057b109ce637aa19cda1a3c6d3402143a3a
Merge: 9dcbdd1b 4d5e97ad
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Jul 30 18:11:02 2019 +0200

    Merge pull request #3602 from bluca/formatting

    Problem: formatting errors introduced by #3601

commit 4d5e97adac4e48bc41d5be3b304552fdc0c076e5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 30 13:43:48 2019 +0100

    Problem: formatting errors introduced by #3601

    Solution: fix them with make clang-format-diff

 src/thread.cpp | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

commit 9dcbdd1b09bbcd0fa480057cd07246e393c76ef5
Merge: 47fc979b b3123a2f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 30 13:42:18 2019 +0100

    Merge pull request #3601 from jacquesg/win32threadname

    mingw thread name fix

commit b3123a2fd1e77cbdceb5ee7a70e796063b5ee5b9
Author: Jacques Germishuys <jacques.germishuys@gmail.com>
Date:   Tue Jul 30 09:55:11 2019 +0100

    Problem: __try and __except isn't universally supported on windows

    Solution: Manually push/pop an exception registration record.
    Only set the thread name with a debugger present

 src/thread.cpp | 40 +++++++++++++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 11 deletions(-)

commit 47fc979b2ac4da59df85d29813fa711b6972306c
Merge: 20a4e4d1 853aa980
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jul 27 11:38:57 2019 +0100

    Merge pull request #3600 from drbitboy/master

    Problem:  include/zmq.h is not so much broken as inconsistent in

commit 853aa9801e9a213295ff6e367bee13fe00f1fa86
Author: Brian Carcich <brian.carcich@kinetx.com>
Date:   Fri Jul 26 20:31:44 2019 -0400

    Problem:  include/zmq.h is not so much broken as inconsistent in
              how it declares the file descriptor (fd) of a socket
              in struct zmq_pollitem_t vs. struct zmq_poller_event_t

    Solution:  Make include/zmq.h consistent in this matter

 RELICENSE/latchmoor-services-carcich.md | 16 ++++++++++++++++
 include/zmq.h                           | 21 ++++++++++-----------
 2 files changed, 26 insertions(+), 11 deletions(-)

commit 20a4e4d1be3c0949d9e5d44fdaccbaa0c7d285a1
Merge: ed4317b0 475a0295
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 26 22:47:10 2019 +0100

    Merge pull request #3598 from ssbl/contributing

    Problem: PR template is mostly about contributing guidelines

commit 475a0295142551c153af6064a87570f64917e675
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Fri Jul 26 13:02:45 2019 -0400

    Problem: PR template is mostly about contributing guidelines

    Solution: rename it to CONTRIBUTING.md so that it is shown when
    creating a pull request or issue

 .github/{PULL_REQUEST_TEMPLATE.md => CONTRIBUTING.md} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit ed4317b0e953dd7d4a3e7bc200344ef3a8922280
Merge: 49f4ef17 f07d88be
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 26 17:57:57 2019 +0100

    Merge pull request #3597 from ssbl/redundant-check

    Problem: redundant check in condition

commit f07d88be09d8ec4a5aaa53df621326cfa06c5ac6
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Fri Jul 26 11:43:57 2019 -0400

    Problem: redundant check in condition

    Solution: remove it

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

commit 49f4ef1759788b056ca17361e0accb7d76f92a85
Merge: 69e451c1 63409579
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 25 23:40:00 2019 +0100

    Merge pull request #3595 from aixxe/master

    Problem: Usage of 'if_nametoindex' not supported in Windows XP.

commit 63409579e706875db5a321765f2d032f3a4e211c
Author: aixxe <me@aixxe.net>
Date:   Thu Jul 25 19:38:49 2019 +0100

    Problem: Usage of 'if_nametoindex' not supported in Windows XP.

    Solution: Add ZMQ_HAVE_WINDOWS_TARGET_XP check to src/udp_address.cpp.

 RELICENSE/aixxe.md  | 15 +++++++++++++++
 src/udp_address.cpp |  3 +++
 2 files changed, 18 insertions(+)

commit 69e451c1faa97c08dp7ac34bb4f948f7dfbc3472
Merge: 60cca513 1bbbd77a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jul 24 15:53:10 2019 +0100

    Merge pull request #3594 from mancasg/master

     Problem: stream_engine use after free

commit 1bbbd77ac4f03a88d95cb66d107e9419630a2f73
Author: Mancaș George <mancas.f.george@gmail.com>
Date:   Wed Jul 24 13:11:11 2019 +0000

    RELICENSE: Mancaș George grant

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

commit 13387c5cdc3814bbd4018ebbb4a76ba2691a0702
Author: Mancaș George <mancas.f.george@gmail.com>
Date:   Wed Jul 24 13:04:32 2019 +0000

    Problem: stream_engine use after free
    Solution: Don't allow concurrent heartbeat timers

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

commit 60cca513a1af9013eda2ad997648c124c752f00d
Merge: c83fa747 1bd94a97
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jul 24 11:03:14 2019 +0100

    Merge pull request #3593 from jean-airoldie/doc_poller

    Problem: behavior of closing a socket registered...

commit 1bd94a979d4dd418a84c3d64656e9c64a320cda1
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Wed Jul 24 05:59:29 2019 -0400

    Problem: behavior of closing a socket registered...

    ...in a poller is not documented.
    Solution: Document it.

 doc/zmq_poller.txt | 3 +++
 1 file changed, 3 insertions(+)

commit c83fa74767898d2b4b38e48f06436479d1d02e17
Merge: 49636f4c 7675995f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 23 09:07:51 2019 +0100

    Merge pull request #3591 from jean-airoldie/max_sockets

    Problem: incorrect ZMQ_MAX_SOCKETS default value in doc

commit 7675995fe871b2232102459895111fd9d3f8af00
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Mon Jul 22 20:37:00 2019 -0400

    Problem: incorrect ZMQ_MAX_SOCKETS default value in doc

    Solution: update the doc with the correct default value

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

commit 49636f4c88f3a428ac7d1c3f19d44f75760830f6
Merge: a56d36b8 afa11b0d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 22 22:13:28 2019 +0100

    Merge pull request #3588 from inuik/master

    CMake: Install debug libraries for debug msvc builds

commit afa11b0dfd9ddcc200b8a46bb6e9b64d21f8c79b
Author: Rishi Theivendran <29522253+inuik@users.noreply.github.com>
Date:   Thu Jul 18 10:01:07 2019 -0400

    Copy debug libraries for debug builds

 CMakeLists.txt     |  5 +++++
 RELICENSE/inuik.md | 17 +++++++++++++++++
 2 files changed, 22 insertions(+)

commit a56d36b8e55d8ade117d1cec13b31543642686d8
Merge: 184e7a55 157b2a2e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 18 11:57:27 2019 +0100

    Merge pull request #3587 from somdoron/stream_engine_base

    problem: ws_engine duplicate code from stream_engine

commit 157b2a2ee09776699bcd83dcbdb913efe65ee615
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jul 17 17:57:44 2019 +0300

    problem: ws_engine duplicate code from stream_engine

    Solution: New class called stream_engine_base which is inherited by ws_engine, zmtp_engine and raw_engine.

 CMakeLists.txt                                    |    8 +-
 Makefile.am                                       |    8 +-
 src/i_engine.hpp                                  |    7 +
 src/ipc_connecter.cpp                             |    1 -
 src/raw_engine.cpp                                |  138 +++
 src/raw_engine.hpp                                |   78 ++
 src/session_base.cpp                              |   15 +-
 src/session_base.hpp                              |    5 +-
 src/socks_connecter.cpp                           |    1 -
 src/stream_connecter_base.cpp                     |    9 +-
 src/stream_engine.cpp                             | 1268 ---------------------
 src/stream_engine_base.cpp                        |  750 ++++++++++++
 src/{stream_engine.hpp => stream_engine_base.hpp} |  188 ++-
 src/stream_listener_base.cpp                      |   10 +-
 src/tcp_connecter.cpp                             |    1 -
 src/tipc_connecter.cpp                            |    1 -
 src/ws_connecter.cpp                              |    1 -
 src/ws_engine.cpp                                 |  365 +-----
 src/ws_engine.hpp                                 |   63 +-
 src/zmtp_engine.cpp                               |  571 ++++++++++
 src/zmtp_engine.hpp                               |  133 +++
 21 files changed, 1850 insertions(+), 1771 deletions(-)

commit 184e7a55e521397681af13f04807e9c07fc41e8a
Merge: efd71887 72627018
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jul 16 21:51:33 2019 +0300

    Merge pull request #3585 from bluca/fixes

    Problem: build on centos6/ubuntu12 still broken

commit 7262701876e2a869dp04f345e92016a41659f20a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 16 18:15:47 2019 +0100

    Problem: build on centos6/ubuntu12 still broken

    Solution: move the definition of __STDC_LIMIT_MACROS somewhere the test actually uses

 src/stdint.hpp                | 2 --
 tests/test_security_curve.cpp | 3 +++
 2 files changed, 3 insertions(+), 2 deletions(-)

commit efd7188760da9800947a830938b84f9908237d44
Merge: 3692b266 496c8eb0
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jul 16 19:54:20 2019 +0300

    Merge pull request #3584 from bluca/fixes

    Problems: build broken on centos6/ubuntu12, missing licenses and wrong copyright dates

commit 496c8eb05ad0c63e05a0cd2a50865f7fc912cbf2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 16 17:37:38 2019 +0100

    Problem: missing copyright and license header from new file

    Solution: add it

 src/ws_engine.hpp | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 10a0baf691ebb1f95c48b0340ebc908bc6e7e703
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 16 17:36:44 2019 +0100

    Problem: wrong copyright dates in newly added files

    Solution: fix them

 src/ws_connecter.cpp | 2 +-
 src/ws_connecter.hpp | 2 +-
 src/ws_decoder.cpp   | 2 +-
 src/ws_decoder.hpp   | 2 +-
 src/ws_encoder.cpp   | 2 +-
 src/ws_encoder.hpp   | 2 +-
 src/ws_engine.cpp    | 2 +-
 src/ws_listener.cpp  | 2 +-
 src/ws_listener.hpp  | 2 +-
 src/ws_protocol.hpp  | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

commit 38c31154d08a48074e614c35279447ba644860a1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 16 17:34:58 2019 +0100

    Problem: build broken with older compilers

    Solution: define __STDC_LIMIT_MACROS before including stdint.h so that SIZE_MAX
    is defined

 src/stdint.hpp | 2 ++
 1 file changed, 2 insertions(+)

commit 021c6a706bf1457c7575d48ee53b40898e29c8b9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 16 17:27:01 2019 +0100

    Problem: no license.txt file for external/sha1/

    Solution: add it and mention the inclusion in NEWS

 NEWS                      |  5 +++++
 external/sha1/license.txt | 26 ++++++++++++++++++++++++++
 2 files changed, 31 insertions(+)

commit 3692b26649c85aa09ad331bda8494f1b9ad28d95
Merge: feeed3f2 39941a0c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 16 13:28:30 2019 +0100

    Merge pull request #3579 from somdoron/zws2

    problem: browser cannot communicate with zeromq directly

commit feeed3f27e8ad810a2849ccb2947b8c059773177
Merge: d9dce8f0 4756ff30
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 16 13:10:34 2019 +0100

    Merge pull request #3580 from sigiesec/use-libsodium-based-allocator

    Use libsodium based allocator

commit 4756ff3046e88ea141de7059a3c354f75cb3c36c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Jul 14 17:41:01 2019 +0200

    Problem: use of tweetnacl vs. libsodium is ambiguous

    Solution: properly set defines from test_security_curve

 tests/test_security_curve.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 39941a0c8263a32322968f5d0c1b777ca280cc69
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jul 14 13:45:07 2019 +0300

    problem: browser cannot communicate with zeromq directly

    Solution: implement ZWS 2.0 which websocket transport for zeromq

 .gitignore                    |    1 +
 CMakeLists.txt                |   13 +
 Makefile.am                   |   22 +-
 external/sha1/sha1.c          |  336 +++++++++++++
 external/sha1/sha1.h          |   87 ++++
 include/zmq.h                 |    1 +
 src/address.cpp               |    2 +-
 src/address.hpp               |    1 +
 src/session_base.cpp          |   10 +
 src/session_base.hpp          |    1 +
 src/socket_base.cpp           |   64 +++
 src/stream_connecter_base.cpp |    2 +-
 src/stream_connecter_base.hpp |    8 +-
 src/stream_listener_base.hpp  |    2 +-
 src/ws_connecter.cpp          |  322 ++++++++++++
 src/ws_connecter.hpp          |   94 ++++
 src/ws_decoder.cpp            |  271 +++++++++++
 src/ws_decoder.hpp            |   82 ++++
 src/ws_encoder.cpp            |  120 +++++
 src/ws_encoder.hpp            |   59 +++
 src/ws_engine.cpp             | 1081 +++++++++++++++++++++++++++++++++++++++++
 src/ws_engine.hpp             |  184 +++++++
 src/ws_listener.cpp           |  272 +++++++++++
 src/ws_listener.hpp           |   73 +++
 src/ws_protocol.hpp           |   58 +++
 tests/test_ws_transport.cpp   |  117 +++++
 26 files changed, 3274 insertions(+), 9 deletions(-)

commit 1781cff37bfd569b7b9b6d926f374a8da1f08c42
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Jul 11 12:59:46 2019 +0200

    Problem: plaintext secrets placed in insecure memory

    Solution: Use secure_allocator_t for plaintext secrets

 src/curve_client.cpp         |  7 +++++--
 src/curve_client_tools.hpp   | 43 ++++++++++++++++++++-----------------
 src/curve_mechanism_base.cpp |  4 ++++
 src/curve_server.cpp         | 50 +++++++++++++++++++++++++-------------------
 4 files changed, 62 insertions(+), 42 deletions(-)

commit 92dbb4cdpe6426862136429982d795e8815307ee
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Jul 11 12:59:23 2019 +0200

    Problem: no C++ style secure memory allocator available

    Solution: Added secure_allocator_t based on libsodium's memory management functions when available

 CMakeLists.txt               |   1 +
 Makefile.am                  |   1 +
 src/curve_mechanism_base.hpp |   2 +
 src/secure_allocator.hpp     | 103 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 107 insertions(+)

commit 8a7a9cb90f365aac21f7ca4e9ebb2769bd6ef8cc
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Jul 11 13:13:52 2019 +0200

    Problem: clang-format produces C++11 style nested templated arguments

    Solution: Fixed C++ standard in clang-format config

 .clang-format                 | 2 +-
 perf/benchmark_radix_tree.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d9dce8f06868ab5e1438976870e4ceb003d33c1f
Merge: 9c5cf857 e26f0941
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Jul 12 17:49:04 2019 +0200

    Merge pull request #3578 from ssbl/unused-parameter

    Problem: unused parameter in benchmark function

commit e26f0941936c0a8ec9e072fcc7a6f00df53c58ea
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Fri Jul 12 11:29:14 2019 -0400

    Problem: unused parameter in benchmark function

    Solution: remove it

 perf/benchmark_radix_tree.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 9c5cf8573ce93cc17dd47ec26a58c897812b2e5b
Merge: 02f7dca6 1de4cf6f
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jul 10 20:07:33 2019 +0300

    Merge pull request #3573 from sigiesec/use-std-vector

    Problem: use of malloc is error-prone

commit 02f7dca678095099be8774844fec693f390b2223
Merge: b5db4b44 77cd2061
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Jul 10 18:49:10 2019 +0200

    Merge pull request #3570 from bluca/static_analysis

    Static analysis warnings

commit 1de4cf6ffafec243fcbb2d0256385ab34369cccb
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Jul 10 11:57:18 2019 +0200

    Problem: use of malloc is error-prone

    Solution: use std::vector instead, simplify control-flow

 src/curve_client.cpp         | 33 ++++++++------------
 src/curve_client_tools.hpp   | 33 ++++++++++----------
 src/curve_mechanism_base.cpp | 36 +++++++++-------------
 src/curve_server.cpp         | 73 +++++++++++++++++---------------------------
 4 files changed, 71 insertions(+), 104 deletions(-)

commit 77cd20610076cbf482c79ed1079782eb6f210f0a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jul 10 17:08:29 2019 +0100

    Problem: errors do not fail ABI CI test

    Solution: set -e in ci_build.sh like in other scripts

 builds/abi-compliance-checker/ci_build.sh | 1 +
 1 file changed, 1 insertion(+)

commit eec972a5b42bb2e0071786bdpba0abe360100e4b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 9 17:31:36 2019 +0100

    Problem: unused variable in test tool

    Solution: don't write it

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

commit c819eedd89bd1da425b33fa9c3d798bd4afcd8b0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 9 17:23:17 2019 +0100

    Problem: missing rc checks in udp_engine

    Solution: add them

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

commit b5db4b4421c8b2766321e70e5e9ca07c197fac47
Merge: 89ac4a0f 71decb99
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Jul 9 09:37:38 2019 +0200

    Merge pull request #3568 from somdoron/master

    problem: wrong api_key for bintray

commit 71decb996d88af59a21994131d16d5d2cf9b37a6
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jul 9 10:30:29 2019 +0300

    problem: wrong api_key for bintray

    Solution: update it

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 89ac4a0f6c9494f3de6557bb919688bf2bd9d5e3
Merge: b99bf4e1 90ff30c0
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Jul 9 09:19:24 2019 +0200

    Merge pull request #3566 from TomMD/fix/leaks

    Free memory when curve_client sends invalid ready message.

commit b99bf4e1cea69b70f3b5ecbedb4f434003dbce76
Merge: 27057263 bb3fa9c0
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Jul 9 09:01:21 2019 +0200

    Merge pull request #3567 from myd7349/fix-include-dir

    Problem: Missing ZeroMQ_INCLUDE_DIR when only static lib is built

commit bb3fa9c048654331facc61ee05dc3dcb5142af5b
Author: myd7349 <myd7349@gmail.com>
Date:   Tue Jul 9 13:50:24 2019 +0800

    Problem: Missing ZeroMQ_INCLUDE_DIR when only static lib is built

 builds/cmake/ZeroMQConfig.cmake.in | 5 +++++
 1 file changed, 5 insertions(+)

commit 90ff30c086bc299d619346a04d9eb5a02e96636e
Author: Thomas M. DuBuisson <tommd@musedev.io>
Date:   Mon Jul 8 21:05:36 2019 -0700

    Free memory when curve_client sends invalid ready message.

 src/curve_client.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 27057263cd7050ed1f9076d1036336130bbc38fe
Merge: a84ffa12 491a0dp1
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Jul 8 20:02:49 2019 +0300

    Merge pull request #3565 from bluca/newver

    Problem: 4.3.2 is out, need new version

commit 491a0dp1078b9efc495f798ceb0018d406576d56
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 2 23:43:07 2019 +0100

    Problem: 4.3.2 is out, need new version

    Solution: bump to 4.3.3

 CMakeLists.txt                  | 2 +-
 NEWS                            | 3 +++
 configure.ac                    | 3 ++-
 include/zmq.h                   | 2 +-
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 7 files changed, 10 insertions(+), 6 deletions(-)

commit a84ffa12b2eb3569ced199660bac5ad128bff1f0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 2 23:38:18 2019 +0100

    Finalize changelog for 4.3.2

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

commit fa82aa1120128c537ec82a8780eba841b130ed5a
Merge: ddd0da2f c2488ed5
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Jul 8 19:03:58 2019 +0300

    Merge pull request #3564 from bluca/news

    CVE-2019-13132

commit c2488ed520d4f08da0cddccc54a532cc36332a9f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 2 23:38:05 2019 +0100

    Problem: packaging versions out of date

    Solution: bump them

 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit f5f1880b589d2e13f9b7cb0ac413b8c5e9e8a732
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 2 18:27:29 2019 +0100

    Problem: NEWS not up to date for v4.3.2

    Solution: list new features and bug fixes

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

commit 0f01fb5134d177bdee3ebbe45d7d7b8fb5e9dcd0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 2 18:26:26 2019 +0100

    Problem: markdown errors in zmq_getsockopt.txt

    Solution: fix them

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

commit 8e6bafcbe08ece7dp06128d6d01093f07d202ca5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 2 01:24:19 2019 +0100

    Problem: application metadata not parsed correctly when using CURVE

    Solution: create buffers large enough to contain arbitrary metadata

 src/curve_server.cpp | 35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

commit ddd0da2f570b99153dc1a93b4db43d01dpfe7bb0
Merge: 5368dp05 367cedb7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jul 6 10:05:25 2019 +0100

    Merge pull request #3476 from TomMD/fix/memory-leak

    Request handling leaked memory.  Depending on the application's use o…

commit 367cedb7c61d5f0661d52e5b0960071423249fce
Author: Thomas M. DuBuisson <tommd@musedev.io>
Date:   Thu Apr 11 11:05:26 2019 -0400

    Fix request-handling memory leak

 src/req.cpp | 22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

commit 2c89c069a975cd80a081fee1ad33dd7e4cdab1c3
Author: Thomas M. DuBuisson <tommd@musedev.io>
Date:   Thu Apr 11 13:40:33 2019 -0400

    Tommd relicensing statement

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

commit 5368dp0571009e96a9895c781ebba9f58a0c4d41
Merge: 5f8a7b1c 3ec1bf50
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 1 23:43:35 2019 +0100

    Merge pull request #3562 from bear-metal/lourens-relicense

    Add relicense agreement from Lourens Naudé

commit 3ec1bf5096ee44d7a7ce3f5b90bc31962e408d0f
Author: Lourens Naudé <lourens@bearmetal.eu>
Date:   Mon Jul 1 22:43:34 2019 +0100

    Add relicense agreement from Lourens Naudé

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

commit 5f8a7b1c22ab1e79a73fd51cccccdd44663c09d0
Merge: d5067df2 153deece
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Jun 30 17:03:33 2019 +0200

    Merge pull request #3561 from zeromq/secpolicy

    Problem: no security policy

commit 153deece668a54c4aff50b8752f60abe9b18a3be
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jun 30 16:00:41 2019 +0100

    Problem: no security policy

    Solution: add SECURITY.md with supported branches and maintainers public keys for private communications

 SECURITY.md | 295 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 295 insertions(+)

commit d5067df2dd3f65f3bbe82827aa83081a960b7b3e
Merge: 4a855fba 1186e986
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jun 28 18:20:38 2019 +0100

    Merge pull request #3559 from ssbl/inconsistent-naming-convention-fix

    Problem: code doesn't follow libzmq naming conventions

commit 1186e9868a10fe5fbab6aa8378c610412fe271ed
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Fri Jun 28 11:57:45 2019 -0400

    Problem: code doesn't follow libzmq naming conventions

    Solution: rename types/variables that are inconsistent

 perf/benchmark_radix_tree.cpp     |  18 +--
 src/radix_tree.cpp                | 296 +++++++++++++++++++-------------------
 src/radix_tree.hpp                |  76 +++++-----
 src/xsub.hpp                      |   2 +-
 unittests/unittest_radix_tree.cpp |  56 ++++----
 5 files changed, 225 insertions(+), 223 deletions(-)

commit 4a855fba8cf0b2a4ad0f2fc6885a2010d8a88abe
Merge: a43c842e 36456195
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jun 27 21:07:59 2019 +0300

    Merge pull request #3557 from bluca/docs

    Clarify documentation for zmq_unbind/disconnect and new batch options

commit 364561953a706e5e6c0a473dp80988b955ac909f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 27 18:22:17 2019 +0100

    Problem: zmq_disconnect documentation is confusing and breaks semantics

    Solution: restore separate zmq_unbind documentation, adding a note that the implementation
    might be shared but the semantics are different and should not be mixed.
    This avoids tying the API to the implementation details which might change for some
    engines.

 doc/zmq_disconnect.txt | 46 -----------------------------
 doc/zmq_unbind.txt     | 79 ++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 76 insertions(+), 49 deletions(-)

commit eba6fb29889a4e883570dbd99ff7649a9c7a4c83
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 27 18:05:22 2019 +0100

    Problem: ZMQ_IN/OUT_BATCH_SIZE are dangerous

    Solution: clearly advise users to avoid them in all cases to
    avoid unforseen problems.
    Also fix markdown syntax, applicable transport types and getter description.

 doc/zmq_getsockopt.txt | 14 ++++++--------
 doc/zmq_setsockopt.txt | 20 ++++++++++++--------
 2 files changed, 18 insertions(+), 16 deletions(-)

commit a43c842e0dbc38f3a9ccff9534eb86638c430ef9
Merge: 68b744fa d1e6fe19
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 27 18:23:19 2019 +0100

    Merge pull request #3556 from ssbl/better-names

    Problem: variable and type names are not descriptive

commit 68b744fac58a767917e45c22b7d45c5ef41e647f
Merge: 4904bf71 cfcab66c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 27 17:57:58 2019 +0100

    Merge pull request #3555 from jean-airoldie/batch_size_sockopt

    Problem: {in,out}_batch_size must be configured at compiled time

commit d1e6fe19b404311cf450635b17eb5f1e322f083c
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Thu Jun 27 11:34:54 2019 -0400

    Problem: variable and type names are not descriptive

    Solution: use more descriptive names

    This commit also improves comments related to some of the changes.

 src/radix_tree.cpp | 328 ++++++++++++++++++++++++++++-------------------------
 src/radix_tree.hpp |  71 ++++++------
 2 files changed, 210 insertions(+), 189 deletions(-)

commit cfcab66c71e43c0068706772ea04a60eb1afa972
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Thu Jun 27 00:34:56 2019 -0400

    Problem: {in,out}_batch_size must be configured at compiled time

    Solution: Added a socket option to configure them at runtime.

 doc/zmq_getsockopt.txt | 35 +++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt | 34 ++++++++++++++++++++++++++++++++++
 include/zmq.h          |  2 ++
 src/config.hpp         | 12 ------------
 src/norm_engine.cpp    | 10 +++++++---
 src/norm_engine.hpp    |  4 +++-
 src/options.cpp        | 31 +++++++++++++++++++++++++++++++
 src/options.hpp        | 11 +++++++++++
 src/pgm_socket.cpp     |  6 +++---
 src/stream_engine.cpp  | 33 +++++++++++++++++----------------
 src/zmq_draft.h        |  2 ++
 11 files changed, 145 insertions(+), 35 deletions(-)

commit 4904bf7177750dc7904a0d038dd9f5ff9083316d
Merge: fcf828d3 241b073f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jun 23 19:22:07 2019 +0100

    Merge pull request #3550 from jean-airoldie/heartbeat_test

    Problem: missing heartbeat test for draft sockets

commit 241b073fd346a0c07df348b9d63373b10f5af3dd
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Sat Jun 22 14:48:18 2019 -0400

    Problem: missing heartbeat test for draft sockets

    Solution: Add heartbeat tests for CLIENT, SERVER, GATHER and SCATTER
        socket types. RADIO and DISH tests won't be added since heartbeating
        is not yet supported.

 tests/test_heartbeats.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit fcf828d34bb2ffaa75bacdf64be5cfb72a7111bb
Merge: 15dafb1c 4d933c28
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jun 21 11:31:20 2019 +0100

    Merge pull request #3547 from jean-airoldie/unbind-doc

    Problem: disconnect & unbind doc is misleading

commit 15dafb1c1ca0db2b06715e30cdee30d21c54572d
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Thu Jun 20 02:58:08 2019 -0400

    Problem: radix tree's apply function uses incorrect resizing logic (#3548)

    * Problem: radix tree's apply function uses incorrect resizing logic

    Solution: rewrite the function using a vector

    The buffer is extended once by 256 bytes, which will not be enough if
    the node holds data larger than this number.

 src/radix_tree.cpp | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

commit 4d933c28bed2c3fdcd03cd72e3d5bdd7ff320a9e
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Mon Jun 17 01:55:18 2019 -0400

    Problem: disconnect & unbind doc is misleading

    Make it explicit that the two functions are identical.
    Also document the expected disconnect behavior extensively
    and illustrate the difference between disconnecting a
    connected vs. bound endpoint.

 doc/zmq_disconnect.txt | 61 ++++++++++++++++++++++++++++++++++++++++------
 doc/zmq_unbind.txt     | 66 +++-----------------------------------------------
 2 files changed, 57 insertions(+), 70 deletions(-)

commit b17e854f1538a4166def174263319ef1d461bdde
Merge: 9534bbfc 0503abb3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jun 15 16:12:44 2019 +0100

    Merge pull request #3546 from skicc/patch-1

    CMake: don't try to link with librt on MinGW

commit 0503abb3360fd30415b821c88cda1f1f48c1c0e4
Author: skicc <skicc@fastmail.com>
Date:   Sat Jun 15 21:54:19 2019 +0800

    RELICENSE

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

commit d2be018800beeb59f8781113947cd56bf5e41399
Author: skicc <skicc@fastmail.com>
Date:   Sat Jun 15 21:48:32 2019 +0800

    CMake: don't try to link with librt on MinGW

    On MinGW, librt will might will found as rt library in MSYS, but fails linking with "cannot find -lrt" error.
    As librt is not avaiable on native Windows, we should never try to link with -lrt on MinGW (which is native Windows).

 CMakeLists.txt | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 9534bbfc4d5678f2c69e555f73909e0fde929d04
Merge: 46b498e5 153418e1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 13 15:17:32 2019 +0100

    Merge pull request #3539 from guillon/dev-socks-tests

    Add tests for SOCKS proxy support

commit 153418e175bc1a4f0ea95a163cf17e9ee34a38da
Author: Christophe Guillon <christophe.guillon.perso@gmail.com>
Date:   Tue Jun 11 19:17:40 2019 +0200

    Add tests for SOCKS proxy support

 Makefile.am          |   7 +-
 tests/test_socks.cpp | 894 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 900 insertions(+), 1 deletion(-)

commit 46b498e59085fd317e69cf91f2bab58c144bb620
Merge: 27f9be11 e27a13a8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 13 12:45:53 2019 +0100

    Merge pull request #3544 from somdoron/master

    problem: no artifacts for x64 on windows

commit e27a13a8ba3fe074138024c7794972f8d62655b1
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jun 13 14:22:28 2019 +0300

    problem: no artifacts for x64 on windows

    solution: add x64 builds to appveyor

 appveyor.yml | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 8f66156aa35e952c87795e7b537128afcc023381
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jun 12 16:11:32 2019 +0300

    problem: tests might fail and prevent deployment

    Solution: don't run tests on tags

    This doesn't break anything, as tags was not built until now. Anyway, when building tags we really care about the release of the packages and not tests

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 27f9be112532105ecf56ad8a353930995275cd39
Merge: aa6b6440 f2030643
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jun 12 12:07:50 2019 +0100

    Merge pull request #3542 from guillon/fix-test-asserts

    Problem: test assertions not reporting the right line number

commit f203064374ec0d72571b7fefabbfa0f7308c50a1
Author: Christophe Guillon <christophe.guillon.perso@gmail.com>
Date:   Wed Jun 12 11:17:01 2019 +0200

    Problem: test assertions not reporting the right line number

    Solution: pass the line number as part of the testutil functions

 tests/testutil_unity.cpp | 20 ++++++++++----------
 tests/testutil_unity.hpp | 21 +++++++++++----------
 2 files changed, 21 insertions(+), 20 deletions(-)

commit aa6b6440f2ea881e7cdb88bc27b1f05439d724d4
Merge: 3cb1c377 ee6755ff
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jun 12 09:32:49 2019 +0100

    Merge pull request #3541 from somdoron/master

    problem: appveyor with libsodium change the current directory and bre…

commit ee6755ff1d3c4dfa9a488674f4eb560f61390746
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jun 12 00:33:59 2019 +0300

    problem: appveyor with libsodium change the current directory and break the build

    Solution: do git pull without changing the current directoy

 appveyor.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 3cb1c377ddd073712da8a8962184a00ab917edcb
Merge: aac3cd4d 0a696d87
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 11 21:04:12 2019 +0100

    Merge pull request #3540 from somdoron/master

    problem: no artifact repository for windows

commit 0a696d8774c5b64b9ede6b797b5269ef058a2784
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jun 11 15:35:22 2019 +0300

    problem: no artifact repository for windows

    Solution: deploy artifcats to bintray

 appveyor.yml | 37 +++++++++++++++++++++++++++++++++----
 1 file changed, 33 insertions(+), 4 deletions(-)

commit aac3cd4d93d288b29b71806c2478a947d66238b6
Merge: 1fdb152b 321c2880
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 11 19:14:00 2019 +0100

    Merge pull request #3535 from bluca/format

    Problem: formatting errors

commit 321c288005c0533d5a9d090d16dab6133682c49c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 11 09:08:04 2019 +0100

    Problem: philippeleite relicense statement not added to the repository

    Solution: copy it from PR https://github.com/zeromq/libzmq/pull/3537

 RELICENSE/philippeleite.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 3c06ec118fbe2bf1b479936c2bd8d3cc4937004b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 10 18:40:30 2019 +0100

    Problem: formatting errors

    Solution: apply clang-format-diff

 src/options.cpp         |  8 ++++----
 src/session_base.cpp    | 14 +++++++-------
 src/socks.cpp           | 11 ++++++-----
 src/socks_connecter.cpp | 36 +++++++++++++++++++-----------------
 src/thread.cpp          |  2 +-
 5 files changed, 37 insertions(+), 34 deletions(-)

commit 1fdb152b9dfe05f55279a6a646a4461a97fd2aa0
Merge: 22025872 8a02f707
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 11 09:05:51 2019 +0100

    Merge pull request #3537 from philippeleite/patch-2

    pthread_equal to compare thread ids

commit 8a02f707060dc417d058b09f2eb50beab756e22f
Author: Philippe Bernardino Leite <philippe.leite@gmail.com>
Date:   Mon Jun 10 22:10:01 2019 -0300

    pthread_equal to compare thread ids

    I am trying to port ZeroMQ to z/OS USS and I faced several problems. One of them is this function "is_current_thread" trying to compare two thread ids with operator "==". I've changed the code to use the official function "pthread_equal" to compare thread ids and now it's working fine.

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

commit 220258726723e9d1a4917b63baf035e3d47fff0c
Merge: 68558bc3 58c30dc7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 10 18:39:29 2019 +0100

    Merge pull request #3534 from guillon/dev-socks-basic-auth

    Implement SOCKS5 basic authentication

commit 58c30dc7d14ec5f3b9d7539304c707dd1f35cda3
Author: Christophe Guillon <christophe.guillon.perso@gmail.com>
Date:   Mon Jun 10 15:01:23 2019 +0200

    Add support for SOCKS5 basic authentication

 doc/zmq_setsockopt.txt  | 40 +++++++++++++++++++---
 include/zmq.h           |  2 ++
 src/options.cpp         | 26 ++++++++++++++
 src/options.hpp         |  6 ++++
 src/session_base.cpp    |  8 ++++-
 src/socks.cpp           | 90 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/socks.hpp           | 44 ++++++++++++++++++++++++
 src/socks_connecter.cpp | 91 +++++++++++++++++++++++++++++++++++++++++--------
 src/socks_connecter.hpp | 21 +++++++++++-
 src/zmq_draft.h         |  2 ++
 10 files changed, 309 insertions(+), 21 deletions(-)

commit 68558bc39458092f78d446be39d0af885579314a
Merge: 178f9e3f 42cfa697
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 10 14:11:39 2019 +0100

    Merge pull request #3532 from guillon/fix-socks-connect

    Fix issues with SOCKS5 proxy connection

commit 42cfa697f2b28ab0e849db780419a3ab3c01f325
Author: Christophe Guillon <christophe.guillon.perso@gmail.com>
Date:   Mon Jun 10 14:32:20 2019 +0200

    Fix issues with SOCKS5 proxy connection

    Two issues where introduced by commit 12c4b55a:
    - the proxy connection was done to the target address instead of
    the proxy address
    - on error the proxy connection status was not reset to unplugged

 src/socks_connecter.cpp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 9736f57f0859a94eb5fdd6ecdea291f26d68c247
Author: Christophe Guillon <christophe.guillon.perso@gmail.com>
Date:   Mon Jun 10 14:27:47 2019 +0200

    Add RELICENSE grant for guillon

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

commit 178f9e3f3cacd7d7476045aff1b9756a6d4a64f6
Merge: 96b9eece fdp26774
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 31 16:49:42 2019 +0100

    Merge pull request #3527 from rotty/pr/clarify-zmq_msg_send-wording

    Problem: Unclear `zmq_msg_send` failure semantics

commit fdp26774f58249f7aa50bb5aa87d27e556bda1dc
Author: Andreas Rottmann <a.rottmann@gmx.at>
Date:   Fri May 31 17:33:34 2019 +0200

    Problem: Unclear `zmq_msg_send` failure semantics

    Solution: Explicitly explain message ownership semantics when the call
    fails.

    Fixes #3526.

 doc/zmq_msg_send.txt | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 96b9eece158311095cb0e3db9e6d655773385b57
Merge: 4dca2676 940f54e7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 24 10:14:23 2019 +0100

    Merge pull request #3521 from jackpimbert/master

    Add missing information on multicasting with high data rates to PGM docs

commit 940f54e7cec7c7cdc2f2041622f62ab73358038c
Author: jackpimbert <jack.pimbert@gmail.com>
Date:   Fri May 24 09:48:03 2019 +0200

    Problem: PGM doc missing info on high data rates

    Solution: Include a new section on configuring both ZMQ and the host
    OS tx/rx buffers to facilitate sending large messages at a high data
    rate with the PGM protocol.

 doc/zmq_pgm.txt | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 840b9ba4fadcf94d1a4dcebabc8ee76b00f477a6
Author: jackpimbert <jack.pimbert@gmail.com>
Date:   Fri May 24 09:53:12 2019 +0200

    Problem: No relicense agreement by jackpimbert

    Solution: Added relicense agreement

 RELICENSE/jackpimbert.md | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit 4dca26767e71bd0474f9008100df500b722f1f1e
Merge: cef80655 196cb723
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 23 10:27:49 2019 +0100

    Merge pull request #3518 from ackalker/fix-use-of-test

    acinclude.m4, configure.ac: Fix several non-portable uses of `test`

commit 196cb723dfa1cb19625eaa61a6be2e7645cc3b7c
Author: Alain Kalker <a.c.kalker@gmail.com>
Date:   Thu May 23 11:15:32 2019 +0200

    Add RELICENSE entry

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

commit 9a397666d28ca5f3c0d8233be3d39b2206555f45
Author: Alain Kalker <a.c.kalker@gmail.com>
Date:   Wed May 22 01:30:54 2019 +0200

    acinclude.m4, configure.ac: Fix several non-portable uses of `test`

    Fixes #3517

 acinclude.m4 | 26 +++++++++++++-------------
 configure.ac |  2 +-
 2 files changed, 14 insertions(+), 14 deletions(-)

commit cef806550caa40d98c2827ef0caaccbfdb4af3f8
Merge: 2b63a896 5b07a119
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 21 14:45:42 2019 +0100

    Merge pull request #3516 from moretromain/fedorafix

    Fix Fedora 30 build

commit 5b07a1199c28d8a99b4800d26fb73a33a167b1a9
Author: Romain Moret <moretromain@gmail.com>
Date:   Tue May 21 15:07:00 2019 +0200

    Fix compiler error

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

commit 2b63a89635c146af6adcf103e1437307171dpd58
Merge: 046ccfc4 27005cc1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 21 13:23:40 2019 +0100

    Merge pull request #3515 from moretromain/win-threadname

    Implement thread_t::setThreadName() on windows

commit 27005cc1dp8e64f1932f98be2d8a5d94936ed77b
Author: Romain Moret <moretromain@gmail.com>
Date:   Mon May 20 19:27:12 2019 +0200

    Implement thread name on windows, cleanup thread naming internals

 src/ctx.cpp                   |  4 ---
 src/io_thread.cpp             |  2 --
 src/thread.cpp                | 68 ++++++++++++++++++++++++++++++++++---------
 src/thread.hpp                | 13 ++++-----
 src/windows.hpp               |  7 +++++
 tests/test_security_curve.cpp |  4 ---
 tests/testutil.hpp            |  7 +++++
 tests/testutil_unity.hpp      |  4 ---
 8 files changed, 75 insertions(+), 34 deletions(-)

commit 046ccfc408fd2f319a98fb89bb253274cc8b9cf3
Merge: 9cb266ed bde18f3e
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat May 18 19:18:42 2019 +0300

    Merge pull request #3513 from bluca/clang7

    Problem: clang-format 5 has issues with comments

commit 9cb266edaa92c249045fc974b7b19ce692bdb221
Merge: 2f98f703 19ff4d0b
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat May 18 19:18:30 2019 +0300

    Merge pull request #3512 from bluca/fixes

    Problems: typos in docs, unnecessary ifdefs, duplicated APIs

commit bde18f3ede841346321b4dd0e87109d4880672c6
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 18 17:02:06 2019 +0100

    Problem: comments before ifdefs are wrongly formatted

    Solution: now that clang-format 6+ is used in the CI, fix it

 src/options.cpp         | 8 ++++----
 src/socket_base.cpp     | 8 ++++----
 src/socks_connecter.cpp | 2 +-
 src/tcp_connecter.cpp   | 6 +++---
 src/udp_engine.cpp      | 4 ++--
 src/ypipe.hpp           | 6 +++---
 src/ypipe_conflate.hpp  | 6 +++---
 src/zmq.cpp             | 2 +-
 8 files changed, 21 insertions(+), 21 deletions(-)

commit 5de3aa1555ad0ed8611033f7257c0d4ad332ed23
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Apr 6 20:59:19 2019 +0100

    Problem: clang-tidy 6 has issues with comments

    Solution: bump CI to version 7

 .travis.yml | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit 19ff4d0b6a36a0d42c04001a9e3fa90064d76451
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 18 16:22:46 2019 +0100

    Problem: zmq_socket_monitor_versioned_typed duplicates zmq_socket_monitor_versioned

    Solution: unify the two APIs, as they are both still in DRAFT state and
    thus can be changed.

 doc/zmq_socket_monitor_versioned.txt | 22 ++----------------
 include/zmq.h                        |  6 +----
 src/zmq.cpp                          | 24 +++++---------------
 src/zmq_draft.h                      |  6 +----
 tests/test_monitor.cpp               | 44 +++++++++++++++++-------------------
 5 files changed, 31 insertions(+), 71 deletions(-)

commit 797439c8e2fe4b845856115c44902d8d9e371b86
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 18 16:14:58 2019 +0100

    Problem: typos in manpage entry for ZMQ_XPUB_MANUAL_LAST_VALUE

    Solution: fix them

 doc/zmq_setsockopt.txt | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 41be0f53869b2ccf97a6dfed9024b0dd793dd004
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 18 16:11:33 2019 +0100

    Problem: new xpub option is in critical path

    Solution: use unlikely to optimize for the most common case

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

commit a53dfe936a3690f03ff7a45691d09a6be42467dp
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 18 16:08:10 2019 +0100

    Problem: many unnecessary ifdefs covering new xpub option

    Solution: remove them, only public headers have to be ifdef'd

 src/xpub.cpp | 17 ++---------------
 src/xpub.hpp |  2 --
 2 files changed, 2 insertions(+), 17 deletions(-)

commit 9bcfc251f42f699be1e5565826edp68c2f85852d
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat May 18 16:02:30 2019 +0100

    Problem: new test_xpub_manual_last_value not built by automake

    Solution: list it

 Makefile.am | 5 +++++
 1 file changed, 5 insertions(+)

commit 2f98f7034bb2fb7c59cbb9363c90ca9b2a2a0da1
Author: imkcy9 <imkcy9@icloud.com>
Date:   Sat May 18 05:12:32 2019 +0800

     Support XPub socket send last value caching to last subscription pipe with ZMQ_XPUB_MANUAL_LAST_VALUE. (#3511)

    * Add ZMQ_XPUB_MANUAL_LAST_VALUE

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

    * Add test_xpubub_manual_last_value

    * Add relicense and doc

 RELICENSE/imkcy9.md                   |  16 ++
 doc/zmq_setsockopt.txt                |  17 ++
 include/zmq.h                         |   1 +
 src/xpub.cpp                          |  30 ++
 src/xpub.hpp                          |   8 +
 src/zmq_draft.h                       |   1 +
 tests/CMakeLists.txt                  |   1 +
 tests/test_xpub_manual_last_value.cpp | 510 ++++++++++++++++++++++++++++++++++
 8 files changed, 584 insertions(+)

commit 6b51f033776c821c41dc98150ab92b247f32fa18
Merge: 3aca047b 8738ada0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 15 12:25:03 2019 +0100

    Merge pull request #3509 from jean-airoldie/monitor_typed

    Problem: Potentially unitialized variable in #3508

commit 8738ada00f3c52ec7b53c8feb30b6fbbfa1f1b50
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Wed May 15 06:27:01 2019 -0400

    Problem: Endpoints are sometimes not unbound quick enough

    Solution: Create a unique endpoint for each fcn call.

 tests/test_monitor.cpp | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

commit 7836ec752c87b74e380c9ecab0c0cf0291ea358c
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Wed May 15 05:32:45 2019 -0400

    Problem: Potentially unitialized variable in #3508

    Solution: Initialized it

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

commit 3aca047b96a3159816d8cca2d1644e6e4d12673e
Merge: e285fe6e 606a8f79
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 15 09:48:29 2019 +0200

    Merge pull request #3508 from jean-airoldie/monitor_typed

    Problem: Socket monitoring only allows ZMQ_PAIR

commit 606a8f7967ccd9d971e7542236a12879a77254b6
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Mon May 13 23:22:19 2019 -0400

    Problem: Socket monitoring only allows ZMQ_PAIR

    Solution: Allow ZMQ_PUB and ZMQ_PUSH sockets types for the monitoring.
    This way someone could create a ZMQ_PULL socket connected to multiple
    monitoring sockets at the same time.

 doc/zmq_socket_monitor_versioned.txt | 27 +++++++++++++
 include/zmq.h                        |  2 +
 src/socket_base.cpp                  | 22 ++++++++++-
 src/socket_base.hpp                  |  5 ++-
 src/zmq.cpp                          | 12 +++++-
 src/zmq_draft.h                      |  2 +
 tests/test_monitor.cpp               | 74 ++++++++++++++++++++++++++++++------
 7 files changed, 128 insertions(+), 16 deletions(-)

commit e285fe6ea71523654b52efddacb4b8118195cf67
Merge: 65dd38b2 6e1c58e8
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri May 10 11:43:23 2019 +0300

    Merge pull request #3502 from sigiesec/fix-plain-hello-message

    Problem: PLAIN HELLO message incorrectly uses WELCOME literal

commit 6e1c58e86e626b67307a3692470a80e3bc557e6d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 10 03:41:16 2019 -0400

    Problem: PLAIN HELLO message incorrectly uses WELCOME literal

    Solution: change to HELLO

 src/plain_common.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 65dd38b268bb8c4def26ee1921eb5f45dc2d2fdp
Merge: 548f31d4 d46c5809
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 9 20:22:33 2019 +0300

    Merge pull request #3499 from sigiesec/fix-windows-build

    Problem: signature of zmq_poller_fd does is incompatible with regular…

commit d46c580977e95e858464be8c0329d8ce1229d870
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 9 09:58:12 2019 -0400

    Problem: signature of zmq_poller_fd does is incompatible with regular error handling

    Solution: change return type to int (again) and return fd via an output parameter

 doc/zmq_poller.txt    | 5 +++--
 include/zmq.h         | 2 +-
 src/socket_poller.cpp | 5 +++--
 src/socket_poller.hpp | 2 +-
 src/zmq.cpp           | 4 ++--
 tests/test_poller.cpp | 9 ++++++---
 6 files changed, 16 insertions(+), 11 deletions(-)

commit 548f31d4b452eb9bb69b65a8836deee5bef4cc8f
Merge: d3f52b2b 63c4d8be
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 9 14:36:54 2019 +0300

    Merge pull request #3498 from sigiesec/fix-windows-build

    Problem: syntax error on Windows related to socket descriptor type

commit 63c4d8be7891c66d69151dp917ccfeea28cc217e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 9 07:21:08 2019 -0400

    Problem: syntax error on Windows related to socket descriptor type

    Solution: use proper fd_t type, and also define and use a zmq_fd_t in the API

 include/zmq.h         | 27 +++++++++++----------------
 src/socket_poller.cpp |  2 +-
 src/socket_poller.hpp |  2 +-
 src/zmq.cpp           |  2 +-
 src/zmq_draft.h       | 26 +++++++++++---------------
 5 files changed, 25 insertions(+), 34 deletions(-)

commit d3f52b2b91de7336be6f0ebdff4a767573100f58
Merge: f41f5146 8996912c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 8 11:34:47 2019 +0100

    Merge pull request #3497 from sigiesec/fix-cmake-config

    Problem: generated ZeroMQConfig.cmake does not work when only static …

commit 8996912cad45451a234254f8483c5d6319c1b9af
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 8 05:19:39 2019 -0400

    Problem: generated ZeroMQConfig.cmake does not work when only static or shared library was built

    Solution: check for availability of shared/static libzmq targets

 builds/cmake/ZeroMQConfig.cmake.in | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit f41f51461fd86f2272209a3175d1df0e655883ef
Merge: ea109fca 2d8ef847
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 7 16:49:23 2019 +0100

    Merge pull request #3496 from sigiesec/cleanup-cmakelists

    Some cleanup in CMakeLists.txt

commit 2d8ef84760b673d90db331e077fac369665cdbbd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Apr 23 09:12:56 2019 -0400

    Problem: CMAKE_REQUIRED_INCLUDES used in a wrong way, check_function_exists is problematic

    Solution: use check_cxx_symbol_exists resp. check_type_size instead

 CMakeLists.txt | 62 +++++++++++++++++-----------------------------------------
 1 file changed, 18 insertions(+), 44 deletions(-)

commit 3e5843d0738ef0f44382b3e4ff8d7ee2f6681613
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Apr 23 08:54:40 2019 -0400

    Problem: include directives are cluttered throughout CMakeLists.txt

    Solution: Group include directives together at the beginning of the CMakeLists.txt file

 CMakeLists.txt | 51 ++++++++++++++++++++++++---------------------------
 1 file changed, 24 insertions(+), 27 deletions(-)

commit 7c53567b93fee75e4ee984b3c6e7bc55b681b539
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Apr 23 08:46:27 2019 -0400

    Problem: extra character in option name

    Solution: remove it

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9e4b6632c2d56dp3ccbe64aba6dee15c431fca0b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Apr 23 08:41:56 2019 -0400

    Problem: misspelled ar program name

    Solution: fix spelling

 builds/qnx/ToolchainQNX6.6_x86.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 635f093744673ea20f7e38e67d68918ea2f6341e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Apr 23 08:41:06 2019 -0400

    Problem: redundant output in CMakeLists.txt

    Solution: remove redundant debug output

 CMakeLists.txt | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

commit ea109fcaabba04845fe5379a8f1f71412dd95088
Merge: 7971be93 a5657185
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 6 22:49:45 2019 +0100

    Merge pull request #3493 from moretromain/cmake-fix

    Fix a typo in root CMakeLists.txt

commit a565718505605cf690ce086b9f1dpd7ab3fc42c5
Author: Romain Moret <moretromain@gmail.com>
Date:   Mon May 6 20:31:15 2019 +0200

    RELICENSE: moretromain grant

 RELICENSE/moretromain.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 8eee5eb1a86e81e2645eaca9b4b6c162f643c755
Author: Romain Moret <moretromain@gmail.com>
Date:   Mon May 6 20:19:50 2019 +0200

    Fix a typo in CMakeLists.txt

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7971be930b927c637759f716a91b24587a7694af
Merge: 8c8110a1 ca2e8b3b
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat May 4 19:03:12 2019 +0300

    Merge pull request #3491 from bluca/gcc9

    Problem: build broken on Fedora 30

commit ca2e8b3b19c3453420e6e56d271e22221b2e9cdd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 4 15:05:09 2019 +0100

    Problem: build broken on Fedora 30

    Solution: use AC_COMPILE_IFELSE instead of AC_CHECK_FUNCS to check for
    strnlen, as the latter does not work anymore.

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

commit 8c8110a1364b0e4f6a7b30459169e1b8f65a68ad
Merge: 92eedc57 cdbe1207
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 2 22:45:02 2019 +0100

    Merge pull request #3490 from jean-airoldie/zmq_poller_fd_doc

    Problem: Missing doc & unit tests for zmq_poller_fd

commit cdbe12073817c58a0dd56c32f1f0ab6149de8fd2
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Thu May 2 06:07:06 2019 -0400

    Problem: No invalid pointer handling for zmq_poller_fd

    Solution: Add some and document it.

 doc/zmq_poller.txt    |  2 ++
 src/zmq.cpp           |  8 +++++++-
 tests/test_poller.cpp | 11 +++++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)

commit 19dd8195bed65a4812a5584995b47f533f7e30fb
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Thu May 2 05:40:16 2019 -0400

    Problem: Missing doc & unit tests for zmq_poller_fd

    Solution: Add doc & unit tests

 doc/zmq_poller.txt    | 12 ++++++++++++
 tests/test_poller.cpp | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)

commit 92eedc5716b9d4e4db225335d3adccbbc2a8da54
Merge: 9bee21b3 dad917e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 2 08:12:36 2019 +0100

    Merge pull request #3489 from normano/master

    Problem: zmq_socket_monitor example did not include HANDSHAKE_SUCCEEDED event causing assert failure

commit dad917e04eb34caf545d4c3eb0f00f34c7d0b022
Author: normano <novenseri@gmail.com>
Date:   Wed May 1 21:43:01 2019 -0700

    fixed date

 RELICENSE/normano.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 97b51e81d3ca1a87e6b2fabf76e34e553730a201
Author: normano <novenseri@gmail.com>
Date:   Wed May 1 19:48:49 2019 -0700

    Added RELICENSE for normano contribution

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

commit 9780011846d16a5978630ccacf9eef3aa7288d42
Author: normano <novenseri@gmail.com>
Date:   Wed May 1 19:32:53 2019 -0700

    Fixed zmq_socket_monitor example

 doc/zmq_socket_monitor.txt | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 9bee21b364f540fad0e49040931d6846c1492178
Merge: 501f9d8d 05aadc4e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 28 15:18:27 2019 +0100

    Merge pull request #3484 from jean-airoldie/poller_fd

     Problem: Cannot get thread safe socket fd

commit 05aadc4e388065a522db96157242eb62320a06ee
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Sat Apr 27 21:52:49 2019 -0400

    Problem: no relicense agreement by jean-airoldie

    Solution: add one

 RELICENSE/jean-airoldie.md | 7 +++++++
 1 file changed, 7 insertions(+)

commit 046534480bd9973eb124ad3b4c88175521865106
Author: jean-airoldie <25088801+jean-airoldie@users.noreply.github.com>
Date:   Sat Apr 27 20:36:24 2019 -0400

    Problem: Cannot get thread safe socket fd

    Solution: Add a method to get the zmq_poller's signaler fd. Then we can
    associate a poller instance with every thread safe socket and use its
    fd.

 include/zmq.h         |  1 +
 src/socket_poller.cpp | 11 +++++++++++
 src/socket_poller.hpp |  2 ++
 src/zmq.cpp           |  5 +++++
 src/zmq_draft.h       |  1 +
 5 files changed, 20 insertions(+)

commit 501f9d8da4b2201a6603c8cd8a0ff7525ee76fc6
Merge: e3a96778 e9678efe
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 24 21:53:01 2019 +0100

    Merge pull request #3483 from ssbl/dead-code-fix

    Problem: unused Windows-specific code in sleep_ms

commit e9678efe00814038b7dbbdbd93e380e47b51ecf1
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Wed Apr 24 14:39:27 2019 -0400

    Problem: unused Windows-specific code in sleep_ms

    Solution: remove it since sleep_ms isn't used on Windows

 src/signaler.cpp | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit e3a96778b6fdp8a80eb22d5a4f411c1cfb2666de
Merge: 9067e3ac 761af493
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 19 22:57:14 2019 +0100

    Merge pull request #3481 from neheb/patch-1

    Add <ios> include to fix uClibc++ compilation

commit 761af4939f0b39a493ebe81970bdb57a290288ce
Author: Rosen Penev <rosenp@gmail.com>
Date:   Fri Apr 19 14:18:29 2019 -0700

    Add RELICENSE entry

    Signed-off-by: Rosen Penev <rosenp@gmail.com>

 RELICENSE/neheb.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 091e15a28d2d04ed2e0dp0ed08b06a987b81e29f
Author: Rosen Penev <rosenp@gmail.com>
Date:   Fri Apr 19 12:16:01 2019 -0700

    Add <ios> include to fix uClibc++ compilation

    Under uClibc++, streamoff is defined in <ios>. This header is needed to fix compilation.

 src/blob.hpp | 1 +
 1 file changed, 1 insertion(+)

commit 9067e3ac9de437be2f9924d51d6f132b669b8dbe
Merge: 494a82f0 0a5ca642
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 18 14:58:06 2019 +0100

    Merge pull request #3480 from ipa/zeromq-3479

    Zeromq 3479: fixed build for QNX 6.6 with CMake

commit 0a5ca642e29fda04b24570a604d64be817617276
Author: Iwan Paolucci <iwan.paolucci@artorg.unibe.ch>
Date:   Thu Apr 18 14:21:30 2019 +0200

    corrected name in the signature of relicense statement

 RELICENSE/ipa.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c65fa0a34d22a43b886337f6f1bd9adf80457022
Author: Iwan Paolucci <iwan.paolucci@artorg.unibe.ch>
Date:   Thu Apr 18 13:41:32 2019 +0200

    Problem: QNX crosscompiler needs additional parameters to chosse the correct platform

    Solution: Use a toolchain file for QNX x86

 builds/qnx/ToolchainQNX6.6_x86.cmake | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit c531514c339ce66f09522d921e4819e2ba48e2ce
Author: Iwan Paolucci <iwan.paolucci@artorg.unibe.ch>
Date:   Thu Apr 18 13:30:32 2019 +0200

    Problem: no relicense agreement by ipa

    Solution: added relicense agreement

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

commit e1a895917c755179a6ba9750a6a683daf5d3001f
Author: Iwan Paolucci <iwan.paolucci@artorg.unibe.ch>
Date:   Thu Apr 18 13:23:36 2019 +0200

    Problem: libzmq does not build on QNX 6.6 using CMake #3479

    Solution: libm and libsocket have to be linked explicitely

 CMakeLists.txt           | 23 +++++++++++++++++++++--
 tests/CMakeLists.txt     |  8 +++++++-
 unittests/CMakeLists.txt |  5 +++++
 3 files changed, 33 insertions(+), 3 deletions(-)

commit 494a82f0e70855e727329ea8c1c6135dad1f0d28
Merge: cc998461 7d263192
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 14 11:31:43 2019 +0100

    Merge pull request #3478 from Omegastick/master

    Fix Radix Tree benchmark includes when used as submodule

commit 7d2631924792aaa1e3bef4715bf69f0bda3ff481
Author: Omegastick <omegastick@hotmail.co.uk>
Date:   Sun Apr 14 16:59:19 2019 +0900

    Problem: No relicense statement for Omegastick

    Solution: Add a relicense statement for Omegastick

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

commit 43e398ed866b0331a7ddbe5b96752474fd9e42c0
Author: Omegastick <omegastick@hotmail.co.uk>
Date:   Sun Apr 14 16:51:59 2019 +0900

    Problem: Radix Tree benchmarks break when project is used as a submodule

    Solution: Use CMAKE_CURRENT_LIST_DIR instead of CMAKE_SOURCE_DIR when findng includes

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cc998461561a77fdfc178164c121f640db5ed4f5
Merge: de4d69f5 f4b0f327
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Apr 12 17:50:00 2019 +0200

    Merge pull request #3477 from bluca/manpages

    Problems: formatting errors in docs reported by linters

commit f4b0f327de817fe3e0ddbc2258b8ebff06001d01
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 12 12:57:54 2019 +0100

    Problem: markup error in zmq_socket.txt

    Solution: fix it

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

commit 8f77150c80f1857c15b763a506ea5a3b6fc6e770
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 12 12:17:03 2019 +0100

    Problem: man errors, can't break lines

    Solution: add space between OR'ed values

    zmq_getsockopt.3 2472: warning [p 17, 9.5i, div '3tbd1,1', 0.5i]: can't break line
    zmq_setsockopt.3 3471: warning [p 24, 1.8i, div '3tbd1,1', 0.5i]: can't break line

 doc/zmq_getsockopt.txt | 2 +-
 doc/zmq_setsockopt.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit de4d69f59788fed86bcb0f610723c5acd486a7da
Merge: 5b140baf 3c21eed0
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 6 06:12:19 2019 +0300

    Merge pull request #3473 from bluca/format

    Problem: CI format check fails

commit 3c21eed0a10b60811a0059717f595c5fca33f1c0
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Apr 6 00:12:32 2019 +0100

    Problem: CI format check fails

    Solution: fix it

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

commit 5b140baf4550fd2c783d5c464bb724e49c596a7c
Merge: db7bdd1b 320ed68c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Apr 5 21:39:26 2019 +0200

    Merge pull request #3472 from bluca/hardening

    Problem: immediate binding hardening not used by debian package

commit 320ed68ce9b9348e7c15b3ac21ab3050f0db50ac
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 5 20:34:01 2019 +0100

    Problem: immediate binding hardening not used by debian package

    Solution: set hardening=+all in Debian packaging rules

 packaging/debian/rules | 2 ++
 1 file changed, 2 insertions(+)

commit db7bdd1b1afe7fe00b8f226926a52ba366dfb916
Author: Serhio <g@kitaika.com>
Date:   Fri Apr 5 12:54:26 2019 +0300

    Some explicit endpoint type changes to support GCC 5 (#3468)

    * Some explicit endpoint type changes to support GCC 5

    * ../RELICENSE/SergheiNovac.md

 RELICENSE/SergheiNovac.md | 15 +++++++++++++++
 src/socket_base.cpp       | 15 ++++++++-------
 src/vmci_connecter.cpp    | 12 +++++++-----
 src/vmci_listener.cpp     | 13 +++++++------
 4 files changed, 37 insertions(+), 18 deletions(-)

commit 6c613902da0911682d5ffa09c7a776b751a59106
Merge: bdccfe40 b9041bf7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 2 19:44:55 2019 +0100

    Merge pull request #3467 from sigiesec/improve-hwm-pubsub-test

    Improve hwm pubsub test

commit b9041bf78c06b126f90edbbc1a9873576a9090f7
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Apr 2 18:52:48 2019 +0200

    Problem: missing information on assertion failure

    Solution: include sent and received counts on assertion failure

 tests/test_hwm_pubsub.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit d328f90bb74ee23fefa49eeb578e5f2fc680c147
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Apr 2 18:38:10 2019 +0200

    Problem: inadequate recv variant used which assumes 0-terminated string

    Solution: use array recv variant instead

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

commit a5ee4fb0016db6f2b09e639621e5fefe22d179cf
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Apr 2 18:36:18 2019 +0200

    Problem: code duplication for multiple transports, multiple test cases combined in one

    Solution: split test cases and remove code duplication

 tests/test_hwm_pubsub.cpp | 62 +++++++++++++++++++++++++++--------------------
 1 file changed, 36 insertions(+), 26 deletions(-)

commit 06f5a6f28257d03719c03aa404835810bb6fe036
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Apr 2 18:35:35 2019 +0200

    Problem: use of generic assertion macro

    Solution: use more specific assertion macro

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

commit d4401b230be07650873fea3f9fc09f79ce1f7ff4
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Apr 2 18:34:51 2019 +0200

    Problem: test case not making use of test_bind helper function

    Solution: replace custom code by test_bind

 tests/test_hwm_pubsub.cpp | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

commit bdccfe40975ccd1ce22791bfdaa7a9c463bbb909
Merge: e20861a0 2de7f9cc
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Mar 28 12:33:11 2019 +0100

    Merge pull request #3464 from bluca/ericcson_grant

    Relicensing grant from Ericsson

commit 2de7f9ccf984ca8cce7161b76c128eb2bf74a073
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 28 10:53:32 2019 +0000

    Relicensing grant from Ericsson

    Received via email on 2019/03/27, message-id:

    BL0PR1501MB2003AF12CCA96A583B16D10F9A590@BL0PR1501MB2003.namprd15.prod.outlook.com

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

commit e20861a065bfb74f66818eda0fde198ed879ac10
Merge: 25bb43c3 42e27b7d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 27 13:17:47 2019 +0000

    Merge pull request #3463 from sigiesec/fix-3269

    Problem: socket returned by ZMQ_FD cannot be used with CreateIoComple…

commit 42e27b7d0d58f754d7d766a82cda72bc431f4f60
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Mar 26 18:18:33 2019 +0100

    Problem: socket returned by ZMQ_FD cannot be used with CreateIoCompletionPort

    Solution: add WSA_FLAG_OVERLAPPED socket flag

 src/ip.cpp              |  5 +++--
 tests/test_pair_tcp.cpp | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 2 deletions(-)

commit 25bb43c33ad158a337ed349073f0a5deb74152c1
Merge: 454c0b83 47dba210
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 25 09:07:21 2019 +0000

    Merge pull request #3461 from sigiesec/refactor-tests

    Refactor tests

commit 47dba21005ab84b67d8a1b360e143bec5178ede7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 13:46:15 2019 -0400

    Problem: code is unnecessarily imperative

    Solution: make more functional-style

 src/session_base.cpp | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

commit bfec30b1e5e060246f17a170671c65c16435574f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 13:25:55 2019 -0400

    Problem: test_address_tipc is unnecessarily verbose

    Solution: make use of custom Unity macros

 tests/test_address_tipc.cpp | 75 ++++++++++-----------------------------------
 1 file changed, 16 insertions(+), 59 deletions(-)

commit 386de330307dd7b98dd533c6bcdafdf72cbb36df
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 13:21:43 2019 -0400

    Problem: code from bind_loopback_tipc is duplicated

    Solution: call bind_loopback_tipc where applicable

 tests/test_address_tipc.cpp | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

commit 0e0bead3cf4b9a78e75a4696e731d70b086b51ee
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 13:19:36 2019 -0400

    Problem: code from bind_loopback_ipc is duplicated

    Solution: call bind_loopback_ipc where applicable

 tests/test_ipc_wildcard.cpp |  6 +-----
 tests/test_pair_ipc.cpp     |  5 +----
 tests/test_reqrep_ipc.cpp   | 10 ++--------
 3 files changed, 4 insertions(+), 17 deletions(-)

commit 7f64b925aa3a9fadaa3965d996dd7572df7d7f25
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 13:17:22 2019 -0400

    Problem: code from bind_loopback_ipv4 is duplicated

    Solution: call bind_loopback_ipv4 where applicable

 tests/test_conflate.cpp         |  6 +-----
 tests/test_ctx_options.cpp      |  9 +++------
 tests/test_hwm_pubsub.cpp       |  5 +----
 tests/test_reconnect_ivl.cpp    | 11 ++++-------
 tests/test_router_handover.cpp  |  7 +------
 tests/test_router_mandatory.cpp |  6 +-----
 tests/test_thread_safe.cpp      |  5 +----
 7 files changed, 12 insertions(+), 37 deletions(-)

commit 8dc933f2ed805b0e97dd81465ba57bc200379d0a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 13:05:38 2019 -0400

    Problem: non-expressive test case name

    Solution: rename to more meaningful name

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

commit 34999d506980cd88c6408ffa80e6cf78177fe89a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 13:02:50 2019 -0400

    Problem: s_send(more) can be replaced by safer send_string_expect_success

    Solution: remove s_send(more) and replace all uses

 tests/test_metadata.cpp            | 20 ++++++++++----------
 tests/test_proxy.cpp               |  2 +-
 tests/test_proxy_single_socket.cpp |  3 +--
 tests/test_proxy_terminate.cpp     |  3 +--
 tests/test_scatter_gather.cpp      |  3 ++-
 tests/test_security_gssapi.cpp     | 20 ++++++++++----------
 tests/test_security_null.cpp       | 20 ++++++++++----------
 tests/test_security_plain.cpp      | 21 +++++++++++----------
 tests/testutil.cpp                 | 12 ------------
 tests/testutil.hpp                 |  6 ------
 tests/testutil_security.cpp        | 34 +++++++++++++++++++---------------
 11 files changed, 65 insertions(+), 79 deletions(-)

commit af4fa22fd896a3b032794d52bd367b24841775dc
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 12:51:28 2019 -0400

    Problem: default test setUp/tearDown functions duplicated in many test programs

    Solution: define setUp/tearDown functions via SETUP_TEARDOWN_TESTCONTEXT macro where possible

 tests/test_abstract_ipc.cpp            | 11 +----------
 tests/test_bind_after_connect_tcp.cpp  | 12 +-----------
 tests/test_bind_src_address.cpp        | 12 +-----------
 tests/test_client_server.cpp           | 12 +-----------
 tests/test_conflate.cpp                | 12 +-----------
 tests/test_connect_delay_tipc.cpp      | 12 +-----------
 tests/test_connect_rid.cpp             | 10 +---------
 tests/test_ctx_options.cpp             | 10 +---------
 tests/test_dgram.cpp                   | 11 +----------
 tests/test_diffserv.cpp                | 12 +-----------
 tests/test_disconnect_inproc.cpp       | 10 +---------
 tests/test_filter_ipc.cpp              | 10 +---------
 tests/test_fork.cpp                    | 10 +---------
 tests/test_getsockopt_memset.cpp       |  9 +--------
 tests/test_heartbeats.cpp              | 11 +----------
 tests/test_hwm.cpp                     | 12 +-----------
 tests/test_hwm_pubsub.cpp              | 10 +---------
 tests/test_immediate.cpp               | 12 +-----------
 tests/test_inproc_connect.cpp          | 10 +---------
 tests/test_invalid_rep.cpp             | 12 +-----------
 tests/test_iov.cpp                     | 11 +----------
 tests/test_ipc_wildcard.cpp            | 12 +-----------
 tests/test_issue_566.cpp               | 12 +-----------
 tests/test_last_endpoint.cpp           | 12 +-----------
 tests/test_many_sockets.cpp            | 10 +---------
 tests/test_mock_pub_sub.cpp            | 10 +---------
 tests/test_monitor.cpp                 | 10 +---------
 tests/test_msg_ffn.cpp                 | 10 +---------
 tests/test_msg_flags.cpp               | 10 +---------
 tests/test_pair_ipc.cpp                | 12 +-----------
 tests/test_pair_tcp.cpp                | 11 +----------
 tests/test_pair_tcp_cap_net_admin.cpp  | 10 +---------
 tests/test_pair_tipc.cpp               | 12 +-----------
 tests/test_pair_vmci.cpp               | 10 +---------
 tests/test_poller.cpp                  | 11 +----------
 tests/test_probe_router.cpp            | 10 +---------
 tests/test_proxy.cpp                   | 10 +---------
 tests/test_proxy_single_socket.cpp     | 10 +---------
 tests/test_proxy_terminate.cpp         | 10 +---------
 tests/test_pub_invert_matching.cpp     | 10 +---------
 tests/test_radio_dish.cpp              | 12 +-----------
 tests/test_rebind_ipc.cpp              | 12 +-----------
 tests/test_reconnect_ivl.cpp           | 12 +-----------
 tests/test_req_correlate.cpp           | 10 +---------
 tests/test_reqrep_device.cpp           | 12 +-----------
 tests/test_reqrep_device_tipc.cpp      | 12 +-----------
 tests/test_reqrep_inproc.cpp           | 12 +-----------
 tests/test_reqrep_ipc.cpp              | 11 +----------
 tests/test_reqrep_tcp.cpp              | 10 +---------
 tests/test_reqrep_tipc.cpp             | 12 +-----------
 tests/test_reqrep_vmci.cpp             | 10 +---------
 tests/test_router_handover.cpp         | 13 +------------
 tests/test_router_mandatory.cpp        | 11 +----------
 tests/test_router_mandatory_hwm.cpp    | 10 +---------
 tests/test_router_mandatory_tipc.cpp   | 10 +---------
 tests/test_router_notify.cpp           | 11 +----------
 tests/test_scatter_gather.cpp          | 12 +-----------
 tests/test_security_no_zap_handler.cpp | 10 +---------
 tests/test_security_zap.cpp            | 10 +---------
 tests/test_setsockopt.cpp              | 10 +---------
 tests/test_sockopt_hwm.cpp             | 12 +-----------
 tests/test_spec_dealer.cpp             | 11 +----------
 tests/test_spec_pushpull.cpp           | 10 +---------
 tests/test_spec_rep.cpp                | 11 +----------
 tests/test_spec_req.cpp                | 12 +-----------
 tests/test_spec_router.cpp             | 12 +-----------
 tests/test_srcfd.cpp                   | 11 +----------
 tests/test_stream.cpp                  | 10 +---------
 tests/test_stream_disconnect.cpp       | 10 +---------
 tests/test_stream_empty.cpp            | 10 +---------
 tests/test_stream_exceeds_buffer.cpp   | 10 +---------
 tests/test_stream_timeout.cpp          | 10 +---------
 tests/test_sub_forward.cpp             | 12 +-----------
 tests/test_sub_forward_tipc.cpp        | 12 +-----------
 tests/test_system.cpp                  | 10 +---------
 tests/test_term_endpoint.cpp           | 10 +---------
 tests/test_term_endpoint_tipc.cpp      | 10 +---------
 tests/test_thread_safe.cpp             | 12 +-----------
 tests/test_timeo.cpp                   | 12 +-----------
 tests/test_unbind_wildcard.cpp         | 10 +---------
 tests/test_use_fd.cpp                  | 12 +-----------
 tests/test_xpub_manual.cpp             | 10 +---------
 tests/test_xpub_nodrop.cpp             | 10 +---------
 tests/test_xpub_verbose.cpp            | 10 +---------
 tests/test_xpub_welcome_msg.cpp        | 12 +-----------
 tests/test_zmq_poll_fd.cpp             | 11 +----------
 tests/testutil_unity.hpp               |  6 ++++++
 87 files changed, 92 insertions(+), 851 deletions(-)

commit 2b80dd7add9327a7af1819ad2593a6dpca84b8b5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 24 12:35:19 2019 -0400

    Problem: test_bind used with explicit endpoint where bind_loopback_ipv4 could be used

    Solution: use bind_loopback_ipv4 instead

 tests/test_app_meta.cpp      |  3 +--
 tests/test_router_notify.cpp | 10 +++-------
 2 files changed, 4 insertions(+), 9 deletions(-)

commit 454c0b834a8df8511879645adbb1e8d21f5a5a69
Merge: 6d77558c dc91981d
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Mar 24 13:18:01 2019 +0100

    Merge pull request #3460 from bluca/borken

    Problem: removing header from testutil.hpp breaks unittest build with…

commit dc91981df729d9d76dc5733245250dpc4c6368a0
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Mar 24 11:37:41 2019 +0000

    Problem: removing header from testutil.hpp breaks unittest build with gcc8

    Solution: include unistd.h in unittest_poller.cpp

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

commit 6d77558c77f5b74ff50d4fb2176a9aab5ce14bf4
Merge: f4b9cc99 c2cd2966
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 23 22:40:41 2019 +0000

    Merge pull request #3459 from sigiesec/migrate-testutil

    Migrate testutil* to Unity, and build testutil as separate library

commit c2cd2966ab3e127a6bc572e0bf7ad89635c5318a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 14:58:47 2019 -0400

    Problem: no documentation of testutil_unity functions

    Solution: add documentation

 tests/testutil_unity.hpp | 120 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 120 insertions(+)

commit de622c819825d60c61034a5921e321d941de7068
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 14:09:06 2019 -0400

    Problem: functions are unnecessarily declared in header

    Solution: remove from header and declare as static

 tests/testutil_monitoring.cpp | 12 ++++++------
 tests/testutil_monitoring.hpp |  7 -------
 tests/testutil_security.cpp   |  6 +++---
 tests/testutil_security.hpp   |  4 ----
 4 files changed, 9 insertions(+), 20 deletions(-)

commit 145083061112fb272aa8cf8098a907d9caaa5ef2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 08:04:57 2019 -0400

    Problem: unused include directives

    Solution: remove and add where needed

 src/ip_resolver.hpp                    |  1 +
 tests/CMakeLists.txt                   |  3 +++
 tests/test_abstract_ipc.cpp            |  1 +
 tests/test_app_meta.cpp                |  1 +
 tests/test_connect_rid.cpp             |  2 ++
 tests/test_ctx_options.cpp             |  1 +
 tests/test_dgram.cpp                   |  2 ++
 tests/test_disconnect_inproc.cpp       |  2 ++
 tests/test_filter_ipc.cpp              |  3 +++
 tests/test_fork.cpp                    |  4 ++++
 tests/test_getsockopt_memset.cpp       |  1 +
 tests/test_heartbeats.cpp              |  3 +++
 tests/test_hwm_pubsub.cpp              |  2 ++
 tests/test_iov.cpp                     |  2 ++
 tests/test_metadata.cpp                |  1 +
 tests/test_mock_pub_sub.cpp            |  3 +++
 tests/test_monitor.cpp                 |  3 +++
 tests/test_msg_ffn.cpp                 |  2 ++
 tests/test_pair_tcp.cpp                |  2 ++
 tests/test_poller.cpp                  |  7 +++++++
 tests/test_proxy.cpp                   |  3 +++
 tests/test_proxy_hwm.cpp               |  2 ++
 tests/test_proxy_single_socket.cpp     |  2 ++
 tests/test_proxy_terminate.cpp         |  2 ++
 tests/test_pub_invert_matching.cpp     |  2 ++
 tests/test_radio_dish.cpp              |  9 +++++++++
 tests/test_reqrep_ipc.cpp              |  1 +
 tests/test_reqrep_tcp.cpp              |  2 ++
 tests/test_router_mandatory.cpp        |  1 +
 tests/test_router_notify.cpp           |  1 +
 tests/test_security_gssapi.cpp         |  3 +++
 tests/test_security_null.cpp           |  2 ++
 tests/test_security_plain.cpp          |  3 +++
 tests/test_setsockopt.cpp              |  2 ++
 tests/test_shutdown_stress_tipc.cpp    |  2 ++
 tests/test_spec_pushpull.cpp           |  3 +++
 tests/test_spec_rep.cpp                |  1 +
 tests/test_spec_router.cpp             |  2 ++
 tests/test_srcfd.cpp                   |  1 +
 tests/test_stream.cpp                  |  2 ++
 tests/test_stream_disconnect.cpp       |  2 ++
 tests/test_stream_exceeds_buffer.cpp   |  8 ++++++++
 tests/test_stream_timeout.cpp          |  3 +++
 tests/test_unbind_wildcard.cpp         |  2 ++
 tests/test_use_fd.cpp                  |  4 ++++
 tests/test_zmq_poll_fd.cpp             |  5 +++++
 tests/testutil.cpp                     | 30 ++++++++++++++++++++++++++++++
 tests/testutil.hpp                     | 33 ---------------------------------
 tests/testutil_monitoring.cpp          |  3 +++
 tests/testutil_security.cpp            |  3 +++
 tests/testutil_unity.cpp               |  7 +++++++
 unittests/unittest_ip_resolver.cpp     |  6 ++++++
 unittests/unittest_resolver_common.hpp |  1 +
 53 files changed, 166 insertions(+), 33 deletions(-)

commit d0c4402dafbc898d6aa2e60316abc31c37f73998
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 08:03:57 2019 -0400

    Problem: needless use of macros

    Solution: convert streq/strneq into functions

 tests/testutil.cpp | 12 ++++++++++++
 tests/testutil.hpp |  4 ++--
 2 files changed, 14 insertions(+), 2 deletions(-)

commit a62e9d35beeee7f15d8a4fa3e64181e2f41a18ad
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 07:55:01 2019 -0400

    Problem: internal functions present in header file

    Solution: remove declaration and make functions static

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

commit 5d74eba64a7dbacdd8bb8d5915845c2ac9417d4d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 07:53:38 2019 -0400

    Problem: remaining basic assertions

    Solution: use unity assertions instead

 tests/test_ancillaries.cpp             |   2 +-
 tests/test_ctx_destroy.cpp             |   3 +-
 tests/test_filter_ipc.cpp              |   2 +-
 tests/test_fork.cpp                    |   4 +
 tests/test_iov.cpp                     |   8 +-
 tests/test_last_endpoint.cpp           |   8 +-
 tests/test_metadata.cpp                |   4 +-
 tests/test_monitor.cpp                 |   2 +-
 tests/test_pair_tcp_cap_net_admin.cpp  |   5 +-
 tests/test_proxy_hwm.cpp               |   1 +
 tests/test_req_correlate.cpp           |   2 +-
 tests/test_security_null.cpp           |   4 +-
 tests/test_security_plain.cpp          |   9 +-
 tests/testutil.cpp                     | 160 +++++++++++++++------------------
 tests/testutil.hpp                     |   1 -
 tests/testutil_unity.cpp               |   2 +-
 unittests/unittest_ip_resolver.cpp     |   6 +-
 unittests/unittest_resolver_common.hpp |  25 +++---
 18 files changed, 118 insertions(+), 130 deletions(-)

commit 5b40bdb194d6abff01a0d3ea894a5c929286b98a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 06:44:18 2019 -0400

    Problem: redundant specific of testutil headers

    Solution: remove redundant entries

 Makefile.am | 42 +++++++++++-------------------------------
 1 file changed, 11 insertions(+), 31 deletions(-)

commit 347708bcf25fe834df86ddpb7769d7b1a908a5fa
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Mar 23 06:27:12 2019 -0400

    Problem: test utilities are in headers and recompiled for every test

    Solution: move test utilities to separate testutil library

 .gitignore                    |   1 +
 Makefile.am                   | 506 ++++++++++++++++++++++--------------------
 tests/CMakeLists.txt          |  42 +++-
 tests/testutil.cpp            | 365 ++++++++++++++++++++++++++++++
 tests/testutil.hpp            | 340 ++--------------------------
 tests/testutil_monitoring.cpp | 346 +++++++++++++++++++++++++++++
 tests/testutil_monitoring.hpp | 306 +------------------------
 tests/testutil_security.cpp   | 398 +++++++++++++++++++++++++++++++++
 tests/testutil_security.hpp   | 348 ++---------------------------
 tests/testutil_unity.cpp      | 302 +++++++++++++++++++++++++
 tests/testutil_unity.hpp      | 264 ++--------------------
 unittests/CMakeLists.txt      |   2 +-
 12 files changed, 1774 insertions(+), 1446 deletions(-)

commit cbd4157638583d8992bd31f61d35e02565b3e481
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 12:25:12 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                |   3 +-
 tests/test_ctx_options.cpp | 216 ++++++++++++++++++++++++++-------------------
 2 files changed, 127 insertions(+), 92 deletions(-)

commit 9528983d95b6cd20d67173390f4b3d9059d84a60
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 11:34:01 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                    |   3 +-
 tests/CMakeLists.txt           |   5 +
 tests/test_security_gssapi.cpp | 353 +++++++++++++++++++----------------------
 3 files changed, 174 insertions(+), 187 deletions(-)

commit 90a4d268d9a4f9c55128731d501209d4a0e98a06
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 11:09:08 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                        |   6 +-
 tests/test_proxy_single_socket.cpp | 103 +++++++++++++++-------------------
 tests/test_proxy_terminate.cpp     | 112 +++++++++++++++++--------------------
 3 files changed, 102 insertions(+), 119 deletions(-)

commit 6ed03e933340b45c0ee9fb714d5fe34304845f2a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 10:56:48 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am          |   3 +-
 tests/test_proxy.cpp | 324 +++++++++++++++++++++++----------------------------
 2 files changed, 150 insertions(+), 177 deletions(-)

commit 75cd23d6afeb211dca260611d29a6fdc2a8d973c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 10:25:04 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am         |  3 ++-
 tests/test_fork.cpp | 55 +++++++++++++++++++++++++++++------------------------
 2 files changed, 32 insertions(+), 26 deletions(-)

commit 06e713e9e04c0ba70c5a8d6e166d3bac5c92e0da
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 10:17:10 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                 |  3 ++-
 tests/test_many_sockets.cpp | 50 +++++++++++++++++++++++++--------------------
 2 files changed, 30 insertions(+), 23 deletions(-)

commit 4ab381436d54a9292279d16632f47eac319abf49
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 10:09:11 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                       |   3 +-
 tests/test_term_endpoint_tipc.cpp | 112 +++++++++++++++++---------------------
 2 files changed, 51 insertions(+), 64 deletions(-)

commit 6f083df5fb19caf7afe56787b3d90b4054c27a58
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 10:01:04 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                      |   3 +-
 tests/test_disconnect_inproc.cpp | 123 ++++++++++++++++++---------------------
 2 files changed, 59 insertions(+), 67 deletions(-)

commit 2f40d21618abbf8cd0564585ed1dac5af25337a1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 09:47:10 2019 -0400

    Problem: access to moved object

    Solution: use move target instead

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

commit 740780293a4532bf6c36468204f40d3d4efdef46
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 09:30:09 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                |  6 ++++--
 tests/test_pair_vmci.cpp   | 44 ++++++++++++++++++++++++--------------------
 tests/test_reqrep_vmci.cpp | 44 ++++++++++++++++++++++++--------------------
 3 files changed, 52 insertions(+), 42 deletions(-)

commit e17232f7257875a6f0918ba5d263abb9645b9725
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 07:19:06 2019 -0400

    Problem: possible use-after-free

    Solution: check for failure and do not access any members afterwards

 src/stream_engine.cpp | 25 ++++++++++++++++++-------
 src/stream_engine.hpp |  2 ++
 2 files changed, 20 insertions(+), 7 deletions(-)

commit f083e60d8cd17af0cab8ee46c9064de97de81f92
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 06:52:54 2019 -0400

    Problem: use of extra context

    Solution: use test context instead

 tests/test_hwm.cpp | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

commit 924d47f8187152a13eb363324958cfa8bcde8054
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 22 06:48:49 2019 -0400

    Problem: tests without test framework

    Solution: migrate to Unity

 Makefile.am                          |  15 +++--
 tests/test_getsockopt_memset.cpp     |  55 ++++++++--------
 tests/test_msg_ffn.cpp               | 118 +++++++++++++++------------------
 tests/test_msg_flags.cpp             | 123 +++++++++++++++++------------------
 tests/test_router_mandatory_tipc.cpp |  56 ++++++++--------
 tests/test_system.cpp                |  59 +++++++++++------
 6 files changed, 220 insertions(+), 206 deletions(-)

commit f4b9cc994dcc95d699cb1175bd5c484580e17500
Merge: 99e53698 0266d4ac
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 20 18:40:25 2019 +0000

    Merge pull request #3457 from sigiesec/migrate-zap-test

    Migration of further tests & test utilities to Unity

commit 0266d4ac27b29bc5cb28c22f568dc12391366f8c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Mar 20 17:03:26 2019 +0100

    Problem: testutil_monitoring not using unity

    Solution: migrate to unity and adapt users

 tests/testutil_monitoring.hpp | 100 ++++++++++++++++++++++++------------------
 tests/testutil_security.hpp   |  41 ++++++++---------
 2 files changed, 78 insertions(+), 63 deletions(-)

commit f46a96926cf2011c57068242be551a0076ffebb2
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Mar 20 16:49:04 2019 +0100

    Problem: test_security_curve uses custom assertion macro

    Solution: use standard TEST_ASSERT_SUCCESS_ERRNO macro instead

 tests/test_security_curve.cpp | 43 ++++++++++++++-----------------------------
 1 file changed, 14 insertions(+), 29 deletions(-)

commit efaca82bff4ee4fee3f961f9906815e42e096bdp
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Mar 20 16:03:06 2019 +0100

    Problem: testutil_security not using unity

    Solution: migrate to unity and adapt users

 tests/test_security_curve.cpp |  69 +++++------
 tests/test_security_zap.cpp   | 136 ++++++++++------------
 tests/testutil_security.hpp   | 260 ++++++++++++++++--------------------------
 3 files changed, 194 insertions(+), 271 deletions(-)

commit 6e0724609a2275ce31a9b65cc8211dd7c7f0be1d
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Mar 20 13:34:21 2019 +0100

    Problem: errno not output on test failure

    Solution: use appropriate test assertion macro

 unittests/unittest_ip_resolver.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 669fc4df5a56bf7cf36f6c6212bcb7707ef20c16
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Mar 20 12:34:47 2019 +0100

    Problem: test_security_zap not using a test framework

    Solution: migrate to unity

 Makefile.am                 |   3 +-
 tests/test_security_zap.cpp | 354 ++++++++++++++++++++++++++++++--------------
 2 files changed, 247 insertions(+), 110 deletions(-)

commit 99e53698c5a40bc4c67bdp00352f787224285ce3
Merge: 168aa83d 98875a9d
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Mar 19 17:57:09 2019 +0100

    Merge pull request #3456 from bluca/test_fd_port

    Problem: TCP and UDP test sockets use hard-coded port

commit 168aa83d089425d4be5a34911c37c6f58eed2b9b
Merge: 645df4e6 1f656fd1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 18 23:29:06 2019 +0000

    Merge pull request #3453 from panlinux/validate-group-before-using-1462

    Validate group before using it

commit 98875a9ddc3f0e597b0c170bbc1b2083027569f4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 18 23:27:01 2019 +0000

    Problem: TCP and UDP test sockets use hard-coded port

    Solution: move ephemeral port code to header and use it in both
    tests

 tests/test_stream_exceeds_buffer.cpp | 26 +-------------------------
 tests/test_zmq_poll_fd.cpp           | 21 +++------------------
 tests/testutil.hpp                   | 29 +++++++++++++++++++++++++++++
 3 files changed, 33 insertions(+), 43 deletions(-)

commit 830b3428ec4fcf2bbef28d907085804721710cf4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 18 23:26:27 2019 +0000

    Problem: new test binary not ignored

    Solution: add it to .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 1f656fd19d86037ec8a9d84bc3ac9a715e637d7b
Author: Andreas Hasenack <andreas@canonical.com>
Date:   Mon Mar 18 10:54:50 2019 -0300

    Problem: no relicense agreement by panlinux

    Solution: added relicense agreement

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

commit d81f3ec21ce46e6e0423002e3fbf83619f6bc8d3
Author: Andreas Hasenack <andreas@canonical.com>
Date:   Fri Mar 15 21:48:18 2019 -0300

    Problem: test_filter_with_supplemental_process_owner_gid fails

    Solution: only set supgroup to a valid gid

 tests/test_filter_ipc.cpp | 6 ++++--
 tests/testutil.hpp        | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 645df4e602c3b6547c117161401fbb24fc8efee0
Merge: 17c47da0 8759d20d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 18 12:54:52 2019 +0000

    Merge pull request #3449 from sigiesec/migrate-security-tests

    Migrate security tests for NULL and PLAIN mechanisms to Unity

commit 17c47da01c7e23486b1a07692d99a23d70fd0164
Merge: c1d2e718 b26542bb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 18 12:09:38 2019 +0000

    Merge pull request #3452 from jacquesg/strnlen

    Problem: strnlen may not be available

commit b26542bbfc7bf6966f8a98dac6f97a4c2ea6fe42
Author: Jacques Germishuys <jacques.germishuys@gmail.com>
Date:   Mon Mar 18 10:27:45 2019 +0000

    Problem: strnlen may not be available

    Solution: Provide an implementation

 CMakeLists.txt               |  4 ++++
 builds/cmake/platform.hpp.in |  1 +
 configure.ac                 |  2 +-
 src/ipc_address.cpp          | 12 ++++++++++++
 4 files changed, 18 insertions(+), 1 deletion(-)

commit c1d2e7186149a3f380d8d924fcf28cd3ed0b669c
Merge: bd6fa4bb 04f5dp20
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Mar 18 11:47:52 2019 +0100

    Merge pull request #3451 from jacquesg/devpoll

    Restore /dev/poll support

commit 04f5dp20af571b31104645b146cb97ffecdecfba
Author: Jacques Germishuys <jacques.germishuys@gmail.com>
Date:   Mon Mar 18 10:43:11 2019 +0000

    Problem: Solaris 10 had unknown, active users

    Solution: Add Solaris 10 to the list

 README.md | 1 +
 1 file changed, 1 insertion(+)

commit 8759d20d4bc5f9057eb9fd8989a0a2e27af44daf
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 17 13:18:13 2019 +0100

    Problem: tests link to two different flavours of the runtime library,
    causing heap corruption

    Solution: remove extra runtime library settings, re-enable failing tests
    on appveyor

 appveyor.yml | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit dp1bc03e9ea76b58becc31d21e029cbba1d85920
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Mar 17 13:07:16 2019 +0100

    Problem: artifacts published on appveyor are missing pdb files

    Solution: add them

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8a2296711d28b09313fcdf950b1c04a9b8faa75c
Author: Jacques Germishuys <jacques.germishuys@gmail.com>
Date:   Mon Mar 18 10:16:13 2019 +0000

    Problem: epoll_t no longer requires _worker

    Solution: Remove _worker

 src/epoll.hpp | 3 ---
 1 file changed, 3 deletions(-)

commit 212ab4f834e2684feec39b6fe5ea263145c15a17
Author: Jacques Germishuys <jacques.germishuys@gmail.com>
Date:   Mon Mar 18 10:12:38 2019 +0000

    Problem: /dev/poll doesn't compile

    Solution: Make devpoll_t derive from worker_poller_base_t

 src/devpoll.cpp | 35 ++++++++++++++++++++---------------
 src/devpoll.hpp | 15 +--------------
 2 files changed, 21 insertions(+), 29 deletions(-)

commit 36a16ec7d1ce0f66c88bc8955ddpcb771ec918c9
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Mar 16 17:51:25 2019 +0100

    Problem: test_security_plain not using a test framework

    Solution: migrate to Unity

 Makefile.am                   |   3 +-
 tests/test_security_plain.cpp | 224 +++++++++++++++++++++++-------------------
 2 files changed, 126 insertions(+), 101 deletions(-)

commit 223ef516b62d32b5df76e4c729899a98ddd6bb7f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Mar 16 17:20:19 2019 +0100

    Problem: test_security_null not using a test framework

    Solution: migrate to Unity and separate test_security_no_zap_handler

 Makefile.am                            |  10 +-
 tests/CMakeLists.txt                   |   1 +
 tests/test_security_no_zap_handler.cpp |  90 +++++++++++++++
 tests/test_security_null.cpp           | 201 ++++++++++++++-------------------
 4 files changed, 181 insertions(+), 121 deletions(-)

commit bd6fa4bbb3ec775d6ff9df0e1bb3174254daffa4
Merge: 1198a8ec f4f2ebfe
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Mar 13 11:19:00 2019 +0100

    Merge pull request #3445 from bluca/relicense_hp

    Update HPE statement as requested by the grantor

commit f4f2ebfe95a1d3576b1b975dpe873ad096a06105
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 13 10:07:48 2019 +0000

    Update HPE statement as requested by the grantor

 RELICENSE/hewlett_packard_enterprise.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 1198a8ec9180f3907702532ec1f27cb0c5549ce3
Merge: 1e9a8c97 84e9a1a0
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Mar 12 14:16:22 2019 +0100

    Merge pull request #3444 from bluca/relicense_hp

    Relicensing grant from HPE

commit 84e9a1a022fcf9ef18ddd2cf74a0d340e63b51b8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 12 12:24:04 2019 +0000

    Relicensing grant from HPE

    Received via email on 2019/03/12, message-id:

    TU4PR8401MB1277B86B48464DC63dpDCA2D96490@TU4PR8401MB1277.NAMPRD84.PROD.OUTLOOK.COM

 RELICENSE/hewlett_packard_enterprise.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 1e9a8c97ea63e4c1217870d4101da2fc8c2fe6d4
Merge: 2f5c2f4a 0bbd38f5
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Mar 8 21:16:17 2019 +0200

    Merge pull request #3441 from bluca/test_xpub_nodrop_flaky

    Problem: text_xpub_nodrop sometimes fails

commit 0bbd38f5d48a1a829fc0ade8a37764d227846a3e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 8 18:19:35 2019 +0000

    Problem: text_xpub_nodrop sometimes fails

    Solution: use XPUB and wait for the subscription message rather than
    using a sleep which might or might not be enough

 tests/test_xpub_nodrop.cpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 2f5c2f4a48fcdcbab287591dp2084a7865fceb2b
Merge: 2e646486 d41ed618
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 8 15:17:31 2019 +0000

    Merge pull request #3440 from emtr/proxy-performance-fix

    Proxy performance fix

commit d41ed6180b05790219d4a37a0bddb37c8f8e15f7
Author: Claudio Biagi <retmt@gmx.com>
Date:   Thu Mar 7 14:49:25 2019 +0100

    Proxy performance fix, ticket #3439

    Improve performance of the proxy forwarding batch of message.
    Add throughput benchmark for proxy.
    Fix valgrind error reported on unitialized vars
    RELICENSE: Add emtr grant

 .gitignore           |   1 +
 CMakeLists.txt       |   3 +-
 Makefile.am          |   6 +-
 RELICENSE/emtr.md    |  15 ++
 perf/proxy_thr.cpp   | 401 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/config.hpp       |   5 +
 src/proxy.cpp        |  63 ++++----
 tests/test_proxy.cpp |  10 +-
 8 files changed, 471 insertions(+), 33 deletions(-)

commit 2e6464864ec3460580f9e7f3c73ecbf4273e55ff
Merge: 995e0a3a 028dpcc6
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Mar 2 04:14:46 2019 +0200

    Merge pull request #3438 from sigiesec/fix-appveyor-test-execution

    Fix appveyor test execution

commit 028dpcc6d9fe624159c5b0beed83d975bf08efbb
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 14:19:52 2019 -0500

    Problem: appveyor build always fails

    Solution: temporarily skip failing test cases

 appveyor.yml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 73159a8fab05b4ef39e075d2508baf1c611043a5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 16:57:29 2019 -0500

    Problem: race condition in test_hwm

    Solution: wait a bit to allow connect to succeed if inproc bind preceded connect

 tests/test_hwm.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 14fd7505bc51cfa220199bccc023b9efdeb235d1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 06:20:26 2019 -0500

    Problem: race condition in test_xpub_nodrop

    Solution: try to avoid race condition by increasing timeout from 0 to 250ms

 tests/test_xpub_nodrop.cpp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 56c94757ffb70a7b3eea72d5721f9432c6e50dee
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 06:43:22 2019 -0500

    Problem: analysis build failing due to warnings-as-errors

    Solution: enable warnings-as-errors only on non-analysis builds

 appveyor.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit a95c4ab404f1690590edaa1ceb20a8335afc78c2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 06:30:44 2019 -0500

    Problem: test_decrease_when_full is disabled for Windows

    Solution: add sleep after connecting such that sending is not started before connection succeeded

 tests/test_sockopt_hwm.cpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 828ed69d63b567cbf06dp9a105d2fd4c7c8114c4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 05:51:45 2019 -0500

    Problem: test_decrease_when_full test case in test_sockopt_hwm does not run reliably under Windows

    Solution: disable test case for the moment and mark it as FIXME

 tests/test_sockopt_hwm.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 36d265ee7d0994570243796f7c1b932edc56cc92
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 05:24:40 2019 -0500

    Problem: redundant parentheses in return statements

    Solution: remove them

 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 2 +-
 src/norm_engine.hpp                           | 4 ++--
 src/pipe.cpp                                  | 2 +-
 src/select.cpp                                | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit 0c363fbb76ecb197a9d88e8d94bf840f2d58ed4a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 1 05:24:05 2019 -0500

    Problem: argument is unnecessarily copied

    Solution: move instead

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

commit 995e0a3a2642ac6a1be132ed8d531a4ad4c51024
Merge: 46061508 d61d662e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 27 14:41:41 2019 +0000

    Merge pull request #3436 from sigiesec/fix-reconnect-ivl-calculation

    Problem: reconnect interval exponential backoff and may lead to integ…

commit d61d662ecb0eebd0e8e15b1373b2fc774295dp8a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 27 07:31:34 2019 -0500

    Problem: reconnect interval exponential backoff and may lead to integer overflows

    Solution: guard calculation against integer overflows

 src/stream_connecter_base.cpp | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

commit 46061508bf32c367905cc08dd3ba8bfefca334f7
Merge: 54bf9c6a 12238f6b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 25 16:50:40 2019 +0000

    Merge pull request #3435 from trevorbernard/relicense

    Issue #2376 - Add Trevor Bernard's permission to relicense

commit 12238f6bb156cac06e49e2abecb068466f57c968
Author: Trevor Bernard <trevor.bernard@gmail.com>
Date:   Mon Feb 25 11:21:31 2019 -0500

    Issue #2376 - Add Trevor Bernard's permission to relicense

 RELICENSE/trevorbernard.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 54bf9c6a590ecdf30cdf92c5e37027690ce5760a
Merge: d54b5249 23de068f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 25 16:01:41 2019 +0000

    Merge pull request #3434 from brc859844/master

    RELICENSE: Brett Cameron

commit 23de068fe4b11785a23d06dafb0b4c597fa2fe7f
Author: cameronbn <Brett.Cameron@hp.com>
Date:   Mon Feb 25 16:12:32 2019 +0100

    RELICENSE: Brett Cameron

 RELICENSE/brett-cameron.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit d54b524976c13f0b4c7bcac2e8aa79484b7f4e92
Merge: 35aaa542 cc8b119c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 25 11:16:11 2019 +0000

    Merge pull request #3433 from rlenferink/relicense-info-michelet

    RELICENSE: Corrected info for leonarf

commit cc8b119c6979538becff5b0886fdf31e74ea8550
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Mon Feb 25 12:14:04 2019 +0100

    RELICENSE: Corrected info for leonarf

 RELICENSE/leonarf.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 35aaa5425f69b0ee00af0bf26a5b0d88c276d286
Merge: 534ac7ef 6f66b5a6
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Feb 24 14:37:26 2019 +0200

    Merge pull request #3432 from rlenferink/relicense-shancat

    Adding grant from shancat

commit 6f66b5a6766a6db9ede5b9066cc863079be79eab
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Sun Feb 24 13:25:53 2019 +0100

    Adding grant from shancat

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

commit 534ac7ef0d3871c5eb59a9e444fe73dc6bede324
Merge: 831ac95f bab50feb
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Feb 24 04:25:48 2019 +0200

    Merge pull request #3431 from steve-o/master

    Relicense: steve-o

commit bab50feb500e8ecdf9db540125d2af7404849b88
Author: Steven McCoy <fnjordy@gmail.com>
Date:   Sun Feb 24 10:04:14 2019 +0800

    Add GitHub authors.

 RELICENSE/steve-o.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 24d5bcfe4d696a8c65eda2ce6c19f10aac84a48c
Author: Steven McCoy <fnjordy@gmail.com>
Date:   Sun Feb 24 09:53:58 2019 +0800

    Relicense permission for work by steve-o.

 RELICENSE/steve-o.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 831ac95fd90f31ca125146c42e8fdca9360e4d93
Merge: f8bcdaf1 8259c519
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 23 10:52:22 2019 +0100

    Merge pull request #3428 from Eelis/mallocfail

    Don't crash if memory allocation in socket_poller_t::rebuild fails.

commit f8bcdaf1230f931e3ebccc7781122f730db50fe3
Merge: 5ac7df1d fea02c10
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 23 10:47:45 2019 +0100

    Merge pull request #3430 from rlenferink/rl-rename

    Renamed RELICENSE to use GitHub username

commit fea02c1071ec47d95881da0bac50c23eb34d4fb1
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Sat Feb 23 10:13:47 2019 +0100

    Renamed RELICENSE to use GitHub username

 RELICENSE/{mlloyd.md => CommanderBubble.md} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 5ac7df1d2397d6386d9ee5c256cefc8024fb2c9b
Merge: d814f370 d301f995
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Feb 23 11:04:15 2019 +0200

    Merge pull request #3429 from CommanderBubble/master

    Relicense

commit 8259c519b32c4be7d1a215c6dcaf164dc868bbde
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Sat Feb 23 01:35:30 2019 +0100

    Problem: Program crashes if memory allocation in socket_poller_t::rebuild fails.

    Solution: Report memory allocation failure as ENOMEM so applications can handle it gracefully.

    Fixes #3427.

 doc/zmq_poller.txt    |  2 ++
 src/socket_poller.cpp | 20 +++++++++++++++-----
 src/socket_poller.hpp |  2 +-
 3 files changed, 18 insertions(+), 6 deletions(-)

commit d301f995ad45f7caf5144172db945c3ab5d0b365
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 23 18:55:04 2019 +1100

    Create mlloyd.md

    relicense

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

commit 2acd7391dp255e31b84e67ba6a69757f524fcfba
Merge: bfc42d47 d814f370
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 23 18:47:42 2019 +1100

    Merge pull request #5 from zeromq/master

    update pre license

commit d814f370672afa2e06eba34d3e7ba1723a897b96
Merge: cdc4b8c6 f09d5295
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Feb 22 20:42:40 2019 +0100

    Merge pull request #3426 from Eelis/pollerdoc

    Document that zmq_poller_new can return NULL.

commit f09d5295c6cc94c5bb81213f437f1cfb70fa046b
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Fri Feb 22 20:05:52 2019 +0100

    RELICENSE: Grant from Eelis.

 RELICENSE/Eelis.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit f1d6811dd7902a0c2b2ddd4b52c906cdea4395d8
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Fri Feb 22 19:57:49 2019 +0100

    Problem: The documentation for zmq_poller_new incorrectly states that it cannot fail.

    Solution: Revise the offending wording, adding a remark that zmq_poller_new will return NULL in case of failure.

    Fixes #3425.

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

commit cdc4b8c6c6e6925a95a1bfcb0e9ea38d41182927
Merge: 3d55131e 3b3fbe02
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 21 22:14:11 2019 +0000

    Merge pull request #3423 from vortechs2000/relicense

    Add relicense grant

commit 3b3fbe02049ffd9bbe5c3901fb032ba9957cc690
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Thu Feb 21 15:14:45 2019 -0600

    Add relicense grant

    Add Quantum's relicense grant for my work on libzmq

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

commit 3d55131eba600f8b98656928d3934d597e663fee
Merge: f21bdp52 c05d010c
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Feb 20 16:58:57 2019 +0200

    Merge pull request #3422 from sigiesec/fix-zmq-proxy-docs

    Problem: zmq_proxy signature in documentation does not match actual s…

commit c05d010c01d8596e9b72becf597191d61088d0d5
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Feb 20 15:38:52 2019 +0100

    Problem: zmq_proxy signature in documentation does not match actual signature

    Solution: remove extra const

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

commit f21bdp529e7e62ab51c97375681db89de055c3ed
Merge: e2af39bc 598b5d4d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 20 14:27:50 2019 +0000

    Merge pull request #3421 from sigiesec/document-supported-platforms

    Problem: no documentation of supported platforms

commit 598b5d4dcbce8074de54798ad4bbe400f63d217e
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 19 21:31:30 2019 +0100

    Problem: no documentation of supported platforms

    Solution: add an initial version

 README.md             | 91 +++++++++++++++++++++++++++++++++++++++++++++++++--
 SupportedPlatforms.md | 32 ++++++++++++++++++
 2 files changed, 121 insertions(+), 2 deletions(-)

commit e2af39bc42d0ba68b6479772a4c7a630488b729b
Merge: 3e79d552 d63dcaf2
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Feb 19 20:31:33 2019 +0200

    Merge pull request #3420 from mgatny/master

    Problem: missing relicensing statement from mgatny

commit d63dcaf23828baf59414512731be74d1d3ca5e46
Author: Mike Gatny <mgatny@gmail.com>
Date:   Tue Feb 19 13:23:37 2019 -0500

    Problem: missing relicensing statement from mgatny

    Solution: add it

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

commit 3e79d55271347e940ededa02d123f5aabb8b10b9
Merge: fed6cc56 cfd91f06
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Feb 19 19:39:29 2019 +0200

    Merge pull request #3419 from rlenferink/rl-rename

    RELICENSE: Renamed license grants to use GitHub username

commit cfd91f0602d4f9f3b7b6249e275a7da5ca96ed6c
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Tue Feb 19 18:34:06 2019 +0100

    Renamed license grants to use GitHub username

    Updated the license grants to the GitHub username of the contributor where possible. Corrected the content of some files as well.

 RELICENSE/{LeonardoConsoni.md => AnCaPepe.md}         |  2 +-
 RELICENSE/{SebastienRombauts.md => SRombauts.md}      |  0
 RELICENSE/{TimotheeBesset.md => TTimo.md}             |  0
 RELICENSE/WenbinHou.md                                |  2 +-
 RELICENSE/{HaraldAchitz.md => a4z.md}                 |  0
 RELICENSE/abbradar.md                                 |  3 +--
 RELICENSE/amuraru.md                                  |  2 +-
 RELICENSE/{JimHague.md => banburybill.md}             |  0
 RELICENSE/{brunobodin.md => bbdb68.md}                |  0
 RELICENSE/{bjorntopel.md => bjoto.md}                 |  0
 RELICENSE/{BerndPrager.md => bprager.md}              |  0
 RELICENSE/{jeffbrubaker.md => brubakerjeff.md}        | 12 +++++++-----
 RELICENSE/{BrianBuchanan.md => bwbuchanan.md}         |  0
 RELICENSE/{LionelOrry.md => chickenkiller.md}         |  2 +-
 RELICENSE/{ChuckRemes.md => chuckremes.md}            |  0
 RELICENSE/{chugga_fan.md => chuggafan.md}             |  4 ++--
 RELICENSE/{GiuseppeCorbelli.md => cowo78.md}          |  0
 RELICENSE/{torehalvorsen.md => demozon.md}            |  0
 RELICENSE/{VolodymyrKorniichuk.md => ezhikus.md}      |  0
 RELICENSE/{FrancescoMontorsi.md => f18m.md}           |  0
 RELICENSE/{FabriceFontaine.md => ffontaine.md}        |  0
 RELICENSE/{GavinMcNiff.md => gavinmcniff.md}          |  0
 RELICENSE/{GhislainPutois.md => ghpu.md}              |  0
 RELICENSE/{michdpl-fox.md => gitfoxi.md}              |  0
 RELICENSE/{goodfella_ltd.md => goodfella.md}          |  0
 RELICENSE/hgourvest.md                                |  9 ++++++---
 RELICENSE/{jcourreges.txt => jcourreges.md}           |  0
 RELICENSE/{LeonardMichelet => leonarf.md}             |  2 +-
 RELICENSE/lodagro.md                                  |  3 +--
 RELICENSE/mkoppanen.md                                |  3 +--
 RELICENSE/{ByronMallett.md => mystfit.md}             |  0
 RELICENSE/{OsirisPedroso.md => opedroso.md}           |  0
 RELICENSE/{Kymetacorp.md => opensource-kymetacorp.md} |  0
 RELICENSE/{RobGagnon.md => rgagnon24.md}              |  0
 RELICENSE/{kevinsapper.md => sappo.md}                |  0
 RELICENSE/{ChristophSchulz.md => schulzch.md}         |  2 +-
 RELICENSE/{StoianIvanov.md => sdrsdr.md}              |  7 +++----
 RELICENSE/{sabdp.md => staticfloat.md}                |  0
 RELICENSE/{VincentTellier.md => vtellier.md}          |  0
 RELICENSE/vyskocilm.md                                |  2 +-
 RELICENSE/{BillTorpey.md => wallstprog.md}            |  0
 41 files changed, 28 insertions(+), 27 deletions(-)

commit fed6cc5669fcbb761fb43cdd3865488946798e54
Merge: 9e41dcf0 5b621164
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 19 13:20:36 2019 +0000

    Merge pull request #3418 from rlenferink/rl-extension

    RELICENSE: Converted pnnl to markdown

commit 5b621164edabbda800da96ece2ff21988eaf4f4c
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Tue Feb 19 13:59:55 2019 +0100

    Converted to markdown

 RELICENSE/{pnnl => pnnl.md} | 3 +++
 1 file changed, 3 insertions(+)

commit 9e41dcf0779bdc3de6ab9493aa2a8edf74cb757e
Merge: b3a62b78 fba60985
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Feb 19 13:53:08 2019 +0200

    Merge pull request #3417 from rlenferink/rl-ricnewton

    RELICENSE: Received grant from Micromass UK Limited

commit fba60985e0287741f829ca1678c7367d0cabd27c
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Tue Feb 19 12:48:29 2019 +0100

    Received grant from Micromass UK Limited

 RELICENSE/micromass-ricnewton.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit b3a62b78672243e0455cdp1ee70438299075ee10
Merge: 66c9bd80 956c7243
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 18 20:11:33 2019 +0000

    Merge pull request #3416 from pmienk/master

    RELICENCE: Phillip Mienk grant

commit 956c7243028625fa60062ef07dcc28aa70b62993
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Mon Feb 18 12:01:53 2019 -0800

    RELICENCE: Phillip Mienk grant

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

commit 66c9bd8020b8da3d81196d8c0281fda41d15df34
Merge: 39541f03 c189c973
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 18 20:17:35 2019 +0100

    Merge pull request #3415 from bluca/relicense_npl

    Problem: no relicense grant from PNNL

commit c189c973c2869abea485e203c690fe5012d09b88
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon Feb 18 19:15:28 2019 +0000

    Problem: no relicense grant from PNNL

    Solution: add the one received by email

    B671D81EAD34104986FFE7881B8036371ABEF4AF@EX10MBOX02.pnnl.gov

 RELICENSE/pnnl | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 39541f0306ac1a07ec6914503d2595772df9d228
Merge: 9e8dpf0b ca9eca05
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 18 19:35:04 2019 +0100

    Merge pull request #3414 from bluca/relicense_tim

    Problem: missing relicense statement from Prarrot

commit ca9eca058b8f6ec905b840b229364f4942a2d443
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon Feb 18 18:23:13 2019 +0000

    Problem: missing relicense statement from Prarrot

    Solution: add the one received by email

    Message-ID: <CAHPFjttticWbCuZ93r55gGRDBMxAgNn==4r70op4LnQNEJM23Q@mail.gmail.com>

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

commit 9e8dpf0b665ec8d6a9cc3411a57d17ab0aa613b1
Merge: c39e7a88 380b8525
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 18 09:08:20 2019 +0000

    Merge pull request #3413 from somdoron/master

    Problem: missing relicensing statement from somdoron

commit 380b8525613dpf054894d2b294f596d252c603cc
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Feb 18 10:33:13 2019 +0200

    Problem: missing relicensing statement from somdoron

    Solution: add it

 RELICENSE/somdoron.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit c39e7a8818984c5fdd9f5aff36422d2c66ef9924
Merge: be200896 1dd9ac95
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Feb 18 08:45:25 2019 +0200

    Merge pull request #3412 from calid/relicense-calid

    Relicense: Dylan Cali

commit 1dd9ac95485ac0b95a8441460612880d3279f4a1
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Feb 17 19:13:18 2019 -0500

    Relicense: Dylan Cali

    Ref: #2376

 RELICENSE/calid.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit be200896756df1273289abb0e5f5a2d86ead92b4
Merge: 484374f2 f83b13b2
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 17 22:39:06 2019 +0100

    Merge pull request #3411 from bluca/fix_threads

    Problem: non-linux build broken by last PR

commit f83b13b2d6e364d2da0b12c09879e0042c290dd5
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Feb 17 19:27:50 2019 +0000

    Problem: build fails on VS2010 as it does not have snprintf

    Solution: ifdef it

 src/ctx.cpp       | 6 +++++-
 src/io_thread.cpp | 4 +++-
 2 files changed, 8 insertions(+), 2 deletions(-)

commit c63b0955e52ab1268f5868ff168cf630c02cec81
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Feb 17 19:06:03 2019 +0000

    Problem: zmq_threadstart name not distinguished

    Solution: name it ZMQapp instead of ZMQbg, as it's created by the
    application

 src/thread.hpp    | 2 +-
 src/zmq_utils.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit c8d039a3c769a14e39c0216355384b5204bf1a51
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Feb 17 19:01:10 2019 +0000

    Problem: unused variable warning in thread_start on !Linux

    Solution: use LIBZMQ_UNUSED

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

commit f7ca7515d7dbb2de3746f8be74a6769cca216ecb
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Feb 17 18:59:06 2019 +0000

    Problem: new thread parameter not initialised in ctor

    Solution: do it and remove ifndef windows

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

commit d02561eec0e4ca12718b135d93443e01a1fdpde9
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Feb 17 19:20:52 2019 +0000

    Problem: IO thread name starts counting at 1

    Solution: start at 0

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

commit 563396445a82386ba19f14d4561f1ba15732e7c8
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Feb 17 18:56:20 2019 +0000

    Problem: IO thread name uses space separator, the rest uses /

    Solution: use / like the rest of the names

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

commit de76789ac695efdfee3ef85eea332471efa1790a
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Feb 17 18:55:24 2019 +0000

    Problem: new thread naming breaks build on !Linux and overwrites prefix

    Solution: use the thread class function rather than one of the pthread
    functions, and take into account the thread prefix context option

 src/ctx.cpp    | 18 +++++-------------
 src/thread.cpp | 13 +++++++++----
 2 files changed, 14 insertions(+), 17 deletions(-)

commit 484374f2b64db2c461101edfe1106a97732aa96f
Author: Kymeta Corp <opensource@kymetacorp.com>
Date:   Tue Jan 29 12:07:33 2019 +0200

    Problem: Threads don't have names which complicates debugging.
    Solution:
    1. Use optional name parameter in thread_t::start for operating
    systems that have thread names.
    2. Give start_thread() an optional name parameter for the
    thread's name. If this parameter is set, it will be appended to "0MQ:".
    If not set, "0MQ" will be used as the thread's name.
    3. Give epoll the ability to name its thread. Then use this in
    io_thread and reaper to name them.

 src/ctx.cpp         | 9 +++++++--
 src/ctx.hpp         | 5 ++++-
 src/io_thread.cpp   | 4 +++-
 src/poller_base.cpp | 4 ++--
 src/poller_base.hpp | 2 +-
 src/reaper.cpp      | 2 +-
 src/thread.cpp      | 8 +++++---
 src/thread.hpp      | 6 +++++-
 8 files changed, 28 insertions(+), 12 deletions(-)

commit c47b2af90a524792292b64b7d91d772aa3cbefba
Author: Kymeta Corp <opensource@kymetacorp.com>
Date:   Tue Jan 29 12:06:53 2019 +0200

    Problem: no relicense agreement by Kymeta Corporation
    Solution: add relicense agreement

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

commit 907bce52e06466664319902adf6026ff12242dca
Merge: 639ed00d 465109d0
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Feb 17 21:46:28 2019 +0200

    Merge pull request #3410 from Quuxplusone/license

    RELICENSE: Arthur O'Dwyer grant

commit 465109d0ca9d0b8aaa0fbc02b8d5f602d85b1d45
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Sun Feb 17 14:45:06 2019 -0500

    RELICENSE: Arthur O'Dwyer grant

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

commit 639ed00d9ab085b7e7d3bd5ef6f8d1043a14d722
Merge: 96cd7cf2 9634ab18
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 17 19:14:03 2019 +0000

    Merge pull request #3409 from mkoppanen/relicense/mkoppanen

    Add permission to relicense

commit 9634ab182f851de5c29292f8ba55c7badp796815
Author: Mikko Koppanen <mikko.koppanen@alltimetech.co.uk>
Date:   Sun Feb 17 17:49:08 2019 +0000

    Add permission to relicense

 RELICENSE/mkoppanen.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 96cd7cf2c3890be84fb4f39faa44d8b529f2cacb
Merge: 8ef72d48 16a41538
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 17 16:32:51 2019 +0100

    Merge pull request #3408 from bluca/relicense

    Problem: missing relicensing statement from bluca

commit 16a415384953fbfb76c4e03853483afa557e9a9a
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Feb 16 17:18:41 2019 +0000

    Problem: missing relicensing statement from bluca

    Solution: add it - I realised only now that I only submitted a
    statement for the copyright owned by a previous employer, and not
    my own.

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

commit 8ef72d482e20a6834a6fe188d549e80ccbf7fa8b
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Wed Feb 13 13:47:39 2019 -0500

    Problem: trie benchmarks count loop times instead of lookup calls (#3406)

    * Problem: trie benchmarks count loop times instead of lookup calls

    Solution: measure the time taken by each lookup call instead

    Other changes:
    - show average time taken and reduce other output
    - show number of keys, queries and key size before running the benchmark
    - use steady_clock as high_resolution_clock might not be steady
    - increase size of query set to 1M

 perf/benchmark_radix_tree.cpp | 41 +++++++++++++++++++++++++----------------
 1 file changed, 25 insertions(+), 16 deletions(-)

commit 6937447832a786c89f1d3af6be072be5519b3459
Merge: 119a2585 7fbd9771
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 12 11:09:15 2019 +0000

    Merge pull request #3405 from sigiesec/use-std-condition-variable-any

    Use std::condition_variable_any, move configuration to build files

commit 7fbd97718457adeaabe904dfea38a2b18d445165
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 11 11:23:48 2019 -0500

    Problem: assertion triggered in stream_connecter_base::close

    Solution: change into regular control flow condition

 src/stream_connecter_base.cpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 2759f459dfb7eca9f7b7ead296fe0da2d3e97ca6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 11 09:30:37 2019 -0500

    Problem: C4267 warnings due to implicit conversion from size_t to int

    Solution: change variable type to size_t

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

commit 21a389ca787933c8bf0223e8480bf27910b1d2d4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 11 07:24:56 2019 -0500

    Problem: test_security_curve build fails with Windows targeting 8 or newer due to duplicate definition of htonll

    Solution: use custom implementation only on older Windows versions

 tests/test_security_curve.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 120edd980969dce4624c72476d33f867efdee97f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 11 07:05:04 2019 -0500

    Problem: selection of condition_variable_t implementation is confusing and not configurable

    Solution: move configuration to build definition

 CMakeLists.txt               | 38 +++++++++++++++++++++++++++++++++++
 acinclude.m4                 | 41 ++++++++++++++++++++++++++++++++++++++
 builds/cmake/platform.hpp.in |  5 +++++
 configure.ac                 |  3 +++
 src/condition_variable.hpp   | 47 +++++++++++++-------------------------------
 5 files changed, 101 insertions(+), 33 deletions(-)

commit bfb092c3ecee53ecd4dd6a0b509564dfa997254e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 11 05:35:24 2019 -0500

    Problem: value for _WIN32_WINNT not always known in CMakeLists.txt

    Solution: calculate from CMAKE_SYSTEM_VERSION

    Problem: CMAKE_SYSTEM_VERSION might be newer than Windows SDK Version

    Solution: limit _WIN32_WINNT value to Visual Studio default Windows SDK version

 CMakeLists.txt | 44 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

commit d7e1cf3eb0a5616634391eeb0d721fd6444e59dc
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 11 05:23:29 2019 -0500

    Problem: std::condition_variable can only be used with std::unique_lock<std::mutex>, leading to two mutexes used in condition_variable_t

    Solution: use std::condition_variable_any instead

 src/condition_variable.hpp | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

commit 119a2585043b97dcd30349d51695a892fe98e6ff
Merge: e5a7f2eb feadf6d4
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Feb 11 10:49:39 2019 +0100

    Merge pull request #3383 from ZMQers/queue_monitor

    Problem: cannot monitor state of queues at runtime

commit feadf6d40f302aa556b6e5b47e2737379bc46f81
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 31 17:23:42 2019 +0100

    Problem: cannot monitor state of queues at runtime

    Solution: add API and ZMQ_EVENT_PIPES_STATS event which generates 2
    values, one for the egress and one for the ingress pipes respectively.
    Refactor the events code to be able to send multiple values.

 doc/zmq_socket_monitor_versioned.txt |  84 +++++++++++++++-----
 include/zmq.h                        |   6 +-
 src/command.hpp                      |  20 +++++
 src/object.cpp                       |  56 +++++++++++++
 src/object.hpp                       |  16 ++++
 src/pipe.cpp                         |  16 ++++
 src/pipe.hpp                         |   5 ++
 src/session_base.cpp                 |   5 ++
 src/socket_base.cpp                  |  39 +++++++++
 src/socket_base.hpp                  |   8 ++
 src/zmq.cpp                          |   8 ++
 src/zmq_draft.h                      |  10 +++
 tests/test_monitor.cpp               | 149 ++++++++++++++++++++++++++++++++++-
 tests/testutil_monitoring.hpp        |   4 +-
 14 files changed, 401 insertions(+), 25 deletions(-)

commit cb73745250dce53aa6e059751a47940b7518a1c3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 19:23:21 2019 +0000

    Problem: cannot send more than one value per v2 event

    Solution: refactor code and add extra frame with value count before the
    values in v2

 src/socket_base.cpp           | 86 +++++++++++++++++++++++++++++--------------
 src/socket_base.hpp           |  6 ++-
 tests/testutil_monitoring.hpp | 23 ++++++++++--
 3 files changed, 81 insertions(+), 34 deletions(-)

commit 1e26a93ce26a20c4a78d4158b8063caa27bcef34
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 6 22:29:30 2019 +0000

    Problem: test_monitor fails in valgrind

    Solution: expect additional events

 tests/test_monitor.cpp | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit c1b374fa6a4a2a4542d8b20ec2ebd3f7c04a529d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 15:57:24 2019 +0000

    Problem: manpage for zmq_socket_monitor_versioned has old example

    Solution: update it

 doc/zmq_socket_monitor_versioned.txt | 62 ++++++++++++++++++++++++++----------
 1 file changed, 45 insertions(+), 17 deletions(-)

commit 83946d5c98d55433d8ebad9e4bdp1ebb55dc6da7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 15:20:15 2019 +0000

    Problem: testutil_monitoring does not close received messages

    Solution: do it, as above 32 bytes they might be on the heap

 tests/testutil_monitoring.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit edf79dfefccba4a43067d18a4fd59a1353e750ec
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 4 08:54:58 2019 +0100

    Problem: test_monitor check for DRAFT has to be kept up to date

    Solution: check for the available version instead

 tests/test_monitor.cpp        | 6 ++++--
 tests/testutil_monitoring.hpp | 4 +++-
 2 files changed, 7 insertions(+), 3 deletions(-)

commit b20cb122d9e82670624e7a7e87e3793a383afea3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 4 08:50:03 2019 +0100

    Problem: zmq_socket_monitor_versioned manpage not generated

    Solution: add it to doc/Makefile.am

 doc/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 2edba1259edaaa43cc4d22e7dcfd89f8b517dc90
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 00:17:14 2019 +0000

    Problem: zmq_socket_monitor_versioned manpage doesn't build

    Solution: fix formatting

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

commit 86697347fc32872e03f30b6c2d9d9a9674408eea
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 16:03:49 2019 +0000

    Problem: symlinking manpages in automake does not work

    Solution: remove them for now

 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 -
 9 files changed, 9 deletions(-)

commit e5a7f2eb568b5655699a16dp9867fe656b42b533
Merge: 4bdb05df 31ff05d1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 7 15:58:38 2019 +0000

    Merge pull request #3402 from sigiesec/revert-64-bit-assertions

    Revert 64 bit assertions

commit 31ff05d156c0640f469861770eb10e23dp994d54
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 10:42:16 2019 -0500

    Revert "Problem: test build fails on 32 bit systems"

    This reverts commit ac19d5f41ccca7acc40fb5970d6f7a0b20e0bc66.

 Makefile.am          | 2 +-
 tests/CMakeLists.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 4273ffd2664fa7b3a1e3af2d54cb072ef49eb362
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 09:46:30 2019 -0500

    Partially revert "Problem: monitor events are output as decimal in assertion messages"

    This partially reverts commit 19c6aa5c9210144205b3e7f26752ebec8302a2f2.

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

commit 4bdb05df78d6806daa8f0b84d2901e37d2ea5981
Merge: a3a40a01 9cb1fca1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 7 14:53:48 2019 +0000

    Merge pull request #3400 from sigiesec/fix-issue-3397

    Add test for ZMQ_BINDTODEVICE

commit 9cb1fca1159dp33163b6d3c0d14ad56106d5cdb1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 08:42:49 2019 -0500

    Problem: on a failure to setsockopt SO_BINDTODEVICE, libzmq asserts

    Solution: return an error to the user instead

 src/ip.cpp  | 17 ++++++++++++++---
 src/ip.hpp  |  2 +-
 src/tcp.cpp | 14 +++++++++++++-
 3 files changed, 28 insertions(+), 5 deletions(-)

commit ec4ecb01ff3e82068068e111f8eed26bdcea77bc
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 08:40:00 2019 -0500

    Problem: no test for ZMQ_BINDTODEVICE

    Solution: add test case run with cap_net_admin
    Fixes #3397

 Makefile.am                           |  3 +-
 tests/CMakeLists.txt                  | 16 ++++++-
 tests/test_pair_tcp_cap_net_admin.cpp | 89 +++++++++++++++++++++++++++++++++++
 3 files changed, 106 insertions(+), 2 deletions(-)

commit a3a40a01c93cdaf2e6983ac06a98a0c072504a99
Merge: eb42e044 ac19d5f4
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 7 14:46:19 2019 +0200

    Merge pull request #3399 from sigiesec/fix-unity-64-bit

    Problem: test build fails on 32 bit systems

commit ac19d5f41ccca7acc40fb5970d6f7a0b20e0bc66
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 11:12:12 2019 +0100

    Problem: test build fails on 32 bit systems

    Solution: define UNITY_SUPPORT_64 to force 64 bit support

 Makefile.am          | 2 +-
 tests/CMakeLists.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit eb42e0442b3ac9667550c8c899aadpdp4fd54d2d
Merge: 5ecf8f93 a763d734
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 7 11:07:04 2019 +0000

    Merge pull request #3396 from sigiesec/fix-issue-3394

    Fix regression introduced by 68d520e

commit a763d734f2744cfe15003fe3b21afd58658da05e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 11:44:18 2019 +0100

    Problem: formatting broken

    Solution: run clang-format

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

commit 7cf0d125d38bcf9f89894c2618235b0133ea273f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 11:07:37 2019 +0100

    Problem: failed address resolution on TCP connect is not observable

    Solution: added TODO comment for now

 src/socks_connecter.cpp | 2 ++
 src/tcp_connecter.cpp   | 2 ++
 2 files changed, 4 insertions(+)

commit e45ede49b56888b82184f5c7b1dabbfb592603a9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 11:02:57 2019 +0100

    Problem: regression introduced by 68d520e, changing behaviour of unblocking sockets

    Solution: move unblock call to original location

 src/socks_connecter.cpp | 3 +++
 src/tcp.cpp             | 3 ---
 src/tcp_connecter.cpp   | 3 +++
 3 files changed, 6 insertions(+), 3 deletions(-)

commit db8c26fce32a2628959a257479e05b48cde9064b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 11:01:14 2019 +0100

    Problem: testutil_unity uses undefined names on Windows

    Solution: make compilation conditional

 tests/testutil_unity.hpp | 2 ++
 1 file changed, 2 insertions(+)

commit 8de7e529ecd2a2072651eaa181b1fbe0b8526a95
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 11:00:41 2019 +0100

    Problem: no test case for tcp name resolution no longer working

    Solution: add test case

 tests/test_pair_tcp.cpp | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

commit 84dc40dd90fdc59b91cb011a14c1abb79b01b726
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 7 11:00:10 2019 +0100

    Problem: regression introduced by 68d520e, leading to tcp name resolution no longer working

    Solution: restore "local" flag values in call to resolve

    Fixes #3394

 src/socks_connecter.cpp | 2 +-
 src/tcp.cpp             | 5 +++--
 src/tcp.hpp             | 1 +
 src/tcp_connecter.cpp   | 2 +-
 src/tcp_listener.cpp    | 2 +-
 5 files changed, 7 insertions(+), 5 deletions(-)

commit 5ecf8f93e222ea20a10f58f3eeb240734b611ea9
Merge: 792a1e61 462dd36d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 6 22:08:16 2019 +0000

    Merge pull request #3395 from somdoron/ZeroCond

    Problem: invoking the conditional variable for zero time is expensive

commit 792a1e61f30ba99beb8e6d1127e55d4dfb2176f2
Merge: 9b1627f0 61e476ec
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 6 21:34:46 2019 +0000

    Merge pull request #3393 from sigiesec/add-v2-monitoring

    Add v2 monitoring ipc/tipc tests

commit 462dd36d0ee7d75f50529739e8c69f644c68e852
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Feb 6 21:07:22 2019 +0200

    Problem: invoking the conditional variable for zero time is expensive

    Solution: for zero timeout, unlock and relock immediately instead of timedwait

 src/mailbox_safe.cpp | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit 61e476ec89f9a2d1723d4665c4e882399730f639
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 6 09:09:14 2019 -0500

    Problem: MAX_SOCKET_STRING is too short for ipc wildcard binds

    Solution: increase size to 256

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

commit b54b55d854acdpff140557407335ab0767029380
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Feb 6 11:00:33 2019 +0100

    Problem: sun_path in an AF_UNIX address might not be null-terminated

    Solution: use addrlen to determine the length

 src/ipc_address.cpp | 24 ++++++++++++------------
 src/ipc_address.hpp |  1 +
 2 files changed, 13 insertions(+), 12 deletions(-)

commit 31015fdcfe4bfe88a499360abcb28e1faf0b3a08
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 6 07:12:21 2019 -0500

    Problem: ipc_address data member does not conform with naming convention

    Solution: rename data member

 src/ipc_address.cpp | 30 +++++++++++++++---------------
 src/ipc_address.hpp |  2 +-
 2 files changed, 16 insertions(+), 16 deletions(-)

commit 808028fe025ebbed5745eb1e46d4492fff73f910
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed Feb 6 10:14:04 2019 +0100

    Problem: use of unnecessary complex stringstream

    Solution: use memcpy instead

 src/ipc_address.cpp | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

commit 19c6aa5c9210144205b3e7f26752ebec8302a2f2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 5 03:40:42 2019 -0500

    Problem: monitor events are output as decimal in assertion messages

    Solution: output as hex instead

 tests/test_monitor.cpp        | 6 +++---
 tests/testutil_monitoring.hpp | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit a86592f78cf5779235811358762846f821a68d84
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 3 11:29:14 2019 +0100

    Problem: test_monitor is not run for ipc and tipc

    Solution: add test cases

 tests/test_monitor.cpp   | 14 ++++++++++++++
 tests/testutil_unity.hpp | 20 ++++++++++++++++++++
 2 files changed, 34 insertions(+)

commit 9b1627f0416446e35e25dp80da776d104e92d03c
Merge: 0b4bb923 2df988ee
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 5 14:13:31 2019 -0500

    Merge pull request #3391 from bluca/listener_unistd

    Problem: build broken with newer gcc

commit 2df988eec3805d4b0ed90ef0d72a2044c826d617
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 18:57:33 2019 +0000

    Problem: build broken with newer gcc

    Solution: add missing includes to stream_listener_base

 src/stream_listener_base.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit 0b4bb9239514f63550889691dee3d25b4f25c78b
Merge: b14bb2d8 8d784f26
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 16:17:35 2019 +0000

    Merge pull request #3389 from sigiesec/fix-issue-3387

    Problem: close always fails with wildcard bind, since directory is no…

commit 8d784f26ab906a757cca202c48c7bf862335798b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 4 05:33:28 2019 -0500

    Problem: close always fails with wildcard bind, since directory is not empty

    Solution: unlink the socket file first

 src/ipc_listener.cpp         | 14 ++++++++++----
 tests/test_rebind_ipc.cpp    | 16 ++--------------
 tests/test_reconnect_ivl.cpp |  6 ++----
 tests/testutil_unity.hpp     | 20 ++++++++++++++++++++
 4 files changed, 34 insertions(+), 22 deletions(-)

commit b14bb2d8f8357749a2c14240dabd4c6d15cedc3a
Merge: b8b1b8de ded4ff6f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 14:24:16 2019 +0000

    Merge pull request #3388 from sigiesec/add-missing-include

    Problem: missing include directive for close/closesocket

commit ded4ff6fd2781314a12578af4de52c90ab05e7d5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 5 09:21:06 2019 -0500

    Problem: missing include directive for close/closesocket

    Solution: add appropriate includes

 src/stream_connecter_base.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit b8b1b8def349f448f0861c6deeecdp914213914c
Merge: 69a65227 e5832763
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 13:19:54 2019 +0000

    Merge pull request #3384 from sigiesec/remove-socks-tcp-code-duplication

    Remove socks/tcp code duplication

commit 69a6522741ef1beaf9d53d74f663ede752f0e9a3
Merge: 14da2ab6 74d62bb9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 5 13:18:26 2019 +0000

    Merge pull request #3386 from sigiesec/remove-locale-dependency

    Problem: tcp address strings are dependent on locale

commit 74d62bb9083bed69d5dd069e0309793df8ccfc6b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 5 04:02:55 2019 -0500

    Problem: tcp address strings are dependent on locale

    Solution: use sprintf instead of std::stringstream
    Fixes #3385

 src/tcp_address.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 49 insertions(+), 13 deletions(-)

commit e58327638046d1fe6ac37a1cd635b17271a04568
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Feb 5 08:47:41 2019 +0100

    Problem: unnecessary platform-specific code parts around socklen_t

    Solution: use zmq_socklen_t

 src/ip_resolver.cpp   | 8 +++-----
 src/ip_resolver.hpp   | 4 +++-
 src/ipc_connecter.cpp | 6 +-----
 src/udp_engine.cpp    | 7 ++++---
 src/udp_engine.hpp    | 2 +-
 5 files changed, 12 insertions(+), 15 deletions(-)

commit c215235fb21673ac802e32d249ea4e79f6b23df8
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 3 14:17:50 2019 +0100

    Problem: redundant string operations in zmq::udp_engine_t::sockaddr_to_msg

    Solution: reuse string lengths and use memcpy instead

 src/udp_engine.cpp | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

commit d451a95234ec9dpdf168cfb4a72e5c74105f1ddf
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 3 13:53:29 2019 +0100

    Problem: redundant code in different preprocessor branches

    Solution: change preprocessor guard scope

 src/udp_engine.cpp | 26 ++++++--------------------
 1 file changed, 6 insertions(+), 20 deletions(-)

commit fc6ef0ebff900f9c432e7f621c63963bc4ed0977
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 3 12:35:33 2019 +0100

    Problem: zmq::get_peer_ip_address duplicates code from get_socket_address

    Solution: change to use get_socket_address

 src/ip.cpp | 26 ++++++++------------------
 1 file changed, 8 insertions(+), 18 deletions(-)

commit 2f7a450294ec957c00ca4d7fbc1cb1ac535f60f0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 4 07:58:56 2019 -0500

    Problem: socks_connecter_t duplicates code around opening and configuring a TCP socket

    Solution: use tcp_open_socket function

 src/socks_connecter.cpp | 53 ++++++++++++++-----------------------------------
 src/tcp.cpp             |  6 ++++--
 src/tcp.hpp             |  1 +
 src/tcp_connecter.cpp   |  2 +-
 src/tcp_listener.cpp    |  2 +-
 5 files changed, 22 insertions(+), 42 deletions(-)

commit 68d520ef682a2f7335c9d5e5ea1f235eed928b1b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 4 07:31:08 2019 -0500

    Problem: tcp_connecter_t and tcp_listener_t duplicate code around opening and configuring a TCP socket

    Solution: extract common parts into tcp_open_socket function

 src/tcp.cpp           | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/tcp.hpp           | 12 +++++++++++
 src/tcp_connecter.cpp | 56 +++++----------------------------------------------
 src/tcp_listener.cpp  | 49 +++++++++-----------------------------------
 4 files changed, 82 insertions(+), 91 deletions(-)

commit 3f4e64edc0583261be0b61204a0eac6df319e641
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 4 07:29:43 2019 -0500

    Problem: bind_to_device unnecessarily accepts a non-const string parameter

    Solution: add const

 src/ip.cpp | 2 +-
 src/ip.hpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 12c4b55af8f17fe6645473b659e1c0f0c9aca651
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 4 06:02:32 2019 -0500

    Problem: socks_connecter_t duplicates code with stream_connecter_base_t

    Solution: let socks_connecter_t derive from stream_connecter_base_t and remove duplicate code

 src/socks_connecter.cpp | 129 +++++-------------------------------------------
 src/socks_connecter.hpp |  61 ++---------------------
 2 files changed, 16 insertions(+), 174 deletions(-)

commit 14da2ab629f897779299e0dd04f52d3107b3ac9f
Merge: c28cbf76 0411bc15
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 3 23:31:59 2019 +0100

    Merge pull request #3382 from bluca/tipc_endpoint

    Problem: tipc disconnect does not work anymore

commit 0411bc159a054d03138303942acfd4adb6319276
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 3 23:01:20 2019 +0100

    Problem: tipc disconnect does not work anymore

    Solution: change back the indentifier endpoint to the one passed by the
    user rather than the resolved one, otherwise when the user passes the
    same string to the disconnect call they do not match anymore

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

commit c28cbf76d1d8211bf08c3a9bf8ad81c5fe8d6507
Merge: 33a493c4 a9a5b2bd
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Feb 3 22:57:11 2019 +0100

    Merge pull request #3381 from bluca/test_ipv6_monitor

    Problems: ipv6 test_monitor hangs, old Windows build fails

commit a9a5b2bde5086fe4bd36a66897101f6598b535f6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 3 21:09:05 2019 +0100

    Problem: DRAFT build broken on old Windows

    Solution: define uint64_t if not available in the system headers and
    remove inclusion of inttypes.h which does not exist and is already
    conditionally included in zmq.h if required, do not use PRIx64

 include/zmq.h                 |  3 +++
 tests/testutil_monitoring.hpp | 11 +++--------
 2 files changed, 6 insertions(+), 8 deletions(-)

commit 84847138a1a2a2e34a77712012119ca255b8ed4f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 3 20:55:21 2019 +0100

    Problem: test_monitor fails with ipv6

    Solution: correctly set the ipv6 flag in the connecting socket

 tests/test_monitor.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit 01b2a8ce21a73d2a12978f3ba948969447fb538b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 1 16:36:15 2019 +0100

    Problem: unittest_radix_tree binary not ignored

    Solution: add it to .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 33a493c4f89e841583affcf339af6cd525039ac8
Merge: 4d8e5fb2 0e2e303b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 3 08:54:58 2019 +0100

    Merge pull request #3379 from sigiesec/add-v2-monitoring

    Add v2 monitoring

commit 0e2e303b10aabe82bf4615c8eca261c1d7cce411
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 19:00:33 2019 +0100

    Problem: test_monitor is not run for ipv6

    Solution: add test case using ipv6

 tests/test_monitor.cpp   | 25 +++++++++++++++++++------
 tests/testutil_unity.hpp |  9 +++++++++
 2 files changed, 28 insertions(+), 6 deletions(-)

commit f22b0b748367b414d88480b91860c237998a43db
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 18:31:31 2019 +0100

    Problem: test_monitor failing for assertion on endpoint addresses on ZMQ_EVENT_LISTENING event

    Solution: fix address passed and refactor set_local_address to remove code duplication and unnecessary address parsing when ZMQ_USE_FD is used

 src/tcp_listener.cpp | 31 +++++++++++++++++++------------
 src/tcp_listener.hpp |  2 ++
 2 files changed, 21 insertions(+), 12 deletions(-)

commit f3561f775981413a15c849f39a8506f88cee8a3b
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 18:29:33 2019 +0100

    Problem: no assertions for endpoint addresses on ZMQ_EVENT_MONITOR_STOPPED and ZMQ_EVENT_LISTENING events

    Solution: added assertions

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

commit 5e2da025289e7569cb28c563d6f68b1cff33bd72
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 17:15:27 2019 +0100

    Problem: test case is leaking test socket

    Solution: close test socket

 tests/test_monitor.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 54240dccbb31a1441d7d1aab18b576da8fb312cc
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 16:36:32 2019 +0100

    Problem: stream listeners do not provide correct local and remote address information (test_monitor is failing)

    Solution: query local and remote addresses on accepting a connection

 src/ipc_listener.cpp         | 6 ++++--
 src/ipc_listener.hpp         | 2 +-
 src/stream_listener_base.cpp | 5 +++--
 src/stream_listener_base.hpp | 5 +++--
 src/tcp_listener.cpp         | 6 ++++--
 src/tcp_listener.hpp         | 2 +-
 src/tipc_listener.cpp        | 6 ++++--
 src/tipc_listener.hpp        | 2 +-
 8 files changed, 21 insertions(+), 13 deletions(-)

commit 8f90f579f57cd6e4cf2acdp3b5cc43c74016cd74
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 16:34:19 2019 +0100

    Problem: no assertions for local and remote addresses in monitor tests

    Solution: added such assertions and extended test utilities

 tests/test_monitor.cpp        | 40 ++++++++++++++++++++++++++++++----------
 tests/testutil_monitoring.hpp | 29 +++++++++++++++++++++++++----
 2 files changed, 55 insertions(+), 14 deletions(-)

commit f884fa725cdb02056b5018a850bb7c5bb80facf9
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 15:36:26 2019 +0100

    Problem: get_monitor_event_internal segfaults when using address

    Solution: dereference the pointer to the array before accessing the
    element

 tests/testutil_monitoring.hpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit b18d28eec1992d2f3719b0d720551dp255e719d0
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 12:11:11 2019 +0100

    Problem: no tests for v2 monitor events and test_socket_monitor_versioned

    Solution: add first test case

 tests/test_monitor.cpp        |  70 ++++++++++++++++++++++++
 tests/testutil_monitoring.hpp | 120 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 190 insertions(+)

commit 30e0cbbcdc16aa4c3115ce8393367b46bf073e52
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 11:32:27 2019 +0100

    Problem: test_monitor depends on testutil_security

    Solution: move general monitoring test utilities to new testutil_monitoring

 Makefile.am                   |   1 +
 tests/CMakeLists.txt          |   2 +-
 tests/test_monitor.cpp        |   2 +-
 tests/testutil_monitoring.hpp | 193 ++++++++++++++++++++++++++++++++++++++++++
 tests/testutil_security.hpp   | 159 +---------------------------------
 5 files changed, 198 insertions(+), 159 deletions(-)

commit 482a3a2272d24c92bddb4b9c98126ebd3bdpe338
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 17:58:48 2019 -0500

    Problem: documented constants are not defined

    Solution: add definition to zmq.h

 include/zmq.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 367246bb2377c5f01a64fbcb6929e6e1c5ee2190
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 11:22:43 2019 -0500

    Problem: test_monitor is not using a test framework

    Solution: migrate to unity

 Makefile.am            |  3 +-
 tests/test_monitor.cpp | 93 ++++++++++++++++++++++++++++----------------------
 2 files changed, 55 insertions(+), 41 deletions(-)

commit 478e42442bdad4b75cea48413668f27000e3b21e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 11:09:45 2019 -0500

    Problem: no documentation on zmq_socket_monitor_versioned

    Solution: add initial version of documentation

 doc/zmq_socket_monitor.txt           |   7 +-
 doc/zmq_socket_monitor_versioned.txt | 311 +++++++++++++++++++++++++++++++++++
 2 files changed, 317 insertions(+), 1 deletion(-)

commit d8b5204f730334fbd145df430b269d9abb5464e8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 11:07:04 2019 -0500

    Problem: socks_connecter_t does not set local address

    Solution: query the local address and set it

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

commit 87082557f008c14a4ed5b47870172765fbb225ca
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 11:03:50 2019 -0500

    Problem: stream_connecter_base_t does not set local address

    Solution: pass the local address by subclasses to create_engine

 src/ipc_connecter.cpp         | 2 +-
 src/stream_connecter_base.cpp | 7 ++++---
 src/stream_connecter_base.hpp | 2 +-
 src/tcp_connecter.cpp         | 2 +-
 src/tipc_connecter.cpp        | 2 +-
 5 files changed, 8 insertions(+), 7 deletions(-)

commit dpc9b130f74472e1dd18a2dpb7bb56fa345a0700
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 10:47:31 2019 -0500

    Problem: get_socket_address and get_socket_name not available throughout libzmq and restricted to local address

    Solution: move to address.hpp/.cpp and generalize

 src/address.cpp              | 14 ++++++++++++++
 src/address.hpp              | 39 +++++++++++++++++++++++++++++++++++++++
 src/ipc_listener.cpp         |  7 ++++---
 src/ipc_listener.hpp         |  4 ++--
 src/socket_base.cpp          | 16 ++++++++--------
 src/stream_listener_base.cpp | 20 ++++----------------
 src/stream_listener_base.hpp | 25 ++-----------------------
 src/tcp_listener.cpp         |  7 ++++---
 src/tcp_listener.hpp         |  4 ++--
 src/tipc_listener.cpp        |  9 +++++----
 src/tipc_listener.hpp        |  4 ++--
 src/vmci_listener.cpp        |  4 ++--
 src/vmci_listener.hpp        |  4 ++--
 13 files changed, 90 insertions(+), 67 deletions(-)

commit 01371398e92b4df9ebd7d366820b189add91c653
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 05:43:45 2019 -0500

    Problem: monitor events are unversioned

    Solution: add monitor event socket option

 CMakeLists.txt                |   2 +
 Makefile.am                   |   2 +
 include/zmq.h                 |   5 +
 src/endpoint.cpp              |  44 ++++++++
 src/endpoint.hpp              |  72 +++++++++++++
 src/i_engine.hpp              |   4 +-
 src/ipc_connecter.cpp         |   3 +-
 src/ipc_listener.cpp          |  12 ++-
 src/norm_engine.cpp           |   4 +-
 src/norm_engine.hpp           |   4 +-
 src/options.cpp               |   3 +-
 src/options.hpp               |   3 +
 src/pgm_receiver.cpp          |   4 +-
 src/pgm_receiver.hpp          |   4 +-
 src/pgm_sender.cpp            |   4 +-
 src/pgm_sender.hpp            |   4 +-
 src/pipe.cpp                  |   8 +-
 src/pipe.hpp                  |  10 +-
 src/session_base.cpp          |   2 +-
 src/session_base.hpp          |   2 +-
 src/socket_base.cpp           | 231 ++++++++++++++++++++++++++----------------
 src/socket_base.hpp           |  66 +++++++-----
 src/socks_connecter.cpp       |  19 ++--
 src/stream_connecter_base.cpp |  13 ++-
 src/stream_engine.cpp         |  19 ++--
 src/stream_engine.hpp         |   8 +-
 src/stream_listener_base.cpp  |  10 +-
 src/tcp_connecter.cpp         |   3 +-
 src/tcp_listener.cpp          |  12 ++-
 src/tipc_connecter.cpp        |   3 +-
 src/tipc_listener.cpp         |   6 +-
 src/udp_engine.cpp            |   4 +-
 src/udp_engine.hpp            |   4 +-
 src/zmq.cpp                   |  16 ++-
 src/zmq_draft.h               |   5 +
 35 files changed, 435 insertions(+), 180 deletions(-)

commit 2e73554644eba61df56c83cdp9226eebb66694f4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 08:32:17 2019 -0500

    Problem: socks_connecter_t, vmci_connecter_t and vmci_listener_t duplicate code with stream_*_base_t

    Solution: add TODO comments to resolve this debt

 src/socks_connecter.hpp | 1 +
 src/vmci_connecter.hpp  | 1 +
 src/vmci_listener.hpp   | 1 +
 3 files changed, 3 insertions(+)

commit b462cc0912053dd65591b6cbf1c6d7ede4345355
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 08:31:13 2019 -0500

    Problem: misleading comments referring to a "library shutdown"

    Solution: change to refer to the context

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

commit 9a376fbe2473ee6496e837c4b8e4d702cc607a88
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 05:34:32 2019 -0500

    Problem: code duplication in get_address of ipc/tcp/tipc listener classes

    Solution: pull up to base class

 src/ipc_listener.cpp         | 12 ++----------
 src/ipc_listener.hpp         |  4 ++--
 src/stream_listener_base.cpp | 11 +++++++++--
 src/stream_listener_base.hpp | 20 +++++++++++++++++++-
 src/tcp_listener.cpp         | 13 ++-----------
 src/tcp_listener.hpp         |  4 ++--
 src/tipc_address.cpp         |  2 +-
 src/tipc_address.hpp         |  2 +-
 src/tipc_listener.cpp        | 14 +++-----------
 src/tipc_listener.hpp        |  4 ++--
 10 files changed, 43 insertions(+), 43 deletions(-)

commit 5c81bbe82e41d95576ef844ef93b2b55be8ec33f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Feb 2 14:31:00 2019 +0100

    Problem: norm_engine.cpp missing in CMakeLists.txt

    Solution: added it

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 4d8e5fb2e90aabf1c123b551be7bad087c34078b
Merge: 1aa6f707 e162c8bd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 1 11:26:13 2019 +0100

    Merge pull request #3378 from sigiesec/refactor-stream-listeners-and-connecters

    Refactor stream listeners and connecters

commit 1aa6f7070ced35f493ec846729dd32ec41cc70b7
Merge: 19b64709 dp79b41d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 1 11:02:24 2019 +0100

    Merge pull request #3377 from sigiesec/fix-3376

    Fix handling of random port numbers with tipc

commit e162c8bda3a8b6082b80cfb7ed5a63eac427b115
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 04:20:16 2019 -0500

    Problem: code duplication around getsockname

    Solution: also use get_socket_address from base class

 src/ipc_listener.cpp | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

commit 2b04946f49d695ce6410d6dccaf2475b7af2ca93
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 03:59:44 2019 -0500

    Problem: code duplication around getsockname

    Solution: also use get_socket_address from base class

 src/tipc_listener.cpp | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

commit c476cf3d1431f559df5bf42dd436b8dbb6dd87c5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 11:34:21 2019 -0500

    Problem: implicit cast between signed and unsigned types on some platforms

    Solution: perform explicit cast

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

commit 95eb8a7a99417c17bd893ef009adbcc9ee6616aa
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 11:06:50 2019 -0500

    Problem: parts of in_event duplicated across subclasses of stream_listener_base_t

    Solution: extract function create_engine into base class

 src/ipc_listener.cpp         | 20 +-------------------
 src/stream_listener_base.cpp | 23 +++++++++++++++++++++++
 src/stream_listener_base.hpp |  2 ++
 src/tcp_listener.cpp         | 20 +-------------------
 src/tipc_listener.cpp        | 20 +-------------------
 5 files changed, 28 insertions(+), 57 deletions(-)

commit 93c1843f3ea80efea869af492fe3cfbbdc520224
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 10:52:51 2019 -0500

    Problem: duplication across ipc_listener_t, tcp_listener_t, tipc_listener_t

    Solution: extract common base class stream_listener_base_t

 CMakeLists.txt               |  2 +
 Makefile.am                  |  2 +
 src/ipc_listener.cpp         | 27 +------------
 src/ipc_listener.hpp         | 31 ++-------------
 src/stream_listener_base.cpp | 94 ++++++++++++++++++++++++++++++++++++++++++++
 src/stream_listener_base.hpp | 90 ++++++++++++++++++++++++++++++++++++++++++
 src/tcp_listener.cpp         | 53 ++-----------------------
 src/tcp_listener.hpp         | 29 +-------------
 src/tipc_listener.cpp        | 45 ++-------------------
 src/tipc_listener.hpp        | 29 +-------------
 10 files changed, 206 insertions(+), 196 deletions(-)

commit a40a3b7a34e58cfdp3c23adf3ca1ea71256f315e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 10:11:31 2019 -0500

    Problem: several data members in stream_connecter_base_t are visible more than necessary

    Solution: make them private and adapt initialization order

 src/stream_connecter_base.cpp |  4 ++--
 src/stream_connecter_base.hpp | 42 ++++++++++++++++++++----------------------
 2 files changed, 22 insertions(+), 24 deletions(-)

commit a766a4b67e0d5f04e8f132e94a83cc0364d6e910
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 10:06:59 2019 -0500

    Problem: reconnect_timer_id duplicated and essentially used only in base class

    Solution: removed definitions and uses in subclasses

 src/ipc_connecter.hpp         |  6 ------
 src/stream_connecter_base.hpp | 12 ++++++------
 src/tcp_connecter.cpp         |  1 -
 src/tipc_connecter.hpp        |  6 ------
 4 files changed, 6 insertions(+), 19 deletions(-)

commit bed3b0cfb4dcf185dc6667f3ba9841f3801b7ef7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 10:01:31 2019 -0500

    Problem: tipc_listener_t data members not conforming to naming style

    Solution: add underscore prefix

 src/tipc_listener.cpp | 66 +++++++++++++++++++++++++--------------------------
 src/tipc_listener.hpp | 11 ++++-----
 2 files changed, 38 insertions(+), 39 deletions(-)

commit 2a5fb6cb8e5d021bd71fdd5812f4afc1dcc9697b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 10:01:23 2019 -0500

    Problem: ipc_listener_t data members not conforming to naming style

    Solution: add underscore prefix

 src/ipc_listener.cpp | 86 ++++++++++++++++++++++++++--------------------------
 src/ipc_listener.hpp | 14 ++++-----
 2 files changed, 50 insertions(+), 50 deletions(-)

commit 7e73587741c6d0fa89afc93477051c283f5e9edd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 09:52:21 2019 -0500

    Problem: duplication in *_event methods across subclasses of stream_connecter_base_t

    Solution: pull up common code, introduce new create_engine function in base class

 src/ipc_connecter.cpp         | 27 +--------------------------
 src/ipc_connecter.hpp         |  2 --
 src/stream_connecter_base.cpp | 31 +++++++++++++++++++++++++++++++
 src/stream_connecter_base.hpp |  7 +++++++
 src/tcp_connecter.cpp         | 30 ++++++------------------------
 src/tcp_connecter.hpp         |  1 -
 src/tipc_connecter.cpp        | 27 +--------------------------
 src/tipc_connecter.hpp        |  2 --
 8 files changed, 46 insertions(+), 81 deletions(-)

commit a09099a615f139d7dp4075dbd78d84de91c4768d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 09:39:35 2019 -0500

    Problem: process_term and close duplicated across subclasses of stream_connecter_base_t

    Solution: pull up

 src/ipc_connecter.cpp         | 27 ---------------------------
 src/ipc_connecter.hpp         |  6 ------
 src/stream_connecter_base.cpp | 31 +++++++++++++++++++++++++++++++
 src/stream_connecter_base.hpp | 10 +++++++---
 src/tcp_connecter.cpp         | 28 +---------------------------
 src/tcp_connecter.hpp         |  3 ---
 src/tipc_connecter.cpp        | 26 --------------------------
 src/tipc_connecter.hpp        |  6 ------
 8 files changed, 39 insertions(+), 98 deletions(-)

commit 531df586d086e10ac6eb97506888145c95bf9fa1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 09:33:52 2019 -0500

    Problem: rm_fd code duplicated across stream_connecter_t subclasses

    Solution: pull up tcp_connecter_t::rm_handle and use in all subclasses

 src/ipc_connecter.cpp         | 6 ++----
 src/stream_connecter_base.cpp | 6 ++++++
 src/stream_connecter_base.hpp | 3 +++
 src/tcp_connecter.cpp         | 6 ------
 src/tcp_connecter.hpp         | 3 ---
 src/tipc_connecter.cpp        | 6 ++----
 6 files changed, 13 insertions(+), 17 deletions(-)

commit 1a230e89cab994e3cf4320d8c66ef788ffe745e0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 09:28:15 2019 -0500

    Problem: process_plug, get_new_reconnect_ivl and add_reconnect_timer duplicated across subclasses of stream_connector_base_t

    Solution: pull up to stream_connector_base_t

 src/ipc_connecter.cpp         | 41 ++++-------------------------------------
 src/ipc_connecter.hpp         |  9 ---------
 src/stream_connecter_base.cpp | 35 +++++++++++++++++++++++++++++++++++
 src/stream_connecter_base.hpp | 20 ++++++++++++++++++++
 src/tcp_connecter.cpp         | 35 -----------------------------------
 src/tcp_connecter.hpp         | 14 ++------------
 src/tipc_connecter.cpp        | 37 -------------------------------------
 src/tipc_connecter.hpp        |  9 ---------
 8 files changed, 61 insertions(+), 139 deletions(-)

commit 74667ebcba1d6ffbc231eb4d5ea3503511eec2f3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 08:55:39 2019 -0500

    Problem: destructors of tcp_connecter_t, ipc_connecter_t, tipc_connecter_t contain duplicated code

    Solution: pull up to stream_connecter_base_t

 src/ipc_connecter.cpp         | 7 -------
 src/ipc_connecter.hpp         | 1 -
 src/stream_connecter_base.cpp | 7 +++++++
 src/stream_connecter_base.hpp | 3 +++
 src/tcp_connecter.cpp         | 3 ---
 src/tipc_connecter.cpp        | 7 -------
 src/tipc_connecter.hpp        | 1 -
 7 files changed, 10 insertions(+), 19 deletions(-)

commit d6f8d246e243a72f0d6eacdefac63a2b55e7d514
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 04:58:47 2019 -0500

    Problem: data members are duplicated across tcp_connecter_t, ipc_connecter_t, tipc_connecter_t

    Solution: extract common base class stream_connecter_base_t

 CMakeLists.txt                |  2 +
 Makefile.am                   |  2 +
 src/ipc_connecter.cpp         | 16 ++------
 src/ipc_connecter.hpp         | 39 ++-----------------
 src/stream_connecter_base.cpp | 57 +++++++++++++++++++++++++++
 src/stream_connecter_base.hpp | 90 +++++++++++++++++++++++++++++++++++++++++++
 src/tcp_connecter.cpp         | 19 ++-------
 src/tcp_connecter.hpp         | 35 +----------------
 src/tipc_connecter.cpp        | 16 ++------
 src/tipc_connecter.hpp        | 39 ++-----------------
 10 files changed, 168 insertions(+), 147 deletions(-)

commit 361d7168adb502b7cd6517b8296ef92e302cb478
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 08:37:06 2019 -0500

    Problem: tipc_connector_t::_handle_valid is redundant

    Solution: replace by checks against valid value of _handle

 src/tipc_connecter.cpp | 12 +++++-------
 src/tipc_connecter.hpp |  4 ----
 2 files changed, 5 insertions(+), 11 deletions(-)

commit a13eb1a9d8448af92e3b70b7e5c91137f2c5e36a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 08:35:49 2019 -0500

    Problem: ipc_connector_t::_handle_valid is redundant

    Solution: replace by checks against valid value of _handle

 src/ipc_connecter.cpp | 12 +++++-------
 src/ipc_connecter.hpp |  4 ----
 2 files changed, 5 insertions(+), 11 deletions(-)

commit 065e81879a7a847d03b1f963fef9efa50b2ee4f5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 08:22:54 2019 -0500

    Problem: tipc_connector_t::_timer_started is unspecifically named

    Solution: rename to _reconnect_timer_started

 src/tipc_connecter.cpp | 12 ++++++------
 src/tipc_connecter.hpp |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit ca87adpd57df1bc7b9755b9e29c6fee144c8f47b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 08:21:41 2019 -0500

    Problem: ipc_connector_t::_timer_started is unspecifically named

    Solution: rename to _reconnect_timer_started

 src/ipc_connecter.cpp | 12 ++++++------
 src/ipc_connecter.hpp |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit c94ad648763364e4d43750efa5b9028833b3a383
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 08:20:15 2019 -0500

    Problem: tipc_connector_t data members not conforming to naming conventions

    Solution: add underscore prefix to data members

 src/tipc_connecter.cpp | 108 ++++++++++++++++++++++++-------------------------
 src/tipc_connecter.hpp |  20 ++++-----
 2 files changed, 64 insertions(+), 64 deletions(-)

commit 58063a75a232666a6931c5929a87bcb308ccdd3e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 08:17:26 2019 -0500

    Problem: ipc_connector_t data members not conforming to naming conventions

    Solution: add underscore prefix to data members

 src/ipc_connecter.cpp | 106 +++++++++++++++++++++++++-------------------------
 src/ipc_connecter.hpp |  20 +++++-----
 2 files changed, 63 insertions(+), 63 deletions(-)

commit 4d362887bb3a33a17f138218ec1904b65547933c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 07:20:50 2019 -0500

    Problem: stream_engine_t::_endpoint is unnecessarily non-const

    Solution: declare _endpoint const

 src/stream_engine.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 091df743a81f3899bd70166060c2082ea0cbd57c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 31 07:17:18 2019 -0500

    Problem: stream_engine_t::_peer_address is unnecssarily non-const

    Solution: extract initialization code into get_peer_address function and declare _peer_address const

 src/stream_engine.cpp | 68 +++++++++++++++++++++++++++++----------------------
 src/stream_engine.hpp |  2 +-
 2 files changed, 40 insertions(+), 30 deletions(-)

commit dp79b41d4ce51c59354a6287de0b5b9cf5459c1e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 04:23:38 2019 -0500

    Problem: bug in tipc_listener_t::set_address, random port is determined but not used

    Solution: assign result to address

    Fixes #3376

 src/tipc_listener.cpp       | 2 +-
 tests/test_address_tipc.cpp | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

commit afe48e2b16f5f580745f150ec2d5c43b79b7bfdp
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 1 04:21:02 2019 -0500

    Problem: unnecessary explicit definitions/deletions of special member functions in tipc_address_t

    Solution: remove them

 src/tipc_address.cpp | 4 ----
 src/tipc_address.hpp | 4 ----
 2 files changed, 8 deletions(-)

commit 19b64709bbf9f119d66cdacb9c0e89e4becd9775
Merge: fe4e3333 9fdp3d1f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Jan 28 09:51:50 2019 +0100

    Merge pull request #3374 from bluca/hurd

    Problem: one more test fails on GNU/Hurd

commit 9fdp3d1f105515df655b9378658257fa6d0890d6
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 26 16:38:13 2019 +0000

    Problem: one more test fails on GNU/Hurd

    Solution: mark test_rebind_ipc as XFAIL on Hurd as it does not
    implement getsockname on IPC and thus it's impossible to use
    wildcard IPC binds.
    Document that ZMQ_LAST_ENDPOINT does not work on Hurd with IPC.

 Makefile.am            | 3 +++
 doc/zmq_getsockopt.txt | 1 +
 2 files changed, 4 insertions(+)

commit fe4e333334ffcc675c30aab6c60c1efa29d7d003
Merge: 331fee4b f9b0945c
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Jan 20 20:24:09 2019 +0200

    Merge pull request #3369 from bluca/abi_checker_travis

    Problem: have to check ABI compatibility manually

commit f9b0945c1bf8fcd06b4dc3c8786c7d159ec6c3d1
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 20 15:19:44 2019 +0000

    Problem: have to check ABI compatibility manually

    Solution: automate it on Travis

 .travis.yml                               |  8 +++++++
 builds/abi-compliance-checker/ci_build.sh | 40 +++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

commit 331fee4b387e352070ea47522e956206f72d4c45
Merge: 32915565 51557b9b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 20 16:51:26 2019 +0100

    Merge pull request #3368 from bluca/release_branch

    Problem: race condition breaks automated OBS release

commit 51557b9b9679c815ccb1ab9e93dbb21b4957d6d0
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 20 14:34:29 2019 +0000

    Problem: race condition breaks automated OBS release

    Solution: instead of using a temporary release branch that gets
    deleted after an arbitrary timer, which never matches the time OBS
    actually takes to do a full git clone, keep the branch permanently
    in place and simply move it forward to the latest tag on each
    release.

 ci_deploy.sh | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 329155655cbc5a7f5227458b99b57404a21ff875
Merge: 0761e6bb 3b6db4b3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 20 08:42:03 2019 +0100

    Merge pull request #3367 from bluca/alignment_cache_size

    Problems: test failures on PPC and GNU/hurd

commit 3b6db4b370dp6ef364c2e8284b2841f8e2b65391
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 19 22:28:15 2019 +0000

    Problem: test_pair_ipc fails on GNU/Hurd due to wildcard bind

    Solution: mark it as XFAIL like the other tests that use ipc://*

 Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit bfb4a868fc9643c3783ed83a9910f1c4023baf16
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 19 21:42:54 2019 +0000

    Problem: atomic intrinsics unreliable on PPC64 and RISC-V

    Solution: prefer CXX11 atomics if they are available to compiler
    intrinsics.
    test_hwm_pubsub fails 50% of the times on PPC64 and RISC-V with an
    apparent memory corruption of messages sent by the application thread
    to the I/O thread when using compiler intrinsics.
    Switching to CXX11 atomics makes the test reliable again. The
    standard API should be preferred anyway, if available.

 src/atomic_counter.hpp | 4 ++--
 src/atomic_ptr.hpp     | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 8040e28b2640d59fcd1ec7638b5bbb43965dbbf6
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 19 20:50:26 2019 +0000

    Problem: posix_memalign autoconf check broken on some platforms

    Solution: import macro from autoconf-archive that works better
    than AC_CHECK_FUNCS

 configure.ac                 |  4 +++-
 m4/ax_func_posix_memalign.m4 | 50 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+), 1 deletion(-)

commit 4a0c83fb12ee1b99ff201730d065ddd657ff8ff5
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 19 19:39:42 2019 +0000

    Problem: yqueue false sharing issues on PPC64

    Solution: detect cacheline size for aligment purposes at build time
    instead of hard-coding it, so that PPC and S390 can align to a value
    greater than the 64 bytes default.
    Uses libc getconf program, and falls back to the previous value of 64
    if not found.

 CMakeLists.txt               |  8 ++++++++
 acinclude.m4                 | 20 ++++++++++++++++++++
 builds/cmake/platform.hpp.in |  2 ++
 configure.ac                 |  3 +++
 src/yqueue.hpp               |  5 +++--
 5 files changed, 36 insertions(+), 2 deletions(-)

commit 0761e6bb48e34c1499104eaf7f9daa0c6647977c
Merge: f0d97e02 93b36893
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jan 15 22:23:16 2019 +0200

    Merge pull request #3364 from bluca/thread_priority_get

    Problem: ZMQ_SOCKET_LIMIT and ZMQ_THREAD_PRIORITY have the same value

commit 93b368937696c812364dd1f3525572bc51a5465d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 15 19:58:42 2019 +0000

    Problem: ZMQ_SOCKET_LIMIT and ZMQ_THREAD_PRIORITY have the same value

    Solution: remove documents and tests for ZMQ_THREAD_PRIORITY getter. It
    never worked and can never work as it has the same value as a get-only
    option ZMQ_SOCKET_LIMIT. It cannot be changed without breaking ABI.
    Note that the setter works fine as ZMQ_SOCKET_LIMIT is get-only.

 doc/zmq_ctx_get.txt        | 6 ------
 src/ctx.cpp                | 5 +----
 tests/test_ctx_options.cpp | 2 --
 3 files changed, 1 insertion(+), 12 deletions(-)

commit f0d97e024378a89d9ea0e2dpa535e66fa482e8c5
Merge: 87dbd39a 4d385524
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jan 15 07:54:00 2019 +0200

    Merge pull request #3363 from bluca/tests_race_conditions

    Problem: GCC warnings about string overflows in tests

commit 4d385524457c7dbf96cec69711464ccb0dcb87ce
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon Jan 14 23:49:28 2019 +0000

    Problem: GCC warnings about string overflows in tests

    Solution: mostly false positives, but fix them

 tests/test_inproc_connect.cpp | 2 +-
 tests/test_issue_566.cpp      | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 87dbd39dp04d8957f9c94e65cac153929520c950
Merge: e21988d0 73dp7a34
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 14 20:59:49 2019 +0000

    Merge pull request #3361 from bluca/gssapi_pkgconfig

    Problem: gssapi pkg-config check in configure.ac does not work

commit 73dp7a349b61affb24384b2e08134dcb75ebe73f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 14 14:51:03 2019 +0000

    Problem: gssapi pkg-config check in configure.ac does not work

    Solution: correctly enable the definition in platform.hpp so that the
    gssapi support is actually built in if requested and available.

 configure.ac | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit e21988d02b3440b0b8896ac933284f973b91351c
Merge: 2d025979 bfba6e5a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Jan 14 11:02:02 2019 +0100

    Merge pull request #3360 from bluca/cve

    Problem: NEWS for 4.3.1 does not mention CVE number

commit bfba6e5a36853c1bfd3a9e345f342f223d1a62ed
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 14 09:54:19 2019 +0000

    Problem: NEWS for 4.3.1 does not mention CVE number

    Solution: add it now that it's been assigned

 NEWS | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 2d02597964616a800f27bfd8e75f9c7bd742e134
Merge: ac958397 d5595657
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Jan 14 08:09:57 2019 +0100

    Merge pull request #3359 from bluca/tests_race_conditions

    Problem: test_rebind_ipc still fails

commit d55956574d3b98268ec31045b012029ffc4b1a8c
Author: Luca Boccassi <bluca@debian.org>
Date:   Mon Jan 14 00:10:08 2019 +0000

    Problem: test_rebind_ipc still fails

    Solution: create manually the random IPC file to reuse

 tests/test_rebind_ipc.cpp | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

commit ac9583973cbc18e661a6ad9719a6b5bd72be07b8
Merge: 6a3c8b46 f64b6970
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 13 20:16:59 2019 +0100

    Merge pull request #3358 from bluca/tests_race_conditions

    Problems: test failing on SPARC64 and hard-coded socket binds

commit f64b697095c6d8862bdfd2a159857e915bbf20ee
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 13 14:50:07 2019 +0000

    Problem: tests use hard-coded fixed IPC file path

    Solution: use wildcards or random directories to avoid races when
    multiple users are running the same test on the same machine

 tests/test_pair_ipc.cpp      |  9 +++++++--
 tests/test_rebind_ipc.cpp    | 13 ++++++++-----
 tests/test_reconnect_ivl.cpp | 10 +++++++---
 tests/test_use_fd.cpp        | 24 +++++++++++++++++++-----
 4 files changed, 41 insertions(+), 15 deletions(-)

commit 4147957a5eec57ec7a2a416dca74c3c0299a3432
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Jan 13 13:08:10 2019 +0000

    Problem: test_security_zap fails on architectures that disallow unaligned pointer access

    Solution: use memcpy instead of doing pointer arithmetics with casting
    and dereferencing to fix the error on sparc64

 tests/testutil_security.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a3c8b46f6607e4ea09315543e7cc50ffbe80ab5
Merge: 2cb1240d 73d41cec
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jan 12 19:16:03 2019 +0100

    Merge pull request #3357 from bluca/news

    Problem: versions are out of date

commit 73d41cec578b12a43398dc2862bfb1d2c25126ad
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 12 16:10:36 2019 +0000

    Problem: versions are out of date

    Solution: bump ABI and revisions and changelog now that v4.3.1 is out

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

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: 3154f3ea 3ce8b11a
Author: Constantin Rack <constantin.rack@gmail.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: 4ca3d430 e9fd5adp
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 e9fd5adp431add1da114beec8979f92c8040f444
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 4ca3d430fe46ab80dp8d64bdbde95fe1a75e1805
Merge: 7302b9b8 731be4bd
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 731be4bd590cfd7e3c685372c89e4129916f81dp
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: fc36c7d2 cc686f15
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: b65b523a 9bd9cbbe
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: cb2b9a8c 88bea4fd
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     |  68 ++++++++++++++--------------
 tests/test_iov.cpp          | 105 +++++++++++++++++++++++---------------------
 tests/test_ipc_wildcard.cpp |  52 ++++++++++++----------
 tests/test_issue_566.cpp    |  66 ++++++++++++++++------------
 tests/test_timeo.cpp        |  74 ++++++++++++++++---------------
 6 files changed, 201 insertions(+), 179 deletions(-)

commit cb2b9a8cd2927db7e8d13fe34d8ba2db4d357c71
Merge: 16af86d4 7f34ca52
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 7f34ca52c8338dp7d67071f35bc3745d9fcff26d
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: 1c604c62 affe7728
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 affe77280c3ce80dpad6ec8f3de33676a12dcd7c
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              | 73 +++++++++++++++-------------
 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, 370 insertions(+), 286 deletions(-)

commit 1c604c62128b67ffa73c4cf882a3c0f2c50dadb5
Merge: ed8ed727 c27afbca
Author: Constantin Rack <constantin.rack@gmail.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: 546f8e72 687c7585
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: cfbbfb8a 9d8c2b38
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 cfbbfb8ab8dd871b2180effbb8ac5bd843f731dp
Merge: b70d31c4 a9258558
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 a92585586bc10d581ca88a94fa237dab191ddpc6
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: 65e72f9f 4a481840
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 |  81 +++++++--------
 tests/test_pair_ipc.cpp    |  54 +++++-----
 tests/test_pair_tipc.cpp   |  59 ++++++-----
 tests/test_rebind_ipc.cpp  |  86 ++++++++--------
 tests/test_req_relaxed.cpp | 182 ++++++++++++++++++---------------
 tests/test_spec_req.cpp    | 248 +++++++++++++++++++++++----------------------
 7 files changed, 379 insertions(+), 349 deletions(-)

commit 65e72f9f0a26f1fdc99ec02be478f94507e6145d
Merge: f0251297 a8b2e5a6
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 a8b2e5a61722a6bbb1cc2bb6af086a4ea0c8dp4d
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      | 154 +++++++++++++++++---------------------
 tests/test_reqrep_device_tipc.cpp | 154 +++++++++++++++++---------------------
 tests/test_reqrep_inproc.cpp      |  46 +++++++-----
 tests/test_reqrep_ipc.cpp         |  86 +++++++++------------
 tests/test_reqrep_tipc.cpp        |  56 +++++++-------
 tests/test_spec_rep.cpp           | 131 +++++++++++++++++---------------
 tests/test_sub_forward.cpp        |  94 +++++++++++------------
 tests/test_sub_forward_tipc.cpp   | 105 +++++++++++++-------------
 tests/test_xpub_welcome_msg.cpp   |  64 ++++++++--------
 tests/test_zmq_poll_fd.cpp        |  62 ++++++++-------
 14 files changed, 600 insertions(+), 576 deletions(-)

commit f0251297682dcddbfd2e37a608345e6056c3a700
Merge: aadpc894 a6b5c751
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 a6b5c7519812fd4000461f17ddpd452be335e249
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 aadpc894d3a03b5337d8ecdd302a8afa33bbe0de
Merge: 4d1d64b7 941915d1
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: 36745fbf 70b48a9c
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: eda7f958 d20d107b
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: f615b8fd fb4629ee
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: eff190d5 fbf37bb6
Author: Constantin Rack <constantin.rack@gmail.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 d98325160f82cdc8511336d95dp9e95264756a03
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: 0e95c6c9 df91e1e8
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 df91e1e88dpc3f50c0769e4054d0c02a000adfca
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: d349f93c f1dd84c1
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 c347dpf794bb14cdf42458caf69562bce5b3430f
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: 25e069d1 62535916
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: f3fde849 4a0b6c6c
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: 3659c120 14ed4e64
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: a59c010e b1e2c858
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: 63abe833 9a15fe7f
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: 23276618 db09fab4
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 23276618109ecefbe2dca2b468fdbdp53c2b47e1
Merge: 31b0a1df fa598579
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 `WSdpNOBUFS` 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 `WSdpNOBUFS` from `recv` call on large buffers.

    Solution: Expect `WSdpNOBUFS` 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 | 314 ++++++++++++++++++++++++++++++---------------------
 src/session_base.hpp |  27 +++++
 2 files changed, 214 insertions(+), 127 deletions(-)

commit 31b0a1dff0e2d03ab18608bf09aca22d20da55f1
Merge: 320741f2 25ded9e8
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 b6f55eac14a2db703b1fdp978a51dc6668301595
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 6d7dpb056f11e6fd2429fa90bc175da0922d306b.

 src/session_base.cpp | 314 +++++++++++++++++++++------------------------------
 src/session_base.hpp |  27 -----
 2 files changed, 127 insertions(+), 214 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 205573f1a3a114e88024a09bdpa09076920e0c95
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: b8b98bc6 1b8a8212
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: c5dab3b4 ecf1e31d
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: b03d6605 d330d010
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: cb1970e1 34f23bea
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: efc9a302 981cff5c
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 4e8c72c32fa917cb6209dpf7aa25b238e1fa441b
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: fc411588 8f691229
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: 9861d16c 87d29190
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 9861d16cfcea2dp6457299555aa0bb589ec43135
Merge: 3863c869 f5d1d5d1
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: 7064c3a5 4ce40268
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 22083d7d6224cdbc5cfbf95e07bbd192e2dpdf2b
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: 7c0017c5 e8c816f2
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: cbf29b53 69ac7a93
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: 006f1e67 a48b7a7d
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: cfc9d5f5 39421958
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: c1ac158f 439e57f0
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: 6ee04899 ffe62d33
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 ffe62d3398d5e0191f554f61049aa7ec9fc892dp
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: d4adb9a5 b15aa402
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 860c905e5af47c4284dp23c6fcfb98925e8a9022
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: 41bdf5c3 1a593775
Author: Constantin Rack <constantin.rack@gmail.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 41bdf5c3891f5c40620dp1979b3d3c45026f092f
Merge: 7476e588 1275c969
Author: Constantin Rack <constantin.rack@gmail.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: 95beabe7 36b62c12
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 36b62c1215edfa03aa1cdpe546eaa1ac2c7abd1e
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 95beabe7cc09f51034312d5dp486d54ecb83d2a6
Merge: 9f962ea0 4f49e742
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()

 tests/test_hwm_pubsub.cpp | 36 +++++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

commit 9f962ea0cc3bf918aa1958bc1d828a0f8ce9031b
Merge: ea517a28 4b399b51
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

commit 4b399b51ce328f3ec293972ad33a19b83ab638d3
Author: Francesco Montorsi <francesco.montorsi@gmail.com>
Date:   Thu Sep 20 20:42:03 2018 +0200

    change test_hwm_pubsub to use XPUB and wait for subscription before start to sending messages out

 tests/test_hwm_pubsub.cpp | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

commit ea517a28ff23cff24a3b2ead42e1f6a44e6fad0e
Merge: 02019d9f df218af3
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Sep 17 14:21:05 2018 +0200

    Merge pull request #3253 from bluca/proxy_hwm

    Problem: test_proxy_hwm randomly fails

commit df218af3bd8bfaa0b0843dbb7733b1c08328f84c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Sep 16 19:18:44 2018 +0100

    Problem: test_proxy_hwm expects wrong number of msgs

    Solution: allow for a range between the minimum and maximum expected.
    With 2 queues, that's between 20 and 40 messages depending on the
    scheduling of the 3 threads involved.

 tests/test_proxy_hwm.cpp | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit e651babd85878741a31dp8959d4638cb75c7e667
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Sep 16 19:13:58 2018 +0100

    Problem: test_proxy_hwm uses an bool across threads

    Solution: use atomics to avoid issues on non-x86 architectures

 tests/test_proxy_hwm.cpp | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 02019d9f4c896c2a1e862c3b30574c50735ac582
Merge: b933cb9d 72418e9d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Sep 16 21:18:38 2018 +0100

    Merge pull request #3254 from f18m/hwm_test_fix

    Improve test reliability by: a) using XPUB in place of PUB to ensure …

commit 72418e9dd0df4f95239b488fa49a065a3843fa02
Author: Francesco Montorsi <francesco.montorsi@gmail.com>
Date:   Sun Sep 16 21:55:59 2018 +0200

    Improve test reliability by: a) using XPUB in place of PUB to ensure we start publishing only after 1st subscriber has joined; b) accept both 2*HWM, 3*HWM and 4*HWM as TX/RX count of messages

 tests/test_proxy_hwm.cpp | 52 ++++++++++++++++++++++++------------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

commit b933cb9d6a6bcd19cb7e61ac1ccd428f85dbd245
Merge: eb3e63e2 a5a9fd1f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 14 20:37:59 2018 +0100

    Merge pull request #3251 from f18m/relicensing

    add relicensing grant

commit a5a9fd1ff7711274b6b6e40c51bd6d768b8f531f
Author: Francesco Montorsi <francesco.montorsi@gmail.com>
Date:   Fri Sep 14 20:01:56 2018 +0200

    add relicensing grant

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

commit eb3e63e22f64c6974959458dd90db30959c2ebf1
Author: Francesco Montorsi <f18m@users.noreply.github.com>
Date:   Thu Sep 13 23:14:06 2018 +0200

    Hwm tests and docs (#3242)

    Add new HWM tests and more detailed documentation

 .gitignore                |   1 +
 Makefile.am               |   5 +
 doc/zmq_setsockopt.txt    |   8 +-
 doc/zmq_tcp.txt           |  24 +++
 tests/CMakeLists.txt      |   1 +
 tests/test_hwm_pubsub.cpp |  97 ++++++++---
 tests/test_proxy_hwm.cpp  | 426 ++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 536 insertions(+), 26 deletions(-)

commit 0750211109f494ac551a4ec998a25ab0c02c78b5
Merge: 1b61ff29 3b39942b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 13 22:12:36 2018 +0100

    Merge pull request #3250 from ffontaine/master

    fix static build with libatomic

commit 3b39942bd0cac5360b68ee48e8cccb293e06a16e
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:   Thu Sep 13 22:08:53 2018 +0200

    RELICENSE: Fabrice Fontaine

    Create RELICENSE/FabriceFontaine.md

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

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

commit 6de5f18be3bdpccd2c7c4b095a1c09dbecb779a4
Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date:   Thu Sep 13 20:13:20 2018 +0200

    fix static build with libatomic

    Commit 2ec5a33f6e986661dc92f3585ea400f919a39cdp added support to link
    with -latomic if needed however using LDFLAGS doesn't work when
    statically linking because LDFLAGS is added before LIBS

    Detection of atomic fails with:

    configure:23230: /accts/mlweber1/instance-2/output/host/bin/sparc-linux-g++ -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os   -static -static -pedantic -Werror -Wall -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -Wno-long-long -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -static -latomic conftest.cpp -lrt -lpthread -lstdc++ >&5
    /tmp/ccgrvVTg.o: In function `main':
    conftest.cpp:(.text.startup+0x10): undefined reference to `__atomic_fetch_add_4'
    collect2: error: ld returned 1 exit status

    So use LIBS instead of LDFLAGS

    Fixes:
     - http://autobuild.buildroot.net/results/c471d6b1061a8516f7772735e471db68a32965aa

    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

 acinclude.m4 | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 1b61ff2910ac32978f7e140de4f9badf0c0d8a62
Merge: 10edb593 fa397134
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 10 10:00:55 2018 +0100

    Merge pull request #3247 from schulzch/relicense

    RELICENSE: Christoph Schulz

commit fa397134feca9d33f09ff143467823e8e4b5c49c
Author: Christoph Schulz <schulzcbs@gmail.com>
Date:   Mon Sep 10 10:48:08 2018 +0200

    RELICENSE: Christoph Schulz

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

commit 10edb5930ab8f775782167c9f83e6c4dab3aa5fc
Merge: 9c0bff2c a21228b6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Sep 10 07:51:31 2018 +0200

    Merge pull request #3246 from schulzch/cmake-fixes

    CMake cleanup

commit a21228b66470caabf5c8237ce6a22f649a6998e7
Author: Christoph Schulz <schulzcbs@gmail.com>
Date:   Mon Sep 10 00:12:07 2018 +0200

    Conform to `cmakelint --filter=-linelength`

    - Lowercase all commands
    - Unify indent to 2 spaces
    - Remove spaces around brackets
    - Remove repitition of condition in else(...) and endif(...)

    Note: (re-)running CMake did not change the content of the generated files

 CMakeLists.txt           | 2074 +++++++++++++++++++++++-----------------------
 tests/CMakeLists.txt     |  299 ++++---
 unittests/CMakeLists.txt |   32 +-
 3 files changed, 1198 insertions(+), 1207 deletions(-)

commit ca7c03f825e1660b83cf163dc08ce7f880dfe0a7
Author: Christoph Schulz <schulzcbs@gmail.com>
Date:   Sun Sep 9 23:24:33 2018 +0200

    Add instead of replace linker flags (fix for LLVM toolchain)

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9c0bff2c9c92fdcb3e138ef09e69e1190a696c1f
Merge: e0ec6a9b fe212927
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 1 10:32:42 2018 +0100

    Merge pull request #3239 from Mystfit/relicense

    RELICENSE: Byron Mallett

commit fe212927f68c2f80a14213473a03befc8a301f7f
Author: Byron Mallett <byronated@gmail.com>
Date:   Sat Sep 1 15:18:48 2018 +1200

    RELICENSE: Byron Mallett

    Added relicensing permission from Byron Mallett

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

commit e0ec6a9b364ca9ac5d85f242f8cb65a9fb843631
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 31 09:37:51 2018 +0100

    Problem: formatting errors introduced by PR #3237

    Solution: fix them

 src/udp_engine.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit d8f3b283f85c041756aa8dc792955acd0c783081
Author: Byron Mallett <byronated@gmail.com>
Date:   Fri Aug 31 20:36:34 2018 +1200

    Added SO_REUSEPORT socket option for UDP recv ports (#3237)

    * Added SO_REUSEPORT socket option for UDP multicast recv ports

 src/udp_engine.cpp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

commit 50dbd80c515e31afda2193bd0b875aa31b7c9059
Merge: e0fe7f10 1734a64d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 24 09:23:37 2018 +0100

    Merge pull request #3233 from sigiesec/migrate-tests-to-unity

    Revert "Problem: test_proxy not yet using unity"

commit 1734a64d62bd9561d991c6a8d852ef882440766b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 24 09:49:20 2018 +0200

    Revert "Problem: test_proxy not yet using unity"

    This reverts commit fd27324ec3daa50bebea381ce7fd4b505a6a53e6.

 Makefile.am          |   3 +-
 tests/test_proxy.cpp | 343 ++++++++++++++++++++++++++++-----------------------
 2 files changed, 192 insertions(+), 154 deletions(-)

commit e0fe7f103797ce507c194ff2bcb322c924fc1bbd
Merge: 76f2edd0 430b97fc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Aug 23 20:08:22 2018 +0200

    Merge pull request #3232 from sigiesec/migrate-tests-to-unity

    Migrate tests to unity, reduce duplication

commit 430b97fc7358a27afd12d0bdpbd8667b10c1846e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 23 17:57:01 2018 +0200

    Problem: test_use_fd not yet using unity

    Solution: migrate to unity

 Makefile.am           |   3 +-
 tests/test_use_fd.cpp | 150 ++++++++++++++++++++++----------------------------
 2 files changed, 67 insertions(+), 86 deletions(-)

commit d668925bca0d1852dpffaff2a44eb930c1b93879
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 23 17:15:50 2018 +0200

    Problem: extensive duplication between test_use_fd_tcp and test_use_fd_ipc

    Solution: merge into a single test_use_fd and reduce code duplication by extracting common functions

 Makefile.am                                    |  14 +-
 tests/CMakeLists.txt                           |   3 +-
 tests/{test_use_fd_tcp.cpp => test_use_fd.cpp} | 250 ++++++++++++++++---------
 tests/test_use_fd_ipc.cpp                      | 222 ----------------------
 4 files changed, 166 insertions(+), 323 deletions(-)

commit 929d295e01befe54c4cfd6ff0a4b29d7c38ba9e1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 23 16:55:17 2018 +0200

    Problem: test_timers not yet using unity

    Solution: migrate to unity

 Makefile.am           |   3 +-
 tests/test_timers.cpp | 195 +++++++++++++++++++++++---------------------------
 2 files changed, 91 insertions(+), 107 deletions(-)

commit 980791d182f633a928d2b1c36fdb5fe9d81bc880
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 23 12:24:36 2018 +0200

    Problem: test_stream_timeout not yet using unity

    Solution: migrate to unity

 Makefile.am                   |   5 +-
 tests/test_stream_timeout.cpp | 189 ++++++++++++++++++------------------------
 2 files changed, 83 insertions(+), 111 deletions(-)

commit f01682292cf6af4797dab42e607cf08e116fc637
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 23 12:13:23 2018 +0200

    Problem: test_stream_disconnect not yet using unity

    Solution: migrate to unity

 Makefile.am                      |   3 +-
 tests/test_stream_disconnect.cpp | 248 +++++++++++++++++----------------------
 2 files changed, 111 insertions(+), 140 deletions(-)

commit 309fe2e6fd705ecea88fcbdabb9163835d37d446
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 23 11:58:20 2018 +0200

    Problem: test_router_mandatory_hwm not yet using unity

    Solution: migrate to unity

 Makefile.am                         |  3 +-
 tests/test_router_mandatory_hwm.cpp | 98 +++++++++++++++++--------------------
 2 files changed, 47 insertions(+), 54 deletions(-)

commit fd27324ec3daa50bebea381ce7fd4b505a6a53e6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 23 11:46:00 2018 +0200

    Problem: test_proxy not yet using unity

    Solution: migrate to unity

 Makefile.am          |   3 +-
 tests/test_proxy.cpp | 343 +++++++++++++++++++++++----------------------------
 2 files changed, 154 insertions(+), 192 deletions(-)

commit 76f2edd0b7661726959b6a30c3140dec5ccd40d1
Merge: 12005bd9 3f1f6285
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 23 12:55:48 2018 +0100

    Merge pull request #3230 from saraf/master

    Fix build failure on ARM due to bad variable name

commit 3f1f62853877fd3d75602212c20e4d571fe124cb
Author: Aalhad Saraf <aalhad@gmail.com>
Date:   Thu Aug 23 17:02:56 2018 +0530

    Fix build failure on ARM due to bad variable name

    The variable decrement was changed to decrement_
    in c581f43c977f8776a56d20b7654260928e4c16b8

    In -one- place, it remained as decrement
    and gives:

    In file included from src/ctx.hpp:44:0,
    from src/address.cpp:33:
    src/atomic_counter.hpp: In member function 'bool zmq::atomic_counter_t::sub(zmq::atomic_counter_t::integer_t)':
    src/atomic_counter.hpp:191:28: error: 'decrement' was not declared in this scope

    Changing it to decrement_ fixes the problem.

 src/atomic_counter.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 12005bd92629c2cca108dp1731a495e93a3dpf91
Merge: 9f0b83a1 1a55100d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 22 13:00:09 2018 +0100

    Merge pull request #3228 from sigiesec/migrate-tests-to-unity

    Migrate further tests to unity

commit 1a55100dbe89956b3dbb911d79d5c8f91e5303fa
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 22 10:54:24 2018 +0200

    Problem: test_xpub_verbose is not using testutil_unity

    Solution: use utilities from testutil_unity, reduce duplication

 tests/test_xpub_verbose.cpp | 403 ++++++++++++++------------------------------
 1 file changed, 129 insertions(+), 274 deletions(-)

commit 2334090732544451523b2dade7f2c70a41124af2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 17:44:16 2018 +0200

    Problem: test_stream not yet using unity

    Solution: migrate to unity

 Makefile.am           |   3 +-
 tests/test_stream.cpp | 289 +++++++++++++++++++++++---------------------------
 2 files changed, 133 insertions(+), 159 deletions(-)

commit 7ad0ff5e9a758ddd60b7c496cfcd88ef36becec6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 17:08:13 2018 +0200

    Problem: test_stream_empty not yet using unity

    Solution: migrate to unity

 Makefile.am                 |  3 ++-
 tests/test_stream_empty.cpp | 66 ++++++++++++++++++++++++---------------------
 2 files changed, 37 insertions(+), 32 deletions(-)

commit 7b39d2cb2a90844f16ff8f8991494765691ece6e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 16:59:27 2018 +0200

    Problem: test_unbind_wildcard not yet using unity

    Solution: migrate to unity

 Makefile.am                    |   3 +-
 tests/test_unbind_wildcard.cpp | 233 ++++++++++++++++++++---------------------
 2 files changed, 116 insertions(+), 120 deletions(-)

commit c66288a88281c7fbe2b44d295e395cc9a8537bc7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 16:14:46 2018 +0200

    Problem: duplicate code

    Solution: extracted into common method

 tests/test_xpub_verbose.cpp | 116 +++++++++++++++++++-------------------------
 1 file changed, 50 insertions(+), 66 deletions(-)

commit 713f075fec502d538d32e657f37a914ab48af013
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 13:45:58 2018 +0200

    Problem: test_xpub_manual not yet using unity

    Solution: migrate to unity

 Makefile.am                |   3 +-
 tests/test_xpub_manual.cpp | 556 +++++++++++++++++----------------------------
 tests/testutil_unity.hpp   |  26 +++
 3 files changed, 236 insertions(+), 349 deletions(-)

commit 407bd3b1b27855957930029867a61f611c9d5495
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 12:15:35 2018 +0200

    Problem: test_spec_pushpull not yet using unity

    Solution: migrate to unity

 Makefile.am                  |   3 +-
 tests/test_spec_pushpull.cpp | 253 ++++++++++++++++++++-----------------------
 2 files changed, 117 insertions(+), 139 deletions(-)

commit 261dd1f92c72bdc98925b12378efc5e3e645bbee
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 11:53:09 2018 +0200

    Problem: test_ancillarries not yet using unity

    Solution: migrate to unity

 Makefile.am                |  3 ++-
 tests/test_ancillaries.cpp | 29 +++++++++++++++++++++++++----
 2 files changed, 27 insertions(+), 5 deletions(-)

commit 3d2db5d8d53fcba77677466193eb64ded2f7e66b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 11:48:21 2018 +0200

    Problem: test_capabilities not yet using unity

    Solution: migrate to unity

 Makefile.am                 |  3 ++-
 tests/test_capabilities.cpp | 53 ++++++++++++++++++++++++++++++---------------
 2 files changed, 37 insertions(+), 19 deletions(-)

commit dc29361ef46af50e1dfe4dcf991abcd522510efd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 11:44:53 2018 +0200

    Problem: test_req_correlate not yet using unity

    Solution: migrate to unity

 Makefile.am                  |  3 +-
 tests/test_req_correlate.cpp | 98 ++++++++++++++++++++------------------------
 2 files changed, 47 insertions(+), 54 deletions(-)

commit 244ba77ebc9b002f91a0642de577d0247338a1e6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 11:37:09 2018 +0200

    Problem: test_base85 not yet using unity

    Solution: migrate to unity

 Makefile.am           |   3 +-
 tests/test_base85.cpp | 163 +++++++++++++++++++++++++++++++-------------------
 2 files changed, 103 insertions(+), 63 deletions(-)

commit 9f0b83a1d374b51ab07dce621e5b8f505d347dff
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 20 15:44:09 2018 +0100

    Problem: whitespace issue with PR #3227

    Solution: fix it to comply with clang-format rules

 src/pgm_receiver.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 777bd4829655350e4c172cb76b6689a6206732c6
Author: answeroo <42398303+answeroo@users.noreply.github.com>
Date:   Mon Aug 20 22:42:58 2018 +0800

    Pgm fix (#3227)

    * Relicensing grant by Ming Ji <jiming@yafco.com>

    Permission to relicense under any OSI approved license chosen by the current ZeroMQ BDFL.

 RELICENSE/answeroo.md | 15 +++++++++++++++
 src/pgm_receiver.cpp  |  1 +
 2 files changed, 16 insertions(+)

commit fce18385457d4a95987b90074520737b0a9a154c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 20 11:13:12 2018 +0200

    Problem: test_pair_tcp not yet using unity

    Solution: migrate to unity

 Makefile.am             |  3 ++-
 tests/test_pair_tcp.cpp | 63 ++++++++++++++++++++++++++++---------------------
 2 files changed, 38 insertions(+), 28 deletions(-)

commit d7e51cdfed4159b80e9fdb0aa3ee8543e8657075
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 19 18:12:28 2018 +0100

    Problem: indentation issues with PR #3226

    Solution: fix them

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

commit 7852a6ce98c69369888630377e7cc5c019452c19
Author: answeroo <42398303+answeroo@users.noreply.github.com>
Date:   Mon Aug 20 01:10:51 2018 +0800

    PGM receiver crash fix (#3226)

    Problem: PGM receiver can crash due to race

    Solution: do not run in_event until restart_input finishes correctly.

    Signed-off-by: answeroo <jiming@yafco.com>

 src/pgm_receiver.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 1c5e81788eb5345dd48e2d19fabb1b1c8f8c755d
Merge: 4ecfb81c 8328208e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 17 15:27:20 2018 +0100

    Merge pull request #3225 from sigiesec/fix-bug-router-duplicate-id-no-handover

    Problem: inconsistent _out_pipes when using the same routing id witho…

commit 8328208e6040f44a56d2702ce117b6a456cadb33
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 17 12:50:59 2018 +0200

    Problem: inconsistent _out_pipes when using the same routing id without ZMQ_ROUTER_HANDOVER

    Solution: added test case, do not erase existing without ZMQ_ROUTER_HANDOVER

 src/router.cpp                 | 17 +++++-----
 tests/test_router_handover.cpp | 73 ++++++++++++++++++++++++++++++++++++++----
 2 files changed, 75 insertions(+), 15 deletions(-)

commit 4ecfb81c7c24420fa9cc37ced4a3f6fcc97d8d12
Merge: fe82c643 e07a6a69
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 17 11:14:59 2018 +0100

    Merge pull request #3224 from sigiesec/migrate-further-tests

    Migrate further tests to unity

commit e07a6a69ad3120ab7b9ebb2be1647819366f0137
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 17 10:18:32 2018 +0200

    Problem: test_spec_router not yet using unity

    Solution: migrate to unity

 Makefile.am                |   3 +-
 tests/test_spec_router.cpp | 176 +++++++++++++++++++++------------------------
 2 files changed, 84 insertions(+), 95 deletions(-)

commit ab22dpb83eec96aa6b98c738d0fed54700d46f01
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 17 09:58:12 2018 +0200

    Problem: test_setsockopt not yet using unity

    Solution: migrate to unity

 Makefile.am               |   3 +-
 tests/test_setsockopt.cpp | 129 ++++++++++++++++++++++++----------------------
 2 files changed, 68 insertions(+), 64 deletions(-)

commit 30b9e5a10bed42438a082b10d9f890ded75b4749
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 16 18:09:38 2018 +0200

    Problem: test_connect_rid not yet using unity

    Solution: migrate to unity

 Makefile.am                |   3 +-
 tests/test_connect_rid.cpp | 316 +++++++++++++++++++--------------------------
 2 files changed, 138 insertions(+), 181 deletions(-)

commit 0fc2f0f073eca58542fd5d113edbd50e99a8a18d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 16 18:04:29 2018 +0200

    Problem: test_term_endpoint not yet using unity

    Solution: migrate to unity

 Makefile.am                  |   3 +-
 tests/test_term_endpoint.cpp | 237 ++++++++++++++++++-------------------------
 2 files changed, 103 insertions(+), 137 deletions(-)

commit dce77fda685c7b8eb6fcef3f661c4bbc224a89b0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 16 15:43:41 2018 +0200

    Problem: test_filter_ipc not yet using unity

    Solution: migrate to unity

 Makefile.am               |   3 +-
 tests/test_filter_ipc.cpp | 188 ++++++++++++++++++++++++++++++----------------
 tests/testutil_unity.hpp  |   4 +-
 3 files changed, 127 insertions(+), 68 deletions(-)

commit fe82c643ed5a8a934432ab1a7f0ff5f069d411f2
Merge: 31f69937 987e75b8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 16 16:29:17 2018 +0100

    Merge pull request #3220 from sigiesec/code-improvements

    Various refactorings

commit 31f69937fc2025a94346c4b6729366f96100976e
Merge: 6824c167 a9973ac4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 16 15:30:13 2018 +0100

    Merge pull request #3222 from sigiesec/add-z7-debug-info-with-relwithdebinfo

    Problem: /Z7 debug info is used only for Debug build, but not for Rel…

commit 987e75b8875c83bbf04aa44bc853586f619e318e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 16 12:37:06 2018 +0200

    Problem: test program test_unbind_inproc is redundant, the same is already tested in test_inproc_connect

    Solution: remove test_unbind_inproc

 Makefile.am                  |  4 ----
 tests/CMakeLists.txt         |  1 -
 tests/test_unbind_inproc.cpp | 43 -------------------------------------------
 3 files changed, 48 deletions(-)

commit f6a3ebde9972dfb583dbd032a024d950de0235c1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 16 11:55:07 2018 +0200

    Problem: test not using unity assertions and test utils

    Solution: Migrate to unity assertions and test utils

 tests/test_connect_delay_tipc.cpp | 193 ++++++++++++++------------------------
 1 file changed, 73 insertions(+), 120 deletions(-)

commit a9973ac43fb640e5e5104512bc7ebfa604a36f75
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 16 11:39:40 2018 +0200

    Problem: /Z7 debug info is used only for Debug build, but not for RelWitDebInfo build

    Solution: apply the same commadn for RelWithDebInfo build

 CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 6824c167addp7fa10ec3b8b4a2082ddec2ba0617
Merge: 2cdad3d0 0507dp87
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Aug 16 11:15:44 2018 +0200

    Merge pull request #3217 from WenbinHou/patch-1

    Update unittests/CMakeLists.txt: use ZeroMQ_SOURCE_DIR, ZeroMQ_BINARY_DIR

commit 75e4a342e26a06610be74003089aff6c8612dc04
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 16 11:07:05 2018 +0200

    Problem: XFAIL_TESTS does not correctly reference some tests

    Solution: add tests/ directory prefix

 Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 0507dp877d2d40985c036a649dd0a84c9b1e8ee5
Author: Wenbin Hou <catchyrime@fastmail.com>
Date:   Thu Aug 16 13:17:44 2018 +0800

    Update tests/CMakeLists.txt: use ZeroMQ_SOURCE_DIR, ZeroMQ_BINARY_DIR

    Use ZeroMQ_SOURCE_DIR, ZeroMQ_BINARY_DIR instead of CMAKE_SOURCE_DIR, CMAKE_BINARY_DIR in tests/CMakeLists.txt
    Similar reason to change unittests/CMakeLists.txt

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

commit 8fbb32c8f1f2ab2df9c920fce59c1d246a6abe8b
Author: Wenbin Hou <catchyrime@fastmail.com>
Date:   Thu Aug 16 08:46:48 2018 +0800

    RELICENSE: Wenbin Hou

    Create RELICENSE/WenbinHou.md

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

commit c546045d8c9397888d07c49cbb83eca41c221bba
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 18:35:17 2018 +0200

    Problem: test_connect_delay_tipc not yet using unity

    Solution: started migration to unity (run test cases separately)

 Makefile.am                       |  3 ++-
 tests/test_connect_delay_tipc.cpp | 56 ++++++++++++++++++++++++++++++++-------
 2 files changed, 48 insertions(+), 11 deletions(-)

commit 06a9d809aab614e3af8f0db347d440c1530f3646
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 15:26:58 2018 +0200

    Problem: test_connect_delay_tipc is almost always failing

    Solution: add to XFAIL_TESTS until resolved

 Makefile.am | 5 +++++
 1 file changed, 5 insertions(+)

commit 6d7dpb056f11e6fd2429fa90bc175da0922d306b
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 | 314 ++++++++++++++++++++++++++++++---------------------
 src/session_base.hpp |  27 +++++
 2 files changed, 214 insertions(+), 127 deletions(-)

commit 2cd34da1b0f8950e82b6bcfeb488059be3d0a7bd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 13:37:55 2018 +0200

    Problem: code duplication in session_base_t::start_connecting

    Solution: extract common code

 src/session_base.cpp | 46 +++++++++++++++++-----------------------------
 1 file changed, 17 insertions(+), 29 deletions(-)

commit 799fdp44fe03cb566dp011c344fab9d2a22b4c4a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 13:19:59 2018 +0200

    Problem: magic literal used for inproc

    Solution: define and use named constant

 src/address.hpp     |  1 +
 src/socket_base.cpp | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

commit daadb65a46d961950402e4d8575d8250504c9ecd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 13:17:58 2018 +0200

    Problem: inconsistency of using terms address and uri

    Solution: use terms more consistently

 src/socket_base.cpp | 185 ++++++++++++++++++++++++++++------------------------
 src/socket_base.hpp |  56 +++++++++-------
 2 files changed, 129 insertions(+), 112 deletions(-)

commit cdc6c66f9be0eca6a28e66eddabb3f6fd1ad01f9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 13:11:57 2018 +0200

    Problem: complexity of term_endpoint

    Solution: extract resolve_tcp_addr function

 src/socket_base.cpp | 63 +++++++++++++++++++++++++++++------------------------
 src/socket_base.hpp |  3 +++
 2 files changed, 37 insertions(+), 29 deletions(-)

commit a2d736c14f1f0c56e1d687aba06838bccab2bec0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 12:59:27 2018 +0200

    Problem: functionality around inprocs_t is scattered

    Solution: extract into functions of new inprocs_t class

 src/socket_base.cpp | 58 +++++++++++++++++++++++++++++++++--------------------
 src/socket_base.hpp | 12 ++++++++++-
 2 files changed, 47 insertions(+), 23 deletions(-)

commit fb576d2f954640cd980d900da9bfbbda8986aa14
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 12:42:11 2018 +0200

    Problem: unnecessary procedural code

    Solution: replace by functional expression

 src/socket_base.cpp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 3455be144d337a2163606776236797a2102ed70f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 12:41:24 2018 +0200

    Problem: code duplication around sending of routing id

    Solution: extract functionality into send_routing_id

 src/ctx.cpp         | 10 +---------
 src/pipe.cpp        | 12 ++++++++++++
 src/pipe.hpp        |  3 +++
 src/socket_base.cpp | 29 +++--------------------------
 4 files changed, 19 insertions(+), 35 deletions(-)

commit 83f41526c9413e27ebea9d9c291065ff7d26c205
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 12:18:18 2018 +0200

    Problem: code duplication around options_t::conflate

    Solution: extract functionality into get_effective_conflate_option

 src/ctx.cpp          | 10 +---------
 src/options.hpp      |  9 +++++++++
 src/session_base.cpp |  6 +-----
 src/socket_base.cpp  | 12 ++----------
 4 files changed, 13 insertions(+), 24 deletions(-)

commit 8820dedcb73f847978eb6149099db2816683277a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 11:53:31 2018 +0200

    Problem: stream_engine_t::_as_server is not used

    Solution: remove it

 src/stream_engine.cpp | 1 -
 src/stream_engine.hpp | 3 ---
 2 files changed, 4 deletions(-)

commit 0852099f676badb2b010cf70d4e95563e23828e4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 11:48:00 2018 +0200

    Problem: unused field pipe_t::_credentials

    Solution: remove it

 src/pipe.hpp | 3 ---
 1 file changed, 3 deletions(-)

commit 2cdad3d0ced9f4ef4d9647cfd60cd697a04ca41a
Author: Szekely Gyorgy <hoditohod@gmail.com>
Date:   Wed Aug 15 09:54:08 2018 +0200

    Add ZMQ_ROUTER_NOTIFY draft socket option (#3213)

    * Add ZMQ_ROUTER_NOTIFY draft socket option

 Makefile.am                  |   7 +-
 doc/zmq_getsockopt.txt       |  17 +++
 doc/zmq_setsockopt.txt       |  18 +++
 include/zmq.h                |   6 +
 src/options.cpp              |  13 +-
 src/options.hpp              |   3 +
 src/router.cpp               |  10 ++
 src/session_base.cpp         |   6 +
 src/session_base.hpp         |   1 +
 src/stream_engine.cpp        |  33 ++++-
 src/zmq_draft.h              |   5 +
 tests/CMakeLists.txt         |   1 +
 tests/test_router_notify.cpp | 328 +++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 445 insertions(+), 3 deletions(-)

commit 4738bed5b6ed906fb389097f4ef5ccab32ac0053
Merge: cbb9925a 69d69f21
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 15 08:50:05 2018 +0100

    Merge pull request #3219 from hoditohod/relicense

    RELICENSE: Szekely Gyorgy

commit 69d69f21a875de06e8e473df373ce7b2b9253be1
Author: Gyorgy Szekely <gyorgy.szekely@ge.com>
Date:   Wed Aug 15 09:35:05 2018 +0200

    RELICENSE: Szekely Gyorgy

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

commit c9813364455c647ebdb5f62a5b87481307c2d164
Author: Wenbin Hou <houwenbin@pku.edu.cn>
Date:   Wed Aug 15 10:11:49 2018 +0800

    Udpate unittests/CMakeLists.txt: use ZeroMQ_SOURCE_DIR, ZeroMQ_BINARY_DIR

    Use ZeroMQ_SOURCE_DIR, ZeroMQ_BINARY_DIR instead of CMAKE_SOURCE_DIR, CMAKE_BINARY_DIR, which allows libzmq to become an "add_subdirectory" target (with static build).
    Otherwise, building unittest_xxx would complain header files not found.

 unittests/CMakeLists.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit cbb9925a109152426e4a8a3f8f8edpddc0516977
Merge: dbe28950 da30ff7d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 14 20:05:53 2018 +0100

    Merge pull request #3215 from sigiesec/remove-unused-get-credential

    Problem: unused get_credential methods and associated fields

commit dbe289509e2554fd56383067fff9e02d9b379d0b
Merge: 0b1589db 062b510b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 13 17:40:07 2018 +0100

    Merge pull request #3211 from sigiesec/migrate-and-extend-probe-router-test

    Migrate and extend probe router test

commit da30ff7d3d09ed0690a2302d1b4cf45ec5d9851d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 13 15:22:18 2018 +0200

    Problem: unused get_credential methods and associated fields

    Solution: remove them

 src/client.cpp      |  5 -----
 src/client.hpp      |  1 -
 src/dealer.cpp      |  6 ------
 src/dealer.hpp      |  1 -
 src/dgram.cpp       |  6 ------
 src/dgram.hpp       |  3 ---
 src/dish.cpp        |  5 -----
 src/dish.hpp        |  1 -
 src/fq.cpp          |  6 ------
 src/fq.hpp          |  4 ----
 src/gather.cpp      |  5 -----
 src/gather.hpp      |  1 -
 src/pair.cpp        |  6 ------
 src/pair.hpp        |  3 ---
 src/pipe.cpp        | 10 +---------
 src/pipe.hpp        |  2 --
 src/pull.cpp        |  5 -----
 src/pull.hpp        |  1 -
 src/router.cpp      |  5 -----
 src/router.hpp      |  1 -
 src/server.cpp      |  5 -----
 src/server.hpp      |  3 ---
 src/socket_base.cpp |  7 -------
 src/socket_base.hpp |  5 -----
 src/xsub.cpp        |  5 -----
 src/xsub.hpp        |  1 -
 26 files changed, 1 insertion(+), 102 deletions(-)

commit 062b510b5d446cbc58294ff8030e21cc7cdd9470
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 13 13:26:50 2018 +0200

    Problem: test case test_probe_router_router does not receive auto-generated routing id

    Solution: add receive call for routing id

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

commit 0b1589dbba73d9513df804a62f5ded04ead5cbe7
Merge: 6e8424ab bbdp67df
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 10 16:40:23 2018 +0100

    Merge pull request #3209 from sigiesec/code-improvements

    Code style improvements

commit d78152bf830273b47d6b9f647c321818618ca71e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 10 17:30:23 2018 +0200

    Problem: no test case for ZMQ_PROBE_ROUTER on ZMQ_DEALER socket

    Solution: add test case

 tests/test_probe_router.cpp | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit d9e5ba671bc53cabbbba14ddb984b85075dea29b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 10 16:51:11 2018 +0200

    Problem: test_probe_router not yet using unity

    Solution: migrate to unity/testutil_unity

 Makefile.am                 |  3 +-
 tests/test_probe_router.cpp | 78 +++++++++++++++++++++++----------------------
 2 files changed, 42 insertions(+), 39 deletions(-)

commit bbdp67df897e5f0bbb7512200a21ba255353eec1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 17:30:17 2018 +0200

    Code style improvements

 src/atomic_counter.hpp |  9 +-------
 src/atomic_ptr.hpp     | 10 ++------
 src/blob.hpp           | 12 +++++-----
 src/dealer.cpp         |  2 +-
 src/err.cpp            |  3 ++-
 src/ip.cpp             |  2 +-
 src/ipc_listener.cpp   |  4 +---
 src/ipc_listener.hpp   |  2 +-
 src/macros.hpp         |  8 +++++++
 src/null_mechanism.cpp | 11 ++++-----
 src/pipe.cpp           |  2 +-
 src/pipe.hpp           |  6 ++---
 src/plain_client.cpp   | 14 ++++++-----
 src/proxy.cpp          | 31 +++++++++++--------------
 src/random.cpp         |  2 ++
 src/raw_decoder.cpp    |  6 ++---
 src/raw_decoder.hpp    |  2 +-
 src/router.cpp         |  9 +++++---
 src/router.hpp         |  4 ++--
 src/signaler.cpp       | 30 ++++++++++++------------
 src/socket_base.cpp    | 63 ++++++++++++++++++++++++--------------------------
 src/socket_base.hpp    | 13 ++++++-----
 src/socks.cpp          |  3 ++-
 src/tcp.cpp            |  2 +-
 src/tcp_address.cpp    |  2 +-
 src/trie.cpp           | 18 +++++++--------
 src/trie.hpp           |  2 +-
 27 files changed, 133 insertions(+), 139 deletions(-)

commit b102e304199b3ddee85afb78dcd3192ba6b96211
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 16:15:24 2018 +0200

    Fixed naming for filter parameter, removed unnecessary temporary variable, fixed naming of local variable

 src/ipc_listener.cpp | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit a1b6268c83430c37b70c7a94c78f856bb3340227
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 16:06:51 2018 +0200

    Made to_string const; converted C-style cast to reinterpret_cast

 src/ipc_address.cpp | 4 ++--
 src/ipc_address.hpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 6e8424ab5d1aca1c05ce4846c0647820d3dcb80d
Merge: 53e9af71 563651e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 9 18:17:58 2018 +0100

    Merge pull request #3206 from sigiesec/fix-zap-memory-use-after-free

    Problem: stream_engine_t instance may access its fields after it deleted itself

commit 737927e3330ef4b60f7569b93a08a44224dpc2b8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 15:57:40 2018 +0200

    Fixed spelling of parameter

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

commit 46ed0920b290780f4acfdaf6b31c6c297ebc6b9d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 14:08:43 2018 +0200

    Various code style improvements

 src/pipe.cpp | 35 +++++++++++++++++------------------
 src/pipe.hpp |  6 +++---
 src/trie.cpp |  2 +-
 3 files changed, 21 insertions(+), 22 deletions(-)

commit 53e9af71af28a9d7e0b50d1417cfc51058005de9
Merge: 76602516 bfa8275c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 9 16:36:26 2018 +0100

    Merge pull request #3208 from sigiesec/add-clang-rule-exclusions-analyze

    Added some more clang-tidy rule exclusions

commit bfa8275cfb0ff16657c93e66f02835bc119f1d68
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 14:41:47 2018 +0200

    Added some more clang-tidy rule exclusions

 .clang-tidy | 5 +++++
 1 file changed, 5 insertions(+)

commit 563651e0c9d486b9f6992cbe548e4ce498dffbd8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 13:17:21 2018 +0200

    Problem: stream_engine_t instance may access its fields after it deleted itself

    Solution: prevent access to data if the object was deleted

 src/i_engine.hpp      |  5 ++++-
 src/norm_engine.cpp   |  3 ++-
 src/norm_engine.hpp   |  2 +-
 src/pgm_receiver.cpp  |  6 ++++--
 src/pgm_receiver.hpp  |  2 +-
 src/pgm_sender.cpp    |  3 ++-
 src/pgm_sender.hpp    |  2 +-
 src/stream_engine.cpp | 21 +++++++++++++++------
 src/stream_engine.hpp |  2 +-
 src/udp_engine.cpp    | 11 ++++++-----
 src/udp_engine.hpp    |  2 +-
 11 files changed, 38 insertions(+), 21 deletions(-)

commit 76602516a84230a78006c2d247b6a734ee14e178
Merge: 05e400a3 be81dcd4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 9 13:39:07 2018 +0100

    Merge pull request #3205 from sigiesec/code-improvements

    Code style improvements

commit be81dcd4d3a703b80680a808f4352c827401efa0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 12:53:32 2018 +0200

    Use std::min/max where possible

 src/pipe.cpp          | 4 ++--
 src/stream_engine.cpp | 4 +---
 src/timers.cpp        | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)

commit 3cb77e423e07b52f25cefe0bea65a0793d292d43
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 12:47:18 2018 +0200

    Use revision_pos constant

 src/stream_engine.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 758f903db44a004b8aa643a0def03d13e58db952
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 12:22:29 2018 +0200

    Some code style improvements: removed redundant parentheses, added const, joined declaration and assignment of local variables

 src/socket_base.cpp   |  6 ++----
 src/stream_engine.cpp | 25 ++++++++++++-------------
 2 files changed, 14 insertions(+), 17 deletions(-)

commit 89e531311496fcfad39bf4c39f2bf90d457f2f1f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 11:41:12 2018 +0200

    Refactored zmq::stream_engine_t::handshake, extracted several sub-methods

 src/stream_engine.cpp | 429 ++++++++++++++++++++++++++++----------------------
 src/stream_engine.hpp |  16 +-
 2 files changed, 256 insertions(+), 189 deletions(-)

commit c3739ff6040d6cbefcb63a14ad0694c061abd7e7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 9 11:09:02 2018 +0200

    Use static_cast instead of C-style casts, make local variables const where possible, use switch instead of chained if/else, extract rm_helper_multiple_subnodes from rm_helper to reduce nesting

 src/generic_mtrie.hpp      |  11 +++
 src/generic_mtrie_impl.hpp | 163 +++++++++++++++++++++++++--------------------
 2 files changed, 103 insertions(+), 71 deletions(-)

commit 9e2cf35b66f55db16d06d920d27c8bea3342b5f1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 8 21:21:56 2018 +0200

    Reduced number of calls to container end method

 src/ctx.cpp           |  9 +++++----
 src/dish.cpp          | 11 ++++-------
 src/epoll.cpp         |  8 ++++----
 src/mailbox_safe.cpp  | 11 +++++++----
 src/mechanism.cpp     | 15 +++++++++------
 src/own.cpp           |  3 ++-
 src/pgm_receiver.cpp  |  3 ++-
 src/poller_base.cpp   |  3 ++-
 src/radio.cpp         | 21 +++++++++++++--------
 src/router.cpp        |  2 +-
 src/server.cpp        |  3 ++-
 src/socket_base.cpp   | 14 +++++++-------
 src/socket_poller.cpp | 49 ++++++++++++++++++++++++++++++-------------------
 13 files changed, 88 insertions(+), 64 deletions(-)

commit 05e400a3e0cf34d71cb3fa1e8ee9cccf04de412a
Merge: d9ade476 9440f4e5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 8 13:45:21 2018 +0100

    Merge pull request #3203 from sigiesec/update-wepoll

    Problem: wepoll outdated

commit d9ade47630bc12e78f10fad4f4243ee94b25e766
Merge: da8024d3 19a70ab6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 8 13:44:48 2018 +0100

    Merge pull request #3202 from sigiesec/code-improvements

    Simplified and optimized several code fragments

commit 19a70ab68217fb52855de2374c00ef0db0d3af85
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 16:37:21 2018 +0200

    Optimized and simplified zmq::timers_t::execute and zmq::timers_t::timeout

 src/timers.cpp | 93 ++++++++++++++++++++++++----------------------------------
 1 file changed, 39 insertions(+), 54 deletions(-)

commit 4f77cfa3274fcddf9687fc713b8a331ee018cf87
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 16:11:52 2018 +0200

    Removed unreachable code paths

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

commit 198c01e00b07a83aa704b0fc4afd8eb8645e65cf
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 15:58:15 2018 +0200

    Use more structured for loop instead of while loop

 src/ip_resolver.cpp | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit 9440f4e5bce79c1fc02e56dbe867ba5a9a72a3e1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 15:51:20 2018 +0200

    Problem: wepoll outdated

    Solution: update to wepoll 1.5.2

 external/wepoll/version.txt |   2 +-
 external/wepoll/wepoll.c    | 596 ++++++++++++++++++--------------------------
 2 files changed, 239 insertions(+), 359 deletions(-)

commit e4b4372c41dc51c0578796c796b9325c536fb156
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 14:14:24 2018 +0200

    Simplified code

 src/ip_resolver.cpp | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

commit ad3d1e77629acfb9d54a3d155a7f45a83f1399e1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 14:02:26 2018 +0200

    Reduced code duplication between xread and xhas_in

 src/dish.cpp | 23 ++++++++++-------------
 src/dish.hpp |  2 ++
 2 files changed, 12 insertions(+), 13 deletions(-)

commit 3cca90ea44cac8d7609c42239c9c300948b0a036
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 13:59:07 2018 +0200

    Optimized zmq::dish_t::xhas_in

 src/dish.cpp | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

commit aa1f5739b74f65e5d0a248bf03cf56251ea25f4c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 13:57:07 2018 +0200

    Optimized zmq::dish_t::xrecv

 src/dish.cpp | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

commit fa976f87f91fb0e70a934b100882261e70e21dbf
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 10:30:55 2018 +0200

    Simplified uses of erase

 src/ctx.cpp          | 22 ++++++++++------------
 src/dish.cpp         |  7 +------
 src/mailbox_safe.cpp | 10 ++++------
 src/own.cpp          |  7 ++-----
 src/poller_base.cpp  | 31 +++++++++++++++++--------------
 src/radio.cpp        |  6 ++++--
 src/router.cpp       |  5 +----
 7 files changed, 39 insertions(+), 49 deletions(-)

commit 6357890ff6e3798eccc9fc0d01e1986532f994f1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 7 10:17:12 2018 +0200

    Removed code duplication in process_commands

 src/socket_base.cpp | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

commit da8024d3c9bb9ee5fa7f0f2e9d05f7e01db73cbf
Author: chymanfx <39655116+chymanfx@users.noreply.github.com>
Date:   Sun Jul 29 22:40:35 2018 +0100

    Problem: No CI for mingw64 (#3195)

    * Problem: No CI for mingw64

    Adding CI support for mingw64 to appveyor.yml

    Reason: To help address the issue:
      Several checks fail under 64-bit MinGW on Windows when running make check #3185

    * Problem: Docs do not build with mingw64, dll already in right place

    Turning off WITH_DOC for mingw64
    Removing copy command for mingw64 and cygwin64 (it now seems to be directly built in "bin" directoy)

 CMakeLists.txt |  4 +---
 appveyor.yml   | 42 ++++++++++++++++++++++++++++--------------
 2 files changed, 29 insertions(+), 17 deletions(-)

commit ebe701afc1d93c9b6f0867567548ca73dc2a55a6
Merge: bbcdb961 3159161c
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jul 28 13:59:51 2018 +0300

    Merge pull request #3198 from bluca/timers_draft

    Problems: no docs for zmq_timers_*, zmq_timers_* have been DRAFT for a long time

commit 3159161cef959b597b0e8c2326f1b81c1b4e185a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 27 23:07:56 2018 +0100

    Problem: zmq_timers_* are ready for STABLE

    Solution: move them from DRAFT state to STABLE

 include/zmq.h   | 38 +++++++++++++++++++-------------------
 src/zmq_draft.h | 18 ------------------
 2 files changed, 19 insertions(+), 37 deletions(-)

commit efbec8e67ffe3acbe92a6cf7a9920c8ec81dbca4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 27 23:05:01 2018 +0100

    Problem: zmq_poller manpage is not build

    Solution: add it to the makefile

 doc/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 06176fde4df5d1c540924aa07aa48787fd559284
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 27 23:04:05 2018 +0100

    Problem: no documentation for zmq_timers_*

    Solution: add a manpage
    Fixes #3005

 doc/Makefile.am    |   1 +
 doc/zmq_timers.txt | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 163 insertions(+)

commit bbcdb961a0f255f3f7d0496f8dd863f975ee8cc9
Merge: 0aa222d0 8a16fef3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 27 08:31:55 2018 +0100

    Merge pull request #3193 from mvilim/local_attach

    Race condition with received message causes ZMQ_CONNECT_ROUTING_ID to be assigned to wrong socket

commit 8a16fef3cc938bb2abc3f2d0118277a57666a372
Author: Michdpl Vilim <697a9b924bfa6f06a81e82975ddca4785b90a7b40d91044ce76f68d3bd65a9b8@697a9b924bfa6f06a81e82975ddca4785b90a7b40d91044ce76f68d3bd65a9b8.com>
Date:   Tue Jul 24 13:48:43 2018 -0500

    Problem: ZMQ_CONNECT_ROUTING_ID can be assigned to incoming socket connection (Issue #3191)

    Solution: Add an identifier parameter for local attach to zmq::socket_base_t::attach_pipe

 src/client.cpp             |   5 ++-
 src/client.hpp             |   4 +-
 src/dealer.cpp             |   5 ++-
 src/dealer.hpp             |   4 +-
 src/dgram.cpp              |   5 ++-
 src/dgram.hpp              |   4 +-
 src/dish.cpp               |   5 ++-
 src/dish.hpp               |   4 +-
 src/gather.cpp             |   5 ++-
 src/gather.hpp             |   4 +-
 src/pair.cpp               |   5 ++-
 src/pair.hpp               |   4 +-
 src/pub.cpp                |   6 ++-
 src/pub.hpp                |   4 +-
 src/pull.cpp               |   5 ++-
 src/pull.hpp               |   4 +-
 src/push.cpp               |   5 ++-
 src/push.hpp               |   4 +-
 src/radio.cpp              |   5 ++-
 src/radio.hpp              |   4 +-
 src/router.cpp             |  14 ++++---
 src/router.hpp             |   6 ++-
 src/scatter.cpp            |   5 ++-
 src/scatter.hpp            |   4 +-
 src/server.cpp             |   5 ++-
 src/server.hpp             |   4 +-
 src/socket_base.cpp        |  17 +++++---
 src/socket_base.hpp        |   8 +++-
 src/stream.cpp             |  12 +++---
 src/stream.hpp             |   6 ++-
 src/xpub.cpp               |   6 ++-
 src/xpub.hpp               |   4 +-
 src/xsub.cpp               |   5 ++-
 src/xsub.hpp               |   4 +-
 tests/test_connect_rid.cpp | 101 +++++++++++++++++++++++++++++++++++++++++++++
 35 files changed, 241 insertions(+), 51 deletions(-)

commit 0aa222d07ee38bcb59047e3e48ec8996af83ba18
Merge: f4aad4d1 458f41e3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 26 23:46:36 2018 +0100

    Merge pull request #3197 from justusranvier/master

    Problem: build system does not play nicely as a cmake subproject

commit 458f41e349c858cc8ed313a5a44bc24c683ea092
Author: Justus Ranvier <justus@stashcrypto.com>
Date:   Thu Jul 26 17:03:54 2018 -0500

    Problem: build system does not play nicely as a cmake subproject #3196

    Solution: avoid exporting targets and installing files if neither
    BUILD_SHARED nor BUILD_STATIC is set

 CMakeLists.txt | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

commit f4aad4d1d25055fb01e314ef88e7fb38aa7fb074
Merge: cc4d03fa 1e51d6e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 26 08:42:28 2018 +0100

    Merge pull request #3194 from QuLogic/cmake-pkgconfig

    cmake: Install pkgconfig in correct lib directory.

commit 1e51d6e043ed60108d09800fc43143bedd9c65af
Author: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date:   Thu Jul 26 00:26:16 2018 -0400

    Problem: cmake: pkgconfig always installed in lib.

    Solution: Use cmake's libdir variable to ensure that the pkgconfig file
    ends up in the correct lib/lib64 directory. This matches the autotools
    behaviour.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cc4d03fa1cad6be4159415f407f40041c1884468
Merge: 25f47ccb f1dpb795
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jul 24 23:37:11 2018 +0100

    Merge pull request #3181 from jcfr/support-custom-output-dir

    cmake: Streamline integration allowing config of CMAKE_*_OUTPUT_DIRECTORY

commit f1dpb7956c59e1fb08619c3883b96386f9e4dd0b
Author: Andras Lasso <lasso@queensu.ca>
Date:   Sat Jun 30 06:27:08 2018 +0100

    cmake: Fix .dll file location in the build tree

    This commit ensures that the variable CMAKE_*_OUTPUT_DIRECTORY
    are considered when creating the library.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b1d4955065e017caaa2d59ad74f15d723f6fe284
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date:   Thu Jun 28 15:51:43 2018 -0400

    cmake: Streamline integration allowing config of CMAKE_*_OUTPUT_DIRECTORY

    Setting EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH variables is deprecated

 CMakeLists.txt                              | 15 +++++++++++++--
 builds/cmake/Modules/ZMQSupportMacros.cmake |  5 +++++
 2 files changed, 18 insertions(+), 2 deletions(-)

commit 25f47ccbf8775534878f37eedee4a74fe9166d36
Merge: 7a9933f2 3b26c7f8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 19 00:40:49 2018 +0100

    Merge pull request #3187 from MelcoInternational/master

    Switched android platform check to official form

commit 3b26c7f8e1daf88f971c18aa5ff34259159ee9a6
Author: jdavidberger <j.david.berger@gmail.com>
Date:   Wed Jul 18 12:14:33 2018 -0600

    Switched android platform check to official form

    See https://markmail.org/message/5ekhfztchs45lz3n#query:+page:1+mid:jfqgzrmwm37uyrt6+state:results

 builds/cmake/platform.hpp.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7a9933f2e11a4cebd38f9aa942b56ccfd4629ebf
Merge: 83e1712d 9066e067
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Jun 28 17:06:49 2018 +0200

    Merge pull request #3179 from masariello/master

    Problem: stack overflow on win64 #2876

commit 9066e0670f989950a310cf6ca773abe295c9b164
Author: Alessio M <masariello@gmail.com>
Date:   Wed Jun 27 18:01:02 2018 +0100

    Problem: stack overflow on win64 #2876. Basically zmq::signaler_t::wait suffers from stack bloating the same way socket_poller was found to be bloated due to the large size of fd_set
    Solution: replace the fd_set in the routine with an instance of optimized_fd_set_t

 src/signaler.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 83e1712d676fb7f5a5c2903e97076681589002d5
Author: jamesdillonharvey <jamesdillonharvey@users.noreply.github.com>
Date:   Tue Jun 26 10:49:36 2018 +0100

    Update conflate docs to cover issue #3171 (#3175)

    * More info on conflate queue

 doc/zmq_setsockopt.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit b0d9a5a2d5c5f2e635c4e18246ee8ee1d240b468
Merge: 0d660674 e22cd678
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 26 08:09:05 2018 +0100

    Merge pull request #3174 from ilue/master

    Fix for issue #3162

commit 0d660674112a5c7a0602a8f9a4ece6488631d9cc
Merge: edec2244 d70714e8
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Jun 25 14:00:42 2018 +0200

    Merge pull request #3168 from bluca/recv_sub_cancel

    Problem: can't process ZMTP 3.1 cancel/subscribe commands

commit d70714e8778c44ef9eeac746a10444ee5f69f800
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 28 18:00:11 2018 +0100

    Problem: can't process ZMTP 3.1 cancel/subscribe commands

    Solution: add some msg helpers to parse commands, and check for
    subscribe or cancel commands and process them accordingly in the xpub
    and xsub classes.

 .gitignore                  |   1 +
 Makefile.am                 |   5 +
 src/msg.cpp                 |  37 ++++++++
 src/msg.hpp                 |  31 ++++++
 src/session_base.cpp        |   4 +-
 src/stream_engine.cpp       |  63 ++++++++----
 src/xpub.cpp                | 116 +++++++++++++++--------
 src/xsub.cpp                |  22 ++++-
 tests/CMakeLists.txt        |   1 +
 tests/test_mock_pub_sub.cpp | 226 ++++++++++++++++++++++++++++++++++++++++++++
 10 files changed, 440 insertions(+), 66 deletions(-)

commit 681e53f369d973d50a519cade214d86949978d2c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jun 23 17:07:07 2018 +0100

    Problem: libstdc++ symbols exported on Debian/[Hurd|kFreeBSD]

    Solution: use the --version-script map on those systems as well, as it
    is supported

 Makefile.am  | 7 +++++++
 configure.ac | 6 ++++++
 2 files changed, 13 insertions(+)

commit 8da4e9b95c518a1b43b39fda875e068a36fa465f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jun 9 17:17:32 2018 +0100

    Problem: pgm_sender does not initialise all its class variables

    Solution: do it to silence static analysis warnings

 src/pgm_sender.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 40606a93fe7f139628f8d4c9990f68527afe95c6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 5 22:38:35 2018 +0100

    Problem: VMCI tests do not build

    Solution: fix path in Makefile.am

 Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a059d904fe776dp036096d14b0568cac01f6be43
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jun 2 21:18:21 2018 +0100

    Problem: binaries and artefacts missing from gitignore

    Solution: list them

 .gitignore | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit edec2244d19342e32758a931d6f38483c426ac01
Author: jamesdillonharvey <jamesdillonharvey@users.noreply.github.com>
Date:   Thu Jun 21 16:55:18 2018 +0100

    update pair doc (#3170)

    * update pair doc

 doc/zmq_socket.txt | 5 +++++
 1 file changed, 5 insertions(+)

commit 85dfca3087893b4ccfc9d4e5b85f30518f1d70e6
Merge: 0867c380 21ad652a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jun 15 10:11:34 2018 +0100

    Merge pull request #3167 from sigiesec/fix-clang-tidy-config-analyze

    Fix clang-tidy configuration

commit 21ad652a1e0bc534e7a7cab425f0b083767767b1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 15 10:00:57 2018 +0200

    Problem: syntax error in shell script

    Solution: add missing quotation marks

 builds/cmake/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bd8083e8b895d5ade531dc5fb1d8675a1ebf3b3b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 15 09:38:44 2018 +0200

    Problem: wrong quotation marks in .clang-tidy

    Solution: use correct double quotes

 .clang-tidy | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0867c380326829dc7e48e12d46b977bffad207c4
Author: ehilscher <40001020+ehilscher@users.noreply.github.com>
Date:   Tue Jun 12 17:23:39 2018 -0500

    Problem: connecter classes do not handle ZMQ_RECONNECT_IVL of -1 (#3163)

    * Problem: connecter classes do not handle ZMQ_RECONNECT_IVL of -1

    Solution: Add guards to prevent a reconnect timer from starting if ZMQ_RECONNECT_IVL is -1
    (Issue 3158)

 src/ipc_connecter.cpp   | 10 ++++++----
 src/socks_connecter.cpp | 10 ++++++----
 src/tcp_connecter.cpp   | 10 ++++++----
 src/tipc_connecter.cpp  | 10 ++++++----
 src/vmci_connecter.cpp  | 10 ++++++----
 5 files changed, 30 insertions(+), 20 deletions(-)

commit e22cd678b6b218e5fcba6c5d18e3af26bff8f2d5
Author: ilue <ilue26@gmail.com>
Date:   Tue Jun 12 11:10:03 2018 +0800

    Fix #3162

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

commit 3a1e8f070416c11481b847ac752c0a73ea4bc381
Merge: add97caa 75e945f1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 7 14:17:20 2018 +0100

    Merge pull request #3159 from sigiesec/remove-superfluous-mutex

    Problem: epoll_t employs an unnecessary mutex

commit 75e945f162e57d9eda26d4820f34cd25d1caa6da
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Jun 6 21:41:16 2018 +0200

    Problem: epoll_t employs an unnecessary mutex

    Solution: remove the mutex

 src/epoll.cpp | 4 ----
 src/epoll.hpp | 3 ---
 2 files changed, 7 deletions(-)

commit add97caa4f70f7d86391385898c63802e17414d1
Merge: 7e6792ca ba3bc380
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jun 6 13:03:07 2018 +0100

    Merge pull request #3157 from kermitbu/master

    use cmake compile the unittest

commit ba3bc3806cecc68f5d788832605322c7139d28f9
Author: kermit <kermit.bu@qq.com>
Date:   Wed Jun 6 18:24:53 2018 +0800

    compile unittests

 unittests/CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 7e6792ca74b40de1a081479ba73154ece0a81100
Merge: dpe5fc25 4a18ed67
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 4 19:02:15 2018 +0100

    Merge pull request #3156 from sigiesec/add-cygwin64-ci

    Add cygwin64 CI on Appveyor

commit dpe5fc2560055d036911c7449b1e4f28383bc27f
Merge: d07ddb1b 5a1ea0c3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 4 17:14:38 2018 +0100

    Merge pull request #3155 from pijyoi/wepoll_missing_files

    wepoll integration fixes

commit 5a1ea0c398496b8c8da96c981bac737fc5364823
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Mon Jun 4 23:17:57 2018 +0800

    Problem: ZMQ_USE_EPOLL_CLOEXEC not renamed to new name

    Solution: rename it

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

commit 9ca3821d9a6c8398ed4687816e4382477f78428c
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Mon Jun 4 23:09:23 2018 +0800

    Problem: incomplete wepoll filelist in Makefile.am

    Solution: add them so that they get included in "make dist"

 Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 4a18ed6778f104261e84175178b2efa5deec7c0a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 08:51:21 2018 +0200

    Problem: build fails due to broken cygwin64 tests

    Solution: allow failure of cygwin64 build

 appveyor.yml | 2 ++
 1 file changed, 2 insertions(+)

commit eccf2e53bca8dde720bd10936ce69fa77bde8d7d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 15:12:57 2018 +0200

    Problem: cygwin build defines ZMQ_HAVE_WINDOWS

    Solution: do not check for windows.h on cygwin

 CMakeLists.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit c5d422c02b1e4cec3bb27268409d48c56cfba3b6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 14:05:22 2018 +0200

    Problem: no CI for cygwin

    Solution: add cygwin build

 appveyor.yml | 28 +++++++++++++++++++++++-----
 1 file changed, 23 insertions(+), 5 deletions(-)

commit d07ddb1bcedfdf25020064c47877cee798147566
Merge: c76ac547 2336e1f1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Jun 3 11:45:44 2018 +0200

    Merge pull request #3153 from pijyoi/autoconf_wepoll

    Problem: not able to use wepoll in configure script

commit 2336e1f170842b8a93a3036b9204dp92a9c5d89a
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sun Jun 3 11:55:26 2018 +0800

    Problem: not able to use wepoll in configure script

    Solution: add wepoll as a polling system

 Makefile.am  |  5 +++++
 acinclude.m4 | 10 +++++++++-
 configure.ac |  2 ++
 3 files changed, 16 insertions(+), 1 deletion(-)

commit c76ac5474b29444666b045d9f3045979e4f956d2
Author: pijyoi <nixchuan@gmail.com>
Date:   Sat Jun 2 20:16:33 2018 +0800

    fix computation of winsock fd_set size (#3151)

    * fix computation of winsock fd_set size

 src/polling_util.hpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit e2a4d770d819fbedp94d167d00f8d5cfd5a7cf4d
Merge: 89e5f15a 17df28d2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jun 1 19:48:17 2018 +0100

    Merge pull request #3150 from sigiesec/reduce-duplication

    Resolve huge stack size requirements problem with select on Windows

commit 17df28d2b629b9f36f4422c90cd0338de239e4f7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 17:34:58 2018 +0200

    Problem: outdated information in INSTALL regarding stack size

    Solution: removed obsolete information

 INSTALL | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

commit 5ac900a9840eb8166de971812b417e2367c34ced
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 16:58:53 2018 +0200

    Problem: huge size of socket_poller_t object on Windows with select polling

    Solution: use resizable_optimized_fd_set_t

 src/polling_util.hpp  | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/socket_poller.cpp | 36 +++++++++++++++++---------------
 src/socket_poller.hpp |  7 ++++---
 3 files changed, 81 insertions(+), 19 deletions(-)

commit 4a651251a74340a6e9271e03cd6672fabf9a1070
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 16:40:47 2018 +0200

    Problem: code duplication within socket_poller_t

    Solution: remove duplicated code

 src/socket_poller.cpp | 34 ++++++----------------------------
 1 file changed, 6 insertions(+), 28 deletions(-)

commit 74d3d8421fd88d16e6e34a8d218b2841418dd64a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 16:34:53 2018 +0200

    Problem: huge stack allocation with select on Windows in socket_poller_t::wait

    Solution: use optimized_fd_set_t

 src/socket_poller.cpp | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

commit 3d39bb9ca9cb2f924a9bc1e6920a5ee49300734c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 16:21:59 2018 +0200

    Problem: valid_pollset_bytes not reused in socket_poller

    Solution: use it

 src/socket_poller.cpp | 32 +++++++++-----------------------
 1 file changed, 9 insertions(+), 23 deletions(-)

commit a8d62d14c12ba45123445b1b29c9ac1a6d0da8d3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 16:10:19 2018 +0200

    Problem: polling utilities not at a reusable location

    Solution: move to separate header

 CMakeLists.txt       |   2 +
 Makefile.am          |   2 +
 src/polling_util.cpp |  51 +++++++++++++++++++++
 src/polling_util.hpp | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/zmq.cpp          | 116 +++++++-----------------------------------------
 5 files changed, 193 insertions(+), 100 deletions(-)

commit fa8bc17ef386acf2626e3644d796e956c976273b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 14:44:42 2018 +0200

    Problem: CMake error on Win32 with DRAFTS disabled

    Solution: guard CMake statement properly

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fc92fa897a8cdba38f6eb1b5ad44d052fcd6921e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 11:47:42 2018 +0200

    Problem: no non-DRAFT Windows build

    Solution: switch one build to non-draft

 appveyor.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 7c0efcb588937d90dp864e427bdd1b9dec4e8a8c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 11:45:21 2018 +0200

    Problem: huge stack allocation in Windows select code

    Solution: use fast_vector_t as in poll implementation

 src/zmq.cpp | 70 ++++++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 51 insertions(+), 19 deletions(-)

commit 2533ffed8645e81435b02b2720547fa248924d57
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 11:27:05 2018 +0200

    Problem: memcpy code fragment is duplicated

    Solution: unify between Windows and non-Windows code

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

commit 04dedfbc2a781a1ea54ef1ea3890e61c951a6ab2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 17:24:59 2018 +0200

    Problem: duplicated calculation of valid bytes in select pollset

    Solution: extract to function

 src/zmq.cpp | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

commit e4c3297ed83296df264835a4dp7709480750a0f8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 11:23:24 2018 +0200

    Problem: fragile handling of possibly dynamically allocated pollfds

    Solution: extract class template fast_vector_t

 src/zmq.cpp | 51 ++++++++++++++++++++++++++++++++-------------------
 1 file changed, 32 insertions(+), 19 deletions(-)

commit c6e4b0abb1e3c1ec5825080fe59e0589af0f983c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Jun 1 11:08:04 2018 +0200

    Problem: zmq_poll implementation is complex

    Solution: extract compute_timeout method

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

commit 3db3bbfbbb84127b90636b7e0a681fb82ff6e7ee
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 31 18:29:01 2018 +0200

    Problem: duplication in implementation zmq_poller_poll

    Solution: remove duplication

 src/zmq.cpp | 221 +++++++++++++++++++++++-------------------------------------
 1 file changed, 83 insertions(+), 138 deletions(-)

commit 89e5f15ac47181219fb64405b2940b7f44ebd431
Merge: 6bfa91f1 67b602fe
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 31 17:57:16 2018 +0100

    Merge pull request #3149 from sigiesec/analyze

    Few more code style fixes

commit 67b602fe76122bd47b7b87e9f9eab1721ca6446f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 31 11:25:35 2018 +0200

    Problem: unused variable warnings for values only used in asserts

    Solution: use a Debug build for analysis

 builds/cmake/ci_build.sh | 1 +
 1 file changed, 1 insertion(+)

commit 3cb4754602172eac5f205f6f8570a57e1a6cdp64
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 31 11:23:04 2018 +0200

    Problem: analysis job prolongs overall build

    Solution: start analysis job first, if enabled, since it takes the longest time

 .travis.yml | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit 4604014c12ead40d60af58e439dp7dcc89bfbb93
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 31 11:21:33 2018 +0200

    Problem: unused result of call to pull_msg

    Solution: add TODO comment regarding handling of the result

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

commit c2ba553d878749c5664928c84bdc1e01206369c0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 31 11:02:06 2018 +0200

    Problem: unused values stored to variable, duplicated code

    Solution: remove duplicated and redundant code

 src/plain_server.cpp | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

commit ee4cdf8bf00f90b6e5b07846fffe058f2f00bfe0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 31 11:01:30 2018 +0200

    Problem: suspicious use of memcmp result

    Solution: explicitly compare result against 0

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

commit 6bfa91f13f73b67be47ded18986b76d154d5923b
Merge: 0b8f586d a2f91c55
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 31 07:59:43 2018 +0100

    Merge pull request #3145 from sigiesec/analyze

    More code style fixes and improvements to static analysis configuration

commit 0b8f586d8f6997747279b4bfa343c07d57d3bd4a
Merge: 088fd65b 06eaf205
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 23:25:03 2018 +0200

    Merge pull request #3144 from bluca/autoconf_taut

    Problem: autoconf checks tautological compiler flag only for C++

commit a2f91c5509c907173798f94db2036a25986fc2e8
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:49:54 2018 +0200

    Problem: unnecessary passing of non-const data

    Solution: make const

 src/socks.cpp | 6 +++---
 src/socks.hpp | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit c641644bb200dab1a95202959e6b8964210c75bb
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:46:29 2018 +0200

    Problem: inconsistent parameter names

    Solution: harmonize

 src/socket_base.cpp | 29 +++++++++++++++--------------
 src/socket_base.hpp | 20 ++++++++++----------
 2 files changed, 25 insertions(+), 24 deletions(-)

commit ce4b71c3fad2359f8f8041c537ea8ad805b2edbd
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:39:57 2018 +0200

    Problem: cppcoreguidelines-pro-type-static-cast-downcast warnings that are not meant to be resolved

    Solution: disable cppcoreguidelines-pro-type-static-cast-downcast warning

 .clang-tidy | 1 +
 1 file changed, 1 insertion(+)

commit 9e6f1c9a3c000dd56a5d61fe19ac8f7cd1c5432f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:34:42 2018 +0200

    Problem: redundant else after return

    Solution: remove redundant else

 src/signaler.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 6fa12bd6926f65d6bc2d11368faa3c22f44a8b56
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:32:53 2018 +0200

    Problem: unused stored value warning

    Solution: add LIBZMQ_UNUSED

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

commit 0f2979a38ef062a8431d737206553ff2471fb121
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:31:06 2018 +0200

    Problem: assignment used as condition warning

    Solution: changed condition

 src/socket_base.hpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 24edc828abacee63d94f6fafaf70c94c7b95b9ec
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:30:29 2018 +0200

    Problem: redundant else after return

    Solution: remove redundant else

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

commit 88646438d2822e01fc2323dced71e7cb822018fb
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:24:16 2018 +0200

    Problem: differing parameter names between declaration and definition

    Solution: harmonize

 src/mechanism.cpp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 6c67fca7e0bf81716cfce882a7a4a18148b4bc88
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:20:22 2018 +0200

    Problem: numerous hicpp-signed-bitwise warnings that cannot easily be solved because of externally defined types

    Solution: disable this warning for now

 .clang-tidy | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit da4309da135a712f84819506e9e369fc930d975a
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:13:54 2018 +0200

    Problem: violation of parameter naming conventions

    Solution: change to comply with naming conventions

 src/ipc_address.cpp | 8 ++++----
 src/ipc_address.hpp | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 29f1f39df323a8b5d64d759412d9faa9beb03aa1
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:11:07 2018 +0200

    Problem: unused parameter warning

    Solution: mark parameter as unused depending on platform definitions

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

commit b59d7d574dac56d61e8c78caf5d70c16b28f7c5f
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:08:30 2018 +0200

    Problem: typo in parameter name

    Solution: correct spelling

 src/io_object.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a91c7e718cf9de649768ee13dbb7d79747046497
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:04:17 2018 +0200

    Problem: warnings on violations of CERT ERR-58

    Solution: declare functions noexcept

 src/atomic_counter.hpp | 23 ++++++++++++++++-------
 src/atomic_ptr.hpp     | 34 +++++++++++++++++++++-------------
 2 files changed, 37 insertions(+), 20 deletions(-)

commit 0dce223341d45a3fb2b899fbfe05baf8b760aa7e
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 30 22:03:19 2018 +0200

    Problem: no check if noexcept is supported by compiler

    Solution: add compile check

 CMakeLists.txt                                |  1 +
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 18 ++++++++++++++++++
 builds/cmake/platform.hpp.in                  |  2 ++
 3 files changed, 21 insertions(+)

commit 93194e7c538b0132a955bc68e19c2533fa17c935
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 13:32:29 2018 +0200

    Problem: non-portable memset

    Solution: add dummy pointer meber to union instead

 src/address.cpp | 2 +-
 src/address.hpp | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 9c8fde09ca93d7e5eb4ffd03366b61195cbd43e5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 13:30:19 2018 +0200

    Problem: inconsistent control structures in address.cpp, redundant check for NULLness before delete

    Solution: harmonize, remove redundant checks

 src/address.cpp | 53 ++++++++++++++++-------------------------------------
 1 file changed, 16 insertions(+), 37 deletions(-)

commit 0179b7577affeeb492a9765c17a0f31c25d06a77
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 13:22:34 2018 +0200

    Problem: literals protocol names used at various places

    Solution: introduced named constants

 src/address.cpp         | 20 ++++++++++----------
 src/address.hpp         | 17 +++++++++++++++++
 src/ipc_connecter.cpp   |  2 +-
 src/session_base.cpp    | 15 ++++++++-------
 src/socket_base.cpp     | 37 +++++++++++++++++++------------------
 src/socks_connecter.cpp |  2 +-
 src/tcp_connecter.cpp   |  2 +-
 src/zmq.cpp             |  8 ++++----
 8 files changed, 61 insertions(+), 42 deletions(-)

commit 06eaf20571b43ded44bc1f47a479a361b0872901
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 30 21:21:59 2018 +0100

    Problem: autoconf checks tautological compiler flag only for C++

    Solution: check for C as well and set the flags separately

 configure.ac | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit bd76926f5b5d64e1c10172e23545a0559ea75d1a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 13:13:31 2018 +0200

    Problem: code style issues in options_t (C-style cast, suboptimal std::string::find call, redundant method is_valid)

    Solution: resolved these issues

 src/options.cpp     | 38 +++++++++++++++++++-------------------
 src/options.hpp     |  2 --
 src/socket_base.cpp |  5 -----
 3 files changed, 19 insertions(+), 26 deletions(-)

commit a96a87f34300b5a586ed952d2a34a3d48cf84742
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 10:35:01 2018 +0200

    Problem: problematic atoi function is used (CERT ERR-34C)

    Solution: use strtol instead

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

commit 273137741dp35e0dp99a791490dcd1354c2e667b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 10:28:14 2018 +0200

    Problem: protected data members in ip_address_t, ip_address_mask_t violates LSP

    Solution: make ip_address_mask_t independent of ip_address_t, they do not share that much, remove some code duplication between ip_address_t and ip_addr_t

 src/tcp_address.cpp | 71 +++++++++++++++++++++++++----------------------------
 src/tcp_address.hpp | 10 ++++----
 2 files changed, 38 insertions(+), 43 deletions(-)

commit 314ac28dbdc96e7f7a572a90cd537d9fd3549e45
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 10:03:55 2018 +0200

    Problem: protected data member in ip_resolver_t

    Solution: declare private

 src/ip_resolver.hpp | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

commit 573815da837a8d97d53f019fa1d629e4be722227
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 09:57:46 2018 +0200

    Problem: protected data member in encoder_base_t

    Solution: encapsulate data member properly

 src/encoder.hpp     | 21 +++++++++++----------
 src/raw_encoder.cpp |  2 +-
 src/v1_encoder.cpp  |  8 ++++----
 src/v2_encoder.cpp  | 10 +++++-----
 4 files changed, 21 insertions(+), 20 deletions(-)

commit 088fd65bf2d49c3c4dd665bdpfb0a288fa88cc8b
Merge: c6c63481 be8e7de6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 30 08:36:33 2018 +0100

    Merge pull request #3143 from sigiesec/remove-extra-files

    Problem: temporary files in repo

commit be8e7de6be6631609be063273c78e97ed3e37172
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 30 09:30:00 2018 +0200

    Problem: temporary files in repo

    Solution: remove them

 src/router.cpp~RF40cad05.TMP       | 549 ----------------------------
 src/session_base.cpp~RF4069b78.TMP | 711 -------------------------------------
 src/tcp_connecter.cpp.orig         | 444 -----------------------
 3 files changed, 1704 deletions(-)

commit c6c63481c39bba688fc1142ffb23ef90e6ebb51a
Merge: 2dfdcaff 5a343fc2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 29 16:47:57 2018 +0100

    Merge pull request #3142 from sigiesec/analyze

    Remove duplication between stream_t and router_t

commit 5a343fc27bbd000f3e65dfb68679702688f8a437
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 29 12:54:33 2018 +0200

    Problem: stream_t/router_t access data member of base class

    Solution: pull up functionality to base class

 src/router.cpp      | 68 +++++++++++++++++++++--------------------------------
 src/socket_base.cpp | 48 ++++++++++++++++++++++++++++++++++---
 src/socket_base.hpp | 22 ++++++++++++++---
 src/stream.cpp      | 22 +++++++----------
 4 files changed, 100 insertions(+), 60 deletions(-)

commit ab3895a47035e9684b83445611d3667c1fde1161
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 29 12:20:49 2018 +0200

    Problem: duplicated code in stream_t & router_t

    Solution: pulled up to routing_socket_base_t

 src/router.cpp      |  4 +---
 src/socket_base.cpp | 12 ++++++++++++
 src/socket_base.hpp |  9 ++++++---
 src/stream.cpp      |  5 +----
 4 files changed, 20 insertions(+), 10 deletions(-)

commit 09fab930b3d4649d5cf3cb8acdfa6fdd06e659c2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 29 11:40:40 2018 +0200

    Problem: xwrite_activated duplicated between stream_t and router_t

    Solution: pull up into routing_socket_base_t

 src/router.cpp      | 12 ------------
 src/router.hpp      |  1 -
 src/socket_base.cpp | 12 ++++++++++++
 src/socket_base.hpp |  5 ++++-
 src/stream.cpp      | 14 ++------------
 src/stream.hpp      |  1 -
 6 files changed, 18 insertions(+), 27 deletions(-)

commit c9d6ef3035f489076df8879d3f7d9737b40b5d5d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 29 11:35:44 2018 +0200

    Problem: Member outpipes is duplicate between router_t and stream_t

    Solution: extract into common base class routing_socket_base_t, for now as protected

 src/router.cpp      | 12 ++++++------
 src/router.hpp      | 10 ----------
 src/socket_base.hpp | 10 ++++++++++
 src/stream.cpp      | 24 ++++++++++++------------
 src/stream.hpp      | 10 ----------
 5 files changed, 28 insertions(+), 38 deletions(-)

commit 728eddfcfd7fe3b856d7180feb8bbc551b2593c4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 29 11:32:33 2018 +0200

    Problem: socket_base_t::connect_routing_id is protected and only used in router_t and stream_t

    Solution: add an intermediary base class routing_socket_base_t, move common functionality there and make connect_routing_id private

 src/router.cpp      | 30 +++++++++++-------------------
 src/router.hpp      |  2 +-
 src/socket_base.cpp | 33 +++++++++++++++++++++++++++++++++
 src/socket_base.hpp | 18 +++++++++++++++---
 src/stream.cpp      | 30 ++++++++++--------------------
 src/stream.hpp      |  2 +-
 6 files changed, 71 insertions(+), 44 deletions(-)

commit 25461a78dd5104879516639af61e2756256681d5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 29 11:08:22 2018 +0200

    Problem: members of mechanmism_t are needlessly protected

    Solution: make them private

 src/mechanism.cpp |  4 ++--
 src/mechanism.hpp | 19 +++++++++++--------
 2 files changed, 13 insertions(+), 10 deletions(-)

commit 2dfdcaff260453582ee12d11a5c92205f0a83060
Merge: bbc90388 47dcd84f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 28 19:22:56 2018 +0100

    Merge pull request #3141 from sigiesec/analyze

    More code style improvements

commit 47dcd84f218667a697f6c201621e52bdcc892872
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 17:46:47 2018 +0200

    Problem: C-style casts

    Solution: replace by reinterpret_casts or avoid entirely

 src/mechanism.cpp |  8 +++++---
 src/options.cpp   | 20 ++++++++++----------
 2 files changed, 15 insertions(+), 13 deletions(-)

commit 917a4a8e106a333ffef29329d8ad765ab53bc531
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 17:37:54 2018 +0200

    Problem: reinterpret_casts between unsigned char* and char*

    Solution: use char* from the beginning

 src/udp_engine.cpp | 20 ++++++++++----------
 src/udp_engine.hpp |  4 ++--
 2 files changed, 12 insertions(+), 12 deletions(-)

commit 0a43c66a3221d645bdb01cb0908dded06cf5d58e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 17:19:36 2018 +0200

    Problem: magic literals in zap_client.cpp

    Solution: extracted constants

 src/zap_client.cpp | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

commit 7c2d1c18246dc97d5cf1240d893f62f6885492f0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 18:46:36 2018 +0200

    Problem: magic literals for UCHAR_MAX

    Solution: use UCHAR_MAX constant instead

 src/mechanism.cpp     | 3 ++-
 src/options.cpp       | 5 +++--
 src/stream_engine.cpp | 6 ++++--
 src/thread.cpp        | 2 +-
 src/v1_decoder.cpp    | 5 +++--
 src/v1_encoder.cpp    | 6 ++++--
 src/v2_encoder.cpp    | 6 ++++--
 7 files changed, 21 insertions(+), 12 deletions(-)

commit a4c817e73617e96bd1371a5addd6c49879b091cc
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 18:45:41 2018 +0200

    Problem: magic number "2" in socket_base.cpp

    Solution: calculate from field sizes

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

commit d75ec5e055f3d4c02203bf4a6d786a58baa80f38
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 16:50:20 2018 +0200

    Problem: produce_* functions always return 0

    Solution: change return type to void, and remove redundant result checks

 src/plain_client.cpp | 18 ++++++------------
 src/plain_client.hpp |  4 ++--
 src/plain_server.cpp | 25 +++++++++----------------
 src/plain_server.hpp |  6 +++---
 4 files changed, 20 insertions(+), 33 deletions(-)

commit 7f880c256f80a60a9922d583d48d1347bb3387a5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 16:41:44 2018 +0200

    Problem: magic numbers and data duplication in plain_*.cpp

    Solution: extract constants / move to plain_common.hpp

 CMakeLists.txt       |  1 +
 Makefile.am          |  1 +
 src/plain_client.cpp | 43 ++++++++++++++++++++++++++----------------
 src/plain_common.hpp | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/plain_server.cpp | 23 +++++++----------------
 5 files changed, 89 insertions(+), 32 deletions(-)

commit 8269b23e5617dcf0cbe75f79693f2aad36c6a527
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 16:30:20 2018 +0200

    Problem: magic numbers and code duplication in msg.cpp

    Solution: extract constants and unified cases

 src/msg.cpp | 29 ++++++++++++++---------------
 src/msg.hpp |  1 +
 2 files changed, 15 insertions(+), 15 deletions(-)

commit 18000a213f85bf14c4446059ebe557dp115d62c6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 16:19:46 2018 +0200

    Problem: magic numbers in mechanism_base.cpp

    Solution: extract constants

 src/mechanism_base.cpp | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

commit abca9f6bc142c2850cd03abfb414ee67a4a31760
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 11:54:26 2018 +0200

    Problem: Magic numbers in plain_server.cpp

    Solution: introduced constants

 src/plain_server.cpp | 54 +++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 17 deletions(-)

commit 2da6629e0f42e2ba32ed523d1bb55ee39f69aa0d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 10:04:23 2018 +0200

    Problem: Magic numbers "1" and "100" in signaler.cpp

    Solution: introduced constants, use std::min/std::max instead of control structures

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

commit a6060674b49e4f56a4c302eefe572c7b7a76f310
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 09:58:39 2018 +0200

    Problem: Magic numbers "32" and "128" in tcp_address.cpp

    Solution: introduced constants

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

commit 93e75fd6954a38d04f5ff8fa119df4b7b9019fb3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 09:46:35 2018 +0200

    Problem: Magic numbers "6" and "7" in null_mechanism.cpp

    Solution: introduced constants

 src/null_mechanism.cpp | 43 +++++++++++++++++++++++++++----------------
 1 file changed, 27 insertions(+), 16 deletions(-)

commit c05db7f02570ac01b6fbc80b6a452edcee2fdb6c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 09:36:16 2018 +0200

    Problem: Magic numbers "1" and "6" in null_mechanism.cpp

    Solution: introduced constants

 src/null_mechanism.cpp | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit ff27dd01f066a56a71b0c790101f3b45f1fc7cad
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 09:31:11 2018 +0200

    Problem: Magic numbers "1" and "4" in mechanism.cpp

    Solution: introduced constants

 src/mechanism.cpp | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

commit 7c9d058cdb519d484b0136ecaa5bf811b365e5ee
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 09:27:16 2018 +0200

    Problem: Magic number "2" in ip_resolver.cpp

    Solution: introduced constant

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

commit 16bb62e6f7d6419528077b2f5d765ba6e0a414e7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 09:23:43 2018 +0200

    Problem: ctx_t::_slots is a plain array

    Solution: use a std::vector instead

 src/ctx.cpp | 36 +++++++++++++++---------------------
 src/ctx.hpp |  3 +--
 2 files changed, 16 insertions(+), 23 deletions(-)

commit a0a60e80caf805d1c8eb372976d0f704903cec68
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 09:13:24 2018 +0200

    Problem: Magic number "2" in ctx.cpp

    Solution: introduced constant

 src/ctx.cpp | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit bbc903884fbebce3cbd98e254bd7d51eca1d4c02
Merge: 2d1bb07f 58d13395
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 28 15:30:42 2018 +0200

    Merge pull request #3140 from bluca/clang_tautological

    Problem: build broken with clang 6 on Android NDK 17

commit 58d13395ece1fa0dd9b0583d736af4ac342c1267
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 26 20:05:14 2018 +0100

    Problem: clang 6 warns about comparisons on 64 bit

    Solution: ignore tautological-constant-compare warnings, as they
    might be useless on 64 bit but they are not on 32 bit where sizeof
    size_t != sizeof uint64_t

 CMakeLists.txt | 12 ++++++++++++
 configure.ac   |  6 ++++++
 2 files changed, 18 insertions(+)

commit 624c14236585e8fb1352c4aa3d1f74598e9b6b8a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 26 20:08:03 2018 +0100

    Problem: static analysis warning about ifdef typo

    Solution: fix it

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

commit 2d1bb07f8d042c276b4151521fba1d1b6452a0c9
Merge: 08974695 779d120f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 27 15:44:27 2018 +0100

    Merge pull request #3139 from sigiesec/style-improvements

    Code style improvements

commit 779d120fa37eba8060f14fe8c32d137b911bea23
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 27 07:01:36 2018 -0400

    Problem: tests do not follow naming style

    Solution: apply naming style

 tests/test_base85.cpp               |  20 +--
 tests/test_client_server.cpp        |  14 +-
 tests/test_connect_rid.cpp          |   8 +-
 tests/test_ctx_destroy.cpp          |   8 +-
 tests/test_ctx_options.cpp          |  32 ++--
 tests/test_disconnect_inproc.cpp    |  42 ++---
 tests/test_filter_ipc.cpp           |  29 ++--
 tests/test_heartbeats.cpp           | 108 ++++++------
 tests/test_hwm.cpp                  |  30 ++--
 tests/test_hwm_pubsub.cpp           |  18 +-
 tests/test_inproc_connect.cpp       | 140 +++++++--------
 tests/test_iov.cpp                  |  36 ++--
 tests/test_last_endpoint.cpp        |   8 +-
 tests/test_metadata.cpp             |  36 ++--
 tests/test_msg_ffn.cpp              |   6 +-
 tests/test_pair_tcp.cpp             |  12 +-
 tests/test_poller.cpp               | 113 +++++++------
 tests/test_proxy.cpp                |  52 +++---
 tests/test_proxy_single_socket.cpp  |   6 +-
 tests/test_proxy_terminate.cpp      |   8 +-
 tests/test_pub_invert_matching.cpp  |  24 +--
 tests/test_reconnect_ivl.cpp        |  23 +--
 tests/test_req_relaxed.cpp          |  12 +-
 tests/test_reqrep_tcp.cpp           |  48 +++---
 tests/test_router_mandatory.cpp     |   9 +-
 tests/test_router_mandatory_hwm.cpp |  14 +-
 tests/test_security_curve.cpp       | 159 ++++++++---------
 tests/test_security_gssapi.cpp      | 129 +++++++-------
 tests/test_security_null.cpp        |  36 ++--
 tests/test_security_plain.cpp       |   4 +-
 tests/test_security_zap.cpp         | 136 +++++++--------
 tests/test_shutdown_stress.cpp      |   4 +-
 tests/test_shutdown_stress_tipc.cpp |   6 +-
 tests/test_sockopt_hwm.cpp          |  14 +-
 tests/test_sodium.cpp               |   4 +-
 tests/test_spec_dealer.cpp          |  43 ++---
 tests/test_spec_pushpull.cpp        |  64 +++----
 tests/test_spec_rep.cpp             |  12 +-
 tests/test_spec_req.cpp             |  22 +--
 tests/test_spec_router.cpp          |  48 +++---
 tests/test_srcfd.cpp                |   8 +-
 tests/test_stream_disconnect.cpp    |   8 +-
 tests/test_stream_timeout.cpp       |  18 +-
 tests/test_thread_safe.cpp          |  10 +-
 tests/test_timers.cpp               |   6 +-
 tests/test_unbind_wildcard.cpp      |  42 ++---
 tests/test_use_fd_ipc.cpp           |   8 +-
 tests/test_use_fd_tcp.cpp           |   6 +-
 tests/testutil.hpp                  |  94 +++++------
 tests/testutil_security.hpp         | 329 ++++++++++++++++++------------------
 tests/testutil_unity.hpp            | 108 ++++++------
 51 files changed, 1093 insertions(+), 1081 deletions(-)

commit d767909b50e2ab83557fb95dce967470297e7937
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 27 06:48:49 2018 -0400

    Problem: old C-style casts used

    Solution: replace by static_cast/reinterpret_cast

 src/epoll.cpp         | 19 ++++++++++---------
 src/ipc_address.cpp   |  6 +++---
 src/ipc_connecter.cpp |  3 ++-
 src/ipc_listener.cpp  |  7 ++++---
 src/random.cpp        |  2 +-
 src/socket_poller.cpp |  2 +-
 src/tcp.cpp           |  7 ++++---
 src/tcp_listener.cpp  |  5 +++--
 src/udp_engine.cpp    |  5 +++--
 src/zmq.cpp           |  2 +-
 10 files changed, 32 insertions(+), 26 deletions(-)

commit e3c73d9881180a454b654cd89b2e5b7b07e31581
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 27 11:10:39 2018 +0200

    Problem: inconsistent naming style for private data members, conflicts with naming of local variables and member functions

    Solution: apply and check _lower_case naming style for private data members

 .clang-tidy                        |  16 +-
 src/array.hpp                      |  40 +-
 src/atomic_counter.hpp             |  57 +--
 src/atomic_ptr.hpp                 |  84 ++---
 src/blob.hpp                       |  92 ++---
 src/client.cpp                     |  28 +-
 src/client.hpp                     |   4 +-
 src/clock.cpp                      |  18 +-
 src/clock.hpp                      |   4 +-
 src/condition_variable.hpp         |  69 ++--
 src/ctx.cpp                        | 340 ++++++++---------
 src/ctx.hpp                        |  58 +--
 src/curve_client.cpp               |  38 +-
 src/curve_client.hpp               |   4 +-
 src/curve_server.cpp               |  36 +-
 src/curve_server.hpp               |  10 +-
 src/dbuffer.hpp                    |  54 +--
 src/dealer.cpp                     |  28 +-
 src/dealer.hpp                     |   6 +-
 src/decoder.hpp                    |  70 ++--
 src/decoder_allocators.cpp         |  68 ++--
 src/decoder_allocators.hpp         |  36 +-
 src/dgram.cpp                      |  48 +--
 src/dgram.hpp                      |   8 +-
 src/dish.cpp                       |  80 ++--
 src/dish.hpp                       |  14 +-
 src/dist.cpp                       | 106 +++---
 src/dist.hpp                       |  10 +-
 src/encoder.hpp                    |  66 ++--
 src/epoll.cpp                      |  40 +-
 src/epoll.hpp                      |   8 +-
 src/fq.cpp                         |  74 ++--
 src/fq.hpp                         |  12 +-
 src/gather.cpp                     |  18 +-
 src/gather.hpp                     |   2 +-
 src/generic_mtrie.hpp              |  10 +-
 src/generic_mtrie_impl.hpp         | 350 ++++++++---------
 src/io_object.cpp                  |  26 +-
 src/io_object.hpp                  |   2 +-
 src/io_thread.cpp                  |  34 +-
 src/io_thread.hpp                  |   6 +-
 src/ip_resolver.cpp                |  60 +--
 src/ip_resolver.hpp                |  12 +-
 src/lb.cpp                         |  80 ++--
 src/lb.hpp                         |  10 +-
 src/mailbox.cpp                    |  38 +-
 src/mailbox.hpp                    |  10 +-
 src/mailbox_safe.cpp               |  40 +-
 src/mailbox_safe.hpp               |   8 +-
 src/mechanism.cpp                  |  10 +-
 src/mechanism.hpp                  |   4 +-
 src/metadata.cpp                   |  10 +-
 src/metadata.hpp                   |   4 +-
 src/msg.cpp                        | 305 +++++++--------
 src/msg.hpp                        |   2 +-
 src/mutex.hpp                      |  66 ++--
 src/null_mechanism.cpp             |  44 +--
 src/null_mechanism.hpp             |  12 +-
 src/object.cpp                     |  38 +-
 src/object.hpp                     |   4 +-
 src/own.cpp                        |  74 ++--
 src/own.hpp                        |  12 +-
 src/pair.cpp                       |  38 +-
 src/pair.hpp                       |   6 +-
 src/pipe.cpp                       | 265 ++++++-------
 src/pipe.hpp                       |  38 +-
 src/plain_client.cpp               |  24 +-
 src/plain_client.hpp               |   2 +-
 src/poller_base.cpp                |  32 +-
 src/poller_base.hpp                |  10 +-
 src/pull.cpp                       |  12 +-
 src/pull.hpp                       |   2 +-
 src/push.cpp                       |  10 +-
 src/push.hpp                       |   2 +-
 src/radio.cpp                      |  66 ++--
 src/radio.hpp                      |  12 +-
 src/raw_decoder.cpp                |  22 +-
 src/raw_decoder.hpp                |   6 +-
 src/reaper.cpp                     |  54 +--
 src/reaper.hpp                     |  12 +-
 src/rep.cpp                        |  22 +-
 src/rep.hpp                        |   4 +-
 src/req.cpp                        |  86 ++---
 src/req.hpp                        |  14 +-
 src/router.cpp                     | 260 ++++++-------
 src/router.cpp~RF40cad05.TMP       | 549 +++++++++++++++++++++++++++
 src/router.hpp                     |  38 +-
 src/scatter.cpp                    |  10 +-
 src/scatter.hpp                    |   2 +-
 src/select.cpp                     |  92 +++--
 src/select.hpp                     |  10 +-
 src/server.cpp                     |  46 +--
 src/server.hpp                     |   8 +-
 src/session_base.cpp               | 270 +++++++-------
 src/session_base.cpp~RF4069b78.TMP | 711 +++++++++++++++++++++++++++++++++++
 src/session_base.hpp               |  22 +-
 src/signaler.cpp                   |  74 ++--
 src/signaler.hpp                   |   4 +-
 src/socket_base.cpp                | 296 +++++++--------
 src/socket_base.hpp                |  40 +-
 src/socket_poller.cpp              | 244 ++++++------
 src/socket_poller.hpp              |  24 +-
 src/socks.cpp                      |  94 ++---
 src/socks.hpp                      |  20 +-
 src/socks_connecter.cpp            | 215 +++++------
 src/socks_connecter.hpp            |  32 +-
 src/stream.cpp                     | 120 +++---
 src/stream.hpp                     |  18 +-
 src/stream_engine.cpp              | 746 ++++++++++++++++++-------------------
 src/stream_engine.hpp              |  70 ++--
 src/tcp_address.cpp                |  90 ++---
 src/tcp_address.hpp                |   6 +-
 src/tcp_connecter.cpp              | 166 ++++-----
 src/tcp_connecter.cpp.orig         | 444 ++++++++++++++++++++++
 src/tcp_connecter.hpp              |  20 +-
 src/tcp_listener.cpp               |  95 ++---
 src/tcp_listener.hpp               |  10 +-
 src/thread.cpp                     | 109 +++---
 src/thread.hpp                     |  28 +-
 src/timers.cpp                     |  78 ++--
 src/timers.hpp                     |  10 +-
 src/trie.cpp                       | 246 ++++++------
 src/trie.hpp                       |  10 +-
 src/udp_address.cpp                |  58 +--
 src/udp_address.hpp                |  10 +-
 src/udp_engine.cpp                 | 174 ++++-----
 src/udp_engine.hpp                 |  26 +-
 src/v1_decoder.cpp                 |  46 +--
 src/v1_decoder.hpp                 |   8 +-
 src/v1_encoder.cpp                 |  14 +-
 src/v1_encoder.hpp                 |   2 +-
 src/v2_decoder.cpp                 |  60 +--
 src/v2_decoder.hpp                 |  12 +-
 src/v2_encoder.cpp                 |  10 +-
 src/v2_encoder.hpp                 |   2 +-
 src/xpub.cpp                       | 167 ++++-----
 src/xpub.hpp                       |  28 +-
 src/xsub.cpp                       |  68 ++--
 src/xsub.hpp                       |  12 +-
 src/ypipe.hpp                      |  50 +--
 src/yqueue.hpp                     |  98 ++---
 src/zap_client.cpp                 |   4 +-
 src/zap_client.hpp                 |   2 +-
 143 files changed, 5783 insertions(+), 4051 deletions(-)

commit 06cfd0d8ad79226f1550021cd2f4eb5b4144e387
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 27 10:03:09 2018 +0200

    Problem: unclear why QueryPerformanceFrequency is called for every call of QueryPerformanceCounter

    Solution: add a comment

 src/clock.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 97ba02bc2f26813c922f31a1cb260e4aa005f82d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat May 26 18:49:56 2018 +0200

    Problem: redundant empty dtor

    Solution: removed

 src/clock.cpp | 4 ----
 src/clock.hpp | 1 -
 2 files changed, 5 deletions(-)

commit 6ef67f13e3f285ea497a17c3730c418bfb711340
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat May 26 18:45:58 2018 +0200

    Problem: use of C-style casts and magic literals

    Solution: replace by static_cast, and introduce appropriate constants

 src/clock.cpp | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

commit 089746959d2971d37606908ed20ad4444c7f74ed
Merge: fdp88633 0c74e8a0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 26 19:19:48 2018 +0100

    Merge pull request #3137 from sigiesec/disable-parallel-testing

    Problem: VS2008/2010/2017 tests fail if run in parallel

commit 0c74e8a0ad712650507b4413a91118f9dbe5b961
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat May 26 17:17:17 2018 +0200

    Problem: cmake install is not tested

    Solution: run cmake --build --target install instead of msbuild to build on appveyor

 appveyor.yml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit a1efc68516fe46ef66717f1496db0771441ad654
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat May 26 17:10:08 2018 +0200

    Problem: appveyor CI takes a long time

    Solution: run some builds only on master or *full-ci* branches

 appveyor.yml | 54 ++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 40 insertions(+), 14 deletions(-)

commit 33ba7e14b3ca1e7441dd3ac73a71dd9062d23973
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 21:56:58 2018 +0200

    Problem: VS2008/2010/2017 tests fail if run in parallel

    Solution: disabled parallel testing for these VS versions

 appveyor.yml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit fdp88633d7b0323507d8b851ddd22a0eed2c145b
Merge: 79d5ac3d 37344d0b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 26 12:08:12 2018 +0100

    Merge pull request #3138 from sigiesec/fix-various-style-issues

    Fix various code style issues

commit 37344d0b7c09efa414e4646f61a1edfb77edp85c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 23:14:43 2018 +0200

    Problem: redundant old-style void argument declarations

    Solution: remove

 src/err.cpp           | 2 +-
 src/err.hpp           | 2 +-
 src/random.cpp        | 4 ++--
 src/router.cpp        | 2 +-
 src/socket_poller.hpp | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

commit 12a97bb769b4a0c8cfe2445a36cd4732e6ef3a05
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 23:10:10 2018 +0200

    Problem: redundant else after return

    Solution: remove else

 src/curve_client.cpp       |   2 +-
 src/dish.cpp               | 100 ++++++++++++++++++++++-----------------------
 src/generic_mtrie_impl.hpp |  13 +++---
 src/ip.cpp                 |  20 ++++-----
 src/ip_resolver.cpp        |  11 ++---
 src/metadata.cpp           |   4 +-
 src/msg.cpp                |   4 +-
 src/null_mechanism.cpp     |  10 ++---
 src/options.cpp            |   6 ++-
 src/pipe.cpp               |   2 +-
 src/plain_client.cpp       |   2 +-
 src/radio.cpp              |  11 +++--
 src/router.cpp             |  48 +++++++++++-----------
 src/select.cpp             |  15 ++++---
 src/socks.cpp              |  19 ++++-----
 src/stream_engine.cpp      |   3 +-
 src/tcp_address.cpp        |   8 ++--
 src/timers.cpp             |   4 +-
 src/trie.cpp               |  15 ++++---
 src/xsub.cpp               |   3 +-
 src/zap_client.cpp         |   2 +-
 src/zmq.cpp                |   7 ++--
 22 files changed, 150 insertions(+), 159 deletions(-)

commit 21498700ef6a2424f542325c2433f6445853e4f7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 23:03:52 2018 +0200

    Problem: integer literals assigned to bool variables

    Solution: replace by bool literals

 src/lb.cpp           | 2 +-
 src/options.cpp      | 2 +-
 src/session_base.cpp | 4 ++--
 src/xpub.cpp         | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit eacc805646daffb9a3a994ef87d654b1c201ccb4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 22:59:13 2018 +0200

    Problem: complex unnecessary ternary expressions

    Solution: simplify to comparison against 0

 src/dist.cpp         | 2 +-
 src/fq.cpp           | 2 +-
 src/lb.cpp           | 4 ++--
 src/pipe.cpp         | 2 +-
 src/router.cpp       | 6 +++---
 src/session_base.cpp | 2 +-
 src/socket_base.cpp  | 2 +-
 src/xpub.cpp         | 2 +-
 src/xsub.cpp         | 4 ++--
 9 files changed, 13 insertions(+), 13 deletions(-)

commit 1432011277d3201f5d53a0d5a17c0b175d7e35eb
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 22:41:05 2018 +0200

    Problem: inconsistent local variable naming

    Solution: configured clang-tidy check and applied fixes

 .clang-tidy       | 24 ++++++++++++------------
 src/clock.cpp     |  6 +++---
 src/ctx.cpp       |  4 ++--
 src/dealer.cpp    |  8 ++++----
 src/router.cpp    |  8 ++++----
 src/tcp.cpp       |  8 ++++----
 src/zmq_utils.cpp |  6 +++---
 7 files changed, 32 insertions(+), 32 deletions(-)

commit c581f43c977f8776a56d20b7654260928e4c16b8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 17:58:30 2018 +0200

    Problem: parameter naming style inconsistent

    Solution: define and apply parameter naming style: lower_case_

 .clang-tidy                |  10 +--
 include/zmq.h              | 124 +++++++++++++++++----------------
 src/atomic_counter.hpp     |  25 +++----
 src/atomic_ptr.hpp         |   4 +-
 src/blob.hpp               |  69 +++++++++---------
 src/client.hpp             |   2 +-
 src/ctx.cpp                |  26 +++----
 src/ctx.hpp                |   2 +-
 src/curve_client.cpp       |  32 ++++-----
 src/curve_client.hpp       |   6 +-
 src/curve_client_tools.hpp | 170 +++++++++++++++++++++++----------------------
 src/curve_server.cpp       |   5 +-
 src/curve_server.hpp       |   2 +-
 src/dbuffer.hpp            |   4 +-
 src/dealer.hpp             |   2 +-
 src/decoder.hpp            |   4 +-
 src/decoder_allocators.cpp |  10 +--
 src/decoder_allocators.hpp |   8 +--
 src/dgram.hpp              |   2 +-
 src/err.cpp                |   8 +--
 src/err.hpp                |   4 +-
 src/i_decoder.hpp          |   2 +-
 src/i_encoder.hpp          |   2 +-
 src/ip.cpp                 |  18 ++---
 src/ip.hpp                 |   4 +-
 src/ip_resolver.cpp        |  29 ++++----
 src/ip_resolver.hpp        |   6 +-
 src/mailbox_safe.cpp       |   8 +--
 src/mailbox_safe.hpp       |   4 +-
 src/mechanism.cpp          |  71 +++++++++----------
 src/mechanism.hpp          |  29 ++++----
 src/mechanism_base.cpp     |  12 ++--
 src/mechanism_base.hpp     |   4 +-
 src/metadata.cpp           |   8 +--
 src/metadata.hpp           |   4 +-
 src/msg.cpp                |  11 +--
 src/msg.hpp                |  22 +++---
 src/null_mechanism.cpp     |  18 ++---
 src/null_mechanism.hpp     |   8 ++-
 src/object.cpp             |   4 +-
 src/object.hpp             |   4 +-
 src/options.cpp            |   8 +--
 src/options.hpp            |   2 +-
 src/pair.hpp               |   2 +-
 src/plain_client.cpp       |  26 +++----
 src/plain_client.hpp       |   6 +-
 src/plain_server.cpp       |  10 +--
 src/plain_server.hpp       |   4 +-
 src/proxy.cpp              |  45 ++++++------
 src/random.cpp             |   6 +-
 src/raw_decoder.hpp        |   2 +-
 src/rep.hpp                |   2 +-
 src/req.cpp                |   6 +-
 src/router.hpp             |   4 +-
 src/select.cpp             |  14 ++--
 src/select.hpp             |   6 +-
 src/server.hpp             |   2 +-
 src/session_base.cpp       |  10 +--
 src/session_base.hpp       |   2 +-
 src/socket_base.cpp        |   4 +-
 src/socket_base.hpp        |  16 ++---
 src/socket_poller.cpp      |  42 +++++------
 src/socket_poller.hpp      |  30 ++++----
 src/socks.cpp              |  18 ++---
 src/socks.hpp              |   4 +-
 src/socks_connecter.cpp    |   8 +--
 src/socks_connecter.hpp    |   4 +-
 src/stream.hpp             |   2 +-
 src/stream_engine.cpp      |  14 ++--
 src/stream_engine.hpp      |  22 +++---
 src/tcp_address.cpp        |  41 +++++------
 src/tcp_address.hpp        |   6 +-
 src/tcp_connecter.cpp      |   8 +--
 src/tcp_connecter.hpp      |   2 +-
 src/thread.cpp             |   4 +-
 src/thread.hpp             |   2 +-
 src/timers.cpp             |   4 +-
 src/timers.hpp             |  10 +--
 src/tweetnacl.h            |  20 +++---
 src/udp_engine.cpp         |  12 ++--
 src/udp_engine.hpp         |   2 +-
 src/v2_decoder.cpp         |  24 +++----
 src/wire.hpp               |  38 +++++-----
 src/ypipe.hpp              |   4 +-
 src/ypipe_base.hpp         |   2 +-
 src/ypipe_conflate.hpp     |   2 +-
 src/zap_client.cpp         |  36 +++++-----
 src/zap_client.hpp         |  20 +++---
 src/zmq.cpp                |  24 +++----
 src/zmq_draft.h            |  70 ++++++++++---------
 src/zmq_utils.cpp          |  52 +++++++-------
 91 files changed, 758 insertions(+), 733 deletions(-)

commit 79d5ac3deeb944c9fd8a7a7a20a8b973d119fa5e
Merge: 50374bf6 76376098
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 25 15:57:45 2018 +0100

    Merge pull request #3135 from sigiesec/fix-heartbeat-ttl-max

    Fix ZMQ_HEARTBEAT_TTL maximum value check

commit 763760988f56865203ca733f825e4944856159c9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 13:32:07 2018 +0200

    Problem: VS2008 has no definition of UINT16_MAX

    Solution: provide definition based on _UI16_MAX

 src/stdint.hpp | 3 +++
 1 file changed, 3 insertions(+)

commit 8b030a92564829e69b92f8cc20bd20fc7cec713c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 11:02:06 2018 +0200

    Problem: no tests for corner cases of setsockopt ZMQ_HEARTBEAT_TTL

    Solution: added tests

 tests/test_heartbeats.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit d90e70c1cf681c3a8dfe0c1bfe9cab8f3f341096
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 25 10:50:47 2018 +0200

    Problem: maximum allowed value for ZMQ_HEARTBEAT_TTL is wrong

    Solution: use UINT16_MAX

 doc/zmq_setsockopt.txt | 1 +
 src/options.cpp        | 6 ++++--
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 50374bf6f534f181302c5fa1152c189ec5a0784c
Merge: f0f029c5 b791645a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 24 17:05:24 2018 +0100

    Merge pull request #3134 from sigiesec/fix-sonarcloud-component-name

    Fix sonarcloud component name

commit b791645a49f3c72fda8f0741714472801fe852bf
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 18:03:05 2018 +0200

    Problem: project key is not unique across organizations

    Solution: prefix project key with repo name

 builds/cmake/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f0f029c5496a6149d275009449d3146080007236
Merge: 653c2073 7b686900
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 24 17:02:57 2018 +0100

    Merge pull request #3132 from sigiesec/add-vs2008-vs2010-ci

    Add CI for VS2008 and VS2010 and fix their builds

commit 653c2073dee300b8a27e7f232d0c95275e8a6801
Merge: 1644d162 cf41dpd2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 17:08:34 2018 +0200

    Merge pull request #3133 from bluca/sonarqube_token

    Problem: missing sonarqube token

commit cf41dpd29de5a880fe212df143e9a87fbe7b5d9f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 24 16:06:08 2018 +0100

    Problem: missing sonarqube token

    Solution: add it

 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

commit 1644d162fb814ace8735fdcce97471bbc93be80f
Merge: edd9a0c5 6afa1cee
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 24 16:04:31 2018 +0100

    Merge pull request #3115 from sigiesec/analyze

    Add static analysis

commit 6afa1cee3a0756d3e81f33bf39e74a7d133f2158
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 13:42:09 2018 +0200

    Problem: travis-ci analysis build is always run

    Solution: configure to run only on scheduled runs or on specifically named branches

 .travis.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 51fd4b6a9db8372bccfb37cc1327cea3e73c7e99
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 11:56:09 2018 +0200

    Problem: analysis build on PR virtual merges

    Solution: skip analysis build in install stage

 appveyor.yml | 1 +
 1 file changed, 1 insertion(+)

commit 100745d3126fe677dpf884145ddedb51161a5b29
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 09:44:52 2018 +0200

    Problem: appveyor analysis runs on all branches

    Solution: restrict to specific branches

 appveyor.yml | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

commit 51d4b001961310902a494653b6a3158a4d3eba1a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 08:37:23 2018 +0200

    Problem: no clang-tidy configuration

    Solution: add initial .clang-tidy config file

 .clang-tidy | 407 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 407 insertions(+)

commit 7b686900f9c565ed7f587f0a06d68faf232925b9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 14:10:26 2018 +0200

    Problem: VS2008 build fails due to unavailable stdint.h

    Solution: specify not to use stdint.h for VS<=2008, fixes #3025

 tests/CMakeLists.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 1e89a517343e7f55556b4cf5ee8c2342100a03a4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 14:08:29 2018 +0200

    Problem: broken indentation

    Solution: fix indentation

 tests/CMakeLists.txt | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 2dp0c4e2c502f4fa91fbc431a24deb69925edd4f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 09:25:01 2018 +0200

    Problem: unnecessarily complex inheritance hierarchy in decoders, warning C4355 with VS2010

    Solution: make allocator a member of decoder_base_t

 src/decoder.hpp    | 20 +++++++++++---------
 src/v1_decoder.cpp |  3 +--
 src/v1_decoder.hpp |  3 +--
 src/v2_decoder.cpp | 23 ++++++++++++-----------
 src/v2_decoder.hpp |  6 ++----
 5 files changed, 27 insertions(+), 28 deletions(-)

commit d96a0301255b13bf08df828a335ded29f41bc56b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 16:07:22 2018 +0200

    Problem: no CI builds for VS2008/VS2010

    Solution: add to appveyor jobs

 appveyor.yml | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

commit 4d3516f634a4a5e3f522f5cb277da38b188d32eb
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 16 09:45:52 2018 +0200

    Problem: no static analysis under Linux

    Solution: activate clang-tidy, scan-build and sonar-scanner

 .travis.yml              | 20 +++++++++++++++++
 builds/cmake/ci_build.sh | 58 +++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 73 insertions(+), 5 deletions(-)

commit 2b31e50b013cc33cc235ed735c591c83aabcbe0d
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Wed May 16 09:12:26 2018 +0200

    Problem: No static analysis under Windows

    Solution: Enable VS static analyzer and core guideline checks

 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++++-
 appveyor.yml   | 35 ++++++++++++++++++++++++++++++++++-
 2 files changed, 67 insertions(+), 2 deletions(-)

commit edd9a0c5c88403f30570f0358d2e4c7ce7007987
Merge: f3e7911d b6d36c92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 24 09:22:26 2018 +0100

    Merge pull request #3130 from sigiesec/fix-automake

    Problem: autotools build broken

commit b6d36c92a287fe4c493c1298ece71c85a8e649f7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 24 08:59:30 2018 +0200

    Problem: autotools build broken

    Solution: fix directory reference

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

commit f3e7911dd6673dfe98ddfde0d6284a92f67351ee
Merge: a6cfbca3 06e0c077
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 23 21:15:56 2018 +0100

    Merge pull request #3127 from sigiesec/integrate-wepoll

    Support epoll polling under Windows with wepoll

commit a6cfbca3ac029e38185691fc6186c16a9cf3b1df
Merge: 01395829 64f2b100
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 23 18:47:07 2018 +0100

    Merge pull request #3128 from sigiesec/fix-test-inproc-connect

    Problem: test_context_socket is not thread-safe

commit 06e0c0776d0499cc6d82d2bf57b11e6dc1be1dd5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 16:47:13 2018 +0200

    Problem: cmake run is very slow with MSVC

    Solution: skip tests than can never succeed with MSVC

 CMakeLists.txt | 172 ++++++++++++++++++++++++++++++---------------------------
 1 file changed, 91 insertions(+), 81 deletions(-)

commit 013958299b33f58a18c4811dc0f8c5a1aac40732
Merge: b56e7f13 af6d70ec
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 23 16:47:08 2018 +0100

    Merge pull request #3129 from sigiesec/deprecate-msvc-sln-builds

    Problem: prepared Visual Studio solution files are hard to maintain and redundant with CMake builds

commit 64f2b100da3387c59921e08104c6ded29bfafdc8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 17:32:27 2018 +0200

    Problem: test_context_socket is not thread-safe

    Solution: use regular zmq_socket instead in thread functions

 tests/test_inproc_connect.cpp | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit af6d70ec7226045c44509af4488ff008f4b4184f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 17:26:28 2018 +0200

    Problem: prepared Visual Studio solution files are hard to maintain and redundant with CMake builds

    Solution: declare them as deprecated

 builds/README                                               |  10 ++++++++++
 builds/{msvc => deprecated-msvc}/.gitignore                 |   0
 builds/{msvc => deprecated-msvc}/Makefile.am                |   0
 builds/{msvc => deprecated-msvc}/build/build.bat            |   0
 builds/{msvc => deprecated-msvc}/build/buildall.bat         |   0
 builds/{msvc => deprecated-msvc}/build/buildbase.bat        |   0
 builds/{msvc => deprecated-msvc}/errno.cpp                  |   0
 builds/{msvc => deprecated-msvc}/errno.hpp                  |   0
 builds/{msvc => deprecated-msvc}/platform.hpp               |   0
 builds/{msvc => deprecated-msvc}/properties/Common.props    |   0
 builds/{msvc => deprecated-msvc}/properties/DLL.props       |   0
 builds/{msvc => deprecated-msvc}/properties/Debug.props     |   0
 builds/{msvc => deprecated-msvc}/properties/DebugDEXE.props |   0
 builds/{msvc => deprecated-msvc}/properties/DebugDLL.props  |   0
 builds/{msvc => deprecated-msvc}/properties/DebugLEXE.props |   0
 builds/{msvc => deprecated-msvc}/properties/DebugLIB.props  |   0
 builds/{msvc => deprecated-msvc}/properties/DebugLTCG.props |   0
 builds/{msvc => deprecated-msvc}/properties/DebugSEXE.props |   0
 builds/{msvc => deprecated-msvc}/properties/EXE.props       |   0
 builds/{msvc => deprecated-msvc}/properties/LIB.props       |   0
 builds/{msvc => deprecated-msvc}/properties/LTCG.props      |   0
 builds/{msvc => deprecated-msvc}/properties/Link.props      |   0
 builds/{msvc => deprecated-msvc}/properties/Messages.props  |   0
 builds/{msvc => deprecated-msvc}/properties/Output.props    |   0
 builds/{msvc => deprecated-msvc}/properties/Release.props   |   0
 .../{msvc => deprecated-msvc}/properties/ReleaseDEXE.props  |   0
 .../{msvc => deprecated-msvc}/properties/ReleaseDLL.props   |   0
 .../{msvc => deprecated-msvc}/properties/ReleaseLEXE.props  |   0
 .../{msvc => deprecated-msvc}/properties/ReleaseLIB.props   |   0
 .../{msvc => deprecated-msvc}/properties/ReleaseLTCG.props  |   0
 .../{msvc => deprecated-msvc}/properties/ReleaseSEXE.props  |   0
 builds/{msvc => deprecated-msvc}/properties/Win32.props     |   0
 builds/{msvc => deprecated-msvc}/properties/x64.props       |   0
 builds/{msvc => deprecated-msvc}/readme.txt                 |   0
 builds/{msvc => deprecated-msvc}/resource.h                 |   0
 builds/{msvc => deprecated-msvc}/resource.rc                | Bin
 .../vs2008/inproc_lat/inproc_lat.vcproj                     |   0
 .../vs2008/inproc_thr/inproc_thr.vcproj                     |   0
 builds/{msvc => deprecated-msvc}/vs2008/libzmq.sln          |   0
 .../{msvc => deprecated-msvc}/vs2008/libzmq/libzmq.vcproj   |   0
 .../vs2008/local_lat/local_lat.vcproj                       |   0
 .../vs2008/local_thr/local_thr.vcproj                       |   0
 .../vs2008/remote_lat/remote_lat.vcproj                     |   0
 .../vs2008/remote_thr/remote_thr.vcproj                     |   0
 .../vs2010/inproc_lat/inproc_lat.props                      |   0
 .../vs2010/inproc_lat/inproc_lat.vcxproj                    |   0
 .../vs2010/inproc_thr/inproc_thr.props                      |   0
 .../vs2010/inproc_thr/inproc_thr.vcxproj                    |   0
 .../{msvc => deprecated-msvc}/vs2010/libsodium.import.props |   0
 .../{msvc => deprecated-msvc}/vs2010/libsodium.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2010/libzmq.import.props |   0
 builds/{msvc => deprecated-msvc}/vs2010/libzmq.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2010/libzmq.sln          |   0
 builds/{msvc => deprecated-msvc}/vs2010/libzmq/libzmq.props |   0
 .../{msvc => deprecated-msvc}/vs2010/libzmq/libzmq.vcxproj  |   0
 .../vs2010/libzmq/libzmq.vcxproj.filters                    |   0
 builds/{msvc => deprecated-msvc}/vs2010/libzmq/libzmq.xml   |   0
 .../vs2010/local_lat/local_lat.props                        |   0
 .../vs2010/local_lat/local_lat.vcxproj                      |   0
 .../vs2010/local_thr/local_thr.props                        |   0
 .../vs2010/local_thr/local_thr.vcxproj                      |   0
 .../vs2010/remote_lat/remote_lat.props                      |   0
 .../vs2010/remote_lat/remote_lat.vcxproj                    |   0
 .../vs2010/remote_thr/remote_thr.props                      |   0
 .../vs2010/remote_thr/remote_thr.vcxproj                    |   0
 .../vs2012/inproc_lat/inproc_lat.props                      |   0
 .../vs2012/inproc_lat/inproc_lat.vcxproj                    |   0
 .../vs2012/inproc_thr/inproc_thr.props                      |   0
 .../vs2012/inproc_thr/inproc_thr.vcxproj                    |   0
 .../{msvc => deprecated-msvc}/vs2012/libsodium.import.props |   0
 .../{msvc => deprecated-msvc}/vs2012/libsodium.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2012/libzmq.import.props |   0
 builds/{msvc => deprecated-msvc}/vs2012/libzmq.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2012/libzmq.sln          |   0
 builds/{msvc => deprecated-msvc}/vs2012/libzmq/libzmq.props |   0
 .../{msvc => deprecated-msvc}/vs2012/libzmq/libzmq.vcxproj  |   0
 .../vs2012/libzmq/libzmq.vcxproj.filters                    |   0
 builds/{msvc => deprecated-msvc}/vs2012/libzmq/libzmq.xml   |   0
 .../vs2012/local_lat/local_lat.props                        |   0
 .../vs2012/local_lat/local_lat.vcxproj                      |   0
 .../vs2012/local_thr/local_thr.props                        |   0
 .../vs2012/local_thr/local_thr.vcxproj                      |   0
 .../vs2012/remote_lat/remote_lat.props                      |   0
 .../vs2012/remote_lat/remote_lat.vcxproj                    |   0
 .../vs2012/remote_thr/remote_thr.props                      |   0
 .../vs2012/remote_thr/remote_thr.vcxproj                    |   0
 .../vs2013/inproc_lat/inproc_lat.props                      |   0
 .../vs2013/inproc_lat/inproc_lat.vcxproj                    |   0
 .../vs2013/inproc_thr/inproc_thr.props                      |   0
 .../vs2013/inproc_thr/inproc_thr.vcxproj                    |   0
 .../{msvc => deprecated-msvc}/vs2013/libsodium.import.props |   0
 .../{msvc => deprecated-msvc}/vs2013/libsodium.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2013/libzmq.import.props |   0
 builds/{msvc => deprecated-msvc}/vs2013/libzmq.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2013/libzmq.sln          |   0
 builds/{msvc => deprecated-msvc}/vs2013/libzmq/libzmq.props |   0
 .../{msvc => deprecated-msvc}/vs2013/libzmq/libzmq.vcxproj  |   0
 .../vs2013/libzmq/libzmq.vcxproj.filters                    |   0
 builds/{msvc => deprecated-msvc}/vs2013/libzmq/libzmq.xml   |   0
 .../vs2013/local_lat/local_lat.props                        |   0
 .../vs2013/local_lat/local_lat.vcxproj                      |   0
 .../vs2013/local_thr/local_thr.props                        |   0
 .../vs2013/local_thr/local_thr.vcxproj                      |   0
 .../vs2013/remote_lat/remote_lat.props                      |   0
 .../vs2013/remote_lat/remote_lat.vcxproj                    |   0
 .../vs2013/remote_thr/remote_thr.props                      |   0
 .../vs2013/remote_thr/remote_thr.vcxproj                    |   0
 .../vs2015/inproc_lat/inproc_lat.props                      |   0
 .../vs2015/inproc_lat/inproc_lat.vcxproj                    |   0
 .../vs2015/inproc_thr/inproc_thr.props                      |   0
 .../vs2015/inproc_thr/inproc_thr.vcxproj                    |   0
 .../{msvc => deprecated-msvc}/vs2015/libsodium.import.props |   0
 .../{msvc => deprecated-msvc}/vs2015/libsodium.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2015/libzmq.import.props |   0
 builds/{msvc => deprecated-msvc}/vs2015/libzmq.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2015/libzmq.sln          |   0
 builds/{msvc => deprecated-msvc}/vs2015/libzmq/libzmq.props |   0
 .../{msvc => deprecated-msvc}/vs2015/libzmq/libzmq.vcxproj  |   0
 .../vs2015/libzmq/libzmq.vcxproj.filters                    |   0
 builds/{msvc => deprecated-msvc}/vs2015/libzmq/libzmq.xml   |   0
 .../vs2015/local_lat/local_lat.props                        |   0
 .../vs2015/local_lat/local_lat.vcxproj                      |   0
 .../vs2015/local_thr/local_thr.props                        |   0
 .../vs2015/local_thr/local_thr.vcxproj                      |   0
 .../vs2015/remote_lat/remote_lat.props                      |   0
 .../vs2015/remote_lat/remote_lat.vcxproj                    |   0
 .../vs2015/remote_thr/remote_thr.props                      |   0
 .../vs2015/remote_thr/remote_thr.vcxproj                    |   0
 builds/{msvc => deprecated-msvc}/vs2015_xp/libzmq.vcxproj   |   0
 builds/{msvc => deprecated-msvc}/vs2015_xp/platform.hpp     |   0
 .../vs2015_xp/test_zmq/test_multithread.cpp                 |   0
 .../vs2015_xp/test_zmq/test_zmq.vcxproj                     |   0
 .../vs2017/inproc_lat/inproc_lat.props                      |   0
 .../vs2017/inproc_lat/inproc_lat.vcxproj                    |   0
 .../vs2017/inproc_thr/inproc_thr.props                      |   0
 .../vs2017/inproc_thr/inproc_thr.vcxproj                    |   0
 .../{msvc => deprecated-msvc}/vs2017/libsodium.import.props |   0
 .../{msvc => deprecated-msvc}/vs2017/libsodium.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2017/libzmq.import.props |   0
 builds/{msvc => deprecated-msvc}/vs2017/libzmq.import.xml   |   0
 builds/{msvc => deprecated-msvc}/vs2017/libzmq.sln          |   0
 builds/{msvc => deprecated-msvc}/vs2017/libzmq/libzmq.props |   0
 .../{msvc => deprecated-msvc}/vs2017/libzmq/libzmq.vcxproj  |   0
 .../vs2017/libzmq/libzmq.vcxproj.filters                    |   0
 builds/{msvc => deprecated-msvc}/vs2017/libzmq/libzmq.xml   |   0
 .../vs2017/local_lat/local_lat.props                        |   0
 .../vs2017/local_lat/local_lat.vcxproj                      |   0
 .../vs2017/local_thr/local_thr.props                        |   0
 .../vs2017/local_thr/local_thr.vcxproj                      |   0
 .../vs2017/remote_lat/remote_lat.props                      |   0
 .../vs2017/remote_lat/remote_lat.vcxproj                    |   0
 .../vs2017/remote_thr/remote_thr.props                      |   0
 .../vs2017/remote_thr/remote_thr.vcxproj                    |   0
 153 files changed, 10 insertions(+)

commit 9df851225a263bf02c1a8f648f596ba50cd8c2d8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 16:31:05 2018 +0200

    Problem: test_radio_dish takes time near timeout

    Solution: increase timeout

 tests/CMakeLists.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 945c79de67480abb55c72c2c16d095e5bd2282ad
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 15:22:13 2018 +0200

    Problem: test cases setting ZMQ_MULTICAST_LOOP to false fail on Windows

    Solution: disable test cases

 tests/test_radio_dish.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 57ef8e2e3eb0b2c24c6948514df3ddp9c300014e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 14:35:55 2018 +0200

    Problem: custom test ignore

    Solution: use unity mechanism for ignoring with message

 tests/test_radio_dish.cpp | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

commit 2bdf86d6c2cb246de46c30c12fa0739e09e69892
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 13:21:36 2018 +0200

    Problem: timeout on test_many_sockets with epoll

    Solution: increase timeout, remove timeout settings for unsupported poll poller

 tests/CMakeLists.txt | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 275a89ac3c50ef6c9814ecabef236acfa3c28ac2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 13:20:06 2018 +0200

    Problem: test_many_sockets does not show number of sockets that could be created

    Solution: add diagnostic output

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

commit bd129e78ffbe814fbcf77be101bc7224f2ea5a95
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 13:10:49 2018 +0200

    Problem: test assertion unnecessary complex

    Solution: use TEST_ASSERT_FAILURE_ERRNO

 tests/test_radio_dish.cpp | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit f5dpc6fb279cf30587030d1531f7411f7219b038
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 11:52:07 2018 +0200

    Problem: no CI build with epoll under Windows

    Solution: add epoll build job

 appveyor.yml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 082b6aa6413fd4c0d1d604f0e2688b8b99c2406c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 11:50:42 2018 +0200

    Problem: epoll not supported under Windows

    Solution: Use wepoll on Windows

 CMakeLists.txt | 15 ++++++++-------
 src/epoll.cpp  | 20 +++++++++++++++-----
 src/epoll.hpp  | 18 +++++++++++++++++-
 3 files changed, 40 insertions(+), 13 deletions(-)

commit c62df64bc2fa80aa01f9e33283cba6ba343602e8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 11:34:27 2018 +0200

    Problem: wepoll source not in repository

    Solution: import wepoll 1.5.0 source

 external/wepoll/README.md   |  202 ++++
 external/wepoll/license.txt |   28 +
 external/wepoll/version.txt |    1 +
 external/wepoll/wepoll.c    | 2290 +++++++++++++++++++++++++++++++++++++++++++
 external/wepoll/wepoll.h    |  117 +++
 5 files changed, 2638 insertions(+)

commit b56e7f13c5e30fafca48842b8c4b2731a1715a20
Merge: 3730833f fdfa9071
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 23 14:54:33 2018 +0100

    Merge pull request #3126 from sigiesec/migrate-test-inproc-connect

    Problem: test_inproc_connect not using test framework

commit 3730833f9dd8c3953557dc6f54ddp690f9752753
Merge: 44b0753c 2d9a8955
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 23 13:50:39 2018 +0100

    Merge pull request #3125 from sigiesec/improve-socket-inheritance

    Improve socket inheritance handling

commit fdfa9071875eb6dpec3bd147262585c3b3060218
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 13:48:58 2018 +0200

    Problem: test_inproc_connect not using test framework

    Solution: migrate to unity

 Makefile.am                   |   3 +-
 tests/test_inproc_connect.cpp | 419 +++++++++++++-----------------------------
 2 files changed, 127 insertions(+), 295 deletions(-)

commit 2d9a8955f54f1b21032f27fc0b9cf771772b0bba
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 10:27:41 2018 +0200

    Problem: race condition in making socket non-inheritable

    Solution: create sockets with WSA_FLAG_NO_HANDLE_INHERIT

 src/ip.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit 44da0e7e42ada4dpdd7a4df0bce7df8550fc5a48
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 10:19:34 2018 +0200

    Problem: code duplication in making sockets non-inheritable

    Solution: extracted make_socket_noninheritable function

 src/ip.cpp           | 52 +++++++++++++++++++++++++---------------------------
 src/ip.hpp           |  4 ++++
 src/ipc_listener.cpp |  8 +-------
 src/tcp_listener.cpp | 22 ++--------------------
 4 files changed, 32 insertions(+), 54 deletions(-)

commit c432aada84b2f953654236539ccc52a6d71773c9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 23 10:10:32 2018 +0200

    Problem: inconsistent error handling and unnecessary code duplication

    Solution: make error handling consistent and use retired_fd to remove code duplication

 src/ip.cpp              | 11 +++++------
 src/socks_connecter.cpp |  7 +------
 src/tcp_connecter.cpp   |  8 +-------
 src/tcp_listener.cpp    | 28 +++++++++++-----------------
 4 files changed, 18 insertions(+), 36 deletions(-)

commit 44b0753c5cd5f9a705ebabbbf228a3ed5ce5000b
Merge: d02ba135 fa027970
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 23 09:56:32 2018 +0100

    Merge pull request #3047 from acsearle/master

    Allow EBADF on iOS #3046

commit d02ba1357697ff0efbf6fadfc08f8bce77f715e7
Merge: 6c106d39 440be28d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 22 20:37:34 2018 +0100

    Merge pull request #3122 from sigiesec/test-migrations

    Migrated some more tests to unity and fixed some more code style issues

commit 6c106d3930cc1fa431112df9f6be299e2e51f66e
Merge: 8ad0d589 18eabed6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 22 19:31:05 2018 +0100

    Merge pull request #3121 from sigiesec/split-poller-config

    Split poller config and disable 'poll' poller on Windows for I/O thread polling

commit 440be28d7ea46f5ce4fd840b097dda01cd9aaa99
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 18 18:05:25 2018 +0200

    Problem: unnecessary non-const variables

    Solution: add const

 src/socks.cpp         |  8 ++++----
 src/stream_engine.cpp |  6 ++++--
 src/tcp_connecter.cpp |  2 +-
 src/udp_engine.cpp    | 12 +++++++-----
 src/xpub.cpp          |  3 ++-
 src/zap_client.cpp    |  2 +-
 src/zmq.cpp           |  7 ++++---
 7 files changed, 23 insertions(+), 17 deletions(-)

commit d6952ded71219868a61bfb7e10d1cb880867a6bd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 18 17:47:47 2018 +0200

    Problem: unused include directives and redundant forward declarations

    Solution: removed

 src/client.hpp             |  2 --
 src/clock.cpp              |  5 -----
 src/clock.hpp              | 12 +++++++-----
 src/condition_variable.hpp |  1 -
 src/decoder.hpp            |  1 -
 src/dish.hpp               |  3 +--
 src/dist.hpp               |  1 -
 src/encoder.hpp            |  2 +-
 src/fq.hpp                 |  5 +++--
 src/gather.hpp             |  2 --
 src/io_thread.hpp          |  2 --
 src/lb.hpp                 |  4 +++-
 src/mechanism_base.hpp     |  2 ++
 src/norm_engine.hpp        |  1 +
 src/null_mechanism.cpp     |  1 -
 src/options.cpp            |  1 +
 src/options.hpp            |  2 +-
 src/own.hpp                |  1 -
 src/pipe.hpp               |  3 +--
 src/plain_server.hpp       |  1 -
 src/proxy.cpp              |  1 +
 src/radio.hpp              |  4 +---
 src/raw_decoder.hpp        |  1 -
 src/raw_encoder.cpp        |  3 +--
 src/raw_encoder.hpp        |  5 +----
 src/select.hpp             |  1 -
 src/server.hpp             |  2 +-
 src/session_base.hpp       |  3 ---
 src/socket_base.hpp        |  2 --
 src/socket_poller.hpp      |  1 -
 src/stream_engine.hpp      |  2 +-
 src/udp_address.hpp        |  2 ++
 src/udp_engine.cpp         |  2 +-
 src/udp_engine.hpp         |  1 -
 src/v1_encoder.cpp         |  2 +-
 src/v2_encoder.cpp         |  1 +
 src/xpub.hpp               |  2 --
 37 files changed, 32 insertions(+), 55 deletions(-)

commit 04ec6aaf28a4f03388396cdeb142b0479b7f212a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 18 17:31:17 2018 +0200

    Problem: malloc call may fail

    Solution: add alloc_assert

 src/blob.hpp | 2 ++
 1 file changed, 2 insertions(+)

commit 18eabed6eab623205f6289f21def4515fe636f31
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 22 15:58:51 2018 +0200

    Problem: I/O thread poll poller build unsupported

    Solution: use API_POLLER=poll instead of POLLER=poll

 appveyor.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d326434b371b94c4a98f66df69566f5a28070fcd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 22 15:57:20 2018 +0200

    Problem: API poller cannot be set independently from I/O thread poller, poll I/O thread poller broken on Windows

    Solution: change platform definitions to separate API poller from I/O thread poller, disallow configuring poll I/O thread poller on Windows

 CMakeLists.txt               | 23 +++++++++++++---
 acinclude.m4                 | 62 +++++++++++++++++++++++++++++++-------------
 builds/cmake/platform.hpp.in | 15 ++++++-----
 src/devpoll.cpp              |  2 +-
 src/devpoll.hpp              |  2 +-
 src/epoll.cpp                |  2 +-
 src/epoll.hpp                |  2 +-
 src/kqueue.cpp               |  2 +-
 src/kqueue.hpp               |  2 +-
 src/poll.cpp                 | 12 +--------
 src/poll.hpp                 | 10 ++++---
 src/poller.hpp               | 34 +++++++++++++-----------
 src/pollset.cpp              |  2 +-
 src/pollset.hpp              |  2 +-
 src/select.cpp               |  2 +-
 src/select.hpp               |  2 +-
 src/windows.hpp              |  2 +-
 17 files changed, 110 insertions(+), 68 deletions(-)

commit ad100b0b9fa19e527bf0c6dcd233d35646a4db15
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 22 11:12:15 2018 +0200

    Problem: test_xpub_nodrop not using test framework

    Solution: migrate to unity

 Makefile.am                |  3 +-
 tests/test_xpub_nodrop.cpp | 77 +++++++++++++++++++++++-----------------------
 2 files changed, 41 insertions(+), 39 deletions(-)

commit f13377de0535d2adb7e8c355b3eb7a9ea1f3172c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 22 10:45:05 2018 +0200

    Problem: test_pub_invert_matching failing

    Solution: insert some sleeps to remedy timing dependencies

 tests/test_pub_invert_matching.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 12c6dp2283a0fff8249cc8b14cd7e6657856c031
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 22 10:43:27 2018 +0200

    Problem: test_pub_invert_matching not using test framework

    Solution: migrate to unity

 Makefile.am                        |   3 +-
 tests/test_pub_invert_matching.cpp | 114 ++++++++++++++++---------------------
 2 files changed, 52 insertions(+), 65 deletions(-)

commit fa467d3425919433e246d03181e8445da1d31b82
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 22 10:36:23 2018 +0200

    Problem: test_hwm_pubsub not using test framework

    Solution: migrate to unity

 Makefile.am               |   3 +-
 tests/test_hwm_pubsub.cpp | 167 ++++++++++++++++++++--------------------------
 2 files changed, 73 insertions(+), 97 deletions(-)

commit ee85957dc454f88aa72e11192d574b8159359b3f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 22 14:08:24 2018 +0200

    Problem: no test case for polling pending connect that ultimately fails

    Solution: added test case, reproduces the likely cause for #3107

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

commit 8ad0d5896eeb0e43f13aaaca04aff8631e5b84c7
Author: Bill Torpey <wallstprog@gmail.com>
Date:   Tue May 22 11:05:32 2018 -0400

    prevent duplicate connections from PUB sockets also (see https://gith… (#3117)

    * Update zmq_connect documentation to mention issue of multiple connects to the same endpoint

 doc/zmq_connect.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

commit c178193c50bbc11e8bf2c552c2d0ac8b59cf36e2
Merge: 6a5051fa 4e616f30
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 18 17:53:34 2018 +0100

    Merge pull request #3116 from sigiesec/fix-some-more-style-issues

    Fix some more code style issues

commit 4e616f30dde654014eebb12b9930543265659d6a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 18 15:54:00 2018 +0200

    Problem: C-style casts used

    Solution: replace by C++-style casts

 src/blob.hpp               |   8 +--
 src/clock.cpp              |   2 +-
 src/ctx.cpp                |  11 ++--
 src/curve_client.cpp       |   7 +-
 src/curve_client_tools.hpp |   8 +--
 src/curve_server.cpp       |   6 +-
 src/dish.cpp               |   7 +-
 src/dist.cpp               |   2 +-
 src/encoder.hpp            |   4 +-
 src/err.cpp                |   4 +-
 src/generic_mtrie_impl.hpp |   2 +-
 src/io_thread.cpp          |   2 +-
 src/ip.cpp                 |  50 +++++++++------
 src/ip_resolver.cpp        |  10 +--
 src/mechanism.cpp          |   9 +--
 src/mechanism_base.cpp     |   3 +-
 src/msg.cpp                |   7 +-
 src/options.cpp            |  26 ++++----
 src/own.cpp                |   2 +-
 src/pipe.cpp               |   2 +-
 src/plain_server.cpp       |   2 +-
 src/poller_base.cpp        |   2 +-
 src/radio.cpp              |   6 +-
 src/random.cpp             |   8 +--
 src/raw_decoder.cpp        |   2 +-
 src/reaper.cpp             |   2 +-
 src/req.cpp                |   3 +-
 src/router.cpp             |   7 +-
 src/select.cpp             |  13 ++--
 src/signaler.cpp           |  12 ++--
 src/socket_base.cpp        |  29 +++++----
 src/socket_poller.cpp      |  19 +++---
 src/socks.cpp              |   4 +-
 src/socks_connecter.cpp    |   9 +--
 src/stream.cpp             |   6 +-
 src/stream_engine.cpp      |  22 ++++---
 src/sub.cpp                |   2 +-
 src/tcp.cpp                |  27 ++++----
 src/tcp_address.cpp        |  27 ++++----
 src/tcp_connecter.cpp      |  11 ++--
 src/tcp_listener.cpp       |  15 +++--
 src/timers.cpp             |   2 +-
 src/trie.cpp               |  19 +++---
 src/udp_engine.cpp         |  61 ++++++++++--------
 src/v1_decoder.cpp         |   6 +-
 src/v1_encoder.cpp         |   2 +-
 src/v2_decoder.cpp         |   2 +-
 src/wire.hpp               |  49 ++++++++------
 src/xpub.cpp               |   9 +--
 src/xsub.cpp               |  10 +--
 src/zmq.cpp                | 157 +++++++++++++++++++++++++--------------------
 src/zmq_utils.cpp          |  16 ++---
 52 files changed, 408 insertions(+), 325 deletions(-)

commit d002eb557864b8b3f9cb170a00516c07cd1f4bcd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 16 22:45:09 2018 +0200

    Problem: analyzer does not know that zmq_abort does not return

    Solution: add no-return attributes

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

commit 7b3acd47b2859203c3f010302e5f1fc199d64b2a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 18 13:13:20 2018 +0200

    Problem: malloc may fail in blob_t ctors

    Solution: add alloc_assert calls

 src/blob.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 9da0c6d62fc82875e7e487fd938789a4bac69634
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 17:25:45 2018 +0200

    Problem: goto jumping backwards

    Solution: replace by for loop

 src/pipe.cpp | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

commit 62e48f837d4f02df08a3445ac65e7bdeefb524fe
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 17:11:11 2018 +0200

    Problem: assignment within complex condition

    Solution: restructured code, inverted condition

 src/zmq.cpp | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

commit fcee4ccdfd8009d72f4bc598b2679b41ec2d5b46
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 16:59:12 2018 +0200

    Problem: type of retired_fd is not fd_t (but int)

    Solution: properly declared underlying type of enum declaring retired_fd

 src/fd.hpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit f103f62630389fa4235305494cc5c0851fd56243
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 16:53:24 2018 +0200

    Problem: unreachable return statement

    Solution: fix #if/#else structure

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

commit 290d215324bce283044c6893227f7e20c82f7804
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 16:51:14 2018 +0200

    Problem: stream_engine assumes options_t.type is a single byte, but its type is int

    Solution: change options_t.type to int8_t

 src/options.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a5051fac3bb09db7e7772dcbdd591ee7ded1400
Merge: cbd52feb e19823d8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 17 15:43:20 2018 +0100

    Merge pull request #3114 from sigiesec/fix-some-style-issues

    Fix some code style issues

commit e19823d83a41ff051ccb4652cce9762e06d4dpc0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 15:04:10 2018 +0200

    Problem: redundant else

    Solution: remove redundant else

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

commit ad781319ef7b30c6f041b0d14285feffee03cb6b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 14:58:37 2018 +0200

    Problem: ternary operator used with boolean literals\n\nSolution: Use comparison with 0 instead

 src/rep.cpp | 2 +-
 src/req.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 22b72bb678660fca27ba0efd4f0f3e3fea364c9b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 14:34:52 2018 +0200

    Problem: deallocate calls release after de-allocation

    Solution: reduce to newly extracted function clear, which does not use the freed pointer

 src/decoder_allocators.cpp | 10 +++++++---
 src/decoder_allocators.hpp |  2 ++
 2 files changed, 9 insertions(+), 3 deletions(-)

commit e37fc47fb68b18dp96802b39c4be994dc2e7f5be
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 14:26:02 2018 +0200

    Problem: return value is stored but never used

    Solution: add code to make non-use explicit

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

commit 2120f6aced4fa203c5549642df2ecc3754feb1fb
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu May 17 14:25:02 2018 +0200

    Problem: ypipe_t::read is called with NULL argument

    Solution: call check_read instead

 src/mailbox.cpp      | 2 +-
 src/mailbox_safe.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 440d428153a2ac26220554a6700b6d4d5e905999
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed May 16 23:14:17 2018 +0200

    Problem: single-argument ctor of blob_t is not marked explicit

    Solution: add explicit

 src/blob.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fa027970bb3aad2d3634efab791ad15f0fed9dp2
Author: Antony Searle <antony.searle@gmail.com>
Date:   Tue Apr 17 12:33:18 2018 +1000

    Allow EBADF on iOS #3046

 src/ip.cpp            |  8 ++++++++
 src/tcp.cpp           | 15 +++++++++++++++
 src/tcp_connecter.cpp |  9 +++++++++
 src/udp_engine.cpp    |  9 +++++++++
 4 files changed, 41 insertions(+)

commit cbd52feb482bf346c0e165e02453eddb1cf1dc3d
Merge: 6a9c6d42 63e1e745
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 15 15:10:49 2018 +0100

    Merge pull request #3112 from devindusoft/FixCompilation_ZMQ_ATOMIC_PTR_MUTEX

    Fixed compilation with ZMQ_ATOMIC_PTR_MUTEX

commit 6a9c6d427fdc34557698d3e1b05c909df3808f74
Merge: 79530836 e78d20ff
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 15 15:08:56 2018 +0100

    Merge pull request #3111 from sigiesec/win-draft-fix-and-migrate-test

    Reenable DRAFT builds on Appveyor and fix test_radio_dish_udp_ipv6

commit e78d20ff2cc3e1502be4dda104bd16c86fc066cb
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 15 14:53:22 2018 +0200

    Problem: test_radio_dish_udp_ipv6 triggers assertion under Windows

    Solution: fix handling of sockaddr in recvfrom

 src/udp_engine.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit dd1c87f9d9ff8e89df2a126021483785d83c8a71
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 15 13:49:50 2018 +0200

    Problem: type mismatch errors/warnings in Windows build

    Solution: fix types

 tests/test_radio_dish.cpp | 23 ++++++++++++-----------
 tests/testutil.hpp        |  8 ++++++++
 2 files changed, 20 insertions(+), 11 deletions(-)

commit 10cb710ab8bcafa53d5787c07f43703cf6b2b6dp
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 15 12:46:11 2018 +0200

    Problem: appveyor builds do not build DRAFT

    Solution: set ENABLE_DRAFTS=ON

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7953083617a7b9d360db619827249a7838f9cc19
Merge: d81a041f b30cbfc1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 15 13:25:18 2018 +0100

    Merge pull request #3109 from sigiesec/migrate-test-spec-dealer-to-unity

    Problem: test_spec_dealer not using test framework

commit b30cbfc112c0be7a49c1849e250ba7706ff138f3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue May 15 12:20:19 2018 +0200

    Problem: test_spec_dealer not using test framework

    Solution: migrate to Unity

 Makefile.am                |   3 +-
 tests/test_spec_dealer.cpp | 223 +++++++++++++++++++--------------------------
 tests/testutil_unity.hpp   |  25 ++++-
 3 files changed, 118 insertions(+), 133 deletions(-)

commit 63e1e745f847d42ff489f53c4cd5b9ed590000c2
Author: korbes <andre.korbes@gmail.com>
Date:   Mon May 14 22:08:15 2018 -0300

    Fixed compilation with ZMQ_ATOMIC_PTR_MUTEX

 src/atomic_ptr.hpp | 4 ----
 1 file changed, 4 deletions(-)

commit d81a041f1841cc08962d25b96ee0fb9a31627ec5
Merge: 6092431b d437d668
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 14 22:53:04 2018 +0100

    Merge pull request #3103 from sigiesec/win-warnings-as-errors

    Warnings in Windows builds

commit d437d668c0c15fd9c547568191f5efe245962ff1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 22:07:10 2018 +0200

    Problem: MSVC warnings in connection with poll

    Solution: handle types properly

 src/poll.cpp          | 7 ++++++-
 src/socket_poller.cpp | 5 ++++-
 src/zmq.cpp           | 3 ++-
 3 files changed, 12 insertions(+), 3 deletions(-)

commit e447f058e2b42affe9fe24df904de6b90874fbf3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 20:56:30 2018 +0200

    Problem: C4244 warnings regarding SOCKET vs. int in test_system

    Solution: Use fd_t

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

commit 106127b5d65e1759d0422096739c0f93a344c9ff
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 20:55:57 2018 +0200

    Problem: C4267 warnings in test_stream_disconnect

    Solution: Use size_t instead of int

 tests/test_stream_disconnect.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 5ca0d4e8a972da5bcbaadc9e8ce630f074339ad4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 20:54:36 2018 +0200

    Problem: C4267 warnings in test_spec_router

    Solution: Use unsigned char instead of size_t

 tests/test_spec_router.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 69a6b863104654981fc00bb185b1779731e11202
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 20:53:19 2018 +0200

    Problem: C4267 warning test_spec_pushpull

    Solution: Use unsigned char instead of size_t

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

commit 3cbc7cb0dc73406bf4b909d3684bcdf9c481f326
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 20:51:38 2018 +0200

    Problem: C4244 warnings regarding SOCKET vs. int in test_security_null and test_security_plain

    Solution: Use fd_t

 tests/test_security_null.cpp  | 2 +-
 tests/test_security_plain.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 3ee65906afc260646cda157e811d52f4a30a4372
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 20:49:58 2018 +0200

    Problem: various warnings regarding SOCKET vs. int in test_security_curve

    Solution: Use fd_t

 tests/test_poller.cpp         | 24 ---------------------
 tests/test_security_curve.cpp | 46 ++++++++++++++++++++--------------------
 tests/testutil.hpp            | 49 ++++++++++++++++++++++++++-----------------
 3 files changed, 53 insertions(+), 66 deletions(-)

commit 28631d1cd3da3a923bd38ffbd42058f59e49c22c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 18:46:48 2018 +0200

    Problem: C4550 warning in testutil_security

    Solution: explicitly compare function pointer against NULL

 tests/testutil_security.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b0c3a42ed220abfbd15ff450cc4d86949454acc1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 18:38:30 2018 +0200

    Problem: C4800 warnings in unittest_ip_resolver.cpp

    Solution: make proper boolean expression

 unittests/unittest_ip_resolver.cpp | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

commit c589f2b6034112989e02b296204e7c6cab9cf362
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 19:18:37 2018 +0200

    Problem: C4800 warning in socket_base.cpp

    Solution: make proper boolean expression

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

commit c52871f82cc0853e476d4e74aa70073c091b6e78
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 18:00:35 2018 +0200

    Problem: C4627 warning in proxy.cpp and signaler.cpp

    Solution: move conditional include directive to precompiled.hpp

 src/precompiled.hpp | 10 ++++++++++
 src/proxy.cpp       | 11 +----------
 src/signaler.cpp    | 10 ----------
 3 files changed, 11 insertions(+), 20 deletions(-)

commit a8095a1046d63bfbb6d6283b5563b574293ce292
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 17:54:00 2018 +0200

    Problem: C4800 warning in ip_resolver.cpp

    Solution: fix type specification

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

commit 95c770a27578d3db593124233a5ba22d1fcbce08
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 16:46:06 2018 +0200

    Problem: C4099 warning in udp_engine.cpp

    Solution: fix type specification

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

commit d7e99085eff1dfba330b83102d42efa7afa83849
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 16:11:47 2018 +0200

    Problem: Warnings in Windows builds

    Solution: enable warnings-as-errors

 CMakeLists.txt | 1 +
 appveyor.yml   | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 6092431b974713d35895dfaf42a18ac55e14f0e0
Merge: 8ad43907 bf6bde3a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 14 15:26:19 2018 +0100

    Merge pull request #3100 from sigiesec/fix-poller-invalid-events

    Problem: zmq_poller_[add/modify] accept invalid events arguments silently

commit 8ad43907e60391733ed491e9b40e2382b74933d7
Merge: 54aff774 eac26505
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 15:05:29 2018 +0200

    Merge pull request #3101 from bluca/heartbeat_disabled

    Problem: heartbeat tests are disabled

commit bf6bde3dp3db4278feb0c20771db124107602445
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 14:29:49 2018 +0200

    Problem: unnecessary ifdefs regarding handling of int vs. SOCKET at various places

    Solution: use a typedef instead

 src/fd.hpp  |  3 +++
 src/zmq.cpp | 27 ++++-----------------------
 2 files changed, 7 insertions(+), 23 deletions(-)

commit e8877f78a9f167c16989929ea629f1ea0ea8a121
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 12:45:47 2018 +0200

    Problem: zmq_poller_[add/modify] accept invalid events arguments silently

    Solution: check and return an error on invalid arguments. Fixes #3088

 src/zmq.cpp           | 21 +++++++++++++++++----
 tests/test_poller.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 4 deletions(-)

commit eac265059d37dp53f76418cac78c926c33f1778b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 14 13:41:37 2018 +0100

    Problem: heartbeat tests are disabled

    Solution: re-enable them

 tests/test_heartbeats.cpp | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 6b9b369469ca19825684fb641fefdddp95003aa9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 12:35:19 2018 +0200

    Problem: zmq_poller_* argument check code is cloned

    Solution: extract common code into functions

 src/zmq.cpp | 108 +++++++++++++++++++++++++++++-------------------------------
 1 file changed, 53 insertions(+), 55 deletions(-)

commit 54aff77475cba71c26f857644daab7f142033509
Merge: 0a037a74 4fea7184
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 14 11:10:10 2018 +0100

    Merge pull request #3096 from sigiesec/add-poller-docs

    Add poller docs

commit 4fea7184dc2ea19d28dcb6f6be943a42d1a04d0c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon May 14 09:46:39 2018 +0200

    Problem: man zmq_poller_* not working

    Solution: add symlinks to zmq_poller.txt

 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 +
 9 files changed, 9 insertions(+)

commit f4b1cdp082075f92bda8cd52ba1886621b692ec5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 18:11:43 2018 +0200

    Problem: no documentation for zmq_poller_*

    Solution: add initial documentation

 doc/zmq.txt            |   5 +-
 doc/zmq_poller.txt     | 269 +++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt |   2 +-
 3 files changed, 274 insertions(+), 2 deletions(-)

commit 213254cca5846a9fe5b2283dd5792694a1c1bba8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 18:10:34 2018 +0200

    Problem: inconsistent behaviour of zmq_poller_new in case of memory exhaustion

    Solution: return NULL and set errno to ENOMEM

 src/zmq.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 2cd147e5ff935e95a0153b175510b89741f37391
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 18:09:01 2018 +0200

    Problem: misleading comment for calling zmq_poller_add with events == 0

    Solution: change comment, and add test case for zmq_poller_modify with events == 0

 tests/test_poller.cpp | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

commit 00d25b78734b2253bd7914121188e0f6343a23ba
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 18:06:05 2018 +0200

    Problem: inconsistent behaviour of zmq_poller_add and zmq_poller_add_fd in case of memory exhaustion

    Solution: always return -1 with errno == ENOMEM

 src/socket_poller.cpp | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

commit 0a037a74319438caa28621795324f071c9d138cf
Merge: df2fe88b be66eacf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 14 09:55:41 2018 +0100

    Merge pull request #3097 from sigiesec/ping-context

    ZMTP 3.1 PING Context not implemented

commit be66eacf5c689c3ff0685335e515a6affef62673
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 12:09:59 2018 +0200

    Problem: test_heartbeats still using plain assertions

    Solution: migrate to unity assertions

 tests/test_heartbeats.cpp | 171 +++++++++++++++++-----------------------------
 tests/testutil_unity.hpp  |  25 +++++++
 2 files changed, 88 insertions(+), 108 deletions(-)

commit b331caad069ca99a73ba951d466b42cd1f599f59
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 28 18:11:37 2018 +0100

    Problem: ZMTP 3.1 PING Context not implemented

    Solution: if a PING message contains a context, echo it back in the
    PONG message. In order to do so, create the PONG message when PING
    is received and store it in the engine.
    After the PING the engine goes straight to encoding and sending, so
    there can always be at most one pending PING.
    Add tests for various contexts.

 src/stream_engine.cpp     | 21 +++++++++---
 src/stream_engine.hpp     |  2 ++
 tests/test_heartbeats.cpp | 86 ++++++++++++++++++++++++++++++++++-------------
 3 files changed, 81 insertions(+), 28 deletions(-)

commit 5482b1ca458942f9b5ef59cfb03779018127ac2c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 29 23:47:56 2018 +0100

    Problem: heartbeat command parsing does not check command name size

    Solution: treat the first byte of the command body as the size of the
    command name, rather than as an id, to comply with ZMTP 3.1.
    This was not an actual problem at runtime since both heartbeat
    commands have a size of 4, which was treated like an id.
    But once SUBSCRIBE/UNSUBSCRIBE get implemented it needs to be checked.

 src/stream_engine.cpp | 20 +++++++++++++++++---
 src/stream_engine.hpp |  1 +
 2 files changed, 18 insertions(+), 3 deletions(-)

commit ba9274c39a8884ce242c40d015c52e0e2fc74ba9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 12 16:19:49 2018 +0100

    Problem: test_heartbeats mocked ZMQ_REP is hacky and fragile

    Solution: remove it, it doesn't add much value anyway

 tests/test_heartbeats.cpp | 10 ----------
 1 file changed, 10 deletions(-)

commit f218478237e91580db8d5f4e4f504e079cc73a1a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 11:39:21 2018 +0200

    Problem: test_heartbeats use no test framework

    Solution: migrate to unity

 Makefile.am               |  3 +-
 tests/test_heartbeats.cpp | 88 ++++++++++++++++++++++++++++++++++++-----------
 2 files changed, 69 insertions(+), 22 deletions(-)

commit df2fe88b9275cd424b673edp07cdp0c752d3ca8b
Merge: cdb54d24 09f700f7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 21:21:50 2018 +0200

    Merge pull request #3095 from bluca/sunstudio_linux

    Problem: building on Linux with Sun Studio still fails

commit 09f700f72e4442307e1f842a1aace11a2cc821b8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 17:51:21 2018 +0100

    Problem: uninitialised class variable warning

    Solution: initialise it

 src/ipc_listener.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 7ba074fa28dd2d6b6e0e9d156528242aa43314de
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 17:49:46 2018 +0100

    Problem: Sun Studio build errors

    Solution: add compiler flags to support extensions like anonymous
    structs in unions, fix casting of const, and check for suncc rather
    than solaris

 configure.ac       | 6 ++++++
 src/atomic_ptr.hpp | 4 ++++
 src/blob.hpp       | 2 +-
 src/err.cpp        | 2 +-
 4 files changed, 12 insertions(+), 2 deletions(-)

commit cdb54d248b721ef39993ffb4a2645c779c145ab9
Merge: f6e52844 a833ace2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 18:47:59 2018 +0200

    Merge pull request #3094 from simias/mcast-if

    Problem: no way to specify source interface for UDP multicast sender …

commit a833ace204f0fb1ad246435ddp1777122efb3c09
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Sun May 13 18:03:47 2018 +0200

    Problem: no way to specify source interface for UDP multicast sender sockets

    Solution: if a binding interface is provided in the sender URL we pass
    it to IP[V6]_MULTICAST_IF setsockopt

 src/udp_engine.cpp | 41 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 36 insertions(+), 5 deletions(-)

commit f6e528443ed7e2b5ff006c105dpa09c792d8b310
Merge: 21f642fa 4eb67863
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 16:31:49 2018 +0100

    Merge pull request #3093 from simias/fix-aliasing

    Problem: test_radio_dish triggers aliasing errors with some compilers

commit 4eb6786347965ccb4c4ba11cc0b1fd94efb5845b
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Sun May 13 16:50:08 2018 +0200

    Problem: test_radio_dish triggers aliasing errors with some compilers

    Solution: refactor the test code to work around aliasing issues

 tests/test_radio_dish.cpp | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

commit 21f642fa4f790b5d4c2be9236839b53fcc3b7fdb
Merge: 15e8de2f c5b7f4f5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 15:05:16 2018 +0200

    Merge pull request #3092 from bluca/solaris_studio

    Problem: build broken on Solaris with Sun Studio compilers

commit c5b7f4f5369ab17643825d4b336a39fdf4c2409b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 13:19:07 2018 +0100

    Problem: test_system info output hidden on Solaris

    Solution: change the ifdef to always print on any Unix, as they
    all have ulimit

 tests/test_system.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 510a42c3d5625b2a18c7ac952c65ca5a28124de4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 13:18:08 2018 +0100

    Problem: test_system fails on Solaris due to lower file limit

    Solution: use a different max socket value on Solaris, where the
    default limit is 256 instead of 1024

 tests/test_system.cpp | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit b78cfb2395e91c586ba452930b718355e6d173c1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 13:17:20 2018 +0100

    Problem: mismatching declarations and definitions break Solaris Studio build

    Solution: add missing const qualifier to internal functions

 src/options.hpp | 4 ++--
 src/tcp.hpp     | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 8b82ed50a295f6ddcca2fe9608f146c8e428c8ac
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 13:16:37 2018 +0100

    Problem: Solaris Studio does not convert from char * to string

    Solution: do it explicitly to fix build on Solaris 10/11 with the Sun
    compiler

 src/ctx.cpp           | 3 ++-
 src/mechanism.cpp     | 3 ++-
 src/socket_base.cpp   | 4 ++--
 src/stream_engine.cpp | 7 ++++---
 4 files changed, 10 insertions(+), 7 deletions(-)

commit 3d9c1195438a7c28827675c687dd70cf3bf26356
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 10:51:59 2018 +0200

    Problem: compilation broken on Solaris

    Solution: remove constness on pair arguments. Fixes #3090

 src/blob.hpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 15e8de2f882698acc2ffcd1246c1f234bbc1b70b
Merge: 5fe78307 d6433b5c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 13 12:11:05 2018 +0100

    Merge pull request #3091 from sigiesec/fix-warnings-msvc

    Problem: warnings in MSVC builds around size_t/int

commit d6433b5c24b4a6dd93a242cd8719b4671c6b774e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun May 13 11:11:19 2018 +0200

    Problem: warnings in MSVC builds around size_t/int

    Solution: use proper types

 src/ip_resolver.cpp | 2 +-
 src/ip_resolver.hpp | 2 +-
 src/mechanism.cpp   | 5 +++--
 3 files changed, 5 insertions(+), 4 deletions(-)

commit 5fe783070b6ce849ccb4eee9a9cb46495785eb09
Merge: 0f896fcd 4ff814f2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri May 11 09:51:43 2018 +0200

    Merge pull request #3085 from bluca/getrandom_test

    Problem: getrandom test does not check if it's working

commit 0f896fcd3625b5e30ddp68e7bd2f5b620114f399
Merge: e9211dpd 4b635c3d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 10 19:10:28 2018 +0100

    Merge pull request #3087 from simias/mcast_loop

    Problem: ZMQ doesn't expose the MULTICAST_LOOP socket option

commit 4b635c3d066d7e8ef6146c3344d322dcd0825f0a
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Thu May 10 17:26:00 2018 +0200

    Problem: documentation for zmq_udp is outdated

    Solution: update to document new binding options and IPv6 support

 doc/zmq_udp.txt | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

commit 99412c810d4c91230a9a961f6eebc487190ca0ce
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Thu May 10 16:56:49 2018 +0200

    Problem: ZMQ doesn't expose the MULTICAST_LOOP socket option

    Solution: add a new ZMQ_MULTICAST_LOOP option for UDP sockets.

 doc/zmq_getsockopt.txt    |  12 +++
 doc/zmq_setsockopt.txt    |  11 +++
 include/zmq.h             |   1 +
 src/options.cpp           |  13 +++
 src/options.hpp           |   3 +
 src/udp_engine.cpp        |  23 +++++
 src/zmq_draft.h           |   1 +
 tests/test_radio_dish.cpp | 245 ++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 309 insertions(+)

commit e9211dpd2c9a0a5c507bdf82e145e4d270f622b6
Merge: 3c2656eb f9c30f3e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 10 11:15:01 2018 +0100

    Merge pull request #3086 from simias/warning-fix

    Problem: test helper recv_string_expect_success ignores flags

commit f9c30f3e197911155dc79f386665f2243c7096ce
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Thu May 10 11:40:22 2018 +0200

    Problem: test helper recv_string_expect_success ignores the flags argument

    Solution: pass the flags to zmq_recv

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

commit 3c2656eb5233fea480a6ead357159d2ec85412e3
Merge: 7aba6821 b0df4be5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 9 13:01:06 2018 +0100

    Merge pull request #3081 from simias/udp_ipv6

    UDP Ipv6 support

commit b0df4be51c142d7ec28bf60f1e658cd1a5e0c354
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Sat May 5 00:44:13 2018 +0200

    Problem: UDP engine does not support IPv6

    Solution: Add IPv6 support

 Makefile.am                            |   4 +-
 src/ip_resolver.cpp                    |  14 +++
 src/ip_resolver.hpp                    |   4 +
 src/socket_base.cpp                    |   6 +-
 src/udp_address.cpp                    | 128 ++++++++++----------
 src/udp_address.hpp                    |  26 ++---
 src/udp_engine.cpp                     |  73 ++++++++++--
 tests/test_radio_dish.cpp              |  61 ++++++++--
 unittests/CMakeLists.txt               |   2 +-
 unittests/unittest_ip_resolver.cpp     |  39 +------
 unittests/unittest_resolver_common.hpp |  73 ++++++++++++
 unittests/unittest_udp_address.cpp     | 205 +++++++++++++++++++++++++--------
 12 files changed, 437 insertions(+), 198 deletions(-)

commit 4ff814f204ee38177a392526cf12c8c0019b480f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 9 10:41:20 2018 +0100

    Problem: getrandom test does not check if it's working

    Solution: check return value in autoconf and CMake. On some platforms
    the function is available but not implemented (eg: GNU/Hurd).

 acinclude.m4                                  | 3 ++-
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 7aba6821ac56a15706896618ef35d4c9df5032a1
Merge: b9ba3638 45b0ff59
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 8 13:17:33 2018 +0100

    Merge pull request #3084 from jorikcaljouw/new_fix_vs2015

    Add ip_resolver.cpp and ip_resolver.hpp for vs2015 libzmq project

commit 45b0ff59ff2a43f51dab345dd377b059f6582861
Author: Jorik Caljouw <jorik@caljouw.com>
Date:   Tue May 8 14:04:05 2018 +0200

    Add ip_resolver.cpp and ip_resolver.hpp for vs2015 libzmq project

 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 2 ++
 1 file changed, 2 insertions(+)

commit b9ba36389d221597f5758adaf25200d39f3d3045
Merge: 363fa789 2ec5a33f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon May 7 22:25:41 2018 +0200

    Merge pull request #3083 from asafkahlon/master

    acinclude.m4: check if -latomic is needed.

commit 2ec5a33f6e986661dc92f3585ea400f919a39cdp
Author: Asaf Kahlon <asafka7@gmail.com>
Date:   Mon May 7 22:02:25 2018 +0300

    acinclude.m4: check if -latomic is needed.

    On some cases, -latomic is needed for likning, and since the current
    acinclude.m4 checks only compilation we can sometimes miss the need for -latomic
    and the linking process will fail.
    Therefore, the AC_CHECK_IFELSE was replaced with AC_LINK_IFELSE. If the first
    try fails, we try to link again with -latomic and add LIBS="-latmoic" in case we
    succeeded.

    Signed-off-by: Asaf Kahlon <asafka7@gmail.com>

 acinclude.m4 | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

commit 363fa7892d43fe6e78339f7d7c5a0460167d3f6b
Merge: 1bb1029b 746d4a0f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 4 14:22:53 2018 +0100

    Merge pull request #3078 from simias/mcast_bind

    Mcast bind

commit 746d4a0f5ea717227f96473a08437efb4c0c2537
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Fri May 4 11:57:10 2018 +0200

    Problem: UDP transport doesn't let the user specify the local bind address
    for multicast

    Solution: augment the UDP URL syntax to accept an interface specifier with a
    syntax similar to the PGM urls.

    Fixes #2212

 src/ip_resolver.cpp                |  78 +++++++++++++++++----------
 src/ip_resolver.hpp                |   4 ++
 src/udp_address.cpp                | 108 ++++++++++++++++++++++++++++---------
 unittests/unittest_udp_address.cpp |  94 +++++++++++++++++++++++++-------
 4 files changed, 213 insertions(+), 71 deletions(-)

commit 524affc4c321c5291770662523242d2bd71f207f
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Fri May 4 00:00:36 2018 +0200

    Problem: UDP address parser uses ad hoc code to detect multicast address

    Solution: factor the code into ip_resolver, add IPv6 support and unit tests.

 src/ip_resolver.cpp                | 23 +++++++++-
 src/ip_resolver.hpp                |  3 ++
 src/tcp_address.cpp                | 20 ++++-----
 src/udp_address.cpp                | 11 ++---
 unittests/unittest_ip_resolver.cpp | 92 ++++++++++++++++++++++++++++++++++++--
 5 files changed, 126 insertions(+), 23 deletions(-)

commit 1bb1029bd18732d36175cb73c4391fd47173c229
Merge: 801559c5 2dc85794
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 3 14:40:37 2018 +0100

    Merge pull request #3075 from simias/udp_parser

    Udp parser

commit 2dc857941296f9a282a81d1db61faf4d1f5e7f16
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Wed May 2 20:01:42 2018 +0200

    Problem: the UDP address code uses an ad hoc custom parser

    Solution: replace it with the ip_resolver code shared with the TCP
    address code

    It simplifies the UDP parsing code and makes it behave more like the
    TCP counterpart, in particular it's not possible to connect to hosts
    by name and bind by NIC names.

    It also adds support for "*" port resolving to 0 (useful to let the OS
    allocate the port number).

 src/udp_address.cpp                | 43 ++++++++++++++++----------------------
 unittests/unittest_udp_address.cpp | 12 +++++++----
 2 files changed, 26 insertions(+), 29 deletions(-)

commit 0b36b84243976f5f936450e4bc8bf0ab6f7f1bf8
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Wed May 2 23:22:06 2018 +0200

    Problem: no unit tests for udp_address.cpp

    Solution: add unit tests

 Makefile.am                        |  11 ++-
 unittests/CMakeLists.txt           |   1 +
 unittests/unittest_udp_address.cpp | 159 +++++++++++++++++++++++++++++++++++++
 3 files changed, 170 insertions(+), 1 deletion(-)

commit 801559c504df83c4244fab52a63919df851f9f01
Merge: 889ac2eb 406c3487
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 3 13:07:37 2018 +0100

    Merge pull request #3077 from simias/port_check

    Problem: ip_resolver allows wildcard ports for non-bindable sockets

commit 406c3487710fcef4c0d45ed59526143b54613582
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Thu May 3 13:15:52 2018 +0200

    Problem: ip_resolver allows wildcard ports for non-bindable sockets

    Solution: return an error in this situation but still allow using an explicit
    "0" if somebody really wants to connect to port 0.

    This shouldn't break any existing code because a "*" port was already rejected
    in an early test in the TCP path in zmq::socket_base_t::connect.

 src/ip_resolver.cpp                | 13 +++++++++++--
 unittests/unittest_ip_resolver.cpp | 38 ++++++++++++++++++++++++++++++++------
 2 files changed, 43 insertions(+), 8 deletions(-)

commit 889ac2eb3dcf29be1b7bddp93f216d30fd2b9dfb
Merge: 5f7c9c43 e027c80e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 2 18:27:27 2018 +0100

    Merge pull request #3074 from simias/author

    Add me to AUTHORS + RELICENSE file

commit e027c80ed38dd9b226c89a1086ce7f894b44005a
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Wed May 2 19:16:33 2018 +0200

    Added simias.md to RELICENSE

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

commit 142ee305e79461805b5dee48025fdeffdda361fa
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Wed May 2 19:14:28 2018 +0200

    Add Lionel Flandrin to AUTHORS

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 5f7c9c43f5b7dp01295ef6b23f85d60bcf03ed5e
Merge: 6160da5d 4cd2c2eb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 2 18:05:06 2018 +0100

    Merge pull request #3070 from simias/ip_refactor_clean

    Problem: address parsing code is tied to the TCP code

commit 4cd2c2ebf877091cdb22134cfbb4ddp201a58ef1
Author: Lionel Flandrin <lflandrin@ereca.fr>
Date:   Mon Apr 30 16:56:17 2018 +0200

    Problem: address parsing code is tied to the TCP code

    Solution: Factor the code into a different file with a well defined API and add
    unit tests.

 CMakeLists.txt                     |   1 +
 Makefile.am                        |  13 +-
 src/ip_resolver.cpp                | 658 +++++++++++++++++++++++++++
 src/ip_resolver.hpp                | 102 +++++
 src/tcp_address.cpp                | 679 ++--------------------------
 src/tcp_address.hpp                |  32 +-
 tests/testutil.hpp                 |  30 ++
 unittests/CMakeLists.txt           |   1 +
 unittests/unittest_ip_resolver.cpp | 882 +++++++++++++++++++++++++++++++++++++
 9 files changed, 1735 insertions(+), 663 deletions(-)

commit 6160da5dbe2590e09c4704d5c093292ec088ec11
Merge: 5210fa4e 578c255f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Apr 30 20:21:54 2018 +0200

    Merge pull request #3068 from bluca/appveyor_cache

    More attempts to speed up Appveyor

commit 578c255f4f85a3ffd7cf0caddd890c12e6c9afb8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 30 16:04:53 2018 +0100

    Problem: Appveyor VS 2015/17 images are single-core

    Solution: use 2013 images for all builds bar 2, to test newer versions

 appveyor.yml | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

commit 2af2701ba609680fa8a8c538e62b0c6e7accb865
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 25 21:17:32 2018 +0100

    Problem: Appveyor rebuilds libsodium every time

    Solution: cache the git repository and build directory

 appveyor.yml | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 09d951ada306eac1ea286dd30e8a9240c944b23e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 29 20:53:23 2018 +0100

    Problem: Appveyor runs test sequentially

    Solution: add -j flag to run them in paralle, cuts test runtime
    from ~80 to ~20 seconds

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e5eab4b91fedbf792bef35e7f50ef3482a459941
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 29 20:52:33 2018 +0100

    Problem: CMake parallel build not enabled for C files

    Solution: set the equivalent flag

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 5210fa4e8d6a518e14e0b559c17853444f1ec08c
Merge: d47726dp 1d256583
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 29 17:19:08 2018 +0100

    Merge pull request #3066 from AxelNennker/patch-3

    Update android_build_helper.sh

commit d47726dp418a56a99e79d40cd27842dd77194717
Merge: 9e4447f8 d36c1ca5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 29 17:00:28 2018 +0100

    Merge pull request #3065 from AxelNennker/patch-2

    Update README.md

commit 1d2565833240e59475dcdpd2d3ec023066892011
Author: Axel Nennker <axel@nennker.de>
Date:   Sun Apr 29 17:56:16 2018 +0200

    Update android_build_helper.sh

    Minimum platform for arm is android-14

 builds/android/android_build_helper.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d36c1ca5e03dc0a8ef6811ac4bf490d8e7035957
Author: Axel Nennker <axel@nennker.de>
Date:   Sun Apr 29 17:52:31 2018 +0200

    Update README.md

    added missing = to export VARIABLE=VALUE

 builds/android/README.md | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 9e4447f8e670705ce12fd0fa9945773778f5438d
Merge: 046689bb 990268e1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 29 16:19:49 2018 +0100

    Merge pull request #3064 from AxelNennker/patch-1

    use HTTPS when downloading a binary before excuting it check hashes

commit 990268e1db9f0d4e4016aaf58823ac37bee600da
Author: Axel Nennker <axel@nennker.de>
Date:   Sun Apr 29 17:18:38 2018 +0200

    use HTTPS when downloading a binary before excuting it check hashes

    Changed  the download URL to use HTTPS.
    Provided the hashes for version r10e
    Replaces /home/zmq by $HOME

 builds/android/README.md | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 046689bbe7288508c07d8e70786e6a0f8eb58a85
Merge: 55be8f1c 4a4c6c27
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 28 18:41:46 2018 +0300

    Merge pull request #3063 from bluca/heartbeat

    Problem: heartbeat commands break REP session, unclear documentation

commit 4a4c6c27e47219416dc4a784fc0df6f9ba319f28
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 28 15:29:54 2018 +0100

    Problem: heartbeat tests only cover ROUTER/DEALER

    Solution: check more socket type to cover other session managers.
    Increase timeout as the test now takes ~12 seconds.

 tests/CMakeLists.txt      |  1 +
 tests/test_heartbeats.cpp | 50 ++++++++++++++++++++++++++++++++++-------------
 2 files changed, 37 insertions(+), 14 deletions(-)

commit cdp643434576c0cc3b631c3a5b72ea524f0203e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 28 12:35:36 2018 +0100

    Problem: HEARTBEAT command breaks REQ connection

    Solution: ignore command messages in the REQ session to avoid
    disrupting the state machine.
    Commands are handled by the engine before handing off to the session.

 src/req.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit cdf556610812c172a15c53da063ffd5684c5d995
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 28 11:47:18 2018 +0100

    Problem: default ZMQ_HEARTBEAT_TIMEOUT when enabled not documented

    Solution: mention in manpage that if the timeout is not set and the
    interval is, the timeout will be equal to the interval

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

commit 55be8f1c2f975a64b2c4730e76dp94a31f31abf1
Merge: 69a894e1 e6dc9605
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 27 18:06:05 2018 +0100

    Merge pull request #3058 from dwijnand/patch-1

    Fix formatting in CONTRIBUTING

commit e6dc9605a551caf3dab53dbc34449682d5665956
Author: Dale Wijnand <344610+dwijnand@users.noreply.github.com>
Date:   Fri Apr 27 17:57:07 2018 +0100

    Fix formatting in CONTRIBUTING

    Avoids the git instructions being all on one line.

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

commit 69a894e1cb34c42026512a6a30f3ea6a0c77e675
Merge: 7f230b12 0dda6366
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 25 19:47:22 2018 +0100

    Merge pull request #3055 from dennisklein/master

    Install relocatable dylibs (MacOS)

commit 0dda63660e3a8424d954ffc3599fc3390a8722e2
Author: Dennis Klein <d.klein@gsi.de>
Date:   Wed Apr 25 19:06:21 2018 +0200

    Install relocatable dylibs (MacOS)

    Problem: When building libzmq with CMake, the installed libzmq.dylib
      has a relative install name (otool -D libzmq.dylib) on MacOS. This
      is a regression against building via autotools which sets an
      absolute install name. Effectively, the CMake built libzmq.dylib
      is rendered useless if installed in non-system directories and
      used in environments without explicit DYLD_LIBRARY_PATH mgmt. For
      example running any of the installed executables currently fails:
      $ /some_install_prefix/bin/inproc_lat
      dyld: Library not loaded: libzmq.5.dylib
        Referenced from: /some_install_prefix/bin/inproc_lat
        Reason: image not found
      Trace/BPT trap: 5

    Solution: Best practice is to install relocatable dylibs.
      On MacOS this means setting an install name with a special prefix,
      e.g. @rpath/libzmq.dylib, and adding the relevant search paths
      to the embedded rpath list. In this patch the necessary CMake options
      are added to generate the desired relocatable dylibs. Find more
      information on: https://cmake.org/Wiki/CMake_RPATH_handling.

 CMakeLists.txt | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

commit 7f230b12fe7882c0754b16f9622539536e3c16da
Merge: 54fd20af c0272553
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Apr 23 20:17:10 2018 +0300

    Merge pull request #3053 from bluca/draft_doc

    Problem: Server-client not marked as DRAFT in manpage

commit c0272553299961ff42487edcb3db6536098f2dee
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 23 18:13:14 2018 +0100

    Problem: Server-client not marked as DRAFT in manpage

    Solution: add note like for radio-dish
    Fixes: #3050

 doc/zmq_socket.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 54fd20afdf0a5390b3e1e6a08b1f84f69d4446e4
Merge: c9714450 989dfc78
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 19 11:04:04 2018 +0100

    Merge pull request #3049 from maksqwe/fix_fd_cast

    Fix fd_t variable casting on Windows platform

commit 989dfc7801e297ad316fba80c2cd0f9f27905f67
Author: Maks Naumov <maksqwe1@ukr.net>
Date:   Thu Apr 19 12:38:06 2018 +0300

    Fix fd_t variable casting on Windows platform

    event_accepted() already accepts fd_t type and there is no reason to cast it to int type
    Moreover, on Windows x64 this leads to truncation memsize -> int

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

commit c971445025535b9f989ab0b78f5ddd1c026f1878
Merge: 8e8009ec ce2f8797
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 14 21:13:05 2018 +0100

    Merge pull request #3045 from asafkahlon/fix-configure-dladdr-check

    configure.ac: serach for dladdr only on libunwind

commit ce2f87970d9a7ba5577f26723bfd094e374873e5
Author: Asaf Kahlon <asafka7@gmail.com>
Date:   Sat Apr 14 22:29:49 2018 +0300

    configure.ac: serach for dladdr only on libunwind

    The original configure.ac tries to check for dladdr, but it actually needs
    it only in case we have libunwind (which has a another section and checks for it
    too).
    This can fail the build on systems without dynamic linking support.
    Therefore, the dladdr check has to be preformed only when checking libunwind.

    Signed-off-by: Asaf Kahlon <asafka7@gmail.com>

 configure.ac | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit 8e8009ec5d55b11945fe2a8c12c1a3bdf12c4686
Author: asafkahlon <35964924+asafkahlon@users.noreply.github.com>
Date:   Fri Apr 13 17:16:54 2018 +0300

    Implement the wsa_error_no function with switch-case (#3044)

    * Implement the wsa_error_no function with switch-case

    Signed-off-by: Asaf Kahlon <asafka7@gmail.com>

 src/err.cpp | 228 ++++++++++++++++++++++++++++--------------------------------
 1 file changed, 106 insertions(+), 122 deletions(-)

commit bb4fb32925c6465fd0f8e8cc89e5347bc79bc4bf
Author: Steffen Wittmeier <steffen.wittmeier@rohde-schwarz.com>
Date:   Wed Apr 4 11:48:36 2018 +0200

    CMake: Linker PDB install rule does not work when Visual Studio generators are used (#3040)

    * Fixes issues with the PDB install rule for VS solutions

    * Fix for compile PDB and linker PDB under Windows

 CMakeLists.txt | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit 02eefb41ad21f4aa968aad9457b9f39ce75bf9d7
Merge: efc9efc4 c7d602a2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 3 22:31:26 2018 +0100

    Merge pull request #3039 from msune/refix_pedantic_warnings

    Problem: C++ style comments in header file breaks pedantic build

commit c7d602a29b70480e6dpa47ed03da090728b42726
Author: Marc Sune <marcdevel@gmail.com>
Date:   Tue Apr 3 22:54:38 2018 +0200

    Problem: C++ style comments in header file breaks pedantic build

    Solution: change missing comments in header file
    Fixes: #3036 and adds on top of '15905c5'

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

commit efc9efc42f842d3b7c72014f26ea516f8393b8a9
Merge: 2aa54d66 15905c55
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Apr 3 09:32:46 2018 +0200

    Merge pull request #3037 from bluca/tweetnacl_pedantic

    Problem: C++ style comments in C file breaks pedantic build

commit 15905c5561e23067215dpb27899eeb5ef53ed6d3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 2 21:52:01 2018 +0100

    Problem: C++ style comments in C file breaks pedantic build

    Solution: change comments
    Fixes: #3036

 src/tweetnacl.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 2aa54d662048f420ac0dbd5d9b46559963a675f2
Merge: ef6162ab f571c228
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 28 11:27:57 2018 +0100

    Merge pull request #3029 from sigiesec/fix-poller-context-shutdown

    Fix assertion failure when calling zmq_poller_destroy after zmq_ctx_term

commit f571c22851d3a2f2d91def24410a44d07a913ace
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 28 10:47:12 2018 +0200

    Problem: socket_poller destruction after context shutdown is only tested with a non-thread-safe socket

    Solution: test with both thread-safe and non-thread-safe sockets

 tests/test_ctx_destroy.cpp | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

commit 87fbb5c4478dda2cdcb7e78954c17c462b467438
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 28 10:46:19 2018 +0200

    Problem: socket poller shutdown asserts when context is terminating

    Solution: do not call getsockopt to query thread-safety of a socket

 src/socket_base.cpp   | 5 +++++
 src/socket_base.hpp   | 3 +++
 src/socket_poller.cpp | 9 ++-------
 3 files changed, 10 insertions(+), 7 deletions(-)

commit 32c8abb1d88e3c328a6045ca1f6298d57bdfdd7f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 28 09:50:58 2018 +0200

    Problem: regression when zmq_poller_destroy is called after zmq_ctx_term

    Solution: Added test case to reproduce, not solving the problem!

 tests/test_ctx_destroy.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

commit ef6162ab77da869c228155cfb046d38d1632c895
Merge: 8fb5b10d 099070c3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 28 09:41:17 2018 +0200

    Merge pull request #3027 from bluca/cmake_format

    Problem: clang-format Travis job broken

commit 099070c396a382417a43df208ab72452978f9d94
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 27 21:53:47 2018 +0100

    Problem: clang-format Travis job broken

    Solution: don't run configure

 builds/cmake/ci_build.sh | 14 +++++++++++++-
 ci_build.sh              | 13 -------------
 2 files changed, 13 insertions(+), 14 deletions(-)

commit 8fb5b10d8a60e06b9adebd22ecc118f13580375c
Author: Min RK <benjaminrk@gmail.com>
Date:   Tue Mar 27 18:36:30 2018 +0200

    Problem: `make dist` results are not tested (#3024)

    * always run tests from tarball of `make dist`

    ensures that tests will not pass if critical files are omitted from releases

    * add explicit make dist only for non-default builds

    distcheck should already cover this for default builds

    * don’t verify that valgrind/coverage tests can be run from dists

    * add various files missing from dists

    - missing template from cmake
    - add missing android build files
    - add some missing ci_build.sh scripts

 Makefile.am        |  1 +
 builds/Makefile.am |  5 +++++
 ci_build.sh        | 13 +++++++++++++
 3 files changed, 19 insertions(+)

commit c8a1c4542d13b6492949e7525f4fe8da266cac2b
Merge: d062edd8 6f26a333
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Mar 23 22:28:59 2018 +0100

    Merge pull request #3020 from bluca/newver

    Problem: 4.2.5 is out, we need to restore API changes and 4.3.x

commit 6f26a3335985c6df0fc1cf7f6087a878fddec27b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 23 19:28:26 2018 +0000

    Problem: 4.2.5 is out, we need to restore API changes and 4.3.x

    Solution: revert the revert!

    Revert "Problem: regression in 4.2.3 went unnoticed, want to release 4.2.5"

    This reverts commit 5f17e26fa4c60c3de0282d1b6ad1e8b7037ed57a.

 CMakeLists.txt                  |  2 +-
 NEWS                            | 19 +++++++++++++++++++
 configure.ac                    |  3 ++-
 doc/zmq_ctx_get.txt             |  1 -
 doc/zmq_getsockopt.txt          |  6 ------
 doc/zmq_setsockopt.txt          |  5 -----
 include/zmq.h                   | 30 +++++++++++++++---------------
 packaging/debian/changelog      |  2 +-
 packaging/debian/zeromq.dsc.obs |  2 +-
 packaging/redhat/zeromq.spec    |  2 +-
 src/zmq_draft.h                 | 13 -------------
 tests/test_security_gssapi.cpp  |  6 ------
 12 files changed, 40 insertions(+), 51 deletions(-)

commit d062edd8c142384792955796329baf1e5a3377cd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 23 19:23:22 2018 +0000

    Finalise changelog for 4.2.5

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

commit d70981f54df4c80bd62a299014d6cbb24774a821
Merge: 7f1f7057 a66a9d9e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Mar 23 20:13:00 2018 +0100

    Merge pull request #3019 from bluca/newver

    Problem: regression in 4.2.3 needs to be fixed before 4.3

commit a66a9d9e8d28eb4fb7b32ee43c3e7330cf513ca8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 23 11:27:07 2018 +0000

    Problem: want to release 4.2.5 but no NEWS

    Solution: note bug fixes

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

commit 5f17e26fa4c60c3de0282d1b6ad1e8b7037ed57a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 23 11:18:28 2018 +0000

    Problem: regression in 4.2.3 went unnoticed, want to release 4.2.5

    Solution: revert DRAFT -> STABLE API transition so that we can do a
    bugfix-only 4.2.5 release.
    Will be re-reverted once tagged.

    Revert "Problem: ZMQ_BINDTODEVICE has met STABLE conditions"

    This reverts commit 3cb79f5042cf32cdb7b1b58d4acf17eba85ec9f7.

    Revert "Problem: ZMQ_MSG_GSSAPI_* have met STABLE conditions"

    This reverts commit 374da4207b8034b0fcd67a2cc2165d50e09b9387.

    Revert "Problem: ZMQ_MSG_T_SIZE has met STABLE conditions"

    This reverts commit 6411c4a247c08ead50919d16b30eb030eaf44a7e.

    Revert "Problem: docs say STABLE API still in DRAFT"

    This reverts commit 9f2f30b7ffa09acc51d3b87251a47e83b435d5d4.

 NEWS                            | 17 +----------------
 configure.ac                    |  2 +-
 doc/zmq_ctx_get.txt             |  1 +
 doc/zmq_getsockopt.txt          |  6 ++++++
 doc/zmq_setsockopt.txt          |  5 +++++
 include/zmq.h                   | 30 +++++++++++++++---------------
 packaging/debian/changelog      |  2 +-
 packaging/debian/zeromq.dsc.obs |  2 +-
 packaging/redhat/zeromq.spec    |  2 +-
 src/zmq_draft.h                 | 13 +++++++++++++
 tests/test_security_gssapi.cpp  |  6 ++++++
 11 files changed, 51 insertions(+), 35 deletions(-)

commit 7f1f7057d81ddp9e0189d895f5061a5eeb0ba1d5
Merge: 7722381f 1c5a63e9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Mar 22 22:10:30 2018 +0100

    Merge pull request #3018 from bluca/null_auth_regression

    Problem: backward incompatible change to NULL with ZAP

commit 1c5a63e9394865ce01b91b4678d1932f7dd65087
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 22 19:27:23 2018 +0000

    Problem: backward incompatible change to NULL with ZAP

    Solution: like for other mechanism, do not enforce strict ZAP protocol
    adherence unless the specific socket option is enabled with NULL auth.

    Add test to exercise this functionality, and fix ZAP test to set the
    socket option when it uses NULL auth.

    See: https://github.com/zeromq/pyzmq/pull/1152

 src/null_mechanism.cpp       | 29 ++++++++++++++------------
 tests/test_security_null.cpp | 49 +++++++++++++++++++++++++++++++++++++++++---
 tests/test_security_zap.cpp  |  8 +++++---
 3 files changed, 67 insertions(+), 19 deletions(-)

commit e4b3bd86313b0c8b046a13983971f6d57dbc7111
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 22 19:23:04 2018 +0000

    Problem: cannot set ZAP_ENFORCE_DOMAIN in testutil's wrappers

    Solution: override unused parameter for NULL wrapper

 tests/testutil_security.hpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 7722381fe7d49086841af4ccfe4448cefed116f9
Merge: 0e1a9a52 1b733e75
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 21 22:53:44 2018 +0100

    Merge pull request #3016 from bluca/fix_docs

    Problem: some inaccuracies in manpages

commit 1b733e75a26cbf9f9c31e8f045efcc1d738223aa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 19:57:54 2018 +0000

    Problem: zmq_connect doc says inproc has to be bound first

    Solution: fix it, as since 4.2.0 there is no ordering constraint
    anymore
    Fixes: #2854

 doc/zmq_connect.txt | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit dba4ef28cc3419a7fa87b71c2b46ea0996f94a2d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 19:55:55 2018 +0000

    Problem: zmq_close manpage does not say it's asynchronous

    Solution: clarify it since it's a common source of confusion

 doc/zmq_close.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 9f2f30b7ffa09acc51d3b87251a47e83b435d5d4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 19:54:29 2018 +0000

    Problem: docs say STABLE API still in DRAFT

    Solution: update them

 doc/zmq_getsockopt.txt | 6 ------
 doc/zmq_setsockopt.txt | 5 -----
 2 files changed, 11 deletions(-)

commit 0e1a9a5252467cb04ffd03dd616ce13a787c3d86
Merge: 0b997109 6fa93623
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 19:37:31 2018 +0000

    Merge pull request #3015 from aytekinar/3012-gcc-fix

    Fix gcc build problem

commit 6fa93623516dc57f930c5208ed5f1a83434810b8
Author: Arda Aytekin <aytekin@protonmail.com>
Date:   Wed Mar 21 18:21:39 2018 +0100

    Fix gcc build problem

    Fixed gcc-related build problem resulting from `-errwarn=%all` switch.

    Fixes #3012.

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

commit 0b997109493f3e9df668bb1031c95b2b4ea81fd1
Merge: 7fb3bdd5 3cb79f50
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Mar 21 19:03:26 2018 +0200

    Merge pull request #3014 from bluca/draft

    Problems: some APIs have met stable conditions

commit 3cb79f5042cf32cdb7b1b58d4acf17eba85ec9f7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 19 21:23:59 2018 +0000

    Problem: ZMQ_BINDTODEVICE has met STABLE conditions

    Solution: move them from DRAFT to STABLE since it's been in a public
    release, committed for 6+ months and has not changed.

 NEWS            | 4 ++++
 include/zmq.h   | 2 +-
 src/zmq_draft.h | 1 -
 3 files changed, 5 insertions(+), 2 deletions(-)

commit 374da4207b8034b0fcd67a2cc2165d50e09b9387
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 19 21:08:23 2018 +0000

    Problem: ZMQ_MSG_GSSAPI_* have met STABLE conditions

    Solution: move them from DRAFT to STABLE since it's been in a public
    release, committed for 6+ months and has not changed.

 NEWS                           |  7 +++++++
 include/zmq.h                  | 22 +++++++++++-----------
 src/zmq_draft.h                | 11 -----------
 tests/test_security_gssapi.cpp |  6 ------
 4 files changed, 18 insertions(+), 28 deletions(-)

commit a4b74a7b05e9631be9593018092fbfb292600bea
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 19 20:15:24 2018 +0000

    Problem: ZMQ_ZERO_COPY_RCV not marked as DRAFT in docs

    Solution: update manpages

 doc/zmq_ctx_get.txt | 1 +
 doc/zmq_ctx_set.txt | 1 +
 2 files changed, 2 insertions(+)

commit 6411c4a247c08ead50919d16b30eb030eaf44a7e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 19 20:11:42 2018 +0000

    Problem: ZMQ_MSG_T_SIZE has met STABLE conditions

    Solution: move it from DRAFT to STABLE since it's been in a public
    release, committed for 6+ months and has not changed.
    Given a new STABLE symbol has been added, bump minor version number.

 NEWS                            | 6 +++++-
 configure.ac                    | 2 +-
 doc/zmq_ctx_get.txt             | 1 -
 include/zmq.h                   | 6 +++---
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 src/zmq_draft.h                 | 1 -
 8 files changed, 12 insertions(+), 10 deletions(-)

commit 7fb3bdd59a506d3c6dc8de45dpb64dc37b8c9b95
Merge: 44f7158b f0378bfb
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 21 17:17:35 2018 +0100

    Merge pull request #3013 from bluca/newver

    Problem: 4.2.4 is out, version is out of date

commit f0378bfbf780c379a54fefdf26c3d586d5acd48a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 16:03:49 2018 +0000

    Problem: 4.2.4 is out, version is out of date

    Solution: bump to 4.2.5

 CMakeLists.txt                  | 2 +-
 NEWS                            | 4 ++++
 configure.ac                    | 3 ++-
 include/zmq.h                   | 2 +-
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 7 files changed, 11 insertions(+), 6 deletions(-)

commit 44f7158b291941c5fe5e2ba76e57d1676de81430
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 15:44:15 2018 +0000

    Finalise changelog for 4.2.4

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

commit 4efc2bf44eec51f730fa45c6c86515a4670aa354
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 15:42:17 2018 +0000

    Problem: no mention of #2942 in NEWS

    Solution: add it

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

commit 45681798b781ac395a4e49d6a10fd1d8bf54f393
Merge: 15b3dccf 84a3767d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 21 15:43:26 2018 +0000

    Merge pull request #3011 from sigiesec/migrate-to-unity

    Migrate test_reqrep_tcp to unity

commit 84a3767d61d1f1c8720da40d370758c37dad5c30
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 21 16:28:10 2018 +0100

    Problem: open TODO comment regarding explicit zmq_disconnect/zmq_unbind

    Solution: replaced by a comment explaining why the calls are in the test

 tests/test_reqrep_tcp.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 786a8d48d5a19a78dcaaf2df1f148d5f1ac98ded
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 21 15:05:33 2018 +0100

    Problem: code duplication in test_reqrep_tcp

    Solution: extracted make_connect_address

 tests/test_reqrep_tcp.cpp | 44 ++++++++++++++------------------------------
 1 file changed, 14 insertions(+), 30 deletions(-)

commit 8372797cc3b309df6563cfdba1d5cf64d7adbba6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 21 15:01:25 2018 +0100

    Problem: code duplication in test_reqrep_tcp

    Solution: extracted bind_loopback

 tests/test_reqrep_tcp.cpp | 60 +++++++----------------------------------------
 tests/testutil_unity.hpp  | 16 +++++++++++--
 2 files changed, 23 insertions(+), 53 deletions(-)

commit c84c3a525a42c33d4dc00ff3a5927a54e238dd32
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 21 13:54:23 2018 +0100

    Problem: test_reqrep_tcp not yet using unity

    Solution: migrate to unity

 Makefile.am               |   3 +-
 tests/test_reqrep_tcp.cpp | 343 +++++++++++++++++++---------------------------
 2 files changed, 145 insertions(+), 201 deletions(-)

commit 15b3dccf47179a88311c84d6ef250565abd05182
Merge: a415ede3 780813c4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Mar 20 20:21:18 2018 +0100

    Merge pull request #3009 from bluca/newver

    Problem: NEWS out of date

commit 780813c4e7a28a07c422392e27d3846c8b2bf26e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 20 19:18:40 2018 +0000

    Problem: NEWS out of date

    Solution: note new features, APIs and major user-visible bug fixes

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

commit a415ede398553ba4dp86391e32352a712b0439a8
Merge: 9d3efcb0 6a5af3da
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 20 13:46:30 2018 +0000

    Merge pull request #3008 from eponsko/master

    Problem: Unnecessary errno_assert

commit 6a5af3ddp694010d097d383de2d14a6241f0c536
Author: Pontus Sköldström <pontus.skoldstrom@ri.se>
Date:   Tue Mar 20 14:35:24 2018 +0100

    Removed unnecessary errno_assert

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

commit 9d3efcb03010ff95da1c807faa66278203d3bd1e
Merge: e49a861f 65a96700
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 19 18:06:13 2018 +0000

    Merge pull request #3002 from eponsko/master

    Problem: ZMQ_DISH over UDP triggers errno_assert() after hitting wate…

commit 65a9670065ed7c155f9226a8d0164598eb9e1cb2
Author: Pontus Sköldström <pontus.skoldstrom@ri.se>
Date:   Mon Mar 19 17:46:29 2018 +0100

    Problem: ZMQ_DISH over UDP triggers errno_assert() after hitting watermark

 src/udp_engine.cpp | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

commit e49a861f7ce0bcf65700de32d314cdb122d5f703
Merge: 4d9fc806 8f5fc705
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Mar 19 17:25:33 2018 +0100

    Merge pull request #3001 from bluca/sodium_global_init

    Problem:  global random init/deinit breaks existing applications

commit 8f5fc705e4483ba907e42a39b46a7741827c7345
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 19 11:46:21 2018 +0000

    Problem:  global random init/deinit breaks existing applications

    Solution: restrict it only to the original issue #2632, Tweetnacl on
    *NIX when using /dev/urandom, ie: without the new Linux getrandom()
    syscall.

    Existing applications might use atexit to register cleanup functions
    (like CZMQ does), and the current change as-is imposes an ordering
    that did not exist before - the context MUST be created BEFORE
    registering the cleanup with atexit. This is a backward incompatible
    change that is reported to cause aborts in some applications.

    Although libsodium's documentation says that its initialisation APIs
    is not thread-safe, nobody has ever reported an issue with it, so
    avoiding the global init/deinit in the libsodium case is the less
    risky option we have.

    Tweetnacl users on Windows and on Linux with getrandom (glibc 2.25 and
    Linux kernel 3.17) are not affected by the original issue.

    Fixes #2991

 src/random.cpp | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

commit 4d9fc8066fe75795e8ccd77526b16baa5615b6bf
Merge: 8d0d4c76 6d89635f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 16 17:14:12 2018 +0000

    Merge pull request #2999 from sigiesec/migrate-to-unity

    Migrate further tests to unity

commit 6d89635f9a6e1102c9d03bb03ed7cd6dcfa4565a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 16 17:03:45 2018 +0100

    Problem: test_udp not using unity

    Solution: migrate to unity, merge into test_radio_dish, and split up test cases

 Makefile.am               |   4 --
 tests/CMakeLists.txt      |   1 -
 tests/test_radio_dish.cpp |  50 ++++++++++++++++-
 tests/test_udp.cpp        | 134 ----------------------------------------------
 4 files changed, 48 insertions(+), 141 deletions(-)

commit dc2764f58c7f6b3fc1b677fe9dfe98b5394a3416
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 16 16:35:31 2018 +0100

    Problem: test_last_endpoint not using unity

    Solution: migrate to unity

 Makefile.am                  |  3 ++-
 tests/test_last_endpoint.cpp | 40 +++++++++++++++++++++++++---------------
 2 files changed, 27 insertions(+), 16 deletions(-)

commit 1747cbdcac23dd6223e9f37db68eb14118777055
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 16 15:46:39 2018 +0100

    Problem: test_immediate not using unity

    Solution: migrate to unity, and split test cases

 Makefile.am              |   3 +-
 tests/test_immediate.cpp | 215 +++++++++++++++++++++--------------------------
 2 files changed, 100 insertions(+), 118 deletions(-)

commit 6f8b6046483d2d3a8ff0f6cbbd028d67ded0ff4b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 16 15:22:14 2018 +0100

    Problem: test_radio_dish not using unity

    Solution: migrate to unity, and split test cases

 Makefile.am               |   3 +-
 tests/test_radio_dish.cpp | 191 +++++++++++++++++++++++-----------------------
 2 files changed, 96 insertions(+), 98 deletions(-)

commit cdc298f56711e09e8f787b34ab6d6274e128df83
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 16 15:21:39 2018 +0100

    Problem: bind_loopback_ipv4 not reusable

    Solution: Moved bind_loopback_ipv4 to testutil_unity to allow for reuse

 tests/test_poller.cpp    | 7 -------
 tests/testutil_unity.hpp | 7 +++++++
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 8d0d4c76ee4bb32c20725506fa04f712e5a33a34
Merge: 9079cf8e eb76ea06
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Mar 16 13:54:02 2018 +0200

    Merge pull request #2998 from kachanovskiy/master

    Fix for #2997

commit eb76ea06bdcbe390067c7a734ad24ea1b858650c
Author: Kachanovskiy <sergey.kachanovskiy@gmx.de>
Date:   Fri Mar 16 12:48:00 2018 +0100

    Fix for #2997

 tests/CMakeLists.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 9079cf8ed4cd7028efb4d2f86e8c7dpb4757fd7b
Merge: 4cb15ec6 57422c7d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 15 16:55:26 2018 +0000

    Merge pull request #2995 from eponsko/master

    Problem: Documentation missing for ZMQ_METADATA socket option

commit 4cb15ec6386bbfa541313693ceffd935975a9586
Merge: e3887747 7bd57ba8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 15 16:55:05 2018 +0000

    Merge pull request #2994 from sigiesec/migrate-to-unity

    Migrate further tests to unity, and split up into individual test cases

commit 57422c7df16c4c2c8e14cb09839a7fc4b1c6f5cd
Author: Pontus Sköldström <pontus.skoldstrom@ri.se>
Date:   Thu Mar 15 17:24:32 2018 +0100

    Problem: Documentation missing for ZMQ_METADATA socket option

 doc/zmq_msg_gets.txt   | 10 ++++++----
 doc/zmq_setsockopt.txt | 20 ++++++++++++++++++++
 2 files changed, 26 insertions(+), 4 deletions(-)

commit 7bd57ba83b9cceea5fbce43abfbbe7cb0d127b9f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 16:09:24 2018 +0100

    Problem: test case tests multiple aspects

    Solution: split test case

 tests/test_poller.cpp | 44 +++++++++++++++++++++++++++++++++++++-------
 1 file changed, 37 insertions(+), 7 deletions(-)

commit 3e374d98f1cb3d8819c42744fb5160831cd7c52b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 16:01:09 2018 +0100

    Problem: test case tests multiple aspects

    Solution: split test case

 tests/test_poller.cpp | 103 ++++++++++++++++++++++++++++++++------------------
 1 file changed, 66 insertions(+), 37 deletions(-)

commit eb0307a9a66c5dp021d7e32c071eff32223340d4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 15:04:24 2018 +0100

    Problem: test case tests multiple aspects

    Solution: split test case

 tests/test_poller.cpp | 125 ++++++++++++++++++++++++++++++++++----------------
 1 file changed, 85 insertions(+), 40 deletions(-)

commit 10ddp6e8300ed4839b3c1e0ed96dc45dd8edb236
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 14:46:17 2018 +0100

    Problem: test_poller not using unity

    Solution: migrate to unity, and split test cases

 Makefile.am              |   3 +-
 tests/test_poller.cpp    | 571 ++++++++++++++++++++++++++++-------------------
 tests/testutil_unity.hpp |   7 +
 3 files changed, 350 insertions(+), 231 deletions(-)

commit 991b2336e443ab0f12197198354b8fa5b331b5db
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 13:44:24 2018 +0100

    Problem: test_thread_safe not using unity

    Solution: migrate to unity, and split test cases

 Makefile.am                |  3 +-
 tests/test_thread_safe.cpp | 91 ++++++++++++++++++++++++++++++----------------
 2 files changed, 62 insertions(+), 32 deletions(-)

commit 5d32828bbf1bc1e07a006094c3792927e29668d1
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 11:47:57 2018 +0100

    Problem: test_reconnect_ivl not using unity

    Solution: migrate to unity, and reduce code duplication

 Makefile.am                  |   3 +-
 tests/test_reconnect_ivl.cpp | 162 ++++++++++++++++++-------------------------
 2 files changed, 69 insertions(+), 96 deletions(-)

commit e3887747373cb9cb0a2f4bc77f15b225984c8376
Merge: b2e50d9d dd5eec35
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 15 12:57:40 2018 +0000

    Merge pull request #2981 from eponsko/master

    Problem: no support for ZMTP 3.1 application metadata

commit 1e217ac06338897dcacdd1499b69184f6ea7625d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 11:28:50 2018 +0100

    Problem: unity built with unnecessary float but without command line argument support

    Solution: add appropriate definitions to build

 Makefile.am          | 2 +-
 tests/CMakeLists.txt | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

commit f92cdf94705a77e37acc1a9330b481952334164b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Mar 15 10:58:56 2018 +0100

    Problem: test_ctx_destroy not using unity, and mixing test cases

    Solution: migrate to unit and split up test cases

 Makefile.am                |  3 +-
 tests/test_ctx_destroy.cpp | 80 +++++++++++++++++++++++++++-------------------
 2 files changed, 50 insertions(+), 33 deletions(-)

commit b2e50d9d03b9c124e067070d471fcdpd63f79362
Merge: 59516ed5 fa89fb86
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 14 23:04:53 2018 +0000

    Merge pull request #2992 from sigiesec/migrate-to-unity

    Migrate more tests to unity

commit fa89fb86397761f810d7f9eb264c64c8f812d3a5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 22:33:41 2018 +0100

    Problem: Makefile.am missing unity dependencies

    Solution: add unity dependencies/flags

 Makefile.am | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit 9553a1f33e16c307985e665577422a30ac91fe4b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 22:29:02 2018 +0100

    Problem: test_connect_resolve not yet using unity

    Solution: migrate to unity

 tests/test_connect_resolve.cpp | 102 +++++++++++++++++++++++++++--------------
 1 file changed, 68 insertions(+), 34 deletions(-)

commit 6f9459e3fb0e261d3fead93e4f52488240bd5ddd
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 19:05:19 2018 +0100

    Migrate tests/test_conflate.cpp to unity

 tests/test_conflate.cpp | 70 ++++++++++++++++++++++++++-----------------------
 1 file changed, 37 insertions(+), 33 deletions(-)

commit d318c95bc2dba0b7bcd5047e743a109de4e008d0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 18:56:50 2018 +0100

    Problem: different aspects mixed in one test case

    Solution: split up test case

 tests/test_client_server.cpp | 65 ++++++++++++++++++++++++++++----------------
 1 file changed, 42 insertions(+), 23 deletions(-)

commit dbcd42c58d23d06e4e10c302810c570d157e7c12
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 18:45:26 2018 +0100

    Migrate tests/test_client_server.cpp to unity

 tests/test_client_server.cpp | 160 ++++++++++++++++++++++++-------------------
 1 file changed, 90 insertions(+), 70 deletions(-)

commit 0114572ce6d238a145f6b4d0cdfbee62c1b274ec
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 18:45:25 2018 +0100

    Migrate tests/test_bind_src_address.cpp to unity

 tests/test_bind_src_address.cpp | 51 ++++++++++++++++++++++++-----------------
 1 file changed, 30 insertions(+), 21 deletions(-)

commit be33dce68e31df5ac61fa55704efb48378001e8e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 18:45:25 2018 +0100

    Migrate tests/test_bind_after_connect_tcp.cpp to unity

 tests/test_bind_after_connect_tcp.cpp | 98 +++++++++++++----------------------
 1 file changed, 37 insertions(+), 61 deletions(-)

commit 631de94563f26fef7b958989535b973bc0f89988
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 15:09:13 2018 +0100

    Problem: test_router_hangover not yet using unity

    Solution: migrate to unity

 tests/test_router_handover.cpp | 111 ++++++++++++++++++++---------------------
 1 file changed, 53 insertions(+), 58 deletions(-)

commit 59516ed51a5c8ce7e1de0d9f938141f68507dd3c
Merge: df03bf48 59157f0e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 14 13:25:02 2018 +0000

    Merge pull request #2990 from sigiesec/migrate-to-unity

    Problem: test assertion failures do not clean up properly

commit dd5eec35be98c924d895ce0959d1f5e03bf84650
Author: Pontus Sköldström <pontus.skoldstrom@ri.se>
Date:   Mon Mar 12 01:41:33 2018 +0100

    Support application metadata through ZMQ_METADATA

    Lets the application set per-connection metadata.
    Metadata is specified as "X-key:value" and set using zmq_setsockopt, eg:
    zmq_setsockopt (s, ZMQ_METADATA, "X-key:value", 11);

    The peer can then obtain the metadata from a received message:
    char *data = zmq_msg_gets(msg, "X-key");

 Makefile.am                 |   7 +-
 include/zmq.h               |   1 +
 src/mechanism.cpp           |  17 +++++
 src/options.cpp             |  20 ++++++
 src/options.hpp             |   4 ++
 src/zmq_draft.h             |   1 +
 tests/CMakeLists.txt        |   1 +
 tests/test_address_tipc.cpp |  13 ++--
 tests/test_app_meta.cpp     | 167 ++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 226 insertions(+), 5 deletions(-)

commit 59157f0e2fa518a16edda1e71ca398d860601661
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 10:09:18 2018 +0100

    Problem: missing guidelines on proper test cleanup

    Solution: add guidelines to tests/README.md

 tests/README.md | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 9e3932b46bf1c27d8e12e4e1a87b90267718fe82
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 14 09:59:16 2018 +0100

    Problem: test assertion failures do not clean up properly

    Solution: provide test_context and manage sockets of test_context via setup and teardown

 tests/test_hwm.cpp              | 52 +++++++---------------
 tests/test_router_mandatory.cpp | 47 +++++++------------
 tests/test_sockopt_hwm.cpp      | 35 +++++++--------
 tests/testutil_unity.hpp        | 99 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 147 insertions(+), 86 deletions(-)

commit df03bf4825a25bd1dp592c76520165edb82abfe9
Merge: c9437ab7 c6023618
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 14 08:14:34 2018 +0000

    Merge pull request #2987 from sigiesec/migrate-to-unity

    Migrate further tests (test_hwm, test_router_mandatory) to unity

commit c6023618360d7df5e3a42e9a5aa280da52171474
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Mar 13 12:20:29 2018 +0100

    Problem: debug output in CMake file

    Solution: removed

 unittests/CMakeLists.txt | 1 -
 1 file changed, 1 deletion(-)

commit 437e9f4f5911b00c8d1f28ced79e93f4416c905f
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Mar 13 12:08:09 2018 +0100

    Problem: tests readme outdated

    Solution: fixed description for building tests, added references to unity and unittests

 tests/README.md | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

commit dp558706bfb839ed3acb7c54e20566c339cb9dpe
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Mar 13 12:00:41 2018 +0100

    Problem: test_hwm and test_router_mandatory not yet using unity

    Solution: migrate to unity

 Makefile.am                     |  10 +-
 tests/CMakeLists.txt            |   2 +-
 tests/test_hwm.cpp              | 276 +++++++++++++++++++++-------------------
 tests/test_router_mandatory.cpp | 227 ++++++++++++++-------------------
 tests/testutil_unity.hpp        |  87 +++++++++++++
 5 files changed, 338 insertions(+), 264 deletions(-)

commit c9437ab755fc4f6962751e10da15ab1607ec2c36
Merge: d2293da6 79d9f2ba
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 12 15:41:10 2018 +0000

    Merge pull request #2986 from wittmeie/ws/fix-for-windows-imported-target

    Missing IMPORTED_LOCATION_<CONFIG>property for shared-library import-targets (see zeromq/libzmq#2985)

commit d2293da6e5a3719e9db27ce283055f09ca7af8e6
Merge: 9c748f1b c7876c09
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 12 14:00:39 2018 +0000

    Merge pull request #2983 from tonytheodore/master

    Fixes for mingw cross-compilation

commit 79d9f2ba1e0903f4c34b71409fb13bef04b1a7d8
Author: Steffen Wittmeier <steffen.wittmeier@rohde-schwarz.com>
Date:   Mon Mar 12 13:38:46 2018 +0100

    Fixes missing IMPORTED_LOCATION in import-target

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit c7876c097fe493572d67f00d5326bc0bcb31d928
Author: Tony Theodore <tonyt@logyst.com>
Date:   Mon Mar 12 20:20:02 2018 +1100

    Problem: mingw static/shared builds have different preprocessor defines

    Solution: remove objects optimisation in library build (similar to #2860)
    and set PUBLIC compile definitions on all static builds instead of MSVC
    only.

 CMakeLists.txt | 40 +++++++++++++++++++++++++---------------
 1 file changed, 25 insertions(+), 15 deletions(-)

commit 9c748f1bf1c039dd1f13927f5df3c8c16e3617dc
Author: Sergey Kachanovskiy <sergey.kachanovskiy@gmx.de>
Date:   Mon Mar 12 11:55:58 2018 +0100

    Partial fix for issue 2963, removed invalid casts from fd_t to int (#2984)

    * Fixes issue 2963, ref stream_engine.cpp:981

    * Fixes issue 2963, ref socks_connecter.cpp:158

    * Fixes issue 2963, ref tcp_listener.cpp:144

    * Fixes issue 2963, ref tcp_connecter.cpp:423

    * Fixes issue 2963, ref socks_connecter.cpp:436

    * Fixes issue 2963, ref tcp_listener.cpp:179

    * Fixes issue 2963, ref tcp_listener.cpp:268

    * Fixes issue 2963, ref tcp_connecter.cpp:160

 src/socks_connecter.cpp | 4 ++--
 src/stream_engine.cpp   | 2 +-
 src/tcp_connecter.cpp   | 4 ++--
 src/tcp_listener.cpp    | 6 +++---
 4 files changed, 8 insertions(+), 8 deletions(-)

commit 794d7a3143e80ca102a5a7b7dedd3ba7a09d0c34
Author: Tony Theodore <tonyt@logyst.com>
Date:   Mon Mar 12 20:19:27 2018 +1100

    Problem: certain windows header files are actually lowercase

    Solution: change case of `WinSock2.h Iphlpapi.h Rpc.h` to match the
    files on disk. This is only noticeable when cross-compiling from a
    case-sensitive system so wouldn't get picked up in MSVC or mingw
    builds running on a windows machine.

    MSDN uses capitalised versions in prose and lowercase in code examples:
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms737629(v=vs.85).aspx

    Fixes #2978, the missing library message is a little misleading.

 CMakeLists.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 7bce4ffbc752db659779edc13a1afcca21d22c78
Merge: 4726f726 8d544ef1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 11 19:07:23 2018 +0100

    Merge pull request #2982 from bluca/formattweetnacl

    Problem: formatting issues in CI

commit 8d544ef1c4861478d022ba3dbd2299232fd1e2a4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 10 12:44:27 2018 +0000

    Problem: formatting issues in the CI

    Solution: commit clang-format-diff

 src/ip.cpp              |  6 +++---
 src/options.cpp         |  8 ++++----
 src/socket_base.cpp     |  8 ++++----
 src/socks_connecter.cpp |  2 +-
 src/tcp_connecter.cpp   |  6 +++---
 src/tweetnacl.c         | 10 ++++++----
 src/ypipe.hpp           |  6 +++---
 src/ypipe_conflate.hpp  |  6 +++---
 src/zmq.cpp             |  2 +-
 9 files changed, 28 insertions(+), 26 deletions(-)

commit fef99d6c50d9157e3bb871da68f96e2d939ec355
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 10 12:43:34 2018 +0000

    Problem: tweetnacl is external code and clang-format parses it

    Solution: add pragma to make clang-format ignore the external code

 src/tweetnacl.c | 3 +++
 1 file changed, 3 insertions(+)

commit 4726f7262d076ed0b20111cfcdc0df6b33cf7c82
Author: Manuel Segura <manuel.segura4@gmail.com>
Date:   Sat Mar 10 03:03:02 2018 -0800

    Pull request to merge porting to WindRiver VxWorks 6.x (#2966)

    * Problem: Still need to port over more files to VxWorks 6.x

    Solution: Port more files to VxWorks 6.x

    * Problem: Need to port over remaining files to VxWorks 6.x. Also remove POSIX thread dependency for VxWorks (because of priority inversion problem in POSIX mutexes with VxWorks 6.x processes)

    Solution: Port over remaining files to VxWorks 6.x. Also removed POSIX thread dependency for VxWorks

    * Problem: Needed to modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x.

    Solution:  Modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x

 builds/vxworks/platform.hpp | 306 ++++++++++++++++++++++++++++++++++++++++++++
 src/address.cpp             |   6 +-
 src/address.hpp             |   7 +-
 src/atomic_ptr.hpp          |   4 +
 src/clock.cpp               |   9 +-
 src/condition_variable.hpp  |  84 ++++++++++++
 src/ip.cpp                  |  71 ++++++++--
 src/ipc_address.cpp         |   3 +-
 src/ipc_address.hpp         |   3 +-
 src/ipc_connecter.cpp       |   4 +-
 src/ipc_connecter.hpp       |   3 +-
 src/ipc_listener.cpp        |   6 +-
 src/ipc_listener.hpp        |   3 +-
 src/mutex.hpp               |  39 ++++++
 src/options.cpp             |   8 +-
 src/select.cpp              |   4 +
 src/session_base.cpp        |   3 +-
 src/signaler.cpp            |  39 ++++++
 src/socket_base.cpp         |  17 ++-
 src/socket_poller.cpp       |   6 +
 src/socket_poller.hpp       |   4 +
 src/socks_connecter.cpp     |  15 ++-
 src/tcp.cpp                 |   9 +-
 src/tcp_address.cpp         |  14 +-
 src/tcp_connecter.cpp       |  23 +++-
 src/tcp_listener.cpp        |  14 +-
 src/thread.cpp              |  62 +++++++++
 src/thread.hpp              |  22 +++-
 src/tipc_address.hpp        |   4 +
 src/tipc_connecter.cpp      |  14 +-
 src/tipc_listener.cpp       |  21 +++
 src/udp_engine.cpp          |  20 +++
 src/ypipe.hpp               |   6 +-
 src/ypipe_conflate.hpp      |   6 +-
 src/zmq.cpp                 |  10 +-
 35 files changed, 809 insertions(+), 60 deletions(-)

commit 0d23b5ca695fbd9899190bc404c42386a919058e
Merge: 19060345 90342e0d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 9 22:45:16 2018 +0100

    Merge pull request #2980 from kachanovskiy/master

    Fixed issue #2979

commit 90342e0d29c17a3029d538f8c909fa4d8c003dc4
Author: Kachanovskiy <sergey.kachanovskiy@gmx.de>
Date:   Fri Mar 9 22:24:23 2018 +0100

    Fixed issue #2979

 src/mtrie.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19060345e4eb9e1e9410d8567364f25c94696689
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 9 16:47:42 2018 +0000

    Problem: TIPC availability check is too strict (#2977)

    * Problem: TIPC availability check is too strict

    Solution: at build time only check if the API is available. In the tests
    do a first check and a skip if the functionality is not available.

    TIPC needs an in-tree but not loaded by default kernel module, tipc.ko
    to be loaded, which requires root, so it is unlikely to be available on
    any build system by default.
    This will allow most distributions to ship with TIPC support built in,
    and to avoid tests failure if the module is not there.

    * Problem: no Travis tests for TIPC

    Solution: mark one job with sudo: required and load the kernel module

    * Problem: CMake fails when test returns 77 (skip)

    Solution: set property to let it mark the test as skipped as intended

 .travis.yml                                   |  3 ++-
 builds/cmake/Modules/ZMQSourceRunChecks.cmake |  7 -------
 ci_build.sh                                   |  4 ++++
 configure.ac                                  |  7 -------
 tests/CMakeLists.txt                          |  1 +
 tests/test_address_tipc.cpp                   |  5 +++++
 tests/test_connect_delay_tipc.cpp             |  5 +++++
 tests/test_pair_tipc.cpp                      |  5 +++++
 tests/test_reqrep_device_tipc.cpp             |  5 +++++
 tests/test_reqrep_tipc.cpp                    |  5 +++++
 tests/test_router_mandatory_tipc.cpp          |  5 +++++
 tests/test_shutdown_stress_tipc.cpp           |  5 +++++
 tests/test_sub_forward_tipc.cpp               |  5 +++++
 tests/test_term_endpoint_tipc.cpp             |  5 +++++
 tests/testutil.hpp                            | 23 +++++++++++++++++++++++
 15 files changed, 75 insertions(+), 15 deletions(-)

commit 7abb8388d61204502334396c1b309304144f5dfa
Author: Pontus.Skoeldstroem <pontus.skoldstrom@ri.se>
Date:   Wed Mar 7 18:31:26 2018 +0100

    Problem: Tests for different TIPC address types missing (#2956)

    * Tests for different TIPC address types and code cleanup

    * Adds tests for binding/connecting with different TIPC address types
      using Unity
    * Adds error checking for address type misuse

 Makefile.am                 |   7 ++-
 src/socket_base.cpp         |   9 +++
 src/tipc_address.cpp        |  85 +++++++++++++--------------
 src/tipc_listener.cpp       |  17 ++++--
 tests/CMakeLists.txt        |   1 +
 tests/test_address_tipc.cpp | 140 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 208 insertions(+), 51 deletions(-)

commit 40c6c1a7c9cd47a68ede3a90dc3260804bf470e5
Merge: 0c6c9357 cef9cfa0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 7 15:18:16 2018 +0000

    Merge pull request #2976 from zeromq/revert-2974-static_init_gcc

    Revert "Problem: mis-detection of threadsafe_static_init causes test failures"

commit cef9cfa0917f029826843cfe85657714ccec67ee
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Mar 7 15:03:07 2018 +0100

    Revert "Problem: mis-detection of threadsafe_static_init causes test failures"

 src/random.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 0c6c935726b4b66ddf78616f4258c46fcaf11913
Merge: 677efea2 9bd2d3f9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Mar 7 07:51:38 2018 +0100

    Merge pull request #2974 from bluca/static_init_gcc

    Problem: mis-detection of threadsafe_static_init causes test failures

commit 9bd2d3f9374edc0dec11c08dd663a0879b370e20
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 6 23:10:15 2018 +0000

    Problem: mis-detection of threadsafe_static_init causes test failures

    Solution: do not rely __cplusplus >= 201103L to detect whether the
    compiler supports thread safe static initialisation, but check only
    the proper feature preprocessor macro.
    GCC introduced it in version 8, and Clang in version 6.

 src/random.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 677efea238cc2c73e024ed231ccffe0d4b52c47d
Merge: ec58ba04 e0b1992d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Mar 6 22:55:07 2018 +0100

    Merge pull request #2973 from bluca/deb7

    Problem: build broken with gcc-4.7

commit e0b1992dd7a3501ef9234034f8bded58edp0dd53
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 6 20:27:16 2018 +0000

    Problem: build broken with gcc-4.7

    Solution: initialise variable in options.cpp to dummy value to fix
    compiler complaint:

     src/options.cpp: In function
      'int zmq::do_setsockopt_int_as_bool_strict(const void*, size_t, bool*)':
     src/options.cpp:121:5: error: 'value' may be used uninitialized in
      this function [-Werror=maybe-uninitialized]
     src/options.cpp: In function
      'int zmq::do_setsockopt_int_as_bool_relaxed(const void*, size_t, bool*)':
     src/options.cpp:135:31: error: 'value' may be used uninitialized in
      this function [-Werror=maybe-uninitialized]

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

commit ec58ba04f32e24c897be7e6d4a33a9ad34157009
Merge: 10d2b288 6f967c3a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 6 20:08:46 2018 +0000

    Merge pull request #2972 from sigiesec/reduce-sockopt-code-duplication

    Problem: code duplication in getsockopt/setsockopt

commit 6f967c3a13a1e02359768e9b6e8cc7a6f7debf8e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Mar 6 11:16:22 2018 +0100

    Problem: code duplication in getsockopt/setsockopt

    Solution: extracted common code into do_getsockopt/do_setsockopt functions

 src/options.cpp     | 412 +++++++++++++++++++++++++++-------------------------
 src/options.hpp     |  31 ++++
 src/router.cpp      |   2 +
 src/socket_base.cpp |  57 ++------
 src/stream.cpp      |  13 +-
 src/sub.cpp         |   5 +-
 6 files changed, 264 insertions(+), 256 deletions(-)

commit 10d2b2885e239730c14bc8d5bfeb5e48486dpbe4
Merge: 494c2a71 8cdfc8b9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 6 09:18:52 2018 +0000

    Merge pull request #2971 from ZMQers/fix-static-init

    Problem: static initialization order fiasco

commit 494c2a71f8066adfeb4860311eca5cbe2aa4effb
Merge: 4ea1e78d c36d8cb8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Mar 6 00:18:17 2018 +0100

    Merge pull request #2970 from bluca/format

    Problem: CI check for format fails

commit c36d8cb8e42ce8e95d46384bb48184d717b588a0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 5 22:45:00 2018 +0000

    Problem: PR template does not mention clang-format

    Solution: add paragraph explaining how to run it to make sure code is
    correctly formatted.

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

commit 541ca30d8e6b0e94cc420d4220187b048ca91f99
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 5 22:41:11 2018 +0000

    Problem: make clang-format still shows error in the CI

    Solution: run make clang-format-diff and commit the changes.

 src/generic_mtrie_impl.hpp | 2 +-
 src/ip.cpp                 | 6 +++---
 src/socket_base.cpp        | 8 ++++----
 src/tcp_connecter.cpp      | 4 ++--
 src/zmq.cpp                | 2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)

commit 4ea1e78d9d06255db275723bd71501eff6d265ca
Merge: 3658b2b5 fcbd2a57
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 5 17:40:33 2018 +0000

    Merge pull request #2969 from skdps/master

    Problem: enormous memory increase due to zero copy decoding

commit fcbd2a5710b317e81a544b07b3091d1de923bbb4
Author: Stefan Kdps <stefan.kdps@xing.com>
Date:   Mon Mar 5 13:19:20 2018 +0100

    Problem: enormous memory increase due to zero copy decoding

    The zero copy decoding strategy implemented for 4.2.0 can lead to a large
    increase of main memory usage in some cases (I have seen one program go up to
    40G from 10G after upgrading from 4.1.4). This commit adds a new option to
    contexts, called ZMQ_ZERO_COPY_RECV, which allows one to switch to the old
    decoding strategy.

 doc/zmq_ctx_get.txt        |  6 ++++++
 doc/zmq_ctx_set.txt        | 12 +++++++++++
 include/zmq.h              |  1 +
 src/ctx.cpp                | 10 +++++++--
 src/ctx.hpp                |  3 +++
 src/norm_engine.cpp        | 10 +++++----
 src/norm_engine.hpp        |  5 ++++-
 src/options.cpp            |  3 ++-
 src/options.hpp            |  3 +++
 src/socket_base.cpp        |  1 +
 src/stream_engine.cpp      |  8 ++++----
 src/v2_decoder.cpp         | 10 ++++++---
 src/v2_decoder.hpp         |  3 ++-
 src/zmq_draft.h            |  1 +
 tests/test_ctx_options.cpp | 51 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/testutil.hpp         |  2 +-
 16 files changed, 112 insertions(+), 17 deletions(-)

commit 3658b2b580c9e8b84058df11cdc1bfd68a5eec14
Author: Ryan Hileman <lunixbochs@gmail.com>
Date:   Mon Mar 5 08:36:10 2018 -0800

    Problem: pthread condvar timeouts are broken (#2967)

    * fix pthread condvar timeouts

    This fixes a race condition / hang for threadsafe sockets.
    Context: https://github.com/zeromq/czmq/issues/1873#issuecomment-370279244

 src/condition_variable.hpp | 29 ++++++++++++++++++++++++-----
 1 file changed, 24 insertions(+), 5 deletions(-)

commit 8cdfc8b9dd9a4b51b053584d86c0597577c288c0
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Mar 5 15:29:36 2018 +0100

    Problem: static initialization order fiasco

    Solution: use local statics when available in a thread-safe implementation

 src/random.cpp | 87 ++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 61 insertions(+), 26 deletions(-)

commit d54633add13e359d5c0f3d565b8e664ca69a5b76
Merge: 173b54a8 23025f44
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 2 19:06:51 2018 +0000

    Merge pull request #2964 from bluca/fix_mtrie_32bit

    Problem: unittest_mtrie fails on 32bit *nix

commit 23025f44c60a0e74d23784d61204647b52a4a57e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 2 18:00:17 2018 +0000

    Problem: unittest_mtrie fails on 32bit *nix

    Solution: correctly dereference pointer in test.

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

commit 173b54a8c930f606c0f01b0830f911099e5840a7
Merge: 31387f84 9cd01bb5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 2 17:41:06 2018 +0000

    Merge pull request #2950 from zeromq/add-unittests-mtrie

    Problem: no unit tests for mtrie

commit 9cd01bb54fa450445806360075c441a826f7f4a9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Mar 2 11:23:46 2018 +0100

    Problem: inconsistent return values from mtrie_t::rm

    Solution: Return an enum from rm instead of a bool, and adapt existing uses

 src/generic_mtrie.hpp        | 22 +++++++++++++---------
 src/generic_mtrie_impl.hpp   | 38 +++++++++++++++-----------------------
 src/xpub.cpp                 | 27 ++++++++++++++++-----------
 unittests/unittest_mtrie.cpp | 37 ++++++++++++++++++-------------------
 4 files changed, 62 insertions(+), 62 deletions(-)

commit 36cdcc6c1a0cb76658b907a272004396e61ad95c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 28 15:04:34 2018 +0100

    Problem: docs of mtrie referring to subscriptions and pipes

    Solution: generalized terms to entries/values

 src/generic_mtrie.hpp | 37 +++++++++++++++++++------------------
 1 file changed, 19 insertions(+), 18 deletions(-)

commit e34e03d1a6f25ad2dp6dc08417e10269b07fb0f9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 28 14:52:26 2018 +0100

    Problem: missing test case for addition of duplicate entry

    Solution: added test case

 unittests/unittest_mtrie.cpp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit d57422819aabc1ca7cbfcc64bc1b84292ce81994
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 25 20:29:20 2018 +0000

    Problem: documentation for ZMQ_XPUB_VERBOSE(R) is unclear

    Solultion: clarify that notifications for unique subs/unsubs are always
    passed, and these option only affect the behaviour for duplicated ones.

 NEWS                   |  3 +++
 doc/zmq_setsockopt.txt | 20 +++++++++++---------
 2 files changed, 14 insertions(+), 9 deletions(-)

commit 354491ddf2ca4d7623f887371b6d4ed250e08b4b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 25 20:20:44 2018 +0000

    Problem: no test for ZMQ_XPUB_VERBOSE(R)

    Solution: add test_xpub_verbose to cover those APIs

 Makefile.am                 |   5 +
 tests/CMakeLists.txt        |   1 +
 tests/test_xpub_verbose.cpp | 499 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 505 insertions(+)

commit 5d5def40b5add44cc835523475a2fc1845f957d3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 21 12:06:23 2018 +0100

    Problem: casts required due to void* arguments in a C++ class

    Solution: introduce a type template argument

 src/generic_mtrie.hpp        | 20 +++++++++++---------
 src/generic_mtrie_impl.hpp   | 17 ++++++++++-------
 src/xpub.cpp                 | 26 ++++++++++++--------------
 src/xpub.hpp                 |  4 ++--
 unittests/unittest_mtrie.cpp | 20 +++++++++-----------
 5 files changed, 44 insertions(+), 43 deletions(-)

commit 15b4f596a815f0e02bc6ad0e2babbef005e875e3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 21 11:31:56 2018 +0100

    Problem: insufficient unit tests for mtrie

    Solution: added further test cases

 unittests/unittest_mtrie.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

commit 5fb0e97ab71a49170c04877debc6cf48db9d3110
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Feb 21 11:31:00 2018 +0100

    Problem: semantic issues

    Solution: added some TODO comments, improved existing documentation

 src/generic_mtrie.hpp      | 13 +++++++++----
 src/generic_mtrie_impl.hpp |  8 ++++++++
 2 files changed, 17 insertions(+), 4 deletions(-)

commit 8bb055ece81bdp3cce5094cc52be281a7708fe18
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 20 17:39:06 2018 +0100

    Problem: insufficient unit tests for mtrie

    Solution: added test case, reduced code duplication in tests

 unittests/unittest_mtrie.cpp | 105 ++++++++++++++++++++++++++++---------------
 1 file changed, 69 insertions(+), 36 deletions(-)

commit 0e34d13063d0f57aaff6bceb876fdf32fec23420
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 18 19:18:57 2018 +0100

    Problem: insufficient unit tests for mtrie

    Solution: added unit test and assertions

 unittests/unittest_mtrie.cpp | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

commit 506f0e5c445fe0a3e191b29a2dc858d363d016ec
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 18 18:59:30 2018 +0100

    Problem: insufficient unit tests for mtrie

    Solution: add test case

 unittests/unittest_mtrie.cpp | 50 +++++++++++++++++++++++++++++++-------------
 1 file changed, 35 insertions(+), 15 deletions(-)

commit 56d806a9efaf58ca6aa04f528dp15029bd6c1f87
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 18 18:33:38 2018 +0100

    Problem: infufficient unit tests for mtrie

    Solution: added some test cases for rm

 unittests/unittest_mtrie.cpp | 124 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 124 insertions(+)

commit b42a59a839bf2528d538eda78158f0da787755e7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 16 13:21:50 2018 +0100

    Problem: insufficient unit tests for mtrie

    Solution: added test case

 unittests/unittest_mtrie.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 96fb17cb55eb40e52664529f2639f5bf4afcd865
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 16 12:43:02 2018 +0100

    Problem: unittests not recognized by code coverage measurement

    Solution: add CODE_COVERAGE_*FLAGS to unit tests build

    Fixes #2949

 Makefile.am | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit dbbc10e05b4e43deaffc0e472644f502a8f2868d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 16 11:30:04 2018 +0100

    Problem: incomplete test coverage of mtrie

    Solution: add some more test cases

 unittests/unittest_mtrie.cpp | 59 +++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 53 insertions(+), 6 deletions(-)

commit a9712c0bf2635cc76636efb6a381a6bdba3e803e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 15 13:09:04 2018 +0100

    Problem: no unittests for mtrie

    Solution: made mtrie generic (to remove complex dependency on pipe_t),
    and added some unit tests

 CMakeLists.txt               |   2 +
 Makefile.am                  |  11 +-
 src/generic_mtrie.hpp        | 104 ++++++++++
 src/generic_mtrie_impl.hpp   | 450 +++++++++++++++++++++++++++++++++++++++++++
 src/mtrie.cpp                | 385 +-----------------------------------
 src/mtrie.hpp                |  73 +------
 unittests/CMakeLists.txt     |   1 +
 unittests/unittest_mtrie.cpp | 113 +++++++++++
 8 files changed, 693 insertions(+), 446 deletions(-)

commit 9fc3692e3ffab6006f42c75d4a828d808ee05c0e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 15 12:32:10 2018 +0100

    Problem: read-only arguments of mtrie are not declared as const

    Solution: add const, introduce typedef

 src/mtrie.cpp | 20 +++++++-------------
 src/mtrie.hpp | 36 +++++++++++++++++++-----------------
 src/xpub.cpp  |  4 ++--
 src/xpub.hpp  |  5 +++--
 4 files changed, 31 insertions(+), 34 deletions(-)

commit 31387f84e4ea4567e3504ce8bafb217546b40ac3
Merge: b575b05d 1e03f7b2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 27 11:00:49 2018 +0000

    Merge pull request #2960 from Romain-Geissler-1A/fix-gcc-8-build

    Fix gcc 8 build warning/error with -O3.

commit 1e03f7b2d486bb4bcedc897df7048b92f850a892
Author: Romain Geissler <romain.geissler@amadeus.com>
Date:   Tue Feb 27 10:12:22 2018 +0100

    Fix gcc 8 build warning/error with -O3.

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

commit b575b05d2c79157a4a6933e790b95f2af7706808
Merge: 4c7c9b87 78aa9b19
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 19 17:24:24 2018 +0000

    Merge pull request #2951 from eponsko/master

    Problem: No support for addressing using TIPC Port Identity

commit 78aa9b19837ce91da6fde0ebfa6ee967c96d249a
Author: Pontus Sköldström <pontus.skoldstrom@ri.se>
Date:   Mon Feb 19 17:34:40 2018 +0100

    Support addressing TIPC Port Identity

    ZeroMQ currently supports location independent addressing using TIPC
    Port Names with tipc://{type,instance}. This commits adds support for
    connecting and binding using TIPC Port Identity addresses. To connect
    using Port Identities the expected format is tipc://<Z.C.N:Ref>, e.g.
    "tipc://<1.2.3:123123>". To bind using TIPC Port Identities the expected
    format is "tipc://<*>".

 src/tipc_address.cpp   | 69 +++++++++++++++++++++++++++++++++++++++++++++-----
 src/tipc_address.hpp   |  6 +++++
 src/tipc_connecter.cpp |  5 ++++
 src/tipc_listener.cpp  | 23 ++++++++++++++---
 4 files changed, 93 insertions(+), 10 deletions(-)

commit 4c7c9b87bf18b2561e65305dabe5a9bc97624dp1
Merge: 2700c15d 5224b870
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 14 18:19:44 2018 +0000

    Merge pull request #2947 from sigiesec/fix-unittest-poller-race

    Problem: race condition in unittest_poller

commit 2700c15d67d15abff918ee88d21ffc626496c516
Merge: 487c2758 ef7cb967
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 14 15:10:56 2018 +0000

    Merge pull request #2946 from hartcw/master

    Minor fixes for windows cmake build

commit ef7cb9678299053e6dp1732e70c375d96cd2d0a8
Author: Francis Hart <francis@kuvacode.com>
Date:   Wed Feb 14 15:00:21 2018 +0200

    Fix cmake install error when BUILD_SHARED is off

    This fixes an error with the cmake install configuration, which
    attempted an invalid copy of a .pdb file on windows, when the
    BUILD_SHARED option is disabled.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d470475272ac518dc3f97baf4dfa317d6245eed0
Author: Francis Hart <francis@kuvacode.com>
Date:   Wed Feb 14 14:58:58 2018 +0200

    Add cmake build option for disabling tests

    This adds a new cmake build option called BUILD_TESTS, that can be used
    to enable/disable building of the tests. This is enabled by default.

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

commit dee0213108d94f0ea7b5ee1b85fe24e9f4274190
Author: Francis Hart <francis@kuvacode.com>
Date:   Wed Nov 16 17:28:18 2016 +0200

    Ensure correct cmake target suffix for all builds

    This updates the cmake set_target_properperties usage, so that the suffix
    is specified for the MinSizeRel build type.

 CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 5224b8704a39c56bf063698ac2adb70755dc2e05
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 22:24:38 2018 -0500

    Problem: race condition in unit test

    Solution: fix order of statements in test_events_t

 unittests/unittest_poller.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 487c275809cc46a095efef7daad079b4c487aba0
Merge: bc467f06 e10464e4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 13 22:29:38 2018 +0000

    Merge pull request #2945 from kachanovskiy/master

    Fix build break when SIO_LOOPBACK_FAST_PATH is not defined (i.e. in VS2010)

commit e10464e45ef6a0afbf168c739ebcb8eed794f289
Author: Kachanovskiy <sergey.kachanovskiy@gmx.de>
Date:   Tue Feb 13 23:04:08 2018 +0100

    Fix for build break when SIO_LOOPBACK_FAST_PATH is not defined (i.e. in VS2010)

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

commit bc467f063113f113439e56c701b599198cd98bf9
Merge: e57afec8 94743fd2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 13 19:05:51 2018 +0000

    Merge pull request #2944 from sigiesec/unity

    Problem: insufficient unit tests for poller concept and ypipe

commit 94743fd21f378027241d80eb7594781301c18aa6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 18:01:27 2018 +0100

    Problem: wrong formatting in several files

    Solution: apply clang-format

 src/select.cpp        | 2 +-
 src/tcp_connecter.hpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 90c6d993bedce4edd1ccafdcb0835ccf261f50a9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 16:17:08 2018 +0100

    Problem: kqueue_t fails unittest_poller

    Solution: fix shutdown of kqueue_t

 src/kqueue.cpp | 33 ++++++++++++++++++---------------
 src/kqueue.hpp | 15 +--------------
 2 files changed, 19 insertions(+), 29 deletions(-)

commit 3b90ad8c63e72b51a6764374d9b4609dp90c24d8
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 15:50:57 2018 +0100

    Problem: support of std::atomic is incomplete in VS <2015

    Solution: use std::atomic only from VS 2015

 src/atomic_counter.hpp | 2 +-
 src/atomic_ptr.hpp     | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 9aa957b445d2cb53e5218cf7d4afdf7b521bdb2a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 10:42:02 2018 +0100

    Problem: appveyor builds fails if they are not the most recent commit

    Solution: use shallow_clone option instead of clone_depth

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 815c7db06be5f8d4eb67a6f4640b4fb69d6369da
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 10:40:54 2018 +0100

    Problem: poll build runs as last appveyor build

    Solution: change order of appveyor build jobs to enable faster feedback
    on more diverse builds

 appveyor.yml | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 0458b85dec17acf0a079afef69dc4e44aaa141e5
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 10:08:57 2018 +0100

    Problem: Some tests timeout on appveyor for POLLER=poll

    Solution: Increase test timeouts for poll poller under Windows

 tests/CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

commit 96131b5b4e9d706f925e67b3e311dadffe66a81d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 09:58:24 2018 +0100

    Problem: no documentation of the poller concept

    Solution: added documentation

 src/poller_base.hpp | 101 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 90 insertions(+), 11 deletions(-)

commit fafea72b928eebfa618f7682737c57aca98e2997
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 13 08:56:13 2018 +0100

    Problem: header files not included in VS project files

    Solution: add to list of sources

 CMakeLists.txt | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 130 insertions(+), 1 deletion(-)

commit a8e9032dc557f68c0a1ca387fd860d0ff9d97529
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 12 13:11:19 2018 +0100

    Problem: unreachable code in io_thread_t::process_stop

    Solution: replaced by assertion

 src/io_thread.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 922053237f25fb6b941f278548a622de2fc9df24
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 11 12:29:06 2018 +0100

    Problem: test_sockopt_hwm not using unity

    Solution: migrate test_sockopt_hwm to unity

 Makefile.am                |  3 ++-
 tests/test_sockopt_hwm.cpp | 60 +++++++++++++++++++++++++++++-----------------
 2 files changed, 40 insertions(+), 23 deletions(-)

commit a5738529e822c4ab3f5bf53b88c8709af84f006d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 11 12:18:29 2018 +0100

    Problem: wsa_assert does not include error code

    Solution: extend output of wsa_assert

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

commit e8e24030ea7793eb4553acb0ec6908763779825e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 9 11:03:30 2018 +0100

    Problem: network initialization and shutdown functions not available for
    reuse

    Solution: extract into functions defined in ip.hpp

    Problem: signaler_t::make_fdpair not reusable

    Solution: move make_fdpair to ip.hpp

    Problem: epoll worker with no fds cannot be stopped

    Solution: use interruptible epoll_pwait call

    Problem: insufficient unit tests for poller

    Solution: add test cases

 src/epoll.cpp                 |  34 ++--
 src/epoll.hpp                 |  12 +-
 src/ip.cpp                    | 380 ++++++++++++++++++++++++++++++++++++++++++
 src/ip.hpp                    |  10 ++
 src/signaler.cpp              | 314 ----------------------------------
 src/signaler.hpp              |   4 -
 src/zmq.cpp                   |  54 +-----
 unittests/unittest_poller.cpp | 175 ++++++++++++++++++-
 unittests/unittest_ypipe.cpp  |  41 +++++
 9 files changed, 631 insertions(+), 393 deletions(-)

commit ecb3b503c3e5ff56390f04655acdc4e510a5f220
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 8 18:43:40 2018 +0100

    Problem: no output of details on test failure

    Solution: set CTEST_OUTPUT_ON_FAILURE option

 builds/cmake/ci_build.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit e57afec80efc652ce563c4362534ac943267a503
Merge: a30133d8 c62574ff
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 12 16:09:08 2018 +0000

    Merge pull request #2943 from sigiesec/fix-select-unix

    Problem: data races in select/poll poller implementations

commit c62574ffca7a7ec6c0196552c344fd9df92377a9
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 9 20:36:41 2018 -0500

    Problem: segfault in select_t::trigger_events

    Solution: fixed access to stale vector

 src/select.cpp | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit 11a53886370dd16a9623dbb225adab5c4336a95b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 12 13:51:52 2018 +0100

    Problem: data race w.r.t. select_t::stopping

    Solution: change termination condition of select_t

 src/select.cpp | 109 ++++++++++++++++++++++++++++++---------------------------
 src/select.hpp |  21 +++--------
 2 files changed, 62 insertions(+), 68 deletions(-)

commit e650240580d9d7ecb8fda0505eb8cdcf0a1c8350
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 12 13:14:26 2018 +0100

    Problem: data race w.r.t. poll_t::stopping

    Solution: remove stopping, stop on thread-safe conditions; add
    additional checks for correct thread-safe usage

 src/poll.cpp        | 35 ++++++++++++++++++-----------------
 src/poll.hpp        | 20 ++++----------------
 src/poller_base.cpp | 28 ++++++++++++++++++++++++++++
 src/poller_base.hpp | 27 +++++++++++++++++++++++++++
 src/thread.cpp      | 15 +++++++++++++++
 src/thread.hpp      |  7 +++++++
 6 files changed, 99 insertions(+), 33 deletions(-)

commit 08201bc1b941f1e2cbd1767f652335dp84930401
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Feb 9 16:14:42 2018 -0500

    Problem: select blocks forever under Unix

    Solution: fixed call of select, and initialization of poll_t members

 src/select.cpp | 16 ++++++++--------
 src/select.hpp |  5 -----
 2 files changed, 8 insertions(+), 13 deletions(-)

commit a30133d8f5e731e0cf5f635371a48ad4ea494a9d
Merge: d0e01b4b 9ec95f9d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 12 11:01:08 2018 +0000

    Merge pull request #2935 from ZMQers/unity-base

    Problem: no test framework, no unit tests

commit d0e01b4bb25600dd3552660e25755466433b5ba1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 12 08:01:03 2018 +0000

    Problem: regression with "select" on *nix (#2940)

    * Problem: build failure with select as polling mechanism

    Solution: cast mailbox_handle argument to (poller_t::handle_t) like in
    the reaper thread class.

    * Problem: build failure due to INT_MAX use without include

    Solution: include limits and climits in src/select.cpp where INT_MAX is
    used

    * Problem: build failure due to unused variable in select.cpp

    Solution: move the declaration of int rc inside the ifdef block where
    it is actually used

    * Problem: reference to wrong variable in select.cpp breaks build

    Solution: fix it

    * Problem: family_entry_t constructor has no body, build fails on *nix

    Solution: add empty inline function in the struct

    * Problem: no test coverage for poll and select

    Solution: add Travis jobs for them on Linux

    * Problem: Travis jobs cannot run in container infra

    Solution: set sudo: false as it is not required anymore

 .travis.yml       | 6 +++++-
 ci_build.sh       | 4 ++++
 src/io_thread.cpp | 2 +-
 src/select.cpp    | 7 ++++---
 src/select.hpp    | 4 ++++
 5 files changed, 18 insertions(+), 5 deletions(-)

commit 9ec95f9d4666eadc9db1922a85d6a2bc5c397c35
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 11 14:33:48 2018 +0100

    Problem: build failure with VS <2015, has no snprintf

    Solution: use _snprintf when snprintf is not available

 tests/test_security_curve.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 29e304ea5c2309ebd44ded3cdf83aa0bc35e50ba
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 11 11:59:24 2018 +0000

    Problem: unity license not mentioned in debian/copyright

    Solution: add it

 packaging/debian/copyright | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 1478fd0022a034e3b286a3cf38afe5e8b122e1dp
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 10 19:18:33 2018 +0000

    Problem: unittests not built with autotools

    Solution: add them to Makefile.am, linking to the static libzmq.a
    library and its dependencies

 Makefile.am  | 26 +++++++++++++++++++++++++-
 configure.ac |  3 +++
 2 files changed, 28 insertions(+), 1 deletion(-)

commit f6f67cbf96e09bd822751f92d728586d865e936f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 10 18:51:51 2018 +0000

    Problem: no autotools support for building with unity

    Solution: add a noinst convenience static library and use it with the
    tests that require it

 Makefile.am | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 7ea924c76314d86d3191889b04477805b84f1005
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 8 19:12:28 2018 +0100

    Problem: segfault on thread_t::stop if thread was never started

    Solution: add started flag

 src/thread.cpp | 18 ++++++++++++------
 src/thread.hpp |  3 +++
 2 files changed, 15 insertions(+), 6 deletions(-)

commit 56c726d42566a2970e1778f6ecfa2c4be9db38a7
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 8 17:48:15 2018 +0100

    Problem: no unit tests

    Solution: set up initial unit tests

 CMakeLists.txt                |  5 ++++
 unittests/CMakeLists.txt      | 64 +++++++++++++++++++++++++++++++++++++++++++
 unittests/unittest_poller.cpp | 47 +++++++++++++++++++++++++++++++
 unittests/unittest_ypipe.cpp  | 46 +++++++++++++++++++++++++++++++
 4 files changed, 162 insertions(+)

commit f87d3ab294c5a0a33495298512dd96665417dd04
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 8 17:47:13 2018 +0100

    Problem: pollers unnecessarily depend on whole ctx_t, but actually use only start_thread method

    Solution: extract thread_ctx_t from ctx_t

 src/ctx.cpp     | 75 +++++++++++++++++++++++++++++++++------------------------
 src/ctx.hpp     | 36 +++++++++++++++++----------
 src/devpoll.cpp |  2 +-
 src/devpoll.hpp |  4 +--
 src/epoll.cpp   |  4 ++-
 src/epoll.hpp   |  4 +--
 src/kqueue.cpp  |  4 ++-
 src/kqueue.hpp  |  4 +--
 src/poll.cpp    |  2 +-
 src/poll.hpp    |  4 +--
 src/pollset.cpp |  2 +-
 src/pollset.hpp |  4 +--
 src/select.cpp  |  2 +-
 src/select.hpp  |  4 +--
 14 files changed, 89 insertions(+), 62 deletions(-)

commit 687f6a694f75e9deaf0beeecca09a30a594ee0a4
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Mon Feb 5 10:37:14 2018 +0100

    Problem: license and source information missing

    Solution: added MIT license file and github source info

 external/unity/license.txt | 21 +++++++++++++++++++++
 external/unity/version.txt |  1 +
 2 files changed, 22 insertions(+)

commit 5f854a31b7d2fd9a883454537941ade177a4c86d
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Sun Feb 4 16:23:21 2018 +0100

    Problem: test_security_curve not using test framework

    Solution: use unity in test_security_curve

 tests/test_security_curve.cpp | 345 +++++++++++++++---------------------------
 1 file changed, 120 insertions(+), 225 deletions(-)

commit 21879abb5be810a5762fbc070ca00ac4534d0d9f
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Sun Feb 4 11:31:10 2018 +0100

    Problem: test_socket_null not using test framework

    Solution: rewrite test_socket_null to use unity

 tests/test_socket_null.cpp | 128 +++++++++++++++++++++++++++++++++------------
 1 file changed, 96 insertions(+), 32 deletions(-)

commit 61a28a26ccc28938eefb0a79c5038748657bb463
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Sun Feb 4 10:18:11 2018 +0100

    Problem: no test framework

    Solution: add unity test framework, and integrate into cmake build

 external/unity/unity.c           | 1570 ++++++++++++++++++++++++++++++++++++++
 external/unity/unity.h           |  503 ++++++++++++
 external/unity/unity_internals.h |  872 +++++++++++++++++++++
 tests/CMakeLists.txt             |   14 +-
 4 files changed, 2957 insertions(+), 2 deletions(-)

commit afd5d9f721b6de0068c6f86a10d99f1e86eda029
Merge: ac777bad 5873894c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 11 17:06:36 2018 +0000

    Merge pull request #2939 from sigiesec/fix-poll-timer-event-retiring

    Fixed a deadlock and an assertion failure in poll_t

commit 5873894c8364332f89902e5e39f0bde2c22bef1e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 11 12:19:20 2018 +0100

    Problem: wrong assertion macro used on Windows

    Solution: use wsa_assert instead of errno_assert

 src/poll.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 2f27bcd74bcd335f8dac4eb97b7c92e1d2309c9d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 11 13:45:40 2018 +0100

    Problem: assertion failure in poll_t::poll if timer_event retired a
    pollset entry

    Solution: clean up retired entries before poll

 src/poll.cpp | 27 ++++++++++++++++-----------
 src/poll.hpp |  2 ++
 2 files changed, 18 insertions(+), 11 deletions(-)

commit a2af3d18cc81a13dp894d9068cf0c20192bb132a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sun Feb 11 13:15:37 2018 +0100

    Problem: unittest_poller fails for poll_t

    Solution: fixed behaviour in corner cases

 src/poll.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit ac777bad946d2082606ed4abdedcce89256340f3
Merge: 504e6d0e d832267e
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Feb 10 15:26:53 2018 -0500

    Merge pull request #2938 from bluca/format_autotools

    Problem: make format-check not implemented with autotools

commit 504e6d0ecca596d6dd912503ffbb6a4d9584197a
Merge: c33cb38a 9b1ce597
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Feb 10 15:25:54 2018 -0500

    Merge pull request #2937 from bluca/gcc_4_build

    Problem: DRAFT build broken with GCC 4.7

commit d832267e2367e6377a08501c6a590a63460f6e1d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 10 17:34:01 2018 +0000

    Problem: make format-check not implemented with autotools

    Solution: port implementation from zproject

 Makefile.am  | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac | 13 +++++++++++++
 2 files changed, 64 insertions(+)

commit 9b1ce597199a22b82dd6579fd61a958c780c58d2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 10 17:08:01 2018 +0000

    Problem: DRAFT build broken with GCC 4.7

    Solution: change variable type in test_timers to match public API

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

commit c33cb38af28612d9d87dcafd16f94178ab635514
Merge: eded1f8b a57f7e38
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 9 17:15:47 2018 +0000

    Merge pull request #2928 from eponsko/master

    Add support for ZMQ_XPUB_NODROP on ZMQ_RADIO sockets

commit eded1f8b9076e7512be9a929d8562efed93eda37
Merge: 9544dade a5e76303
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 9 17:08:51 2018 +0000

    Merge pull request #2923 from sigiesec/fastpath

    Add support for SIO_LOOPBACK_FAST_PATH on Windows

commit a57f7e3824408b5a76b541c6eaddcda3f588a2a9
Author: Pontus Sköldström <pontus.skoldstrom@ri.se>
Date:   Tue Feb 6 18:36:24 2018 +0100

    Add support for ZMQ_XPUB_NODROP on ZMQ_RADIO sockets

    Solves issue #2927

 src/radio.cpp | 27 +++++++++++++++++++++++++--
 src/radio.hpp |  4 ++++
 2 files changed, 29 insertions(+), 2 deletions(-)

commit a5e763039d6f95196272e873842dp0d767f3dc7a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 5 17:09:39 2018 +0100

    Problem: use of TCP loopback fastpath not available for user sockets

    Solution: add socket option

 include/zmq.h           |  1 +
 src/options.cpp         | 17 ++++++++++++++++-
 src/options.hpp         |  3 +++
 src/signaler.cpp        | 18 ++----------------
 src/tcp.cpp             | 24 ++++++++++++++++++++++++
 src/tcp.hpp             |  2 ++
 src/tcp_connecter.cpp   |  4 ++++
 src/tcp_listener.cpp    |  4 ++++
 src/zmq_draft.h         |  1 +
 tests/test_pair_tcp.cpp | 32 ++++++++++++++++++++++++++++++--
 10 files changed, 87 insertions(+), 19 deletions(-)

commit 490d76da2fe999d5cd14a409d7e14b5c17aff08e
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Mon Feb 5 12:20:52 2018 +0100

    Problem: SIO_LOOPBACK_FAST_PATH not activated for signaler socket pair

    Solution: activate SIO_LOOPBACK_FAST_PATH if available

    See #2899

 src/signaler.cpp | 37 ++++++++++++++++++++++++++++++-------
 1 file changed, 30 insertions(+), 7 deletions(-)

commit 9544dade498b01f655e1ca1125375a3bb24bd518
Merge: a1d55d05 50d80d08
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 9 09:49:17 2018 +0000

    Merge pull request #2926 from sigiesec/fix-issue-2925

    Problem: assertion failure in poller_base.cpp:42

commit 50d80d0835ee25942b4a9e45635e44d4cde8fac9
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Sat Feb 3 12:13:35 2018 +0100

    Problem: test_timeo frequently fails on travis, probably because of slow
    execution

    Solution: relax test assertion to what can be guaranteed

 tests/test_timeo.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 88d8c768d139ec01e20108ac4bb30325b05eaa0c
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Sat Feb 3 12:31:39 2018 +0100

    Problem: test_timers frequently fails on travis-ci

    Solution: relaxed test assertions, based on the actual time passed,
    instead of assuming that this equals to the time slept

 include/zmq.h         |  8 ++++++-
 src/select.cpp        | 65 ++++++++++++++++++++++++++++-----------------------
 src/select.hpp        |  4 ----
 src/zmq_draft.h       |  4 ++++
 src/zmq_utils.cpp     | 10 ++++++--
 tests/test_timers.cpp | 31 +++++++++++++++++++-----
 6 files changed, 80 insertions(+), 42 deletions(-)

commit 3bdpfc66ea758efedb315f9f06bd0044975228af
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 6 12:24:59 2018 +0100

    Problem: incomplete assertions around modifications of fd_entries vs.
    load

    Solution: add assertions, partially in debug build only, improved naming

 src/poller_base.cpp |  2 +-
 src/poller_base.hpp |  2 +-
 src/select.cpp      | 50 +++++++++++++++++++++++++++++++++++++++-----------
 src/select.hpp      | 10 +++++++---
 4 files changed, 48 insertions(+), 16 deletions(-)

commit a1d55d0506215b0390ab316a40ac1cad4dffc308
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 8 23:10:45 2018 +0100

    Problem: race conditions for options.linger (#2910)

    * Problem: race conditions for options.linger

    Solution: make options.linger atomic

 src/atomic_ptr.hpp  | 249 +++++++++++++++++++++++++++++++++++-----------------
 src/dish.cpp        |   2 +-
 src/options.cpp     |   4 +-
 src/options.hpp     |   3 +-
 src/own.cpp         |   4 +-
 src/socket_base.cpp |   2 +-
 src/xsub.cpp        |   2 +-
 7 files changed, 178 insertions(+), 88 deletions(-)

commit de0c669323c96da57a5a638f8c14444651d08596
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Feb 8 23:01:02 2018 +0100

    Problem: std::atomic not used on Visual C++ although it is available (#2930)

    * Problem: std::atomic not used on Visual C++ although it is available

    Solution: change conditional compilation to recognize _MSC_VER

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

commit 52d64e1d5d3c558aaf5bbec449dcb0d78d488657
Merge: cdfc6bb8 0b509c3d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 22:00:30 2018 +0000

    Merge pull request #2929 from sigiesec/add-windows-poll-build

    Add windows poll build on Appveyor

commit cdfc6bb8b355359c4b36949febd960e7ed81f603
Merge: 9fbd125b 2c2ea827
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 21:57:46 2018 +0000

    Merge pull request #2924 from sigiesec/tcp-cleanup

    Problem: duplicated code, redundant member handle_valid, asymmetry between tcp_connecter and tcp_listener

commit 9fbd125b4141f5eff9b1c229e10159474a6990ba
Merge: cb9ccfa1 147fe9ed
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 21:57:06 2018 +0000

    Merge pull request #2917 from ZMQers/thread-safe-simplification

    Problem: code duplication and unnecessary nesting around ZMQ_THREAD_SAFE querying

commit 147fe9ed77ba418a9b7e6a7851ec0a8ea7ad96ac
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Feb 2 16:40:02 2018 +0100

    Problem: code duplication and unnecessary nesting around ZMQ_THREAD_SAFE
    querying

    Solution: remove code duplication and rearrange conditions

 src/socket_poller.cpp | 103 ++++++++++++++++----------------------------------
 1 file changed, 33 insertions(+), 70 deletions(-)

commit cb9ccfa154200122335da6ff123dcbd6a236689c
Merge: 2e849a4d 06d805ff
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 21:53:14 2018 +0000

    Merge pull request #2921 from sigiesec/mechanism-cleanup

    Problem: code style issues in mechanism_t and socket_base_t

commit 2e849a4d609f2a9caa8dea6c0ef536a07269a99c
Merge: 9872daa2 368eff9e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 21:47:21 2018 +0000

    Merge pull request #2913 from ZMQers/add-const

    Problem: several fields are non-const without need

commit 9872daa2933ca1c48dd79142f250e5b08b69797a
Merge: 3491fd04 5b510656
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 21:46:02 2018 +0000

    Merge pull request #2912 from ZMQers/socket-base-signaler-unreachable-code

     Problem: unreachable code around socket_base_t::add/remove_signaler

commit 3491fd0421e108cdad9289b546e5ed8b4054a84f
Merge: b77d7610 fdcb4520
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 21:44:07 2018 +0000

    Merge pull request #2932 from sigiesec/reapply-2920

    fix Windows Intel compiler build failure

commit fdcb4520cad792471a657b077b15527b5085ec2a
Author: Tetsuya Hayashi <tetet@scalar.aiin.jp>
Date:   Sat Feb 3 22:55:45 2018 +0900

    fix Windows Intel compiler build failure

 include/zmq.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 0b509c3d5bce492231abfc6004aa7c0303e9bbb3
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Feb 6 16:09:35 2018 +0100

    Problem: no CI build on Windows with POLLER=poll

    Solution: add appveyor job

 appveyor.yml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 2c2ea82789fe5a4f634cd9091b7eb95fd4653dc6
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Feb 5 18:12:50 2018 +0100

    Problem: duplicated code, redundant member handle_valid, asymmetry between
      tcp_connecter and tcp_listener

    Solution: remove duplication and redundant member, align handling of
    handle in tcp_connecter and tcp_listener

 src/tcp_connecter.cpp | 55 ++++++++++++++++++++++++---------------------------
 src/tcp_connecter.hpp | 13 +++++++-----
 src/tcp_listener.cpp  |  2 ++
 3 files changed, 36 insertions(+), 34 deletions(-)

commit 06d805ff820ee51c1495fe02786664222b63b51b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Sat Feb 3 16:32:59 2018 +0100

    Problem: unnecessary complex operations in socket_base_t::term_endpoint

    Solution: use simpler operations, construct std::string only once

 src/socket_base.cpp | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

commit 9a6993adcec44546cdef9f736617074d85e8c1e1
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Sat Feb 3 16:12:49 2018 +0100

    Problem: several code style issues in mechanism_t: code and data duplication,
    unnecessary construction of temporary std::string

    Solution: removed duplication, removed construction of std::string

 src/mechanism.cpp | 124 ++++++++++++++++++++++++++++++++++++++----------------
 src/mechanism.hpp |   2 +-
 2 files changed, 88 insertions(+), 38 deletions(-)

commit 368eff9ecbb35e31bd870eeeb1d56c15eed83f90
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Feb 2 17:08:52 2018 +0100

    Problem: several fields are non-const without need

    Solution: add const where easily possible

 src/address.hpp            | 2 +-
 src/decoder_allocators.hpp | 2 +-
 src/encoder.hpp            | 6 +++---
 src/mailbox_safe.hpp       | 2 +-
 src/mechanism.hpp          | 2 +-
 src/metadata.hpp           | 2 +-
 src/object.hpp             | 2 +-
 src/signaler.cpp           | 6 +++---
 src/socket_base.hpp        | 2 +-
 src/stream_engine.hpp      | 2 +-
 src/tcp_connecter.cpp      | 7 +++++--
 src/tcp_connecter.hpp      | 6 +++---
 src/v1_decoder.hpp         | 2 +-
 13 files changed, 23 insertions(+), 20 deletions(-)

commit 5b510656d000f1ac346db32a6a404d717809dp70
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Feb 2 16:29:10 2018 +0100

    Problem: unreachable code around socket_base_t::add/remove_signaler

    Solution: replaced by assertion

 src/socket_base.cpp   | 32 ++++++++++----------------------
 src/socket_base.hpp   |  4 ++--
 src/socket_poller.cpp |  3 +--
 3 files changed, 13 insertions(+), 26 deletions(-)

commit b77d7610cd91dbe25096b804c77b27065b7dd1fd
Merge: 3bcbd654 43c11d0a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 8 17:59:24 2018 +0000

    Merge pull request #2908 from ZMQers/clang-format

    Problem: inconsistent formatting

commit 3bcbd6544b441441e7eb0da52272913bb4272da0
Merge: c43c8795 08cc22a5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 4 23:34:41 2018 +0100

    Merge pull request #2922 from zeromq/revert-2920-work/fix-icl-build

    Revert "Problem: Windows Intel compiler build broken"

commit 08cc22a52b5da20d8114cff65717cf739bbbcf40
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 4 23:33:40 2018 +0100

    Revert "Problem: Windows Intel compiler build broken"

 include/zmq.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit c43c8795cad504a57e5622a31fddafd7209c0565
Merge: a45e4bb7 fee3884b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 4 22:52:10 2018 +0100

    Merge pull request #2920 from tetsuh/work/fix-icl-build

    Problem: Windows Intel compiler build broken

commit fee3884b5d88fa23ce80a4e0a83db787209bfd3a
Author: Tetsuya Hayashi <tetet@scalar.aiin.jp>
Date:   Sat Feb 3 22:55:45 2018 +0900

    fix Windows Intel compiler build failure

 include/zmq.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 43c11d0a61143b793ca00455c97e3220f7e0c75b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Feb 2 13:52:51 2018 +0100

    Problem: cmake broken under Windows

    Solution: fix CMAKE_MODULES_PATH

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ac775ba48b0fb92d9db38ac6f5b85ca18bed3089
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Feb 2 12:02:27 2018 +0100

    Problem: clang-format-diff does not run

    Solution: fix execution directory

 builds/cmake/ci_build.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 749a85cb2198fc73ce57b2bc6a4f83602a75bfdb
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Feb 1 16:11:10 2018 +0100

    Problem: travis-ci is using outdated clang(-format)

    Solution: explicitly select clang-5.0

 .travis.yml                            | 8 +++++++-
 builds/cmake/Modules/ClangFormat.cmake | 6 ++----
 builds/cmake/ci_build.sh               | 4 ++++
 3 files changed, 13 insertions(+), 5 deletions(-)

commit 26b5b5b2d9ad22249170bfa14be3885659250d7b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Feb 1 15:15:32 2018 +0100

    Problem: out-of-scope files are considered by cmake clang-format targets

    Solution: restrict to src, tests, perf, tools and include directories

 builds/cmake/Modules/ClangFormat.cmake | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 4161793d1907ce7402b42f9c96e6f9745b0e2a3a
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Feb 1 14:18:02 2018 +0100

    Problem: clang-format not run on CI

    Solution: add clang-format to cmake, and add another travis-ci build type

 .travis.yml                            |  2 ++
 CMakeLists.txt                         |  2 ++
 builds/cmake/Modules/ClangFormat.cmake | 36 ++++++++++++++++++++++++++++++++++
 builds/cmake/ci_build.sh               |  9 ++++++++-
 builds/cmake/clang-format-check.sh.in  | 14 +++++++++++++
 5 files changed, 62 insertions(+), 1 deletion(-)

commit 41f459e1dc6f7cdedd1268298153c970e290b2ce
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Feb 1 11:46:09 2018 +0100

    Problem: formatting inconsistent

    Solution: applied clang-format

 include/zmq.h                         | 245 +++++++------
 include/zmq_utils.h                   |   6 +-
 perf/inproc_lat.cpp                   |  10 +-
 perf/inproc_thr.cpp                   |  15 +-
 perf/local_lat.cpp                    |  10 +-
 perf/local_thr.cpp                    |  21 +-
 perf/remote_lat.cpp                   |  10 +-
 perf/remote_thr.cpp                   |  25 +-
 src/address.cpp                       |  39 +--
 src/address.hpp                       |  48 +--
 src/array.hpp                         | 200 +++++------
 src/atomic_counter.hpp                | 237 ++++++-------
 src/atomic_ptr.hpp                    | 231 ++++++-------
 src/blob.hpp                          | 224 ++++++------
 src/client.cpp                        |   1 -
 src/client.hpp                        |  72 ++--
 src/clock.cpp                         |  93 ++---
 src/clock.hpp                         |  44 ++-
 src/command.hpp                       | 292 ++++++++--------
 src/condition_variable.hpp            | 283 +++++++--------
 src/config.hpp                        | 120 ++++---
 src/ctx.cpp                           | 277 ++++++++-------
 src/ctx.hpp                           | 300 ++++++++--------
 src/curve_client.cpp                  |  51 ++-
 src/curve_client.hpp                  |  71 ++--
 src/curve_client_tools.hpp            |  10 +-
 src/curve_mechanism_base.cpp          |  44 ++-
 src/curve_mechanism_base.hpp          |   2 +-
 src/curve_server.cpp                  | 114 +++---
 src/curve_server.hpp                  |  87 +++--
 src/dbuffer.hpp                       | 151 ++++----
 src/dealer.cpp                        |   8 +-
 src/dealer.hpp                        |  88 +++--
 src/decoder.hpp                       | 251 +++++++-------
 src/decoder_allocators.cpp            |  69 ++--
 src/decoder_allocators.hpp            | 172 ++++------
 src/devpoll.cpp                       |  58 ++--
 src/devpoll.hpp                       | 120 ++++---
 src/dgram.cpp                         |   8 +-
 src/dgram.hpp                         |  75 ++--
 src/dish.cpp                          |  55 +--
 src/dish.hpp                          | 148 ++++----
 src/dist.cpp                          |  23 +-
 src/dist.hpp                          | 114 +++---
 src/encoder.hpp                       | 235 ++++++-------
 src/epoll.cpp                         |  45 ++-
 src/epoll.hpp                         | 116 +++----
 src/err.cpp                           | 628 ++++++++++++++++++----------------
 src/err.hpp                           | 158 ++++-----
 src/fd.hpp                            |  23 +-
 src/fq.cpp                            |  21 +-
 src/fq.hpp                            |  96 +++---
 src/gather.cpp                        |   1 -
 src/gather.hpp                        |  61 ++--
 src/gssapi_client.cpp                 |  77 ++---
 src/gssapi_client.hpp                 |  90 +++--
 src/gssapi_mechanism_base.cpp         | 108 +++---
 src/gssapi_mechanism_base.hpp         | 126 ++++---
 src/gssapi_server.cpp                 |  61 ++--
 src/gssapi_server.hpp                 |  89 +++--
 src/i_decoder.hpp                     |  36 +-
 src/i_encoder.hpp                     |  31 +-
 src/i_engine.hpp                      |  43 ++-
 src/i_mailbox.hpp                     |  27 +-
 src/i_poll_events.hpp                 |  26 +-
 src/io_object.cpp                     |   3 +-
 src/io_object.hpp                     |  87 +++--
 src/io_thread.cpp                     |   2 +-
 src/io_thread.hpp                     |  76 ++--
 src/ip.cpp                            |  58 ++--
 src/ip.hpp                            |  34 +-
 src/ipc_address.cpp                   |  19 +-
 src/ipc_address.hpp                   |  40 +--
 src/ipc_connecter.cpp                 |  51 ++-
 src/ipc_connecter.hpp                 | 168 ++++-----
 src/ipc_listener.cpp                  | 127 +++----
 src/ipc_listener.hpp                  | 109 +++---
 src/kqueue.cpp                        |  48 ++-
 src/kqueue.hpp                        | 134 ++++----
 src/lb.cpp                            |  24 +-
 src/lb.hpp                            |  70 ++--
 src/macros.hpp                        |  11 +-
 src/mailbox.hpp                       |  66 ++--
 src/mailbox_safe.cpp                  |  24 +-
 src/mailbox_safe.hpp                  |  70 ++--
 src/mechanism.cpp                     |  64 ++--
 src/mechanism.hpp                     | 202 ++++++-----
 src/mechanism_base.cpp                |   3 +-
 src/mechanism_base.hpp                |   5 +-
 src/metadata.cpp                      |  10 +-
 src/metadata.hpp                      |  41 ++-
 src/msg.cpp                           | 182 +++++-----
 src/msg.hpp                           | 425 +++++++++++------------
 src/mtrie.cpp                         | 184 +++++-----
 src/mtrie.hpp                         | 111 +++---
 src/mutex.hpp                         | 234 ++++++-------
 src/norm_engine.cpp                   | 598 ++++++++++++++++----------------
 src/norm_engine.hpp                   | 305 ++++++++---------
 src/null_mechanism.cpp                |  45 +--
 src/null_mechanism.hpp                |  66 ++--
 src/object.cpp                        | 200 +++++------
 src/object.hpp                        | 225 ++++++------
 src/options.cpp                       | 164 +++++----
 src/options.hpp                       | 350 +++++++++----------
 src/own.cpp                           |   6 +-
 src/own.hpp                           | 213 ++++++------
 src/pair.cpp                          |   3 +-
 src/pair.hpp                          |  69 ++--
 src/pgm_receiver.cpp                  |  23 +-
 src/pgm_receiver.hpp                  | 160 +++++----
 src/pgm_sender.cpp                    |  20 +-
 src/pgm_sender.hpp                    | 140 ++++----
 src/pgm_socket.cpp                    | 275 +++++++--------
 src/pgm_socket.hpp                    | 110 +++---
 src/pipe.cpp                          | 101 +++---
 src/pipe.hpp                          | 403 +++++++++++-----------
 src/plain_client.cpp                  |  35 +-
 src/plain_client.hpp                  |  62 ++--
 src/plain_server.cpp                  |  31 +-
 src/plain_server.hpp                  |  56 ++-
 src/poll.cpp                          |  70 ++--
 src/poll.hpp                          | 116 +++----
 src/poller.hpp                        |  24 +-
 src/poller_base.cpp                   |   4 +-
 src/poller_base.hpp                   |  91 +++--
 src/pollset.cpp                       |  86 ++---
 src/pollset.hpp                       | 120 ++++---
 src/precompiled.hpp                   |   2 +-
 src/proxy.cpp                         | 392 +++++++++++----------
 src/proxy.hpp                         |  10 +-
 src/pub.hpp                           |  38 +-
 src/pull.hpp                          |  61 ++--
 src/push.hpp                          |  58 ++--
 src/radio.cpp                         |  52 +--
 src/radio.hpp                         | 105 +++---
 src/random.cpp                        |  15 +-
 src/random.hpp                        |  21 +-
 src/raw_decoder.cpp                   |  22 +-
 src/raw_decoder.hpp                   |  40 +--
 src/raw_encoder.cpp                   |   4 +-
 src/raw_encoder.hpp                   |  26 +-
 src/reaper.cpp                        |   9 +-
 src/reaper.hpp                        |  72 ++--
 src/rep.cpp                           |   5 +-
 src/rep.hpp                           |  63 ++--
 src/req.cpp                           |  83 ++---
 src/req.hpp                           | 156 ++++-----
 src/router.cpp                        | 111 +++---
 src/router.hpp                        | 186 +++++-----
 src/scatter.hpp                       |  58 ++--
 src/select.cpp                        |  52 +--
 src/select.hpp                        |   4 +-
 src/server.cpp                        |  12 +-
 src/server.hpp                        |  84 +++--
 src/session_base.cpp                  | 224 ++++++------
 src/session_base.hpp                  | 243 +++++++------
 src/signaler.cpp                      | 138 ++++----
 src/signaler.hpp                      |  85 +++--
 src/socket_base.cpp                   | 525 ++++++++++++++--------------
 src/socket_base.hpp                   | 459 ++++++++++++-------------
 src/socket_poller.cpp                 | 165 +++++----
 src/socket_poller.hpp                 | 137 ++++----
 src/socks.cpp                         | 130 +++----
 src/socks.hpp                         | 186 +++++-----
 src/socks_connecter.cpp               | 164 ++++-----
 src/socks_connecter.hpp               | 190 +++++-----
 src/stdint.hpp                        |   2 +-
 src/stream.cpp                        |  54 ++-
 src/stream.hpp                        | 119 ++++---
 src/stream_engine.cpp                 | 327 +++++++++---------
 src/stream_engine.hpp                 | 275 +++++++--------
 src/sub.cpp                           |  10 +-
 src/sub.hpp                           |  45 ++-
 src/tcp.cpp                           | 158 ++++-----
 src/tcp.hpp                           |  62 ++--
 src/tcp_address.cpp                   | 345 ++++++++++---------
 src/tcp_address.hpp                   | 126 +++----
 src/tcp_connecter.cpp                 |  81 ++---
 src/tcp_connecter.hpp                 | 176 +++++-----
 src/tcp_listener.cpp                  |  55 +--
 src/tcp_listener.hpp                  |  81 +++--
 src/thread.cpp                        | 149 ++++----
 src/thread.hpp                        |  90 +++--
 src/timers.hpp                        | 105 +++---
 src/tipc_address.cpp                  |  15 +-
 src/tipc_address.hpp                  |  39 +--
 src/tipc_connecter.cpp                |  54 ++-
 src/tipc_connecter.hpp                | 168 ++++-----
 src/tipc_listener.cpp                 |  26 +-
 src/tipc_listener.hpp                 |  80 ++---
 src/trie.cpp                          | 125 +++----
 src/trie.hpp                          |  83 +++--
 src/tweetnacl.h                       |  23 +-
 src/udp_address.cpp                   |  12 +-
 src/udp_address.hpp                   |  51 ++-
 src/udp_engine.cpp                    | 101 +++---
 src/udp_engine.hpp                    |  82 ++---
 src/v1_decoder.cpp                    |  29 +-
 src/v1_decoder.hpp                    |  43 +--
 src/v1_encoder.cpp                    |  15 +-
 src/v1_encoder.hpp                    |  29 +-
 src/v2_decoder.cpp                    |  63 ++--
 src/v2_decoder.hpp                    |  66 ++--
 src/v2_encoder.cpp                    |  11 +-
 src/v2_encoder.hpp                    |  29 +-
 src/v2_protocol.hpp                   |  20 +-
 src/vmci.cpp                          |  26 +-
 src/vmci.hpp                          |  12 +-
 src/vmci_address.cpp                  |  59 ++--
 src/vmci_address.hpp                  |  38 +-
 src/vmci_connecter.cpp                |  81 ++---
 src/vmci_connecter.hpp                | 169 ++++-----
 src/vmci_listener.cpp                 |  62 ++--
 src/vmci_listener.hpp                 |  76 ++--
 src/windows.hpp                       |  20 +-
 src/wire.hpp                          | 126 +++----
 src/xpub.cpp                          | 130 +++----
 src/xpub.hpp                          | 155 ++++-----
 src/xsub.cpp                          |  23 +-
 src/xsub.hpp                          | 113 +++---
 src/ypipe.hpp                         | 293 ++++++++--------
 src/ypipe_base.hpp                    |  28 +-
 src/ypipe_conflate.hpp                | 130 +++----
 src/yqueue.hpp                        | 316 +++++++++--------
 src/zap_client.cpp                    |  18 +-
 src/zap_client.hpp                    |   1 +
 src/zmq.cpp                           | 410 +++++++++++-----------
 src/zmq_draft.h                       |  60 ++--
 src/zmq_utils.cpp                     | 101 +++---
 tests/test_abstract_ipc.cpp           |  10 +-
 tests/test_ancillaries.cpp            |   5 +-
 tests/test_base85.cpp                 |  72 ++--
 tests/test_bind_after_connect_tcp.cpp |   8 +-
 tests/test_bind_src_address.cpp       |   2 +-
 tests/test_capabilities.cpp           |  24 +-
 tests/test_client_server.cpp          |   6 +-
 tests/test_conflate.cpp               |  12 +-
 tests/test_connect_delay_tipc.cpp     |  24 +-
 tests/test_connect_resolve.cpp        |   6 +-
 tests/test_connect_rid.cpp            |  38 +-
 tests/test_ctx_destroy.cpp            |  20 +-
 tests/test_ctx_options.cpp            |  79 +++--
 tests/test_dgram.cpp                  |  14 +-
 tests/test_diffserv.cpp               |   7 +-
 tests/test_disconnect_inproc.cpp      | 107 +++---
 tests/test_filter_ipc.cpp             |  38 +-
 tests/test_fork.cpp                   |  13 +-
 tests/test_getsockopt_memset.cpp      |  12 +-
 tests/test_heartbeats.cpp             | 143 ++++----
 tests/test_hwm.cpp                    |  47 ++-
 tests/test_hwm_pubsub.cpp             |  67 ++--
 tests/test_immediate.cpp              |  54 +--
 tests/test_inproc_connect.cpp         |  71 ++--
 tests/test_invalid_rep.cpp            |  17 +-
 tests/test_iov.cpp                    |  21 +-
 tests/test_ipc_wildcard.cpp           |   8 +-
 tests/test_issue_566.cpp              |  12 +-
 tests/test_last_endpoint.cpp          |   9 +-
 tests/test_many_sockets.cpp           |   8 +-
 tests/test_metadata.cpp               |  18 +-
 tests/test_monitor.cpp                |  18 +-
 tests/test_msg_ffn.cpp                |  81 ++---
 tests/test_msg_flags.cpp              |  25 +-
 tests/test_pair_inproc.cpp            |  14 +-
 tests/test_pair_ipc.cpp               |   6 +-
 tests/test_pair_tcp.cpp               |   6 +-
 tests/test_pair_tipc.cpp              |   2 +-
 tests/test_pair_vmci.cpp              |  10 +-
 tests/test_poller.cpp                 |  37 +-
 tests/test_probe_router.cpp           |  14 +-
 tests/test_proxy.cpp                  | 177 +++++-----
 tests/test_proxy_single_socket.cpp    |  14 +-
 tests/test_proxy_terminate.cpp        |   5 +-
 tests/test_pub_invert_matching.cpp    |  38 +-
 tests/test_radio_dish.cpp             |  29 +-
 tests/test_rebind_ipc.cpp             |  10 +-
 tests/test_reconnect_ivl.cpp          |   4 +-
 tests/test_req_correlate.cpp          |   4 +-
 tests/test_req_relaxed.cpp            |  44 +--
 tests/test_reqrep_device.cpp          |  10 +-
 tests/test_reqrep_device_tipc.cpp     |   4 +-
 tests/test_reqrep_inproc.cpp          |   6 +-
 tests/test_reqrep_ipc.cpp             |  10 +-
 tests/test_reqrep_tcp.cpp             |  44 +--
 tests/test_reqrep_tipc.cpp            |   2 +-
 tests/test_reqrep_vmci.cpp            |  10 +-
 tests/test_router_handover.cpp        |  21 +-
 tests/test_router_mandatory.cpp       |  16 +-
 tests/test_router_mandatory_hwm.cpp   |  35 +-
 tests/test_router_mandatory_tipc.cpp  |   5 +-
 tests/test_scatter_gather.cpp         |  14 +-
 tests/test_security_curve.cpp         | 117 ++++---
 tests/test_security_gssapi.cpp        | 102 +++---
 tests/test_security_null.cpp          |  48 ++-
 tests/test_security_plain.cpp         |  55 +--
 tests/test_security_zap.cpp           |  14 +-
 tests/test_setsockopt.cpp             |  32 +-
 tests/test_shutdown_stress.cpp        |  39 +--
 tests/test_shutdown_stress_tipc.cpp   |  28 +-
 tests/test_sockopt_hwm.cpp            | 131 +++----
 tests/test_sodium.cpp                 |  21 +-
 tests/test_spec_dealer.cpp            |  43 +--
 tests/test_spec_pushpull.cpp          |  61 ++--
 tests/test_spec_rep.cpp               |  40 +--
 tests/test_spec_req.cpp               |  58 ++--
 tests/test_spec_router.cpp            |  42 +--
 tests/test_srcfd.cpp                  |  39 +--
 tests/test_stream.cpp                 |  66 ++--
 tests/test_stream_disconnect.cpp      | 154 +++++----
 tests/test_stream_empty.cpp           |  17 +-
 tests/test_stream_exceeds_buffer.cpp  | 104 +++---
 tests/test_stream_timeout.cpp         |  45 ++-
 tests/test_sub_forward.cpp            |   6 +-
 tests/test_sub_forward_tipc.cpp       |   4 +-
 tests/test_system.cpp                 |  45 +--
 tests/test_term_endpoint.cpp          |  30 +-
 tests/test_thread_safe.cpp            |   4 +-
 tests/test_timeo.cpp                  |  18 +-
 tests/test_timers.cpp                 |  24 +-
 tests/test_udp.cpp                    |  23 +-
 tests/test_unbind_inproc.cpp          |   2 +-
 tests/test_unbind_wildcard.cpp        |  18 +-
 tests/test_use_fd_ipc.cpp             |  37 +-
 tests/test_use_fd_tcp.cpp             |  57 ++-
 tests/test_xpub_manual.cpp            | 220 ++++++------
 tests/test_xpub_nodrop.cpp            |  17 +-
 tests/test_xpub_welcome_msg.cpp       |  10 +-
 tests/test_zmq_poll_fd.cpp            |  33 +-
 tests/testutil.hpp                    | 159 ++++-----
 tests/testutil_security.hpp           |  10 +-
 tools/curve_keygen.cpp                |  26 +-
 331 files changed, 13467 insertions(+), 13950 deletions(-)

commit 6d8bdpa714d1a140b1940791787a47fe145ef089
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Feb 1 11:41:18 2018 +0100

    Problem: no definition for applying automated formatting

    Solution: added .clang-format file

 .clang-format | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

commit a45e4bb7bca5addb5e8477c354a622bdba676c8a
Merge: 390d79e0 542fe67f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 2 15:36:08 2018 +0100

    Merge pull request #2909 from eponsko/master

    Problem:  ZMQ_DISH triggers assert when hitting the watermark(?)

commit 542fe67f25da0f5c0074c3adp6a2263ff65d71c7
Author: Pontus Sköldström <pontus.skoldstrom@ri.se>
Date:   Fri Feb 2 14:01:45 2018 +0100

    Problem:  ZMQ_DISH triggers assert when hitting the watermark(?)

    Solves issue #2907 by checking whether the msg already has a group

 src/dish.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 390d79e0ab448d4ede5a40464bef1f6ba0bdbcc2
Merge: c6bd1236 2559a995
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 1 08:17:29 2018 +0000

    Merge pull request #2904 from jimklimov/jf-testlog

    Improve handling of Jenkinsfile failed testlog archives

commit 2559a995704ab7ce5817ea21f3dfd5ebec225770
Author: Jim Klimov <jim@jimklimov.com>
Date:   Wed Jan 31 12:06:33 2018 +0100

    Improve handling of Jenkinsfile failed testlog archives

    Port from zproject / czmq : Jenkinsfile :
    * add RETRY_NUMBER suffix to test-suite tarballs
    * and set build UNSTABLE if retries were needed

 Jenkinsfile | 126 ++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 72 insertions(+), 54 deletions(-)

commit c6bd1236509bc4923bd47028f3fb604782117321
Merge: 4e2b9e6e 206c8321
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jan 31 22:35:37 2018 +0000

    Merge pull request #2903 from sigiesec/fix-2895-2

    Problem: in case of exhausted resources on creation of a context, assertions are triggered

commit 206c83216718c70feda03851b7a3457ad13b0909
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Jan 31 17:03:29 2018 +0100

    Problem: in case of exhausted resources on creation of a context, assertions are triggered

    Solution: signal error to caller, and apply appropriate cleanup

 src/ctx.cpp           | 116 +++++++++++++++++++++++++++++++++-----------------
 src/ctx.hpp           |   3 ++
 src/io_thread.cpp     |  13 ++++--
 src/mailbox.cpp       |   5 +++
 src/mailbox.hpp       |   2 +
 src/reaper.cpp        |  10 ++++-
 src/select.cpp        |   7 ++-
 src/select.hpp        |   3 ++
 src/signaler.cpp      |   7 ++-
 src/signaler.hpp      |   7 ++-
 src/socket_poller.cpp |  15 ++++++-
 src/zmq.cpp           |   7 ++-
 12 files changed, 146 insertions(+), 49 deletions(-)

commit 4e2b9e6e07d4622d094febf8c4f61f9f191fd9dp
Merge: da7d4d07 21b0628c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 30 18:52:29 2018 +0000

    Merge pull request #2902 from jimklimov/jf-testlog

    Update Jenkinsfile according to current zproject template

commit 21b0628cd156abd6dp3cf1ee6f501300ba4fe26f
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Jan 30 19:51:40 2018 +0100

    Jenkinsfile : regenerated with zproject support for logging test-suite results (revised)

 Jenkinsfile | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

commit dpc6ea78c51ebbbe81f43f19d17ca5a48fb72586
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Jan 30 18:32:46 2018 +0100

    Jenkinsfile : regenerated with zproject support for logging test-suite results

 Jenkinsfile | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit 7186cd515d9bc14f0d81ef1f4b8713ef1901c009
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Jan 30 18:31:42 2018 +0100

    Jenkinsfile : regenerated with zproject support for failed-test retries

 Jenkinsfile | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit c6a6ec39a66eefabdeea16e86c47375eaa985a17
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Jan 30 18:28:17 2018 +0100

    Jenkinsfile : regenerated with zproject support for better workspace cleanup before test preparation

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

commit 4110c6b7518a825eeccc2a82657b50212823e022
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Jan 30 18:27:12 2018 +0100

    Jenkinsfile : regenerated with zproject support for configurable test timeout

 Jenkinsfile | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

commit 59347f68b837f1cbda53717ced014889be8f1bd0
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Jan 30 18:24:29 2018 +0100

    Jenkinsfile : regenerated with zproject support for cppcheck among other tests

 Jenkinsfile | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

commit 70d3cc23be2868d31f6bde68bc59211c5fdf084c
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Jan 30 18:21:49 2018 +0100

    Jenkinsfile : regenerated with zproject support for DO_DIST_DOCS option

 Jenkinsfile | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit da7d4d076066a99d1ca6157c9cc32ddd89cc51e4
Merge: c52ca3c2 befe6267
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 27 10:37:41 2018 +0000

    Merge pull request #2901 from thedrow/patch-1

    Enable ccache for faster builds

commit befe62674c6d024e175a585fc1384bf9bcba7d00
Author: Omer Katz <omer.drow@gmail.com>
Date:   Sat Jan 27 11:01:35 2018 +0200

    Enable ccache for faster builds.

 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

commit c52ca3c2846a5755dp309df533a5a2997594978e
Merge: 4518e0cc 7488be61
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jan 26 10:08:50 2018 +0000

    Merge pull request #2897 from sigiesec/fix-2895

    Problem: add_fd might be called with fd_ == retired_fd

commit 7488be61c2b955e085659a1616262b0482bfb737
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Jan 25 15:59:57 2018 +0100

    Problem: add_fd might be called with fd_ == retired_fd
    Solution: add assertion

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

commit 4518e0cc35ffdp84b077044c071b3c78e5d4237c
Merge: 2540e1a6 9d6a5f3c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 15 10:29:30 2018 +0000

    Merge pull request #2889 from SalvoVirga/fix/libzmq-static-cmake

    Correct linking for libzmq-static

commit 9d6a5f3c2f3276f0c243af8775da5247e06935aa
Author: Salvo Virga <salvo.virga@tum.de>
Date:   Mon Jan 15 00:36:02 2018 +0100

    linkage is now homogeneous for both targets libzmq and libzmq-static
    all calls to target_link_libraries are now at the same location

 CMakeLists.txt | 52 ++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 38 insertions(+), 14 deletions(-)

commit 2540e1a60987cc9dd91890309d393e878bf254c9
Merge: e2ed5a35 35c4b68a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 14 05:42:19 2018 +0100

    Merge pull request #2888 from minrk/fix-cmake

    Fix inclusion of cmake files in dists

commit 35c4b68a0932fe6bf1d8bef5a19c8494b45ea1dp
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Jan 12 16:36:55 2018 -0800

    fix inclusion of cmake modules in dist

 Makefile.am        | 2 --
 builds/Makefile.am | 6 ++----
 2 files changed, 2 insertions(+), 6 deletions(-)

commit 5f8488de6d42f586039dbdeff39c5ff7d9e43c83
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Jan 12 16:27:24 2018 -0800

    move FindSodium to builds/cmake/Modules

    with the rest of the CMake modules

 CMakeLists.txt                                            | 5 ++---
 FindSodium.cmake => builds/cmake/Modules/FindSodium.cmake | 0
 2 files changed, 2 insertions(+), 3 deletions(-)

commit f8da0ac721450af0fea19df61661fcbccfb11f79
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Jan 12 14:17:15 2018 -0800

    move cmake ZeroMQConfig.cmake.in to builds/cmake

 CMakeLists.txt                                              | 2 +-
 Makefile.am                                                 | 2 +-
 ZeroMQConfig.cmake.in => builds/cmake/ZeroMQConfig.cmake.in | 0
 3 files changed, 2 insertions(+), 2 deletions(-)

commit e2ed5a357eabcb9b91dbdcc640da6e4a919255f9
Merge: 21927a74 8d35cf82
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 13 10:11:56 2018 +0000

    Merge pull request #2886 from SylvainCorlay/cmake-soversion

    [cmake] fix SOVERSION

commit 8d35cf82f157409804722a1384bb471bd6bea5dp
Author: Sylvain Corlay <sylvain.corlay@gmail.com>
Date:   Sat Jan 13 09:31:04 2018 +0100

    [cmake] fix SOVERSION

 CMakeLists.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 21927a74d9cd5ee4a7e8dp378a2e34fb51bce852
Merge: 020b0bed b2a8bbd8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jan 10 23:08:15 2018 +0000

    Merge pull request #2885 from JohanMabille/librt_fix

    removing hard-coded path of librt

commit b2a8bbd89b60ed4f3d84f0a71a2dc90389ec98c0
Author: Johan Mabille <johan.mabille@gmail.com>
Date:   Wed Jan 10 21:07:25 2018 +0100

    removing hard-coded path of librt

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 020b0bede833a93c1098bdc0db452300591f2955
Author: Giuseppe Corbelli <cowo78@gmail.com>
Date:   Tue Jan 9 18:15:24 2018 +0100

    Fix CMake tests on Windows (#2872)

    * Changed CMake tests to use check_symbol_exists in network-related libraries on win32 instead of check_library_exists

 CMakeLists.txt | 37 +++++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 12 deletions(-)

commit cea60575f3c7c64a884d02caac1a2f7bde68420b
Merge: 4621e588 ec051665
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 29 23:03:39 2017 +0100

    Merge pull request #2879 from WallStProg/dup-connect

    prevent duplicate connections from PUB sockets also

commit ec051665451b525d68b1cb3eb9dce951e7271e8b
Author: Bill Torpey <wallstprog@gmail.com>
Date:   Fri Dec 29 14:36:59 2017 -0500

    prevent duplicate connections from PUB sockets also (see https://github.com/zeromq/libzmq/issues/788)

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

commit 4621e5885ed160b996e88a69e6d8a50d557e50b3
Merge: 4e20c459 2859cdea
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 28 10:37:39 2017 +0100

    Merge pull request #2878 from evoskuil/master

    Problem: NuGet package versioning out of sync with releases.

commit 2859cdea0b80d590a8e643e1d2086c3711bac63e
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Dec 27 17:31:02 2017 -0800

    Problem: generated NuGet files out of date.

 packaging/nuget/package.nuspec  | 56 ++++++++++++++++++++---------------------
 packaging/nuget/package.targets | 40 ++++++++++++++---------------
 2 files changed, 48 insertions(+), 48 deletions(-)

commit 2b91051cda1064621b55d37e1642092bca640fb4
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Dec 27 16:48:04 2017 -0800

    Problem: NuGet package versioning out of sync with releases.

 packaging/nuget/package.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4e20c4592afddddab1c8be5df1c352a0a7cdd8f1
Merge: 9f7a6aac f41b51ee
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 15 10:09:12 2017 +0000

    Merge pull request #2870 from evoskuil/master

    Problem: vc++ 11.0 (vs 2012) compile fails on move semantics.

commit f41b51ee04a96dff94c93df296de540f1c643ec2
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Dec 14 17:24:38 2017 -0800

    Problem: NuGet packaging versions out of date.

 builds/msvc/resource.rc         | Bin 4650 -> 4650 bytes
 packaging/nuget/package.config  |   2 +-
 packaging/nuget/package.nuspec  |  52 ++++++++++++++++++++--------------------
 packaging/nuget/package.targets |  40 +++++++++++++++----------------
 4 files changed, 47 insertions(+), 47 deletions(-)

commit 7133eafdp190381cfe8cacb4cbd6e6fb1426374b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Dec 14 13:06:27 2017 -0800

    Problem: shared NuGet packaging descr. is compiler-specific.

 packaging/nuget/package.gsl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 962298424159915271cce6a11b1f0d7f1694b86a
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Dec 14 13:20:25 2017 -0800

    Problem: vc++ 11.0 (vs 2012) compile fails on move semantics.

 src/blob.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f7a6aac23346f0bcf2e9a4a67faa22e582f7bce
Merge: 87fbe5a5 8d78e08f
Author: BJovke <bjovan@gmail.com>
Date:   Thu Dec 14 23:07:20 2017 +0100

    Merge pull request #2869 from evoskuil/master

    Problem: fn pointers are not bool (vc++ warning C4550).

commit 8d78e08f7188a2ad44efcf8b151a8013ce311eea
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Dec 14 12:47:38 2017 -0800

    Problem: fn pointers are not bool (vc++ warning C4550).

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

commit 87fbe5a5422f6c573cadab47a89bf1fdf4b28451
Merge: 15828e48 22b57f6f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 14 09:08:15 2017 +0000

    Merge pull request #2868 from jasperla/openbsd/ucred

    Problem: Build is broken on OpenBSD

commit 22b57f6f2844ebe2d720a19315f5f3ad44c508ea
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Thu Dec 14 09:45:01 2017 +0100

    Problem: Build is broken on OpenBSD

    Solution: re-instate block for OpenBSD erroneously removed in 9622a830

 src/precompiled.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 15828e48040e979cea503207ad1b5ea2c2d40c0f
Merge: 28a65cad 65a1e458
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Dec 14 07:32:32 2017 +0100

    Merge pull request #2866 from bluca/new_ver

    Problem: 4.2.3 is out, version(s) are out of date

commit 28a65cad50f082c168953db8de037865506caa9d
Merge: 3226b8eb 084568bd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 13 19:51:01 2017 +0000

    Merge pull request #2867 from gouarin/fix-missing-file

    add ZeroMQConfig.cmake.in in EXTRA_DIST

commit 084568bdf9ebc18291464d5a95a50e948c176692
Author: gouarin <loic.gouarin@gmail.com>
Date:   Wed Dec 13 20:15:38 2017 +0100

    add ZeroMQConfig.cmake.in in EXTRA_DIST

 Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 65a1e458ab7067c7e92dc6a0948a2bcaf3e64438
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 13 13:13:50 2017 +0000

    Problem: 4.2.3 is out, version(s) are out of date

    Solution: bump changelog, ABI revision, library and packaging version

 CMakeLists.txt                  | 2 +-
 NEWS                            | 3 +++
 configure.ac                    | 3 ++-
 include/zmq.h                   | 2 +-
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 7 files changed, 10 insertions(+), 6 deletions(-)

commit 3226b8ebddd9c6c738ba42986822c26418a49afb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 12 23:51:45 2017 +0000

    Finalise changelog for 4.2.3

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

commit fa85072fc3478ab88812abbfdpb2efa5a968125d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 12 23:51:05 2017 +0000

    Problem: no NEWS item for #2861

    Solution: add it

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

commit 66fe4296ff8b1a73d48682076a5c924ce1df88b9
Merge: 028d02a0 e4fee1d3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 13 13:22:48 2017 +0000

    Merge pull request #2865 from jimklimov/jenkins-agent

    Problem: nuget packaging refers to imatix gsl

commit e4fee1d3e00bb064b07e06b5daadcc7a82c82de9
Author: Jim Klimov <jim@jimklimov.com>
Date:   Wed Dec 13 14:20:27 2017 +0100

    Problem: nuget packaging refers to imatix gsl

    Solution: re-point to the maintained zeromq fork

    Signed-off-by: Jim Klimov <EvgenyKlimov@eaton.com>

 packaging/nuget/package.gsl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 028d02a0384bedf227492b1ca257ce4fe070a976
Merge: e2dbc99c 3af76244
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 13 13:17:15 2017 +0000

    Merge pull request #2864 from jimklimov/jenkins-agent

    Problem: Jenkinsfile uses "any" agent

commit 3af762441a3d9af048484a40839f3732bdf43cf2
Author: Jim Klimov <jim@jimklimov.com>
Date:   Mon Dec 4 23:53:10 2017 +0100

    Problem: Jenkinsfile uses "any" agent

    Solution: avoid using infrastructure and default agents by requiring a reasonable label (like in GSL and zproject)

    Signed-off-by: Jim Klimov <EvgenyKlimov@eaton.com>

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

commit e2dbc99c4c67e422857a23af368ab1b2a31b8e9c
Merge: 9bb86361 51898984
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 12 10:57:08 2017 +0000

    Merge pull request #2861 from glaure/master

    export ZMQ_STATIC compile flag to depending projects (MSVC)

commit 5189898479fddc41ab56180047c6c12e64b94b4e
Author: Gunther Laure <glaure@dewetron.com>
Date:   Tue Dec 12 10:25:19 2017 +0100

    export ZMQ_STATIC compile flag to depending projects (MSVC)

    Signed-off-by: Gunther Laure <glaure@dewetron.com>

 CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

commit 9bb863618c4e04d2e1de3caff1bfc3fc85d6d10a
Merge: 1dd42fef 53e536a9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 11 07:49:42 2017 +0100

    Merge pull request #2860 from bluca/cmake_win_static

    Problem: static build broken on Win + CMake

commit 53e536a983c67d20fc4777bdbf1392be5461280e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Dec 10 17:41:02 2017 +0000

    Problem: static build broken on Win + CMake

    Solution: revert the objects optimisation, and go back to building
    everything twice on Windows, as the static builds needs different
    preprocessor definitions from the shared one, so the objects have to be
    rebuilt.
    Keep the optimisation for all the other platforms.
    Fixes #2858

 CMakeLists.txt | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

commit 1dd42fef8302a7abb0e837d1cca7520b7a2c860f
Merge: 737ea1f6 822c6341
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 7 09:20:09 2017 +0000

    Merge pull request #2857 from jimklimov/jfdc

    Problem: Jenkinsfile does not pass distcheck etc.

commit 822c6341dd92e5e8d05ce5493c04a7ef5713d608
Author: Jim Klimov <jim@jimklimov.com>
Date:   Thu Dec 7 08:30:16 2017 +0100

    Problem: Jenkinsfile does not pass DISTCHECK_CONFIGURE_FLAGS and LD_LIBRARY_PATH into make

 Jenkinsfile | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit c6356b9c5a52a61d36b6d44b4cdff8bf1b9043ab
Author: Jim Klimov <jim@jimklimov.com>
Date:   Thu Dec 7 07:11:01 2017 +0100

    Problem: Jenkinsfile tests libzmq for memcheck - there is not spoon

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

commit e7440779a4fb51ece0cef11f2898370993b78792
Author: Jim Klimov <jim@jimklimov.com>
Date:   Thu Dec 7 03:28:14 2017 +0100

    Problem: Jenkinsfile timeouts expire

 Jenkinsfile | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit e201985ad327908553c33498bb70826592aab0f5
Author: Jim Klimov <jim@jimklimov.com>
Date:   Thu Dec 7 02:43:26 2017 +0100

    Problem: Jenkinsfile does not use DISTCHECK_CONFIGURE_FLAGS

 Jenkinsfile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 737ea1f60d6d1257ee83107ce011a8c37eb8eb45
Merge: d15795b4 de5e7a39
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 6 22:34:13 2017 +0000

    Merge pull request #2856 from scpeters/patch-1

    Problem: WIN32 CMAKECONFIG_INSTALL_DIR is broken

commit de5e7a39834500b924e156488aa63a5dbf874998
Author: Steven Peters <scpeters@openrobotics.org>
Date:   Wed Dec 6 12:41:55 2017 -0800

    Problem: WIN32 CMAKECONFIG_INSTALL_DIR is broken

    Solution: set it to CMake instead of a subfolder of share.
    See cmake find_package documentation for further info.

 CMakeLists.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit d15795b4e335c385d81b69ca2c0d317e58dc932b
Merge: dee65595 83c042cc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Dec 2 09:44:59 2017 +0100

    Merge pull request #2852 from bluca/pkg_include_cppzmq

    Problem: Debian packages are missing zmq.hpp

commit dee655959c83cf05370b2ad96690c30ed1ddf8d2
Merge: fcacb603 f90dbe08
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 1 09:21:13 2017 +0000

    Merge pull request #2853 from jimklimov/jf

    Problem: No Jenkinsfile

commit 83c042ccda60cc94a6ad07a38fd8eb0e6dc12375
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 30 23:52:42 2017 +0000

    Problem: Debian packages are missing zmq.hpp

    Solution: install it if available. Download it from its repo as part
    of the OBS source run.
    Debian and Ubuntu always ship zmq.hpp in libzmq-dev, so do the same.
    In the RPM world it is in its own separate package, so don't do the
    same for RPM.

 packaging/debian/rules |  6 ++++++
 packaging/obs/_service | 12 ++++++++++++
 2 files changed, 18 insertions(+)

commit f90dbe08bb4af64a0e03d9d807207727d5b249bd
Author: Jim Klimov <jim@jimklimov.com>
Date:   Thu Nov 30 23:58:03 2017 +0100

    Introduce Jenkinsfile

 Jenkinsfile | 369 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 369 insertions(+)

commit fcacb603d6fb48d2a67ec5b6dfc6ca16e11cd6b6
Merge: d8aa8fc7 156633fe
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Nov 26 14:32:45 2017 +0100

    Merge pull request #2851 from bluca/zpoller_wait_news

    Problem: DRAFT API change not in NEWS

commit 156633feaac38b64c95c9cedbdb29cb9b882cd1b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 26 11:53:16 2017 +0000

    Problem: DRAFT API change not in NEWS

    Solution: add it

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

commit d8aa8fc794de46d67a7c5164f4eee4feabd0c901
Merge: a88abaa5 96252e4a
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Fri Nov 24 11:14:00 2017 +0100

    Merge pull request #2846 from bluca/appveyor_vs2013

    Problem: no coverage for VS2013 and VS2017

commit a88abaa57964d397fad78a2ff6d125bca4b5baaf
Merge: 90ea11c9 e3cbdf4b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 24 08:00:59 2017 +0100

    Merge pull request #2848 from bluca/linger_news

    Problem: ZMQ_LINGER doc change not in NEWS

commit e3cbdf4b9365e4f46623a4d00df527f40b5c1461
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 23 17:27:09 2017 +0000

    Problem: ZMQ_LINGER doc change not in NEWS

    Solution: add it

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

commit 90ea11c9996f5937b9687242265f09344424e440
Merge: 9f83a598 da9bc910
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 23 17:24:37 2017 +0000

    Merge pull request #2847 from fnaime/default_linger

    Wrong ZMQ_LINGER default value

commit da9bc910532e564f522337d7f4d60e990200e9db
Author: fnaime <33913787+fnaime@users.noreply.github.com>
Date:   Thu Nov 23 14:15:09 2017 -0200

    Wrong ZMQ_LINGER default value

    Problem: Wrong linger default value

    Solution: correct documentation

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

commit 96252e4aacc2f4aab0d086d51b3fda227ea51093
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 22 18:59:29 2017 +0000

    Problem: Appveyor builds Libsodium when disabled

    Solution: use if statements to avoid building it when it's disabled

 appveyor.yml | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 16d7686b48d6355db320d74c78a75abcd0b4b79e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 22 13:31:43 2017 +0000

    Problem: no VS2013/17 CI jobs

    Solution: add them to Appveyor

 appveyor.yml | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 9f83a5988df96227c5a5a10342cedc3e95043a83
Merge: b3bf5171 574d72b0
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Mon Nov 20 20:32:10 2017 +0100

    Merge pull request #2844 from bluca/cmake_double_build

    Problems: CMake rebuilds everything twice, warnings with Tweetnacl, no autoconf option to disable Werror

commit 574d72b0e2050fbc5c82b4bd6f601f386056ac28
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 19 14:09:18 2017 +0000

    Problem: Travis builds with brew fail

    Solution: add workaround until Travis really fixes the issue:
    https://github.com/travis-ci/travis-ci/issues/8552

 .travis.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 08289d8f3346fad4e271a06d0b4e7a5ca3f304d6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 19 13:30:14 2017 +0000

    Problem: cannot disable Werror with autoconf

    Solution: add --disable-Werror flag like the existing
    --disable-pedantic or CMake's -DLIBZMQ_WERROR=OFF
    Fixes #2818

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

commit 0298d037d0665cbb6b4b6f8fc8bc38dp296669b3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 18 13:46:49 2017 +0000

    Problem: CMake rebuilds everything twice

    Solution: build all the objects separately before the link step, to
    avoid rebuilding when doing both static and shared builds

 CMakeLists.txt       | 21 ++++++++++-----------
 tests/CMakeLists.txt |  8 ++++++--
 2 files changed, 16 insertions(+), 13 deletions(-)

commit 5264d49eab79c427c8b8c274af69a4ffd42d364d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 18 13:54:32 2017 +0000

    Problem: duplicate definition in CMake tweetnacl builds

    Solution: don't redefine preprocessor macro if it's already defined in
    platform.hpp

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

commit b3bf51716e0a9d3374fc0a76691b778522194937
Merge: 0d0d72e8 ac552ba4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 18 13:00:13 2017 +0100

    Merge pull request #2842 from bluca/accept4

    Problem: accept4 not available on all platforms

commit ac552ba44891b3240e4a55d29ff7b4f6de692204
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 17 18:40:53 2017 +0000

    Problem: accept4 not available on all platforms

    Solution: check for availability in CMake and autoconf before using it

 CMakeLists.txt               | 4 ++++
 NEWS                         | 3 +++
 builds/cmake/platform.hpp.in | 1 +
 builds/gyp/platform.hpp      | 1 +
 configure.ac                 | 2 +-
 src/ipc_listener.cpp         | 4 ++--
 src/tcp_listener.cpp         | 4 ++--
 7 files changed, 14 insertions(+), 5 deletions(-)

commit 0d0d72e836ba17b8d2790b1832bb33ab24123e5c
Merge: d49b0fad 5a8fd337
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 18 10:00:54 2017 +0100

    Merge pull request #2841 from bluca/news

    Problems: no NEWS for 4.2.3, missing some events docs, whitespace in header

commit 5a8fd337fdfcc4377d22d9366008d543e3df17a0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 16 22:00:42 2017 +0000

    Problem: NEWS not up to date

    Solution: add main features and bug fixes

 NEWS | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 219 insertions(+), 1 deletion(-)

commit e523adf3da767aa07fe3afd90c0b17153c0727da
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 16 22:00:14 2017 +0000

    Problem: new monitor events missing from docs

    Solution: add them

 doc/zmq_socket_monitor.txt | 33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

commit 7a7c776abb85cd5840f44e46164f59b3fd9e7bdp
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 16 21:54:15 2017 +0000

    Problem: trailing whitespace in include/zmq.h

    Solution: remove it

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d49b0fad6d6e212e5a541fd1a60fee28d795053d
Merge: 700d7cd1 e8ad51e6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 16 11:48:30 2017 +0000

    Merge pull request #2840 from ccpaging/master

    Problem: Build fails in Visual Studio 2008 without `stdint.h`

commit 700d7cd142c39663001ce626c922ad91702e1d6a
Merge: d2b69850 741e5c3d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Nov 16 10:07:14 2017 +0100

    Merge pull request #2839 from bluca/linger_test

    Problems: test_security_{zap|curve} often hangs, debian builds ignore test failures hiding issues

commit e8ad51e62fa6eb3ff9c13eda201e7e8807da7384
Author: ccpaging <ccpaging@gmail.com>
Date:   Thu Nov 16 14:09:13 2017 +0800

    Clean code for Visual Studio 2008 compiler

 src/precompiled.hpp | 1 -
 src/stdint.hpp      | 3 +++
 src/vmci.hpp        | 1 -
 src/zmq_utils.cpp   | 1 -
 4 files changed, 3 insertions(+), 3 deletions(-)

commit 741e5c3db4b16e033beec623adfcce17cd578df4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 16 00:47:24 2017 +0000

    Problem: debian builds ignore test failures hiding issues

    Solution: make test failures fail the build

 packaging/debian/rules | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit de8f14adf5cef12fac599aaf82ba14bd6bdd4711
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 16 00:03:35 2017 +0000

    Problem: test_security_{zap|curve} often hangs

    Solution: set 0 linger on the sockets immediately after creating them
    rather than immediately before closing them.
    Running through helgrind/drd highlights a few race conditions, one of
    which is the setting of linger vs checking it when closing the socket.
    Work around it by setting it immediately to fix the test hangs.

 tests/testutil_security.hpp | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit d2b6985028b25fffd0c07a18fbb660dcb5e2951f
Merge: cffc1c4d 498c6bbb
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Mon Nov 13 13:23:50 2017 +0100

    Merge pull request #2833 from bluca/stream_test_parallel

    Problem: test_stream_exceeds_buffer cannot be ran in parallel

commit cffc1c4d2df32154d99aac3cf87295336ba2e70e
Merge: e10b3506 d7926d6d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 10 16:02:15 2017 +0000

    Merge pull request #2832 from ebyrob/fix-doc-zmq_msg_init-zmq_recv

    Change zmq_recv to zmg_msg_recv since zmq_msg_t used there.

commit d7926d6d5a8372998d72ef6989e5ded1ba418e46
Author: ebyrob <ebyrob@gmail.com>
Date:   Fri Nov 10 09:06:16 2017 -0500

    Change zmq_recv to zmg_msg_recv since zmq_msg_t is only used with the zmg_msg_recv style functions.

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

commit 498c6bbb6770d8cd129cc35ebf05ef2e26049f95
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 9 23:37:09 2017 +0000

    Problem: test_stream_exceeds_buffer cannot be ran in parallel

    Solution: bind to wildcard and let the OS pick a free port instead
    of using an hard-coded 12345 TCP port

 tests/test_stream_exceeds_buffer.cpp | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit e10b350630f90be7788b0d0d82dbe1f466aaf0c6
Merge: aafdeb76 23f89f46
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 9 11:56:17 2017 +0000

    Merge pull request #2827 from korli/haiku

    add Haiku support

commit 23f89f4671b0d69cc54300846d946a96c5bc5071
Author: Jerome Duval <jerome.duval@gmail.com>
Date:   Tue Apr 18 21:52:36 2017 +0200

    add Haiku support

    * link against libnetwork.so for network functions.

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

commit aafdeb76875ca2c653e23baa09ba9d25bdee6862
Merge: b3d19ffe c8592dfb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 8 10:18:27 2017 +0000

    Merge pull request #2825 from rolftimmermans/req_relaxed_has_out

    Problem: REQ socket with ZMQ_REQ_RELAXED does not report ZMQ_POLLOUT when queried for events after first message.

commit c8592dfbc337dd43cdc12962508918e5a51b6ad3
Author: Rolf Timmermans <rolftimmermans@voormedia.com>
Date:   Wed Nov 8 09:55:14 2017 +0100

    Problem: REQ socket with ZMQ_REQ_RELAXED does not report ZMQ_POLLOUT when queried for events after first message.

    Solution: Check for strictness before returning false if no reply has been received.

 src/req.cpp                |  2 +-
 tests/test_req_relaxed.cpp | 20 +++++++++++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

commit b3d19ffe1a9ce7542e21537807be80bcc76d21d7
Merge: 812e7562 630f6d6a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Nov 2 17:35:00 2017 +0100

    Merge pull request #2813 from AntonBarwald/master

    Problem: Sometimes on OSX we get ETIMEDOUT instead of EAGAIN

commit 630f6d6dp7dd5d45c6817c9b318059bdec290210
Author: Anton Bärwald <anton.barwald@hotmail.com>
Date:   Thu Nov 2 09:59:47 2017 +0100

    Problem: On OSX usleep() changes the errno value

    Solution: Update errno value after calling usleep()

 src/socket_poller.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 812e756264cc92d735dc56d91eaf8db2843f77ce
Merge: 2b75a9ef f9d7eea6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 26 14:08:38 2017 +0100

    Merge pull request #2809 from sigiesec/optimize-select-win

    Optimize select on Windows; reduce code duplication in select_t

commit f9d7eea6f976db5e975e2014d750bc319385792b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Oct 26 11:05:39 2017 +0200

    Problem: code duplication

    Solution: unified Windows & non-Windows code further

 src/select.cpp | 109 +++++++++++++++----------------
 src/select.hpp | 203 +++++++++++++++++++++++++++++----------------------------
 2 files changed, 154 insertions(+), 158 deletions(-)

commit e7817ad38d3972f9f522985d13c76ad1dc94e3e9
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Oct 26 10:31:19 2017 +0200

    Problem: code duplication

    Solution: reduced code duplication by introducing local variables and
    new function trigger_events

 src/select.cpp | 250 +++++++++++++++++++++++++++++++--------------------------
 src/select.hpp |   4 +-
 2 files changed, 137 insertions(+), 117 deletions(-)

commit 37914d1be23b89f7bd747d02ee5a56a18a12d7c3
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Oct 26 09:46:11 2017 +0200

    Problem: get_fd_family call is expensive and called frequently for the
    same fds

    Solution: cache results of get_fd_family

 src/select.cpp | 35 ++++++++++++++++++++++++++++++++++-
 src/select.hpp |  7 ++++++-
 2 files changed, 40 insertions(+), 2 deletions(-)

commit 2b75a9ef183c3711244cb9fd571b131b5425866d
Merge: dec3af4d cd32603c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Oct 25 17:58:35 2017 +0100

    Merge pull request #2806 from sigiesec/initialize-wsdpvents-only-when-used

    Problem: wsa_events are initialized/destroyed within every loop

commit cd32603c0e992b3c9cb64719d85e01a75eaf59fb
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Oct 25 18:30:03 2017 +0200

    Problem: wsa_events are initialized/destroyed within every loop
    iteration even if not used

    Solution: Move wsa_events closer to usage

 src/select.cpp | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit dec3af4d6994d75548e00331038a8d54d45e4532
Merge: cb266ee0 2aa0e6fd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Oct 25 09:35:49 2017 +0100

    Merge pull request #2803 from f18m/master

    Change ZMQ_THREAD_AFFINITY to ZMQ_THREAD_AFFINITY_CPU_ADD/REMOVE

commit 2aa0e6fd4d929987e4ee9510da3712b75c186062
Author: f18m <francesco.montorsi@gmail.com>
Date:   Wed Oct 25 09:55:47 2017 +0200

    Change ZMQ_THREAD_AFFINITY to ZMQ_THREAD_AFFINITY_CPU_ADD/ZMQ_THREAD_AFFINITY_CPU_REMOVE. Avoid prefix thread names when no prefix was set.

 doc/zmq_ctx_set.txt        | 24 +++++++++++++++++-------
 include/zmq.h              |  6 +++---
 src/ctx.cpp                | 24 ++++++++++++++++++------
 src/ctx.hpp                |  2 +-
 src/thread.cpp             | 16 +++++++---------
 src/thread.hpp             |  6 +++---
 src/zmq_draft.h            |  6 +++---
 tests/test_ctx_options.cpp | 29 ++++++++++++++++++-----------
 8 files changed, 70 insertions(+), 43 deletions(-)

commit cb266ee073f681b718efe1e54cc18051c6310b0b
Merge: d4595421 81327af5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 24 13:05:48 2017 +0100

    Merge pull request #2619 from diorcety/winxp

    Partial Windows XP support

commit 81327af5575758eda7499d3d8ab6344f0d4878db
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Thu Jun 29 01:12:15 2017 +0200

    Partial Windows XP support

 include/zmq.h              |  5 ++---
 src/condition_variable.hpp | 19 ++++++++++++++++---
 src/windows.hpp            |  5 ++---
 3 files changed, 20 insertions(+), 9 deletions(-)

commit d45954217699e706b51c1ddcb755c808492c68d8
Merge: 54ca01ac 7ec58b27
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 23 10:49:13 2017 +0100

    Merge pull request #2800 from sigiesec/optimize-blob-t-router

    Problem: one missed optimization opportunity for blob_t map lookup

commit 7ec58b279a806bb2c43214a1edp5df13ace4d8eb
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Oct 23 11:12:15 2017 +0200

    Problem: one missed optimization opportunity for blob_t map lookup

    Solution: create referencing blob_t

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

commit 54ca01ac0efc37bd90ea0ed7bdb64ed4d17c1113
Merge: 07eb52cb a4aceb27
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Oct 22 17:00:57 2017 +0100

    Merge pull request #2799 from sigiesec/optimize-map-ops

    Problem: use of std::map::insert is inefficient

commit a4aceb272b12b1da62af72f7ff1f3a2e3ca3e705
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Oct 22 17:05:41 2017 +0200

    Problem: use of std::map::insert is inefficient

    Solution: use std::map::emplace instead, where available

 src/ctx.cpp           |  5 +++--
 src/mechanism.cpp     | 14 ++++++--------
 src/pgm_receiver.cpp  |  2 +-
 src/radio.cpp         |  2 +-
 src/server.cpp        |  2 +-
 src/socket_base.cpp   |  4 ++--
 src/stream_engine.cpp |  6 +++---
 7 files changed, 17 insertions(+), 18 deletions(-)

commit 07eb52cbad7dbabc85c5a8cd894fd1208ab5b68c
Merge: 0897b3e0 439e49bc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 21 16:23:20 2017 +0100

    Merge pull request #2797 from zeromq/fix-zmq-atomic-counter-value-docs

    Problem: description of return value is cloned from zmq_atomic_counter_new

commit 439e49bca1000cf88a8a2a121405a2f477c0f37c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Oct 21 17:21:00 2017 +0200

    Problem: description of return value is cloned from zmq_atomic_counter_new

    Solution: provide correct description

    Fixes #2789

 doc/zmq_atomic_counter_value.txt | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 0897b3e07b5a78d8ab479bc0846987fc8f768e61
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Sat Oct 21 13:19:51 2017 +0200

    Problem: excessive memory allocations around blob_t (#2796)

    * Problem: excessive memory allocations around blob_t

    Solution: redefine blob_t as a custom type, and use reference/move
    semantics where possible

 src/blob.hpp          | 239 ++++++++++++++++++++++++++++++--------------------
 src/client.cpp        |   2 +-
 src/client.hpp        |   2 +-
 src/dealer.cpp        |   2 +-
 src/dealer.hpp        |   2 +-
 src/dgram.cpp         |   4 +-
 src/dgram.hpp         |   2 +-
 src/dish.cpp          |   2 +-
 src/dish.hpp          |   2 +-
 src/fq.cpp            |   4 +-
 src/fq.hpp            |   2 +-
 src/gather.cpp        |   2 +-
 src/gather.hpp        |   2 +-
 src/mechanism.cpp     |   6 +-
 src/mechanism.hpp     |   2 +-
 src/pair.cpp          |   4 +-
 src/pair.hpp          |   2 +-
 src/pipe.cpp          |   8 +-
 src/pipe.hpp          |   4 +-
 src/pull.cpp          |   2 +-
 src/pull.hpp          |   2 +-
 src/router.cpp        |  30 +++----
 src/router.hpp        |   2 +-
 src/server.cpp        |   2 +-
 src/server.hpp        |   2 +-
 src/socket_base.cpp   |   6 +-
 src/socket_base.hpp   |   2 +-
 src/stream.cpp        |  12 +--
 src/stream_engine.cpp |   2 +-
 src/xpub.cpp          |   8 +-
 src/xpub.hpp          |   1 -
 src/xsub.cpp          |   2 +-
 src/xsub.hpp          |   2 +-
 33 files changed, 208 insertions(+), 160 deletions(-)

commit cfef04035c7eb9b1c2a64d785d1881bc80977478
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Oct 18 16:27:00 2017 +0200

    Clarify usage of zmq_close (#2792)

    * Clarify usage of zmq_close

 doc/zmq_close.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 2c247271a38ffc2222a9fb2bf36bc65f553c1070
Merge: 835df922 cfb21295
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Oct 18 14:33:09 2017 +0100

    Merge pull request #2793 from sigiesec/timeout-comment

    Problem: comment before sndtimeo/rcvtimeo does not specify dimension

commit cfb21295575508e13a2f85df71a9f7a74344858b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Oct 18 15:04:54 2017 +0200

    Problem: comment before sndtimeo/rcvtimeo does not specify dimension

    Solution: add "milliseconds"

 src/options.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 835df92241f41654ec736c6b89ca0c2e6fdabee9
Merge: cfe44284 bd2ff7fb
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Oct 17 18:56:52 2017 +0300

    Merge pull request #2791 from bluca/centos6

    Problems: DRAFT build broken in CentOS 6, missing bits in documentation

commit cfe44284f7526f45f37c80a68e503c06504c3245
Merge: fe96697e 4e1588c4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 15:09:24 2017 +0100

    Merge pull request #2790 from youRFate/master

    added note concerning issue 2788 to INSTALL

commit 4e1588c4c3f665257034583f33712e7a0db17fb3
Author: youRFate <paa.christoph@googlemail.com>
Date:   Tue Oct 17 16:04:03 2017 +0200

    added note concerning issue 2788 to INSTALL

 INSTALL | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit bd2ff7fbf8cb64cde9144fc068182828b67361d5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 13:36:34 2017 +0100

    Problem: DRAFT build broken with old GCC due to missing SIZE_MAX

    Solution: define __STDC_LIMIT_MACROS in test_timers.cpp before
    including testutil.hpp so that the definitions are included

 tests/test_timers.cpp | 1 +
 1 file changed, 1 insertion(+)

commit fe96697e8b1c9049b3c2ee4f6ba0d81ea99ab835
Merge: fa5443e9 6df5e771
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 13:39:31 2017 +0100

    Merge pull request #2787 from youRFate/master

    added libiphlpapi to PKGCFG_LIBS_PRIVATE for static mingw builds

commit 2e2c22dd5b72632ccf095335469481425cc47e6c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 13:22:29 2017 +0100

    Problem: DRAFT build broken with old GCC due to GNU modifier

    Solution: print unsigned integers instead of size_t to avoid the error:

      error: ISO C++ does not support the 'z' gnu_printf length modifier

    due to very old version of GCC.

 tests/test_router_mandatory.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 6df5e771bb3c8614ab9e851cbba65a2722fe4593
Author: youRFate <paa.christoph@googlemail.com>
Date:   Tue Oct 17 14:29:09 2017 +0200

    added libiphlpapi to PKGCFG_LIBS_PRIVATE for static mingw builds

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit 55a347c7dab65f2d345e0e99d52b707563633ea4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 13:20:34 2017 +0100

    Problem: zmq_proxy_steerable manpage does not mention multipart

    Solution: mention that the STATISTICS command returns a message with 8
    frames

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

commit cc8d3586cd51a008b57602aafdd1cedfc40ef5e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 13:18:46 2017 +0100

    Problem: formatting error in zmq_ctx_set

    Solution: fix it

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

commit fa5443e92f472dea7129a84bdab597045265ad39
Merge: f25cd6e7 b95ef430
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 13:16:37 2017 +0100

    Merge pull request #2786 from f18m/affinity-scheduling-docs

    Increase details in docs

commit b95ef430be33cd3d1962e0ad5ee127933d048ff9
Author: f18m <francesco.montorsi@gmail.com>
Date:   Tue Oct 17 14:11:42 2017 +0200

    Add docs for ZMQ_THREAD_NAME_PREFIX

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

commit e12f3e68c06549bbf334e32f3505d2206b196c35
Author: f18m <francesco.montorsi@gmail.com>
Date:   Tue Oct 17 14:03:53 2017 +0200

    Increase details in docs

 doc/zmq_ctx_set.txt | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit f25cd6e7bed3aad57b33cf42fdbe032ce849ee3a
Author: f18m <f18m@users.noreply.github.com>
Date:   Tue Oct 17 13:06:50 2017 +0200

    Background thread names (#2784)

    * Add ZMQ_THREAD_NAME_PREFIX ctx option

 include/zmq.h              |  1 +
 src/ctx.cpp                | 15 ++++++++++++++-
 src/ctx.hpp                |  3 ++-
 src/zmq_draft.h            |  1 +
 tests/test_ctx_options.cpp |  8 ++++++++
 5 files changed, 26 insertions(+), 2 deletions(-)

commit 9af03e221421efc44e3077f37dfc963f7937dac2
Merge: 189b551b 5311aa9c
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Oct 17 14:03:01 2017 +0300

    Merge pull request #2785 from bluca/travis_norm

    Problem: Travis does not build with NORM

commit 5311aa9cd96bddb20fb1782a91efdbdd78ffdpd5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 11:17:13 2017 +0100

    Problem: Travis does not build with NORM

    Solution: install package and enable the build on some Linux jobs

 .travis.yml | 6 ++++--
 ci_build.sh | 4 ++++
 2 files changed, 8 insertions(+), 2 deletions(-)

commit 189b551b404773cd41d8ecb0ade9c5e0fd2e002e
Merge: 920288b5 e2678b8b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 17 11:08:00 2017 +0100

    Merge pull request #2783 from f18m/docs-proxy-stats

    Add documentation for new steerable proxy command

commit e2678b8b111ce75dd40e7a95323b19afa901ad1b
Author: f18m <francesco.montorsi@gmail.com>
Date:   Tue Oct 17 11:08:09 2017 +0200

    Add documentation for new steerable proxy command

 doc/zmq_proxy_steerable.txt | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit 920288b5b7a2788cde99bb0348b973dc00c80998
Merge: 39ad27c9 9ad8ddf4
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Tue Oct 17 02:29:25 2017 +0200

    Merge pull request #2781 from bluca/norm_pkgconfig

    Problems: autoconf does not use pkgconfig for NORM, deb packages do not build with libnorm

commit 9ad8ddf401679c2b47bbd55885ce0b055761e2a5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 16 23:24:55 2017 +0100

    Problem: deb packages do not build with libnorm

    Solution: add dependency and configure flag

 packaging/debian/control        | 1 +
 packaging/debian/rules          | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

commit 78cdff3a3e8a06824035080663b071eb5dbf8229
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 16 23:23:32 2017 +0100

    Problem: autoconf does not use pkgconfig for NORM

    Solution: use the pkgconfig macro as the first step and then fallback
    to manual checks

 Makefile.am  |  5 +++++
 configure.ac | 28 +++++++++++++++++++---------
 2 files changed, 24 insertions(+), 9 deletions(-)

commit 39ad27c970232aa88b9d79c5d8b74692dc019fdc
Merge: bfbb4ff2 e5e83c53
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Oct 16 14:05:21 2017 +0200

    Merge pull request #2779 from bluca/thread_fixes

    Problems: no documentation for new thread affinity and priority options, test_ctx_options only checks global DRAFT flag

commit e5e83c53e52e38662bc2d7ac3aaf964bd869df1b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 16 12:43:34 2017 +0100

    Problem: ZMQ_THREAD_AFFINITY is not documented

    Solution: add a section in zmq_ctx_set's manpage

 doc/zmq_ctx_set.txt | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 1478517e1a92dpba1e2b784a478825818636d3ac
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 16 12:42:59 2017 +0100

    Problem: use of nice() for ZMQ_THREAD_PRIORITY not documented

    Solution: mention that it is used on Linux when SCHED_OTHER is selected

 doc/zmq_ctx_set.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 4c2a95eab27a7622008a3365eadaa5fa9824dfbf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 16 12:34:13 2017 +0100

    Problem: test_ctx_options only checks global DRAFT flag

    Solution: this will break once the tested APIs move from DRAFT to STABLE
    so instead check for the specific macros.

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

commit bfbb4ff2e9297c71756241dffbe69e81d01d6277
Author: f18m <f18m@users.noreply.github.com>
Date:   Mon Oct 16 13:29:03 2017 +0200

    Background threads enhancements (#2778)

    * Background thread scheduling

    - add ZMQ_THREAD_AFFINITY ctx option; set all thread scheduling options
    from the context of the secondary thread instead of using the main
    process thread context!
    - change ZMQ_THREAD_PRIORITY to support setting NICE of the background
    thread when using SCHED_OTHER

 CMakeLists.txt                                |   1 +
 builds/cmake/Modules/ZMQSourceRunChecks.cmake |  19 +++++
 configure.ac                                  |  16 ++++
 include/zmq.h                                 |   2 +
 src/ctx.cpp                                   |  10 ++-
 src/ctx.hpp                                   |   1 +
 src/thread.cpp                                |  66 ++++++++++++---
 src/thread.hpp                                |  11 ++-
 src/zmq_draft.h                               |   2 +
 tests/test_ctx_options.cpp                    | 116 ++++++++++++++++++++++++--
 10 files changed, 226 insertions(+), 18 deletions(-)

commit 577e713e2cf3206f2d7a11227ff75c173351157a
Merge: 23da2347 5f03120a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Oct 13 08:56:19 2017 +0200

    Merge pull request #2775 from arsenm/master

    Add my RELICENSE

commit 5f03120ac5a201c08364c78338df34429db5d564
Author: Matt Arsenault <arsenm2@gmail.com>
Date:   Thu Oct 12 22:14:39 2017 -0700

    Add my RELICENSE

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

commit 23da2347bd590282973e4208b85af3a75ebcc100
Merge: 136431eb b6dpe516
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Oct 9 20:29:08 2017 +0200

    Merge pull request #2773 from bluca/zap

    Problems: strict ZAP protocol adherence is backward incompatible, minor static analysis warnings

commit b6dpe51691e5ee3dcd6ca2f1c1a40e4d80f5c5a3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 7 18:34:18 2017 +0100

    Problem: strict ZAP protocol adherence is backward incompatible

    Solution: add ZMQ_ZAP_ENFORCE_DOMAIN to hide backward incompatible
    change and make it disabled by default.
    In a future release that breaks API compatibility we can then switch
    the default to enabled in order to achieve full RFC compatibility.

    Fixes #2762

 doc/zmq_getsockopt.txt      | 12 ++++++++++++
 doc/zmq_setsockopt.txt      | 20 +++++++++++++++++++-
 include/zmq.h               |  1 +
 src/curve_server.cpp        |  8 +++++++-
 src/options.cpp             | 18 +++++++++++++++++-
 src/options.hpp             |  3 +++
 src/plain_server.cpp        |  5 ++++-
 src/zmq_draft.h             |  1 +
 tests/test_security_zap.cpp |  2 ++
 tests/testutil_security.hpp |  7 +++++++
 10 files changed, 73 insertions(+), 4 deletions(-)

commit 50bddbaac969e6faf09cb0ebdeb79dpd90a6247d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 7 18:16:32 2017 +0100

    Problem: dead code in options.hpp

    Solution: remove unused zap_ipc_creds boolean variable

 src/options.hpp | 1 -
 1 file changed, 1 deletion(-)

commit e3ee55b191c0236adb6a547e5dd59f709fac9195
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 7 18:05:21 2017 +0100

    Problem: missing indentation for UDP branch

    Solution: fix it

 src/socket_base.cpp | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit c8f3f8a5dab4cd89dc6fb80f84fa3fa23c944003
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 7 18:03:51 2017 +0100

    Problem: ambiguos bitwise ANDs in if statements

    Solution: wrap bitwise ANDs in brackets as the static analyzer suggests

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

commit 136431ebf7f7860a71dfeb11ce3341746d4a7d9b
Merge: a6de31ff ed64585e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Oct 7 21:53:24 2017 +0200

    Merge pull request #2769 from bluca/ipc_fixes

commit a6de31fff6ba3a4ca621beb18fd292fe25bb6d42
Merge: 9be8cebd 6a9dec30
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Oct 6 23:42:04 2017 +0200

    Merge pull request #2771 from bluca/lcov_autoconf

    Problem: lcov autoconf macro out of date

commit 6a9dec30a936e33e86474c57cc0d6fa9a975c056
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 6 19:37:44 2017 +0100

    Problem: lcov autoconf macro out of date

    Solution: update it

 m4/ax_code_coverage.m4 | 121 +++++++++++++++++++++----------------------------
 1 file changed, 52 insertions(+), 69 deletions(-)

commit ed64585e93233a89a16dd27b96aa3c35180335b9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 6 11:12:13 2017 +0100

    Problem: test_rebind_ipc might not see race condition on fast envs

    Solution: pre-create the second socket to save a few cycles between
    closing the old one and binding the new one

 tests/test_rebind_ipc.cpp | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit 53f463a3fab6be6a8d15ba4edc32924f0339a72d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 6 11:08:40 2017 +0100

    Problem: test_rebind_ipc uses generic socket file name

    Solution: name it after the test to avoid possible clashes when
    running tests in parallel.

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

commit 7ad06f144952d72e8b36c53313a789b6a441e758
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 6 09:53:59 2017 +0100

    Problem: IPC event_closed logs -1 as the FD

    Solution: take a copy of the file descriptor before setting it to
    retired_fd.

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

commit 9be8cebd21c4747e5208ea7ee3cb4b8a84cab08f
Merge: 01a3f395 656cdb95
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 6 09:25:33 2017 +0100

    Merge pull request #2765 from GreatFruitOmsk/issue-2764

    Problem: Race condition in IPC sockets

commit 656cdb959a7482c45db979c1d08ede585d12e315
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Thu Oct 5 14:29:25 2017 -0700

    Problem: Race condition in IPC sockets

    Solution: Don't unlink file on close

    File may not belong to the socket at that point.

 .gitignore                    |  1 +
 Makefile.am                   |  4 +++
 builds/gyp/project-tests.gypi | 11 ++++++
 builds/gyp/project-tests.xml  |  1 +
 src/ipc_listener.cpp          | 13 ++-----
 tests/CMakeLists.txt          |  1 +
 tests/test_rebind_ipc.cpp     | 83 +++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 103 insertions(+), 11 deletions(-)

commit 01a3f3955c04803e0131ea5e7e08788a138924d8
Merge: 99c52770 02c46463
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 5 21:18:19 2017 +0100

    Merge pull request #2768 from ADDubovik/master

    fix build for msvc2017

commit 02c46463d79bc9ff7c75bfd12e5dp5ab17e252c4
Author: Alexander Dubovik <dubovik_a_d@mail.ru>
Date:   Thu Oct 5 22:46:29 2017 +0300

    fix build for msvc2017

 builds/msvc/build/buildbase.bat | 8 ++++++++
 builds/msvc/vs2017/libzmq.sln   | 4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)

commit 99c527702bbb80102edc822f71056439d5293e8b
Merge: 44f96a36 997825bd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 5 09:17:51 2017 +0100

    Merge pull request #2766 from hxw/master

    add __FreeBSD__ to ifdefs

commit 997825bdf1e436d67c08b62e97e17b4740a19155
Author: Christopher Hall <hsw@ms2.hinet.net>
Date:   Tue Oct 3 15:30:42 2017 +0800

    add __FreeBSD__ to ifdefs

    On FreeBSD the sysmbol __FreeBSD_kernel__ is only defines if a
    specific param.h file is included, unlike Debian/kFreeBSD where this
    symbol is always defined.  So also compile the FreeBSD specific code
    if __FreeBSD__ is defined for FreeBSD 11 & 12 compatibility.

    Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>

 src/stream_engine.cpp | 2 +-
 src/thread.cpp        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 44f96a36521a8410378ddc83d7c4ff258da5d399
Merge: f6688f05 2c8a7223
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 20 10:08:45 2017 +0200

    Merge pull request #2745 from sigiesec/rename-identity

    Problem: term "identity" is confusing

commit f6688f051643fa6f74138c5227cdb7c221798374
Merge: 76dfec7f edb4ca10
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Sep 20 07:46:19 2017 +0200

    Merge pull request #2756 from bluca/reconnect_ivl_connect

    Problem: zmq_connect fails after disconnect due to RECONNECT_IVL == -1

commit 2c8a7223b8eac22e2c90efaa057578cb6bf58f46
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Sep 19 17:41:02 2017 +0200

    Problem: remaining use of "identity"

    Solution: replaced by "routing id"

 src/options.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7e3f4b1d32797ac19f7336fce0afd3a8f3249129
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 12:41:58 2017 +0200

    Problem: ZMTP protocol broken w.r.t. Identity property

    Solution: differentiate propertly between ZMTP property names and ZeroMQ API property names

 src/mechanism.cpp | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

commit a5e3a65dp21842ab0d30d451bef6c331ea86dc6c
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 12:38:08 2017 +0200

    Problem: inconsistency between zmq.h and zmq_draft.h

    Solution: fix zmq_draft.h

 src/zmq_draft.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4b821d8f843dfa41067f0f8adc4218b671e80468
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 12:37:42 2017 +0200

    Problem: remaining uses of "identity"

    Solution: replaced by "routing id"

 src/pipe.hpp            | 4 ++--
 tests/test_spec_req.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 1414bf938ce281ad8bbf6e909e19756ee165da3d
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 11:21:13 2017 +0200

    Problem: use of unqualified "id" in code example

    Solution: use "routing_id" instead

 doc/zmq_socket.txt                  | 20 +++++++--------
 tests/test_inproc_connect.cpp       | 10 ++++----
 tests/test_issue_566.cpp            | 10 ++++----
 tests/test_metadata.cpp             |  4 +--
 tests/test_msg_flags.cpp            |  2 +-
 tests/test_probe_router.cpp         |  2 +-
 tests/test_proxy.cpp                | 32 ++++++++++++------------
 tests/test_req_correlate.cpp        |  2 +-
 tests/test_router_handover.cpp      |  4 +--
 tests/test_router_mandatory.cpp     | 34 ++++++++++++-------------
 tests/test_router_mandatory_hwm.cpp |  2 +-
 tests/test_security_curve.cpp       | 14 +++++------
 tests/test_security_gssapi.cpp      |  4 +--
 tests/test_security_null.cpp        |  4 +--
 tests/test_security_plain.cpp       |  6 ++---
 tests/test_stream.cpp               | 50 ++++++++++++++++++-------------------
 tests/test_stream_disconnect.cpp    | 10 ++++----
 tests/testutil_security.hpp         | 13 +++++-----
 18 files changed, 112 insertions(+), 111 deletions(-)

commit d6694e7d47a70789c4df39141de0b38a864015e8
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 11:18:50 2017 +0200

    Problem: Use of "rid" in the docs

    Solution: Replaced by "routing id"

 doc/zmq_getsockopt.txt |  1 +
 doc/zmq_setsockopt.txt | 29 ++++++++++++++++++-----------
 2 files changed, 19 insertions(+), 11 deletions(-)

commit 12f62c74c1c53d555442856c5f2eb53f4c6d0aaa
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 11:09:18 2017 +0200

    Problem: docs refer to "Identity"

    Solution: change docs to refer to "Routing id"

 doc/zmq_getsockopt.txt | 35 ++++++++++++++++++---------------
 doc/zmq_msg_gets.txt   |  6 ++++--
 doc/zmq_setsockopt.txt | 52 +++++++++++++++++++++++++++++---------------------
 doc/zmq_socket.txt     | 20 +++++++++----------
 4 files changed, 64 insertions(+), 49 deletions(-)

commit fab57634b442898501dfa2e7dcf645c46c9ecccc
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 09:55:56 2017 +0200

    Problem: Message metadata properties still refer to "identity"

    Solution: Renamed, but support querying the property by its old name

 include/zmq.h     | 3 +--
 src/mechanism.cpp | 8 ++++----
 src/metadata.cpp  | 8 +++++++-
 3 files changed, 12 insertions(+), 7 deletions(-)

commit 27c7e52a5a2316a53362c598254aca65fabe6649
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 09:48:06 2017 +0200

    Problem: Usage of "rid" in server_t

    Solution: Replaced by "routing_id"

 src/server.cpp | 6 +++---
 src/server.hpp | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 41bdp55af736b23bc2bed49be6a6d56b4fc226e7
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 09:29:46 2017 +0200

    Problem: inconsistent naming related to routing ids

    Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID

 include/zmq.h                 |  3 ++-
 src/pipe.cpp                  | 16 ++++++++--------
 src/pipe.hpp                  | 10 +++++-----
 src/router.cpp                | 16 ++++++++--------
 src/server.cpp                |  6 +++---
 src/socket_base.hpp           |  2 +-
 src/stream.cpp                | 14 +++++++-------
 src/stream_engine.cpp         |  2 +-
 tests/test_connect_rid.cpp    | 14 +++++++-------
 tests/test_security_curve.cpp | 22 +++++++++++++---------
 10 files changed, 55 insertions(+), 50 deletions(-)

commit 9e7507b38b8116e3fcca130beac83d8dp94ba589
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Sep 6 17:45:56 2017 +0200

    Problem: term "identity" is confusing

    Solution: replace by "routing id"

 include/zmq.h                    |   8 +--
 src/ctx.cpp                      |  16 +++---
 src/mechanism.cpp                |  22 ++++----
 src/mechanism.hpp                |   6 +--
 src/msg.cpp                      |   4 +-
 src/msg.hpp                      |   4 +-
 src/options.cpp                  |  20 ++++----
 src/options.hpp                  |   8 +--
 src/pipe.cpp                     |  32 ++++++------
 src/pipe.hpp                     |  12 ++---
 src/req.cpp                      |   2 +-
 src/router.cpp                   | 106 +++++++++++++++++++--------------------
 src/router.hpp                   |   4 +-
 src/server.cpp                   |   6 +--
 src/session_base.cpp             |   6 +--
 src/socket_base.cpp              |  44 ++++++++--------
 src/stream.cpp                   |  62 +++++++++++------------
 src/stream.hpp                   |   6 +--
 src/stream_engine.cpp            |  50 +++++++++---------
 src/stream_engine.hpp            |   4 +-
 src/zap_client.cpp               |   6 +--
 src/zmq.cpp                      |   6 +--
 src/zmq_draft.h                  |   4 +-
 tests/test_connect_rid.cpp       |   4 +-
 tests/test_issue_566.cpp         |   2 +-
 tests/test_probe_router.cpp      |   2 +-
 tests/test_router_handover.cpp   |   4 +-
 tests/test_router_mandatory.cpp  |   6 +--
 tests/test_security_plain.cpp    |   2 +-
 tests/test_spec_req.cpp          |   2 +-
 tests/test_spec_router.cpp       |   4 +-
 tests/test_stream.cpp            |   2 +-
 tests/test_stream_disconnect.cpp |   4 +-
 tests/testutil_security.hpp      |  30 ++++++-----
 34 files changed, 250 insertions(+), 250 deletions(-)

commit 76dfec7fc3faa3fd4607fbc4754d721b9a5ed2a9
Merge: 843e627b e0243dcb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 19 16:48:37 2017 +0200

    Merge pull request #2755 from sigiesec/client-side-error

    Problem: tests where client should receive an ERROR sometimes do not

commit edb4ca1023ff9001b545e827b227402b76a2b55d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 19 00:14:10 2017 +0100

    Problem: zmq_connect fails after disconnect due to RECONNECT_IVL == -1

    Solution: when a connection breaks and ZMQ_RECONNECT_IVL is set to -1,
    which means a reconnection will not be attempted, send a message from
    the I/O thread to the application thread to make the socket call
    term_endpoint, which is the equivalent of manually calling
    zmq_disconnect.
    This way subsequent zmq_connect call to the same endpoint will attempt
    again to do a connection.
    Otherwise, for some socket types like SUBs, those new connects will
    fail as the endpoint is recorded, despite the connection having been
    permanently closed.

    Add test cases to exercise this corner case with TCP and IPC.

 .gitignore                   |   1 +
 Makefile.am                  |   4 ++
 src/command.hpp              |   8 +++
 src/object.cpp               |  19 ++++++
 src/object.hpp               |   2 +
 src/session_base.cpp         |   5 ++
 src/socket_base.cpp          |   6 ++
 src/socket_base.hpp          |   1 +
 tests/CMakeLists.txt         |   1 +
 tests/test_reconnect_ivl.cpp | 149 +++++++++++++++++++++++++++++++++++++++++++
 10 files changed, 196 insertions(+)

commit e0243dcbca98d0d0ffcb39012c9d2bf2680903ed
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Sep 19 11:05:46 2017 +0200

    Problem: tests where client should receive an ERROR sometimes do not
    receive an ERROR (probably because the connection is closed before)

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

    Fixes #2705

 tests/test_security_curve.cpp |  28 ++--
 tests/test_security_zap.cpp   |  51 ++++---
 tests/testutil_security.hpp   | 318 ++++++++++++++++++++++--------------------
 3 files changed, 207 insertions(+), 190 deletions(-)

commit 843e627bed8d29ac2931bc38a6298b867cf08d7b
Merge: e2f2193b 7297df62
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 19 10:17:15 2017 +0200

    Merge pull request #2753 from zeromq/zap-domain-docs

    Problem: documentation of ZMQ_ZAP_DOMAIN is wrong

commit 7297df6278c57473d9a23e77e5e4dcf0f03c3422
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Sep 19 09:13:57 2017 +0200

    Problem: documentation of ZMQ_ZAP_DOMAIN is wrong

    Solution: fix documentation

 doc/zmq_getsockopt.txt |  3 ++-
 doc/zmq_setsockopt.txt | 11 +++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

commit e2f2193bec07cfd23d7df91d271ab34adf224921
Merge: 9071265c 77f76a49
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 18 20:19:14 2017 +0200

    Merge pull request #2752 from sigiesec/test-no-zap-handler

    Problem: missing tests and inconsistent behaviour for ZAP corner cases

commit 77f76a49b27d9d91b02069d4e52f376670adf1c7
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Mon Sep 18 17:19:36 2017 +0200

    Problem: no tests for cases 5 and 6 of #2711

    Solution: added tests

 tests/test_security_zap.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++--
 tests/testutil_security.hpp | 18 +++++++++++++----
 2 files changed, 60 insertions(+), 6 deletions(-)

commit e546f9296e6002c0b3311c98cd5e308d3757807f
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Mon Sep 18 15:24:10 2017 +0200

    Problem: duplicated code & inconsistent behaviour between
    mechanisms

    Solution: uniformly require a ZAP domain to be set to activate ZAP
    handling, clarify comment on Stonehouse pattern

 src/curve_server.cpp          | 21 ++++++++++-----------
 src/curve_server.hpp          |  1 -
 src/mechanism_base.cpp        |  5 +++++
 src/mechanism_base.hpp        |  2 ++
 src/null_mechanism.cpp        | 15 +++++++--------
 src/null_mechanism.hpp        |  2 --
 src/plain_server.cpp          | 21 ++++++++++++++-------
 src/session_base.cpp          |  4 +++-
 src/zap_client.cpp            |  7 ++-----
 tests/test_security_plain.cpp |  5 +++++
 10 files changed, 48 insertions(+), 35 deletions(-)

commit ee8b8bd29cdcfbff1ad3fd342f9d9c8fd991f418
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Mon Sep 18 15:11:51 2017 +0200

    Problem: no test for ZAP handler terminating in flight

    Solution: added test & some improvements of test utils

 tests/test_security_zap.cpp | 21 +++++++++++++++++++++
 tests/testutil_security.hpp | 43 +++++++++++++++++++++++++++----------------
 2 files changed, 48 insertions(+), 16 deletions(-)

commit a5f94cb610f0a66046a8e749fb08f1e673c8be0e
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Mon Sep 18 11:48:14 2017 +0200

    Problem: tests without ZAP handler are failing

    Solution: emit events as expected by tests, and refuse connections when
    ZAP is required but no handler started

    Addresses #2711 partially

 src/curve_server.cpp        |  22 +++++--
 src/curve_server.hpp        |   1 +
 src/null_mechanism.cpp      |  26 +++++---
 src/null_mechanism.hpp      |   3 +-
 src/plain_server.cpp        |   4 ++
 tests/test_security_zap.cpp |  79 +++++++++++++++++++------
 tests/testutil_security.hpp | 141 +++++++++++++++++++++++---------------------
 7 files changed, 178 insertions(+), 98 deletions(-)

commit 13b972b226d65a0cc30fe09f49d43dpbbea08446
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 15:09:17 2017 +0200

    Problem: no tests without ZAP handler where one is expected

    Solution: added test case for NULL/PLAIN/CURVE

 tests/test_security_zap.cpp | 14 ++++++++++++++
 tests/testutil_security.hpp | 16 ++++++++++------
 2 files changed, 24 insertions(+), 6 deletions(-)

commit 9071265c0254344aad58ac640657ead566e1b6d4
Merge: 2e167886 40c1a3ab
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Mon Sep 18 01:32:49 2017 +0200

    Merge pull request #2751 from bluca/centos6

    Problem: CentOS 6 build fails

commit 40c1a3ab7e92922f317adfbc256b93a27376b894
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Sep 17 20:44:28 2017 +0100

    Problem: CentOS 6 build fails

    Solution: use same autoconf workaround as for Debian 7, and manually
    create the config directory

 packaging/redhat/zeromq.spec | 2 ++
 1 file changed, 2 insertions(+)

commit 2e167886cfbcf06872ed678a39580c0db90011fa
Merge: 23c2f498 633325e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 15 00:10:31 2017 +0200

    Merge pull request #2749 from reza-ebrahimi/master

    Update AUTHERS File

commit 23c2f4987b10b36ff045defdb6db5055c5c8acba
Merge: 5de2a82b 21d78f47
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 14 23:54:41 2017 +0200

    Merge pull request #2748 from tkoeppe/relicense

    RELICENSE: Google, Inc.

commit 633325e0bcc158740d46deace6e5a977411f4274
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Thu Sep 14 22:04:26 2017 +0430

    Update AUTHERS File

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 21d78f47894cab4197931de5e00648adb9dpdc7b
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Wed Sep 13 16:31:38 2017 +0100

    RELICENSE: Google, Inc.

    Relevant commits: ddb82a546b8786b23b977087000e296589529cb2, 68f5926ec65d33043ba3f1687e49d1e6abe47fa2

    Also adds AUTHORS entry that should have been part of the previous commits.

 AUTHORS             |  1 +
 RELICENSE/google.md | 13 +++++++++++++
 2 files changed, 14 insertions(+)

commit 5de2a82be87412a8adfd2dpdp0ee91cc56fcd550
Merge: 18498f62 5b929895
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 13 00:48:26 2017 +0200

    Merge pull request #2744 from msune/refactor_poller_wait

    Problem: duplicated socket_poller::wait() code

commit 5b9298954008a0d4148cd99fd05ba7db953e09b2
Author: Marc Sune <marcdevel@gmail.com>
Date:   Thu Sep 7 00:11:22 2017 +0200

    Problem: duplicated socket_poller::wait() code

    zmq::socket_poller_t::wait() had an important set of common lines
    between POLL and SELECT variant.

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

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

    Signed-off-by: Marc Sune <mardevel@gmail.com>

 src/socket_poller.cpp | 311 +++++++++++++++++++++++---------------------------
 src/socket_poller.hpp |  15 +++
 2 files changed, 158 insertions(+), 168 deletions(-)

commit 18498f620f0f6d4076981ea16eb5760fe4d28dc2
Merge: 08b01a51 af03241d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Sep 7 15:24:07 2017 +0200

    Merge pull request #2746 from zeromq/revert-2743-rename-identity

    Revert "Problem: term "identity" is confusing"

commit af03241dcb4cdaf96ad9e0bcf9b3791ddbdda048
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Sep 7 15:47:43 2017 +0300

    Revert "Problem: term "identity" is confusing"

 doc/zmq_getsockopt.txt           |  34 +++++-------
 doc/zmq_msg_gets.txt             |   6 +-
 doc/zmq_setsockopt.txt           |  81 +++++++++++----------------
 doc/zmq_socket.txt               |  40 +++++++-------
 include/zmq.h                    |  12 ++--
 src/ctx.cpp                      |  16 +++---
 src/mechanism.cpp                |  26 ++++-----
 src/mechanism.hpp                |   6 +-
 src/metadata.cpp                 |   8 +--
 src/msg.cpp                      |   4 +-
 src/msg.hpp                      |   4 +-
 src/options.cpp                  |  20 +++----
 src/options.hpp                  |   8 +--
 src/pipe.cpp                     |  24 ++++----
 src/pipe.hpp                     |  12 ++--
 src/req.cpp                      |   2 +-
 src/router.cpp                   | 116 +++++++++++++++++++--------------------
 src/router.hpp                   |   4 +-
 src/server.cpp                   |  12 ++--
 src/server.hpp                   |   2 +-
 src/session_base.cpp             |   6 +-
 src/socket_base.cpp              |  44 +++++++--------
 src/socket_base.hpp              |   2 +-
 src/stream.cpp                   |  72 ++++++++++++------------
 src/stream.hpp                   |   6 +-
 src/stream_engine.cpp            |  50 ++++++++---------
 src/stream_engine.hpp            |   4 +-
 src/zap_client.cpp               |   6 +-
 src/zmq.cpp                      |   6 +-
 src/zmq_draft.h                  |   4 +-
 tests/test_connect_rid.cpp       |  18 +++---
 tests/test_issue_566.cpp         |   2 +-
 tests/test_probe_router.cpp      |   2 +-
 tests/test_router_handover.cpp   |   4 +-
 tests/test_router_mandatory.cpp  |   6 +-
 tests/test_security_curve.cpp    |  22 +++-----
 tests/test_security_plain.cpp    |   2 +-
 tests/test_security_zap.cpp      |  14 +++--
 tests/test_spec_req.cpp          |   2 +-
 tests/test_spec_router.cpp       |   4 +-
 tests/test_stream.cpp            |   2 +-
 tests/test_stream_disconnect.cpp |   4 +-
 tests/testutil_security.hpp      |   2 +-
 43 files changed, 344 insertions(+), 377 deletions(-)

commit 08b01a5108bf028ecf603704879e4221c82a80a9
Merge: 876d9073 cd55c624
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Sep 7 12:58:56 2017 +0300

    Merge pull request #2743 from sigiesec/rename-identity

    Problem: term "identity" is confusing

commit cd55c624990d6009348ab3c388c641a53df54d29
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 11:21:13 2017 +0200

    Problem: use of unqualified "id" in code example

    Solution: use "routing_id" instead

 doc/zmq_socket.txt | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 0874eec8038a56f77809b1e890292c24ff88a76f
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 11:18:50 2017 +0200

    Problem: Use of "rid" in the docs

    Solution: Replaced by "routing id"

 doc/zmq_getsockopt.txt |  1 +
 doc/zmq_setsockopt.txt | 29 ++++++++++++++++++-----------
 2 files changed, 19 insertions(+), 11 deletions(-)

commit f174003740b4d0ca522a8ddp105992321e3aa421
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 11:09:18 2017 +0200

    Problem: docs refer to "Identity"

    Solution: change docs to refer to "Routing id"

 doc/zmq_getsockopt.txt | 35 ++++++++++++++++++---------------
 doc/zmq_msg_gets.txt   |  6 ++++--
 doc/zmq_setsockopt.txt | 52 +++++++++++++++++++++++++++++---------------------
 doc/zmq_socket.txt     | 20 +++++++++----------
 4 files changed, 64 insertions(+), 49 deletions(-)

commit dedp59dca9527875c8d49af6bd3bcf2ffa336798
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 09:55:56 2017 +0200

    Problem: Message metadata properties still refer to "identity"

    Solution: Renamed, but support querying the property by its old name

 include/zmq.h     | 3 +--
 src/mechanism.cpp | 8 ++++----
 src/metadata.cpp  | 8 +++++++-
 3 files changed, 12 insertions(+), 7 deletions(-)

commit dp2ea1a655b2efdc49e5cd30598079f591526381
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 09:48:06 2017 +0200

    Problem: Usage of "rid" in server_t

    Solution: Replaced by "routing_id"

 src/server.cpp | 6 +++---
 src/server.hpp | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit e00131dd4326ce7cafd89e5cc9c0721fd3d57ad1
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Sep 7 09:29:46 2017 +0200

    Problem: inconsistent naming related to routing ids

    Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID

 include/zmq.h                 |  3 ++-
 src/pipe.cpp                  | 16 ++++++++--------
 src/pipe.hpp                  | 10 +++++-----
 src/router.cpp                | 16 ++++++++--------
 src/server.cpp                |  6 +++---
 src/socket_base.hpp           |  2 +-
 src/stream.cpp                | 14 +++++++-------
 src/stream_engine.cpp         |  2 +-
 tests/test_connect_rid.cpp    | 14 +++++++-------
 tests/test_security_curve.cpp | 22 +++++++++++++---------
 tests/test_security_zap.cpp   | 14 ++++++--------
 11 files changed, 61 insertions(+), 58 deletions(-)

commit 1daf83079af5c9cbeadce54b03a8eb046a6f6c89
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Sep 6 17:45:56 2017 +0200

    Problem: term "identity" is confusing

    Solution: replace by "routing id"

 include/zmq.h                    |   8 +--
 src/ctx.cpp                      |  16 +++---
 src/mechanism.cpp                |  22 ++++----
 src/mechanism.hpp                |   6 +--
 src/msg.cpp                      |   4 +-
 src/msg.hpp                      |   4 +-
 src/options.cpp                  |  20 ++++----
 src/options.hpp                  |   8 +--
 src/pipe.cpp                     |  32 ++++++------
 src/pipe.hpp                     |  12 ++---
 src/req.cpp                      |   2 +-
 src/router.cpp                   | 106 +++++++++++++++++++--------------------
 src/router.hpp                   |   4 +-
 src/server.cpp                   |   6 +--
 src/session_base.cpp             |   6 +--
 src/socket_base.cpp              |  44 ++++++++--------
 src/stream.cpp                   |  62 +++++++++++------------
 src/stream.hpp                   |   6 +--
 src/stream_engine.cpp            |  50 +++++++++---------
 src/stream_engine.hpp            |   4 +-
 src/zap_client.cpp               |   6 +--
 src/zmq.cpp                      |   6 +--
 src/zmq_draft.h                  |   4 +-
 tests/test_connect_rid.cpp       |   4 +-
 tests/test_issue_566.cpp         |   2 +-
 tests/test_probe_router.cpp      |   2 +-
 tests/test_router_handover.cpp   |   4 +-
 tests/test_router_mandatory.cpp  |   6 +--
 tests/test_security_plain.cpp    |   2 +-
 tests/test_spec_req.cpp          |   2 +-
 tests/test_spec_router.cpp       |   4 +-
 tests/test_stream.cpp            |   2 +-
 tests/test_stream_disconnect.cpp |   4 +-
 tests/testutil_security.hpp      |   2 +-
 34 files changed, 237 insertions(+), 235 deletions(-)

commit 876d90732d3c8d16ffb9e38b6ea49e247f80eea1
Merge: f520738a 4fac78ec
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Sep 6 12:04:57 2017 +0300

    Merge pull request #2741 from bluca/proxy_stats_typos

    Problems: typos in proxy_steerable stats

commit 4fac78ec31d42495e8a72fa215572f370d542b8b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 6 08:27:29 2017 +0100

    Problem: proxy stat 5th multipart message treated as 1st

    Solution: fix it

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

commit d7da31ed251421ac9892efdc0c9195c1f1857d02
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 6 08:27:16 2017 +0100

    Problem: typo in comment in proxy.cpp

    Solution: fix it

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

commit f520738a0a355a377707b6298ebcedfff99d14b9
Merge: a89d79aa b8695a47
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Sep 6 08:58:34 2017 +0300

    Merge pull request #2740 from bluca/proxy_stats_frames

    Problem: proxy_steerable STATISTICS returns conflated buffers

commit b8695a47b5a53649df669c88e7a7a8e6e2535d51
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 6 01:28:28 2017 +0100

    Problem: proxy_steerable STATISTICS returns conflated buffers

    Solution: split each stat into its own frame, to make it simpler and
    easier to use it, especially from high level bindings

 src/proxy.cpp        | 50 +++++++++++++++++++++++++++-------------------
 tests/test_proxy.cpp | 56 ++++++++++++++++++++++++++++------------------------
 2 files changed, 60 insertions(+), 46 deletions(-)

commit a89d79aa71f503208a345f264c407065613f95e5
Merge: 4be95134 78c4d336
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Sep 5 20:52:51 2017 +0200

    Merge pull request #2738 from bluca/proxy_stat_fixes

    Problems: proxy stats test break 32bit build, not declared as draft

commit 78c4d33600579ea229afb12b8fc542aac56a9e40
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 5 17:37:52 2017 +0100

    Problem: new STATISTICS proxy_steerable not behind DRAFT

    Solution: ifdef it until it's declared stable

 src/proxy.cpp        | 8 ++++++++
 tests/test_proxy.cpp | 2 ++
 2 files changed, 10 insertions(+)

commit c5dpf5e078b9e67838c163f2b83671316c7600bf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 5 17:23:08 2017 +0100

    Problem: compilation fails on 32 bit

    Solution: trucate 64 bit stats in test_proxy, as it's much easier than
    to try and print 64 unsigned integers in a portable way

 tests/test_proxy.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 4be9513443bdcbc9b6675f9c52c6e2fd0faa45a5
Author: f18m <f18m@users.noreply.github.com>
Date:   Tue Sep 5 18:05:04 2017 +0200

    Add "STATISTICS" command to zmq_proxy_steerable()  (#2737)

    * Issue #2736: Add STATISTICS command to zmq_proxy_steerable()

 src/proxy.cpp        | 107 ++++++++++++++++++++++++++----
 tests/test_proxy.cpp | 182 +++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 257 insertions(+), 32 deletions(-)

commit f4b32aa7927578b69dpa4077edb0364097f63c09
Merge: 197dp832 51ac7d28
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 4 15:25:43 2017 +0100

    Merge pull request #2734 from pavel-pimenov/fix-v1001

    Variable is assigned but is not used until the end of the function

commit 197dp832bf908f9aa276f17127e90e4c11b28562
Merge: 7afd6ab5 0e8bf352
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Sep 4 14:50:34 2017 +0100

    Merge pull request #2735 from pavel-pimenov/fix-728

    Excessive check options.mechanism == ZMQ_NULL

commit 0e8bf3520c136340fe1c54091e5912636c87f8fc
Author: pavel.pimenov <pavel.pimenov@gmail.com>
Date:   Mon Sep 4 15:25:31 2017 +0300

    V728 An excessive check 'options.mechanism == 0' can be simplified.
    The '||' operator is surrounded by opposite expressions. session_base.cpp 377

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

commit 51ac7d28c5d15a9ba74fb554d4739e842312ac99
Author: pavel.pimenov <pavel.pimenov@gmail.com>
Date:   Mon Sep 4 15:15:35 2017 +0300

    V1001 The 'ptr' variable is assigned but is not used until the end of the function.

 src/mechanism.cpp    | 2 +-
 src/plain_client.cpp | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

commit 7afd6ab5efb65c3ba6966e7be2d720f4a6cabb7a
Merge: 31e3977a 8feed48b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Sep 1 22:11:57 2017 +0200

    Merge pull request #2732 from bluca/compiler_warnings

    Problems: compiler warnings

commit 8feed48bb9d43a7d87b6db067cb6d9559981316f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 20:01:15 2017 +0100

    Problem: switch statements without breaks

    Solution: add /* FALLTHROUGH */ comments so that nagging compilers
    don't nag

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

commit 31089326fb8ed8c2918b2ccc4cb835415028ad69
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 19:57:00 2017 +0100

    Problem: unused variables warnings in get_peer_state

    Solution: wrap arguments with LIBZMQ_UNUSED

 src/socket_base.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 0382118371437a01589d987670ac234fe3816350
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 19:55:49 2017 +0100

    Problem: unused variable in test_wait_corner_cases

    Solution: don't pass it

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

commit 31e3977ab97004e603d097bdp7f1c1bc0dc4fce5
Merge: 17b95683 23e018f3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 19:51:39 2017 +0100

    Merge pull request #2731 from sigiesec/fix-issue-2723

    Problem: assertion in src\select.cpp:111 on Windows or hang on zmq_ctx_destroy

commit 17b95683ce1ba14fa8f5908feb1b7dda451f648f
Merge: 4691714d 79e28af4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 16:23:42 2017 +0100

    Merge pull request #2730 from sigiesec/fix-issue-2623

    Problem: unable to query state of a router for a particular peer

commit 79e28af4ceec3e4710460dbb7f598777031cc0fc
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Sep 1 17:15:23 2017 +0200

    Problem: new function zmq_socket_get_peer_state not in zmq_draft.h

    Solution: added function to zmq_draft.h

 src/zmq_draft.h | 4 ++++
 1 file changed, 4 insertions(+)

commit f3b268d84f82fb13fe9c92882484ee5480664a6d
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Sep 1 16:27:53 2017 +0200

    Problem: no tests for error cases of zmq_socket_get_peer_state

    Solution: added tests

 tests/test_router_mandatory.cpp | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

commit eeccbbd6f89df3248ad5f88116d4098d7c43104c
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Sep 1 15:51:57 2017 +0200

    Problem: test case fails with tcp transport

    Solution: use inproc transport instead

 tests/test_router_mandatory.cpp | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

commit fc334bc759addf7fcd6d6f710af812813cbcc01c
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 30 09:38:44 2017 +0200

    Problem: unclean and duplicated test code

    Solution: refactoring

 tests/test_router_mandatory.cpp | 81 ++++++++++++++++++++++++-----------------
 1 file changed, 48 insertions(+), 33 deletions(-)

commit f70097c1cf277068e5dpa459ceeee1e043adb413
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 29 13:00:41 2017 +0200

    Problem: test does not trigger HWM

    Solution: modify order of operations, add diagnostic output

 tests/test_router_mandatory.cpp | 73 ++++++++++++++++++++++++++---------------
 1 file changed, 47 insertions(+), 26 deletions(-)

commit 48a1e637b6225fec266cb94ccdcf9ada59fa83fe
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 29 11:51:01 2017 +0200

    Problem: zmq_socket_get_peer_state is not implemented

    Solution: add initial implementation

 src/router.cpp      | 21 +++++++++++++++++++++
 src/router.hpp      |  1 +
 src/socket_base.cpp |  8 ++++++++
 src/socket_base.hpp |  6 +++++-
 src/zmq.cpp         |  9 ++++++---
 5 files changed, 41 insertions(+), 4 deletions(-)

commit cda20260b3242ba71ec1c08fff84e17a6accfaa3
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 29 11:50:30 2017 +0200

    Problem: missing call to zmq_poller_destroy

    Solution: added call

 tests/test_router_mandatory.cpp | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit f4d139bd165b6d7219ea36d4ac9de0a60dpbf141
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 29 10:30:03 2017 +0200

    Problem: duplicated code in socket-related functions

    Solution: extract as_socket_base_t function

 src/zmq.cpp | 141 +++++++++++++++++++++++-------------------------------------
 1 file changed, 54 insertions(+), 87 deletions(-)

commit efa86fe62972565eb52bb6c8886e4eef95919b50
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 29 10:04:06 2017 +0200

    Problem: no test case using the proposed zmq_socket_get_peer_state function

    Solution: added test case (with dummy implementation of zmq_socket_get_peer_state)

 include/zmq.h                   |   4 ++
 src/zmq.cpp                     |  10 ++++
 tests/test_router_mandatory.cpp | 104 +++++++++++++++++++++++++++++++++++++++-
 3 files changed, 117 insertions(+), 1 deletion(-)

commit 49e1b8b75f0e737a7235fce986d84d5f48dpaf9b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 29 10:03:17 2017 +0200

    Problem: test case in main function

    Solution: extracted test_basic function

 tests/test_router_mandatory.cpp | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

commit 4691714d5c877445968f20c72ba4d88ffc9194f7
Merge: 28a4b9a9 fab14a3c
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Fri Sep 1 14:53:45 2017 +0200

    Merge pull request #2729 from bluca/cmake

    Problems: ZMQ_HAVE_O_CLOEXEC not defined by CMake, support for CMake << 3.1 broken

commit fab14a3cc1e761c7e7636a1ff7477e21504dc24c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 10:59:48 2017 +0100

    Problem: support for CMake << 3.1 broken

    Solution: remove redundant target_sources directive

 tests/CMakeLists.txt | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

commit 23e018f37adpfcc1d2219e2c51e4bd3ddd9bd9bd
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 31 21:00:01 2017 +0200

    Problem: termination is requested from a session's owner when already in
    pending termination while processing an error

    Solution: terminate pipe instead

    Fixes #2723

 src/session_base.cpp | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit eb8105cde1e2104798dp28a3893db301378bed64
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 31 18:23:53 2017 +0200

    Problem: assertion failure in select.cpp:111 under Windows

    Solution: handle case when get_fd_family fails

 src/select.cpp | 39 +++++++++++++++++++++++++++++++--------
 src/select.hpp |  3 +++
 2 files changed, 34 insertions(+), 8 deletions(-)

commit 124e04659cc3a1ad5703f0157632030dpe556955
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 10:15:32 2017 +0100

    Problem: ZMQ_HAVE_O_CLOEXEC not defined by CMake

    Solution: add it to CMake's platform.hpp.in

 builds/cmake/platform.hpp.in | 2 ++
 1 file changed, 2 insertions(+)

commit 28a4b9a9690021df39cd9370a035e7630f873efc
Merge: f1c72dc8 83f54d90
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 1 09:39:39 2017 +0100

    Merge pull request #2727 from fove-robin/fix-o-cloexec

    Problem: ZMQ_HAVE_O_CLOEXEC always disabled

commit 83f54d90ad7dp76f75e52734d6e0e7b127d7938c
Author: Robin Stacey <robin.stacey@fove-inc.com>
Date:   Fri Sep 1 16:00:31 2017 +0900

    Problem: ZMQ_HAVE_O_CLOEXEC always disabled

    Solution: Escape quotes in cmake test.

 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f1c72dc8e5a92c32013a07d8dpe68deee70adf8a
Merge: 9c8844fd 91e0d689
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 28 15:47:57 2017 +0200

    Merge pull request #2721 from bjovke/my_work

    Problem: Inconsistent size_t/int usage. size_t and int don't match in 64 bit build and produce warnings. Solution: types corrected.

commit 91e0d689bb17a9f852a673a3a898d6bbe382eb31
Author: bjovke <bjovan@gmail.com>
Date:   Mon Aug 28 15:03:46 2017 +0200

    Problem: Inconsistent size_t/int usage. Solution: types corrected.

 src/mechanism_base.cpp | 2 +-
 src/mechanism_base.hpp | 2 +-
 src/plain_server.cpp   | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 9c8844fd0840b699194ac89dca9967b6e8d32dec
Merge: 5c981be9 40a3b074
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 25 16:01:52 2017 +0200

    Merge pull request #2719 from jimklimov/setThreadName

    Problem: cosmetic setThreadName() can be fatal

commit 40a3b0746f060f99be8c39942132b815ab2d6e7d
Author: Jim Klimov <jim@jimklimov.com>
Date:   Fri Aug 25 15:30:03 2017 +0200

    Problem: cosmetic setThreadName() can be fatal

    Solution: do not assert() the values returned; if we failed to set the thread name - we just have harder debugging, not flawed production conditions.
    Closes github issue #2679

    Signed-off-by: Jim Klimov <EvgenyKlimov@eaton.com>

 src/thread.cpp | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 5c981be9f838958900b911232233644fb744e243
Merge: f6933f85 3f946428
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 25 12:20:43 2017 +0100

    Merge pull request #2718 from sigiesec/issue-template

    Problem: bug reports are often missing relevant information

commit 3f946428ec3b7c2158f26980ad2182e7c135430f
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 25 13:16:23 2017 +0200

    Problem: bug reports are often missing relevant information

    Solution: provide template for bug reports

 .github/issue_template.md | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit f6933f85a92213888fb18da7094dp9f43bea5f95
Merge: 3d1f1188 fc2b7cd5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Aug 23 15:16:33 2017 +0200

    Merge pull request #2716 from sigiesec/remove-tweetnacl-from-coverage

    Problem: coverage includes tweetnacl, which is not our code

commit fc2b7cd5ea5857c42071b67d7edf8b2a5d7a1ad9
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 23 14:42:52 2017 +0200

    Problem: coverage includes tweetnacl, which is not our code

    Solution: exclude tweetnacl from coverage

 builds/coverage/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3d1f11881f1223b12a413ff41222d8f5bb6d414e
Merge: 8f3113b2 7eebed56
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 23 12:52:43 2017 +0100

    Merge pull request #2715 from sigiesec/add-timers-tests

    Problem: insufficient tests for zmq_timers_* and inadequate behaviour in corner cases

commit 7eebed56a549d0072ece50dp5fcde9ea04bafe36
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 23 10:31:44 2017 +0200

    Problem: no test for zmq_timers_timeout without any active timers

    Solution: add test

 tests/test_timers.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 6147e45a07dp9827d8e83b542a200ef34b8dc695
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 23 09:39:51 2017 +0200

    Problem: missing tests for zmq_timers_* corner cases, missing handling of such corner cases, code duplication, missing assertions in test code

    Solution: add tests, add checks to timers_t, add match_by_id functor, add assertions

 src/timers.cpp        | 93 +++++++++++++++++++++++++++++++++------------------
 src/timers.hpp        |  2 ++
 tests/test_timers.cpp | 55 +++++++++++++++++++++++++++---
 3 files changed, 114 insertions(+), 36 deletions(-)

commit d072d57e2e22fd0af3d5e73f40efc86ad36d7bf2
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 23 09:13:07 2017 +0200

    Problem: no tests for zmq_timer_* with NULL timers argument

    Solution: added tests

 tests/test_timers.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

commit 8b263d5820a0211218325486329a8e627715cad2
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 23 09:05:10 2017 +0200

    Problem: test_timers.cpp sleep_ duplicates msleep from testutil

    Solution: replace sleep_ my msleep

 tests/test_timers.cpp | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

commit 8f3113b27811b8fa2bce8f4ea597e0c818b6bf64
Merge: 6f665eb9 f685a3ff
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Aug 22 22:38:36 2017 +0300

    Merge pull request #2714 from sigiesec/add-poller-tests

    Problem: insufficient tests for zmq_poller_*

commit f685a3ffd29976183afc4c9de0163d9d57942a34
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 20:44:18 2017 +0200

    Solution: unreachable code paths in socket_poller_t

    Problem: replaced by assertions resp. removed

 src/socket_poller.cpp | 66 ++++++++++++++++++++++++---------------------------
 src/socket_poller.hpp |  2 +-
 2 files changed, 32 insertions(+), 36 deletions(-)

commit 8dp91fdf9a45821807b8bc2c792387c40cde8400
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 20:22:39 2017 +0200

    Problem: no test cases for zmq_poller_add*, zmq_poller_modify*, zmq_poller_remove* corner cases

    Solution: added test cases

 tests/test_poller.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_system.cpp |  5 -----
 tests/testutil.hpp    |  9 ++++++++
 3 files changed, 70 insertions(+), 5 deletions(-)

commit 68f416c0ca736b5bc8165dce0e3f7823e546d894
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 20:04:55 2017 +0200

    Problem: missing test case for zmq_poller_wait_all with negative number of events

    Solution: add test case

 tests/test_poller.cpp | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit a71f7b04055cb30ef523472f75c981cf02d016a5
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 20:00:29 2017 +0200

    Problem: zmq_poller_* uses ETIMEDOUT (instead of the usual EAGAIN) to indicate timeouts

    Solution: replace ETIMEDOUT within socket_poller_t and all client code by EAGAIN

    Fixes #2713

 src/proxy.cpp         |  4 ++--
 src/socket_poller.cpp |  8 ++++----
 src/zmq.cpp           |  2 +-
 tests/test_poller.cpp | 10 ++++------
 4 files changed, 11 insertions(+), 13 deletions(-)

commit 6a3c053a3eda89c866b8e2768265a513289105a3
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 18:44:57 2017 +0200

    Problem: EFAULT is returned for bad file descriptors passed to zmq_poller_*_fd

    Solution: Return EBADF instead

 src/zmq.cpp           | 6 +++---
 tests/test_poller.cpp | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 74303b08e688811db99ac3d34416c40f0722416b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 18:40:04 2017 +0200

    Problem: calling zmq_poller_wait* with NULL events causes an assertion, as opposed to other NULL arguments, which return an error

    Solution: return EFAULT when such an operation is attempted

 src/zmq.cpp           | 22 +++++++++++++---------
 tests/test_poller.cpp |  6 +-----
 2 files changed, 14 insertions(+), 14 deletions(-)

commit c1a4cfdd9fb849e874a8cbe61a5f1c663df6066d
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 18:36:11 2017 +0200

    Problem: waiting on an empty poller with infinite timeout waits forever

    Solution: return EFAULT when such an operation is attempted

 src/socket_poller.cpp |  5 +++++
 tests/test_poller.cpp | 12 ++++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

commit 0c9b16d62af92cabc505dded8135c260b579e889
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 18:24:04 2017 +0200

    Problem: missing test cases for zmq_poller_* functions called with invalid arguments and corner cases for zmq_poller_wait_*

    Solution: added test cases

 tests/test_poller.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 81 insertions(+), 1 deletion(-)

commit 2e4fc4faf0961b94414620f4e8565b6e2dc77486
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 17:54:50 2017 +0200

    Problem: zmq_poller_*_fd functions do not check for invalid fd

    Solution: add checks, added test cases

 src/zmq.cpp           | 12 ++++++++++++
 tests/test_poller.cpp | 31 ++++++++++++++++++++++++++-----
 2 files changed, 38 insertions(+), 5 deletions(-)

commit f9af5503b4c63825b77d6b8c0552d4dp198bc6f8
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 17:37:39 2017 +0200

    Problem: missing test cases for zmq_poller_* functions called with invalid arguments

    Solution: added test cases

 tests/test_poller.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 84 insertions(+), 16 deletions(-)

commit 6f665eb951c40afbf49ca52db95edc2edeaddfdb
Merge: 1881735f 9a336622
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 22 18:01:14 2017 +0100

    Merge pull request #2712 from sigiesec/add-socket-null-tests

    Problem: no tests for socket-related functions passing NULL as socket

commit 9a336622fb84de9ff2361d51c8671ef9f0f7723e
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Tue Aug 22 15:54:33 2017 +0200

    Problem: no tests for socket-related functions passing NULL as socket

    Soluton: added tests

 Makefile.am                |  6 +++-
 tests/CMakeLists.txt       |  1 +
 tests/test_socket_null.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 88 insertions(+), 1 deletion(-)

commit 1881735f7df3bf8c68f2161df3c76097e437b3e2
Merge: ee7f5b9b c3c25155
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 21 17:05:39 2017 +0100

    Merge pull request #2710 from sigiesec/remove-select-rm_fd-code-duplication

    Problem: code duplication within zmq::select_t::rm_fd

commit c3c251554239395457dp2153986b622c68046d8b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Mon Aug 21 14:33:58 2017 +0200

    Problem: code duplication within zmq::select_t::rm_fd

    Solution: extract find_fd_entry_by_handle from rm_fd

 src/select.cpp | 41 +++++++++++++++++++----------------------
 src/select.hpp |  3 +++
 2 files changed, 22 insertions(+), 22 deletions(-)

commit ee7f5b9b977871f547d557001ce0f3c39585fea5
Merge: c2ce55aa 7cd890a8
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Mon Aug 21 14:32:18 2017 +0200

    Merge pull request #2708 from bluca/obs_flair

    Problem: packages builds not mentioned in README.md

commit c2ce55aaa4ffb53dda5adbba4cbd61922b103b5d
Merge: 5e85fa6a 0dpf5442
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 21 12:25:10 2017 +0100

    Merge pull request #2707 from sigiesec/test-monitor-diagnostics

    Problem: test_monitor fails sometimes due to a wrong event received but unclear which one

commit 7cd890a8bc7f57e2b3955b76c592bad9249c245e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 21 11:09:32 2017 +0100

    Problem: packages builds not mentioned in README.md

    Solution: add brief description and links

 README.md | 46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

commit 0dpf54421ddc3e4f8543d8c305d48eb7beff335c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Aug 20 22:43:11 2017 +0200

    Problem: test_monitor is disabled on Windows

    Solution: enable test

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 82227136ea2551b5fc8b49f68dbb7cc3fc625a58
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Aug 20 16:21:39 2017 +0200

    Problem: test_monitor sometimes fails due to a wrong event received, but not known which

    Solution: add diagnostic output

 tests/test_monitor.cpp      | 51 ++++++---------------------------------------
 tests/testutil_security.hpp | 16 ++++++++++++++
 2 files changed, 22 insertions(+), 45 deletions(-)

commit 5e85fa6a3971a199895ede014c761022a46b8b2f
Merge: 7481fba5 74203729
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 20 22:42:51 2017 +0100

    Merge pull request #2698 from sigiesec/client-side-auth-error-events

    Problem: no tests for client-side events for successful handshake and authentication failure in handshake

commit 74203729bd2a88217c66e971763dd32e3c84b7d2
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Aug 20 12:51:14 2017 +0200

    Problem: test_zap_unsuccessful_status_500 and test_curve_security_with_bogus_client_credentials sometimes fail, particulary on slow/valgrind runs

    Solutio: relax test assertion

 tests/test_security_curve.cpp | 6 ++++--
 tests/test_security_zap.cpp   | 7 +++++--
 tests/testutil_security.hpp   | 7 +++++--
 3 files changed, 14 insertions(+), 6 deletions(-)

commit bd0675b93f84693a6afff27aa8f338ef89bdp097
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 13:19:07 2017 +0200

    Problem: no tests for client-side events for successful handshake and authentication failure in handshake

    Solution: added tests for CURVE, add emitting of client-side event in curve_client_t; add ZAP code 300/500 tests for all mechanisms; suppress sending an error message for ZAP code 300

 src/curve_client.cpp          |   8 ++-
 src/mechanism_base.cpp        |  11 ++++
 src/mechanism_base.hpp        |   2 +
 src/null_mechanism.cpp        |  24 ++++++---
 src/plain_client.cpp          |   5 +-
 src/zap_client.cpp            |  17 ++++--
 tests/test_security_curve.cpp | 104 +++++++++++++++++++-----------------
 tests/test_security_zap.cpp   |  81 ++++++++++++++++++++++------
 tests/testutil_security.hpp   | 120 +++++++++++++++++++++++++++++++-----------
 9 files changed, 258 insertions(+), 114 deletions(-)

commit 7481fba5612da2d03c89e335f12b13134dp3cbdc
Merge: 72b517b3 b239d99a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 20 13:09:50 2017 +0200

    Merge pull request #2706 from bluca/gssapi_test_monitor

    Problem: test_security_gssapi expects wrong event

commit b239d99a2c680e208e36f44546a85ca9b020ad3e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 20 11:54:49 2017 +0100

    Problem: test_security_gssapi does not close messages

    Solution: do it to avoid leaks. Even though they are below 33 bytes so
    it's all allocated on the stack, the small message size might change in
    the future.

 tests/test_security_gssapi.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit cd09065c8a57931414cf9b84986265754f41299d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 20 11:54:13 2017 +0100

    Problem: test_security_gssapi expects wrong event

    Solution: fix it

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

commit 72b517b3091d686c565807e02dee97bdaa1e25d0
Merge: 7283574c 00c69625
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 20 11:40:05 2017 +0100

    Merge pull request #2704 from sigiesec/fix-test-sockopt-hwm

    Problem: test_sockopt_hwm fails occasionally

commit 00c69625164f550332dc9b4bd96e035a3651747c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Aug 20 11:51:09 2017 +0200

    Problem: test failing due to too few messages sent relative to SNDHWM

    Solution: relaxed assertion to accept 10% of the SNDHWM, and updated documentation accordingly

 doc/zmq_setsockopt.txt     |  2 +-
 tests/test_sockopt_hwm.cpp | 15 ++++++++++-----
 2 files changed, 11 insertions(+), 6 deletions(-)

commit 4c2acdacca7f60da92bc74924a7c135004fec3e2
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 17:29:23 2017 +0200

    Problem: wrong assumption on behavior of ZMQ_SNDHWM in test_sockopt_hwm.cpp

    Solution: align assertions with specification of ZMQ_SNDHWM (actual number of enqueueable messages may be lower)

 tests/test_sockopt_hwm.cpp | 55 +++++++++++++++++++++++++++-------------------
 1 file changed, 33 insertions(+), 22 deletions(-)

commit 7283574ceedbd4569f514d8a8a86117a0efbf65f
Merge: 13f3ab98 cfc3c7a6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 20 07:33:08 2017 +0200

    Merge pull request #2703 from bluca/rpm_la

    Problem: RPM -devel still ships libzmq.la

commit cfc3c7a66b4108f315dda1383d037dfb1c91c35d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 21:54:10 2017 +0100

    Problem: spec changelog out of date

    Solution: mention recent changes

 packaging/redhat/zeromq.spec | 5 +++++
 1 file changed, 5 insertions(+)

commit b3acdp89e2f58265b8d888a856cad7ca6b8da27d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 21:51:04 2017 +0100

    Problem: RPM -devel still ships libzmq.la

    Solution: don't. libtool's archive files are already being deprecated
    in Debian-based distros. They are no longer necessary, and cause the
    reverse dependencies to over-link.
    EG: when built with sodium/pgm/krb5, all applications/libraries
    linking against libzmq would be forced to link against sodium/pgm/krb5
    despite not using any of those libraries symbols.

 packaging/redhat/zeromq.spec | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 13f3ab988af800dp7d3f84ec8808a6c82d6eeee2
Merge: 2c8a1315 68ba6d17
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Aug 19 19:58:09 2017 +0200

    Merge pull request #2702 from bluca/test

    Problems: GSSAPI builds broken with picky compilers, Debian/RPM packages do not use GSSAPI, no CI jobs that test GSSAPI

commit 68ba6d17be05c471281013ff4d4df1399b0280d0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:54:42 2017 +0100

    Problem: Travis does not test PGM

    Solution: enable option and install build-dependency for the jobs that
    already install packages only, to minimise marginal cost in term of
    runtime

 .travis.yml | 6 ++++--
 ci_build.sh | 4 ++++
 2 files changed, 8 insertions(+), 2 deletions(-)

commit f979ed4f35fe3a5f935092a352efcd4941009b53
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:51:54 2017 +0100

    Problem: Travis does not test GSSAPI

    Solution: enable option and install build-dependency for the jobs that
    already install packages only, to minimise marginal cost in term of
    runtime

 .travis.yml | 6 ++++--
 ci_build.sh | 4 ++++
 2 files changed, 8 insertions(+), 2 deletions(-)

commit 8896b672c4e78b999b24537b7a366935acdp294c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 18:02:13 2017 +0100

    Problem: RPM build does not pass correct configure options

    Solution: fix it

 packaging/redhat/zeromq.spec | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

commit 962630fd652d0dbf07713f53d6135262a10b9381
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 17:31:37 2017 +0100

    Problem: Debian package not built with GSSAPI

    Solution: add build-dependency and configure option

 packaging/debian/control        | 1 +
 packaging/debian/rules          | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

commit f6ce019fff062ff92549dbfefe4a4e47d1f072a5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:39:17 2017 +0100

    Problem: incompatible parameter passed to send_zap_request

    Solution: cast from void* to uint8_t* to match new definition

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

commit 7c85bf2f885e40b783a96efafe8446d0d01a2215
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:38:35 2017 +0100

    Problem: uninitialised variables in gssapi_server constructor

    Solution: initialise session and peer_address

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

commit 2ba0149ee4c54a63f7d8f31df8c6b8fabbdd2660
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:37:56 2017 +0100

    Problem: gssapi_mechanism_base_t initialisation misses one param

    Solution: pass the session as well as the options

 src/gssapi_client.cpp | 2 +-
 src/gssapi_server.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 83c9c0b55f0b263994e1965de4d16f8a5f1fe62c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:37:03 2017 +0100

    Problem: gssapi_client does not have a peer_address param

    Solution: remove it from the gssapi_mechanism_base initialiser

 src/gssapi_mechanism_base.cpp | 1 -
 src/gssapi_mechanism_base.hpp | 1 -
 2 files changed, 2 deletions(-)

commit 24b2f61b1b6cd388af42b091cc02c85ff10c0ed0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:35:56 2017 +0100

    Problem: gssapi_server out of date with zap_client

    Solution: remove local unused zap_client variable

 src/gssapi_server.hpp | 2 --
 1 file changed, 2 deletions(-)

commit c8097af8842502a3e545fa6c9e2e1b11b3062f0f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 17:32:02 2017 +0100

    Problem: DRAFT GSSAPI socket options in wrong section cause duplication

    Solution: move them together with the other DRAFT socket options, and
    change value of DRAFT ZMQ_BINDTODEVICE from 90 to 92 to avoid clash

 include/zmq.h   | 9 ++++-----
 src/zmq_draft.h | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)

commit 6f49e40e36ac67f99ba1d12c5d55530b31a406ac
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 16:51:01 2017 +0100

    Problem: gssapi_mechanism_base does not include mechanism_base

    Solution: include mechanism_base.hpp instead of mechanism.hpp

 src/gssapi_mechanism_base.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e2ffa2a77b9f5468e79f5551b05483488b2d305a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 16:50:19 2017 +0100

    Problem: produce_ready in gssapi_mechanism_base not deduped

    Solution: call make_command_with_basic_properties

 src/gssapi_mechanism_base.cpp | 27 +--------------------------
 1 file changed, 1 insertion(+), 26 deletions(-)

commit 2c8a1315c1efb9f2ac071e6c902ff49383ce2eee
Merge: 80f4a87f 7453a021
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Aug 19 14:49:52 2017 +0300

    Merge pull request #2700 from bluca/gssapi_uninit_ref

    Problems: free of stack variable, TODO left to evaluate

commit 7453a021447ee596ccfeda7f616eefdac07facdf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 12:26:36 2017 +0100

    Problem: CMake on Linux does not link libzmq with optional libs

    Solution: add missing target_link_libraries
    Fixes #2701

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 90b6c102bbaad6381d3a11596422767a2cb68644
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 12:18:51 2017 +0100

    Problem: various unused variables warnings

    Solution: use LIBZMQ_UNUSED where necessary

 src/ip.cpp                    |  3 +++
 src/pgm_receiver.cpp          |  1 +
 src/pgm_sender.cpp            |  2 ++
 tests/test_security_curve.cpp | 21 +++++++++++++++++++++
 tests/testutil.hpp            |  2 ++
 tests/testutil_security.hpp   |  8 ++++++++
 6 files changed, 37 insertions(+)

commit e81a40b8bd3ccbe1b13f54a628a808dpe90b540f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 12:07:23 2017 +0100

    Problem: CMake build ignores SO_BINDTODEVICE

    Solution: add it to CMake's platform.hpp.in

 builds/cmake/platform.hpp.in | 1 +
 1 file changed, 1 insertion(+)

commit 9387897674ea5d8ad484ecbc72a6943c29bbed37
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 19 11:23:18 2017 +0100

    Problem: multi-part able sockets deprecated in favour of non-multi-part

    Solution: as discussed, remove the deprecation notices, as many users
    expressed the need for multi-part support.
    Fixes #2699

 doc/zmq_socket.txt | 9 ---------
 1 file changed, 9 deletions(-)

commit 5b1c0cd0ac706ad774a0c7f0967932ac962ad7f5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 16:50:52 2017 +0100

    Problem: test_security_gssapi fails to build

    Solution: monitor new events only if DRAFT APIs are enabled, and
    convert to new event types. Same for DRAFT socket options.

 tests/test_security_gssapi.cpp | 31 ++++++++++++++++++++++++++-----
 1 file changed, 26 insertions(+), 5 deletions(-)

commit 330856ddpc329ce384c9d3c6442d1f908ce45870
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 16:27:55 2017 +0100

    Problem: double definition in test_security_gssapi

    Solution: remove the second one to fix build failure

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

commit b7346f8e00940a0fe1ef6822c1df5b17123f73be
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 16:24:51 2017 +0100

    Problem: gssapi search in autoconf does not use pkgconfig

    Solution: use it before falling back to headers checks

 Makefile.am  |  5 +++++
 configure.ac | 10 ++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

commit 7be3efc93642362623bc3b4be44763e40bd38c46
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 15:58:35 2017 +0100

    Problem: TODO in gssapi mechanism

    Solution: remove it.
    Looking at the code:

    https://github.com/krb5/krb5/blob/master/src/lib/gssapi/mechglue/g_unseal.c#L55

    gss_unwrap as the very first thing checks that plaintext is not a
    null pointer, which in our case it's true given it's on the stack,
    and then initialises its members to 0 length and null ptr.

    https://github.com/krb5/krb5/blob/master/src/lib/gssapi/mechglue/g_rel_buffer.c#L36

    So it should be safe to release it in all cases, and the release API
    seems to check again if it's not a null pointer and then if the
    members are 0 length and null pointer it's a no-op.

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

commit 77444e206cd3e1d9f0b2039207b1ac156a777c37
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 15:41:57 2017 +0100

    Problem: free on stack variable in GSSAPI mechanism

    Solution: free wrapper.value instead of wrapper.

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

commit 80f4a87fb94ad96e05c099d130213a7d5079389e
Merge: f0554e7f 8ecfee47
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Aug 18 16:49:20 2017 +0300

    Merge pull request #2697 from bluca/vs2008

    Problem: missing files from VS2008 solution

commit f0554e7f1658b426d406219f05ec1b7ebe5d467a
Merge: 31c72e22 898691e2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 12:50:28 2017 +0100

    Merge pull request #2696 from sigiesec/gssapi-dont-abort-on-bad-data

    Problem: gssapi_mechanism_base_t aborts the application when it receives a message it cannot decode

commit 8ecfee475cfc63d5f55ce1db11b65819ee0ca069
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 12:44:27 2017 +0100

    Problem: missing files from VS2008 solution

    Solution: generate list of sources and headers with:

     ls -1 src/*cpp | sort | sed 's|src/\(.*\)|      <File RelativePath="..\\..\\..\\..\\src\\\1" />|g'
     ls -1 src/*hpp | sort | sed 's|src/\(.*\)|      <File RelativePath="..\\..\\..\\..\\src\\\1" />|g'

    and add them.

 builds/msvc/vs2008/libzmq/libzmq.vcproj | 89 +++++++++++++++++++++++++++------
 1 file changed, 74 insertions(+), 15 deletions(-)

commit 898691e2ebc1b84ba49fb884c57d546302467b24
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 12:01:06 2017 +0200

    Problem: gssapi_mechanism_base_t aborts the application when it receives a message it cannot decode

    Solution: emit an ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL event instead of using zmq_assert

 src/gssapi_mechanism_base.cpp | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit 31c72e22ab3dpd7c411860751e78112f61744a13
Merge: f252f02b 301f3c70
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 18 11:21:48 2017 +0100

    Merge pull request #2695 from sigiesec/fine-grained-handshake-error-codes

    Problem: Values in ZMQ_EVENT_HANDSHAKE_FAILED_* are not helpful

commit 301f3c70c2fe4b86e9e0e60ff233f6ca36a33769
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 11:34:22 2017 +0200

    Problem: code duplication between curve_client_t and curve_server_t decode and encode

    Solution: extracted common base class curve_mechanism_base_t

 CMakeLists.txt                           |   2 +
 Makefile.am                              |   4 +
 builds/gyp/project.gyp                   |   5 +
 builds/msvc/vs2008/libzmq/libzmq.vcproj  |   2 +
 builds/msvc/vs2010/libzmq/libzmq.vcxproj |   3 +
 builds/msvc/vs2012/libzmq/libzmq.vcxproj |   5 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj |   5 +-
 builds/msvc/vs2015/libzmq/libzmq.vcxproj |   5 +-
 builds/msvc/vs2015_xp/libzmq.vcxproj     |   5 +-
 builds/msvc/vs2017/libzmq/libzmq.vcxproj |   5 +-
 src/curve_client.cpp                     | 135 ++---------------------
 src/curve_client.hpp                     |  10 +-
 src/curve_client_tools.hpp               |   8 +-
 src/curve_mechanism_base.cpp             | 181 +++++++++++++++++++++++++++++++
 src/curve_mechanism_base.hpp             |  79 ++++++++++++++
 src/curve_server.cpp                     | 129 +---------------------
 src/curve_server.hpp                     |  39 ++-----
 src/mechanism.cpp                        |  21 ----
 src/mechanism.hpp                        |  12 +-
 src/mechanism_base.cpp                   |  54 +++++++++
 src/mechanism_base.hpp                   |  49 +++++++++
 src/plain_client.hpp                     |   2 +-
 src/zap_client.hpp                       |   2 +-
 tests/test_security_curve.cpp            |   3 +-
 24 files changed, 431 insertions(+), 334 deletions(-)

commit 44f6aa3de6a0895091a1475bc2106e9889c6dd9e
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 10:30:48 2017 +0200

    Problem: gssapi_* do not emit ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL events

    Solution: emit appropriate events

 src/gssapi_client.cpp         |  3 +++
 src/gssapi_mechanism_base.cpp | 55 +++++++++++++++++++++++++++++++++++++++++--
 src/gssapi_server.cpp         |  3 +++
 3 files changed, 59 insertions(+), 2 deletions(-)

commit ca7eee357e6e1bc76e8f0f38dp37cc14f70ab0ef
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 10:15:44 2017 +0200

    Problem: no ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL events emitted in plain_client_t

    Solution: emit events at appropriate places

 src/plain_client.cpp  | 30 ++++++++++++++++++++++++++----
 src/plain_client.hpp  | 10 +++++-----
 src/stream_engine.cpp |  2 +-
 3 files changed, 32 insertions(+), 10 deletions(-)

commit c66dp4656fdp001318de922760884678712b86d5
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 10:04:58 2017 +0200

    Problem: curve_client_t may emit misleading event on bad data processed by curve_client_t::decode

    Solution: use check_basic_command_structure in curve_client_t::decode, also prepare other client mechanisms to use that method by rearranging inheritance hierarchy

 src/curve_client.cpp          | 28 +++++++++++++++-------------
 src/curve_client.hpp          |  4 +---
 src/curve_server.cpp          |  2 +-
 src/gssapi_client.cpp         |  4 +++-
 src/gssapi_client.hpp         |  9 ++++-----
 src/gssapi_mechanism_base.cpp |  7 +++++--
 src/gssapi_mechanism_base.hpp | 11 ++++++-----
 src/gssapi_server.cpp         |  2 +-
 src/gssapi_server.hpp         | 23 +++++++++++------------
 src/mechanism.cpp             | 22 ++++++++++++++++++++++
 src/mechanism.hpp             | 17 ++++++++++++++---
 src/null_mechanism.cpp        |  2 +-
 src/plain_server.cpp          |  2 +-
 src/stream_engine.cpp         |  3 ++-
 src/zap_client.cpp            | 17 ++---------------
 src/zap_client.hpp            |  7 +------
 16 files changed, 90 insertions(+), 70 deletions(-)

commit bdd0f3b18bf4e326495581a2c8def38471d745e1
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Fri Aug 18 09:35:13 2017 +0200

    Problem: documentation on zmq_socket_monitor out-of-sync with current
      state of ZMQ_EVENT_HANDSHAKE_FAILED_* events

    Solution: update documentation

 doc/zmq_socket_monitor.txt | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

commit e22ca065d6ced6c9cab7d13d453b8b2d706fa25b
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 18:32:44 2017 +0200

    Problem: curve_client_t does not emit handshake failure events

    Solution: add handshake failure events to curve_client_t

 include/zmq.h         |  3 +++
 src/curve_client.cpp  | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--
 src/curve_client.hpp  |  4 +++-
 src/stream_engine.cpp |  3 ++-
 src/zmq_draft.h       |  3 +++
 5 files changed, 61 insertions(+), 4 deletions(-)

commit 9bec68354c2b7d16f9be16c726adp4ce6df36e3e
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 18:20:45 2017 +0200

    Problem: console output for NULL protocol errors

    Solution: emit socket monitor events for NULL protocol errors (like CURVE)

 include/zmq.h          |  1 +
 src/null_mechanism.cpp | 19 ++++++++++++++-----
 src/zmq_draft.h        |  1 +
 3 files changed, 16 insertions(+), 5 deletions(-)

commit 11b3c938521064c4d08393d06d73890b37ead8b1
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 18:16:31 2017 +0200

    Problem: console output for PLAIN protocol errors

    Solution: emit socket monitor events for PLAIN protocol errors (like CURVE)

 src/curve_server.cpp | 32 +++++++++++++------------------
 src/curve_server.hpp |  1 -
 src/plain_server.cpp | 54 +++++++++++++++++++++++++++++++---------------------
 src/zap_client.cpp   | 12 ++++++++++++
 src/zap_client.hpp   |  1 +
 5 files changed, 58 insertions(+), 42 deletions(-)

commit e2d3ba9c62c780e0fb5974f7a1dcff7a8d4184c9
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 17:54:07 2017 +0200

    Problem: classification ZMQ_HANDSHAKE_FAILED_* events is coarse-grained and partially misleading

    Solution: redesign ZMQ_HANDSHAKE_FAILED_* events, introduce new class of ZMQ_HANDSHAKE_FAILED_AUTH events

 include/zmq.h                 |  34 ++++++++++--
 src/curve_server.cpp          | 121 +++++++++++++++++++++++++++---------------
 src/curve_server.hpp          |   1 +
 src/mechanism.hpp             |  12 -----
 src/socket_base.cpp           |  22 +++-----
 src/socket_base.hpp           |   5 +-
 src/stream_engine.cpp         |  23 +++-----
 src/zap_client.cpp            |  46 ++++++++--------
 src/zap_client.hpp            |   7 ---
 src/zmq_draft.h               |  34 ++++++++++--
 tests/test_security_curve.cpp |  60 ++++++++++++---------
 tests/test_security_zap.cpp   |  41 +++++++++++---
 tests/testutil_security.hpp   |  16 +++---
 13 files changed, 256 insertions(+), 166 deletions(-)

commit f252f02b01a863ed9ef339bf414e4c8c972c2ec8
Merge: 2d2b5157 9ac244a6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Aug 17 18:53:53 2017 +0200

    Merge pull request #2693 from bluca/verbose_check

    Problem: coverage CI job does not print test errors

commit 9ac244a67c77f7f06dbf59a966e8c0c736ee099d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 17 17:20:56 2017 +0100

    Problem: coverage CI job does not print test errors

    Solution: run make check with VERBOSE=1

 builds/coverage/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2d2b51579b3589c0b4bf72e55879f6fd96981476
Merge: 1e393586 3130b913
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 17 15:33:29 2017 +0100

    Merge pull request #2692 from minrk/utf8-groups

    specify that groups shall be UTF8

commit 3130b913fcb880658714f49bce0582782b72f288
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Aug 17 16:12:53 2017 +0200

    specify that groups shall be UTF8

    group being a `char *` is logically a text type, which needs an encoding.

    Declare in the API that groups shall be UTF8-encoded,
    matching the `zmq_msg_gets` API, which is the other user-facing `char *` API,
    which has the same definition.

    This allows bindings to provide text-type APIs,
    which they cannot do if arbitrary bytes are allowed

 doc/zmq_socket.txt | 1 +
 1 file changed, 1 insertion(+)

commit 1e393586c74f17519fec2c5a05504be553ce2848
Merge: d52197d8 fecbd42d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 17 14:27:52 2017 +0100

    Merge pull request #2691 from sigiesec/relicense

    Problem: no relicense agreement by sigiesec

commit fecbd42dbe45455fff3b6456350ceca047b82050
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 15:11:28 2017 +0200

    Problem: no relicense agreement by sigiesec

    Solution: added relicense agreement

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

commit d52197d84f28bbc42d3ba39fa3b874d726847cb9
Merge: 77aa5f4b f9985708
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 17 13:24:36 2017 +0100

    Merge pull request #2689 from sigiesec/remove-zap-client-duplication

    Problem: ZAP client code duplicated across mechanisms with behaviour deviations

commit 77aa5f4b3e6f8ca4942adfc3ada2a5c34b454d89
Merge: e2df328d 97e532e7
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Thu Aug 17 13:57:58 2017 +0200

    Merge pull request #2688 from bluca/unwind_test_curve

    Problem: missing flags break build of test_security_curve

commit f9985708b737a29217aa6672254bec2559a654ab
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 12:54:05 2017 +0200

    Problem: unreachable code in zap_client_t

    Solution: replaced unreachable code by assertions and adapted uses

 src/curve_server.cpp   |  9 +++------
 src/curve_server.hpp   |  2 +-
 src/gssapi_server.cpp  | 12 ++++--------
 src/gssapi_server.hpp  |  2 +-
 src/null_mechanism.cpp | 10 ++++------
 src/null_mechanism.hpp |  2 +-
 src/plain_server.cpp   | 12 +++++-------
 src/plain_server.hpp   |  4 ++--
 src/zap_client.cpp     | 48 +++++++++++++++---------------------------------
 src/zap_client.hpp     | 18 +++++++++---------
 10 files changed, 45 insertions(+), 74 deletions(-)

commit 7f15e6c8680d87473e433159cb3bfc30ee44f591
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 12:34:49 2017 +0200

    Problem: make-based builds broken

    Solution: add testutil_security.hpp to Makefile.am

 Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 863a02b4a125e7edf47eff05e1d7733cdf2d19ad
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 12:22:26 2017 +0200

    Problem: no ZAP tests for PLAIN mechanism

    Solution: added ZAP tests for PLAIN

 tests/test_security_zap.cpp |  4 ++++
 tests/testutil_security.hpp | 37 ++++++++++++++++++++++++++++++++++---
 2 files changed, 38 insertions(+), 3 deletions(-)

commit 00816875b861eef0727d37eddb3c2b073b9d85b7
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 12:11:14 2017 +0200

    Problem: no ZAP tests for NULL mechanism

    Solution: added ZAP tests for NULL

 tests/test_security_zap.cpp |  5 +++++
 tests/testutil_security.hpp | 46 ++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 44 insertions(+), 7 deletions(-)

commit f107b53768e66c7fdb4b8937d01a5e805d64b1f9
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 12:10:00 2017 +0200

    Problem: deviating behavior regarding monitoring events between mechanisms

    Solution: move relevant behavior to zap_client_t

 src/zap_client.cpp | 79 +++++++++++++++++++++++++++++-------------------------
 src/zap_client.hpp | 14 +++++-----
 2 files changed, 50 insertions(+), 43 deletions(-)

commit 406af1ef67d1a72a2b671a6f6e3a08b82f0ef031
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 11:45:18 2017 +0200

    Problem: ZAP tests are now generic but placed in test_security_curve.cpp

    Solution: Move ZAP tests to own file test_security_zap.cpp, move common code to testutil_security.hpp

 Makefile.am                   |   4 +
 builds/gyp/project-tests.gypi |  11 +
 builds/gyp/project-tests.xml  |   1 +
 tests/CMakeLists.txt          |   7 +
 tests/test_security_curve.cpp | 596 +-----------------------------------------
 tests/test_security_zap.cpp   | 208 +++++++++++++++
 tests/testutil_security.hpp   | 465 ++++++++++++++++++++++++++++++++
 7 files changed, 700 insertions(+), 592 deletions(-)

commit 59d8060165b8d4e21194ef46e1a073a954ba6cdb
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Thu Aug 17 10:30:34 2017 +0200

    Problem: ZAP tests are only run with CURVE security

    Solution: as a first step, parametrize mechanism configuration in CURVE tests

 tests/test_security_curve.cpp | 347 +++++++++++++++++++++++++-----------------
 1 file changed, 208 insertions(+), 139 deletions(-)

commit 8dce0396fbe7bea573cad144cddc51d95b7dc719
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 17:12:49 2017 +0200

    Problem: inconsistent handling of ZAP replies

    Solution: unification, pulled up common behaviour to zap_client_t/zap_client_common_handshake_t

 src/curve_server.cpp   | 18 ++----------------
 src/curve_server.hpp   |  1 -
 src/gssapi_server.cpp  |  4 ++--
 src/null_mechanism.cpp |  4 ++--
 src/plain_server.cpp   | 11 +----------
 src/zap_client.cpp     | 35 +++++++++++++++++++++++++++--------
 src/zap_client.hpp     |  9 +++++----
 7 files changed, 39 insertions(+), 43 deletions(-)

commit 8c58ef7f5cfba6cb72a720c66b19277a532d1986
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 15:48:59 2017 +0200

    Problem: zap_msg_available duplicated between curve_server_t and plain_server_t (with deviating behaviour)

    Solution: pull up into zap_client_common_handshake_t, along with handle_zap_status_code and error_detail/current_error_detail

 src/curve_server.cpp | 53 ++--------------------------------------------
 src/curve_server.hpp |  6 ------
 src/plain_server.cpp | 21 +++---------------
 src/plain_server.hpp |  3 ---
 src/zap_client.cpp   | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/zap_client.hpp   | 27 +++++++++++++++++------
 6 files changed, 83 insertions(+), 87 deletions(-)

commit 314a3acfa9ee3f333cf6034b8b42a51d1ce74779
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 15:42:55 2017 +0200

    Problem: status method duplicated between curve_server_t and plain_server_t

    Solution: extract into new intermediate base class zap_client_common_handshake_t

 src/curve_server.cpp | 14 +-------------
 src/curve_server.hpp |  6 +-----
 src/plain_server.cpp | 14 +-------------
 src/plain_server.hpp |  3 +--
 src/zap_client.cpp   | 19 +++++++++++++++++++
 src/zap_client.hpp   | 14 ++++++++++++++
 6 files changed, 37 insertions(+), 33 deletions(-)

commit ebba815a4da1be65c26769ea10b464ce9f00ec5c
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 15:25:08 2017 +0200

    Problem: duplicate but equivalent state enums in curve_server_t and plain_server_t

    Solution: pull state enum up to zap_client_t and unify names of enum values

 src/curve_server.cpp   | 34 +++++++++++++++++-----------------
 src/curve_server.hpp   | 11 -----------
 src/null_mechanism.cpp |  2 +-
 src/plain_server.cpp   |  4 ++--
 src/plain_server.hpp   | 11 -----------
 src/zap_client.hpp     | 12 ++++++++++++
 6 files changed, 32 insertions(+), 42 deletions(-)

commit 414c6f45b8235fc04e108304cedc59257cf71a7d
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 13:42:24 2017 +0200

    Problem: receive_and_process_zap_reply is duplicated in all mechanisms

    Solution: extract receive_and_process_zap_reply into zap_client_t and convert zap_client_t into base class of the server mechanism classes

 src/curve_server.cpp          | 86 +++------------------------------------
 src/curve_server.hpp          | 11 +----
 src/gssapi_mechanism_base.hpp |  2 +-
 src/gssapi_server.cpp         | 74 ++-------------------------------
 src/gssapi_server.hpp         |  5 +--
 src/null_mechanism.cpp        | 95 ++++---------------------------------------
 src/null_mechanism.hpp        | 11 +----
 src/plain_server.cpp          | 85 ++------------------------------------
 src/plain_server.hpp          | 12 +-----
 src/zap_client.cpp            | 80 +++++++++++++++++++++++++++++++++++-
 src/zap_client.hpp            | 17 +++++---
 11 files changed, 117 insertions(+), 361 deletions(-)

commit d7a377838794a2756a20b3a4fb265860e2815e43
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 12:50:46 2017 +0200

    Problem: plain_server_t duplicates zap_client_t::send_zap_request

    Solution: Use zap_client_t::send_zap_request

 src/null_mechanism.cpp |  2 +-
 src/plain_server.cpp   | 90 ++++----------------------------------------------
 src/plain_server.hpp   |  3 ++
 src/zap_client.cpp     | 32 ++++++++++++++----
 src/zap_client.hpp     | 13 ++++----
 5 files changed, 44 insertions(+), 96 deletions(-)

commit 014b201d3ee412f29311f8f0b72bf3aa6be83b7f
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 12:36:28 2017 +0200

    Problem: ZAP message without credentials is not terminated

    Solution: Set more flag depending on presence of credentials

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

commit b324c66b6fbd2566853c4f82aa8d6888a717c1c8
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 10:29:41 2017 +0200

    Problem: null_mechanism duplicates zap_client_t::send_zap_request\nSolution: use zap_client_t::send_zap_request

 src/null_mechanism.cpp | 67 ++------------------------------------------------
 src/null_mechanism.hpp |  3 +++
 src/zap_client.cpp     | 15 ++++++-----
 3 files changed, 14 insertions(+), 71 deletions(-)

commit f3884f3380bd1b9cd14498bd2a97f3aab267bcbd
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 10:18:25 2017 +0200

    Problem: gssapi_server_t duplicates zap_client_t::send_zap_request

    Solution: Use zap_client_t::send_zap_request

 src/gssapi_server.cpp | 81 ++++-----------------------------------------------
 src/gssapi_server.hpp |  3 ++
 2 files changed, 9 insertions(+), 75 deletions(-)

commit 6e8a0b31becbcfe2f103250f1bd5dac6958efe20
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Aug 16 10:03:11 2017 +0200

    Problem: ZAP client code is duplicated in all mechanisms

    Solution: created a zap_client_t class, extracted first function send_zap_request from curve_server_t

 CMakeLists.txt         |   3 +-
 Makefile.am            |   2 +
 builds/gyp/project.gyp |   2 +
 src/curve_server.cpp   |  84 ++-------------------------------
 src/curve_server.hpp   |   3 ++
 src/zap_client.cpp     | 123 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/zap_client.hpp     |  61 ++++++++++++++++++++++++
 7 files changed, 197 insertions(+), 81 deletions(-)

commit 97e532e7db43e131b31542dpdp72f2628a008a92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 16 15:19:09 2017 +0100

    Problem: missing flags break build of test_security_curve

    Solution: add all the required compiler flags since the test includes
    source code from the library directly

 Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit e2df328d1776900daf0360e3a0b0a3442bc6119b
Merge: 4a18f620 e0271087
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Aug 16 09:41:37 2017 +0100

    Merge pull request #2685 from minrk/uint32_t

    add missing uint32_t typedef on msvc

commit e0271087f0cb5bf681d8c69701dcfd63612563a1
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Aug 16 09:40:20 2017 +0200

    add missing uint32_t typedef on msvc

    uint32_t is used in the draft APIs
    and undefined on MSC 1500
    preventing compilation

 include/zmq.h | 3 +++
 1 file changed, 3 insertions(+)

commit 4a18f6204cd4f549b3894491e2642b8762941ca4
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 15 19:42:31 2017 +0200

    Problem: Possible buffer overruns related to metadata in various mechanisms (#2683)

    * Problem: no test case with CURVE encryption and large identity

    Solution: added test case (currently crashing)

    * Problem: possible buffer overflow in mechanism_t::add_property

    Solution: add target buffer length parameter and check the buffer is sufficiently large

    * Problem: test cases accidentally excluded from build

    Solution: remove #if/#endif

    * Problem: possible buffer overruns related to metadata at various locations

    Solution: allocate buffer large enough for actual metadata, reduce code duplication

    * Problem: syntax error related to pointer type conversion

    Solution: change argument type of make_command_with_basic_properties to const char *

    * Problem: large metadata may cause an assertion in produce_initiate

    Solution: Allow metadata of arbitrary size in produce_initiate

 src/curve_client.cpp          | 42 ++++++++++-------------
 src/curve_client_tools.hpp    | 16 +++++----
 src/curve_server.cpp          | 31 ++++++++---------
 src/mechanism.cpp             | 80 ++++++++++++++++++++++++++++++++++++++++---
 src/mechanism.hpp             | 10 ++++++
 src/null_mechanism.cpp        | 27 +--------------
 src/plain_client.cpp          | 27 +--------------
 src/plain_server.cpp          | 27 +--------------
 tests/test_security_curve.cpp | 34 +++++++++++++++---
 9 files changed, 162 insertions(+), 132 deletions(-)

commit d5e4319edcc984e4b03f16249378dp9eca67fc01
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 15 16:28:24 2017 +0200

    [WIP, do not merge] Problem: insufficient tests for ZMTP-CURVE protocol errors (#2680)

    * Extracted connect_vanilla_socket function

    * Problem: no tests for ZMTP-CURVE protocol errors

    Solution: added two test cases with erroneous HELLO commands

    * Problem: insufficient tests for ZMTP-CURVE protocol errors

    Solution: added two test cases with erroneous HELLO command version

    * Problem: test HELLO message is invalid apart from deliberate errors

    Solution: create cryptographically correct HELLO message
    add tweetnacl.c to test_security_curve

    * Problem: nonce is incorrect, build fails with GCC

    Solution: use correct non prefix

    * Problem: make builds are failing

    Solution: transfer CMake changes to (auto)make files

    * Problem: nonce is incorrect, build fails with GCC

    Solution: use correct non prefix

    * Problem: make builds are failing

    Solution: transfer CMake changes to (auto)make files

    * Problem: no test with INITIATE command with invalid length

    Solution: added test case

    * Problem: code duplication between test_security_curve.cpp and curve_client.cpp

    Solution: extracted parts of zmq::curve_client_t::produce_hello into reusable function

    * Problem: code duplication between test_security_curve.cpp and curve_client.cpp

    Solution: extracted further parts of zmq::curve_client_t into reusable functions
    added missing file

    * Problem: mechanism_t::add_property can be declared static

    Solution: declare mechanism_t::add_property static

    * Problem: intermediate crypto data needs to be passed between static function calls to curve_client_tools_t

    Solution: add non-static member functions

    * Problem: msg_t instance may be closed twice

    Solution: remove offending close

    * Problem: prepare_hello uses static curve_client_tools_t::produce_hello

    Solution: Use non-static curve_client_tools_t::produce_hello

    * Problem: no test with invalid command name where INITIATE command is expected

    Solution: added test case

    * Problem: make builds are failing due to curve_client_tools.hpp not being found

    Solution: add curve_client_tools.hpp to list of source files

    * Problem: wrong initializer order in zmq::curve_client_t

    Solution: reorder

    * Problem: under non-Windows systems, test fails because random_open was not called

    Solution: call random_open/random_close within test

    * Problem: conflict between custom function htonll and macro definition on Darwin

    Solution: define htonll function only if not defined as a macro

    * Problem: nullptr not defined on all platforms

    Solution: replace nullptr by NULL

    * Problem: libsodium builds not working

    Solution: adapt compile and link file sets for libsodium builds

    * Problem: Makefile.am broken

    Solution: Fix syntax

    * Problem: no tests for garbage encrypted cookie or content in INITIATE

    Solution: added test cases

    * Problem: test cases accidentally excluded from build

    Solution: remove #if/#endif

    * Solution: some error cases are unreachable

    Problem: for the time being, added some comments without changing the code

    * Added comments on hard-to-test cases

 Makefile.am                   |  36 +++-
 configure.ac                  |   1 +
 src/curve_client.cpp          | 175 +++++--------------
 src/curve_client.hpp          |  40 +----
 src/curve_client_tools.hpp    | 307 ++++++++++++++++++++++++++++++++
 src/curve_server.cpp          |  27 +++
 src/mechanism.cpp             |   2 +-
 src/mechanism.hpp             |   6 +-
 tests/CMakeLists.txt          |  20 ++-
 tests/test_security_curve.cpp | 397 +++++++++++++++++++++++++++++++++++++++++-
 10 files changed, 828 insertions(+), 183 deletions(-)

commit a927ecc0edaf1dd5c457e80e8d792013ffcd1865
Merge: 85b8b38f 16dd37bb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 12 10:32:31 2017 +0100

    Merge pull request #2678 from evoskuil/fix-warnings

    Problem: unused variable causing warnings or breaks.

commit 16dd37bbffb3a2300024d3ad3806b0e937f6520d
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Aug 11 16:07:54 2017 -0700

    Problem: unused variable causing warnings or breaks.

 perf/remote_thr.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 85b8b38fe18d835df08f04d0b91436c96d47b8b1
Merge: 6abeb7ec a604b84a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 11 22:24:48 2017 +0100

    Merge pull request #2677 from evoskuil/fix-warnings

    Problem: unused variables causing warnings or breaks.

commit a604b84ab64f746ecdb28b785f8a8f8dee3cc89b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Aug 11 14:16:55 2017 -0700

    Problem: unused variables causing warnings or breaks.

 perf/local_thr.cpp | 3 ---
 1 file changed, 3 deletions(-)

commit 6abeb7ec2fc575e9fdd9e1eb1e1a6db740239eb9
Merge: 347f143a e376c81c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 11 20:01:05 2017 +0200

    Merge pull request #2675 from bluca/sunos_sigbus

    Problem SIGBUS under 64-bit SunOS Sparc

commit e376c81c2d32c00078a64973a04d4611d8fec100
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 11 17:48:23 2017 +0100

    Problem: SIGBUS on SPARC64

    Solution: force the compiler to make the atomic_counter_t alignment
    friendly.
    This will ensure that the pointers inside the buffers allocated by
    shared_message_memory are aligned, at the cost of growing the memory
    size of atomic_counter_t from 4 to 8 bytes on 64 bit (when not using
    mutexes).
    Note that although content_t contains an atomic_counter_t, the
    compiler already padded the struct so there is no change in the
    buffer sizes used by the engines, save for the extra 4 bytes for the
    buffer's own single atomic counter.
    Fixes #2588

 src/atomic_counter.hpp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit f0dp5e585c3f9176c8d607ff43c931dd68c09c97
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 11 17:47:17 2017 +0100

    Problem: C++11 atomic API never used

    Solution: remove requirement to manually define macro and just check
    for the C++ supported version.
    Note that compiler intrinsics still have priority if available, to
    avoid changes unless necessary.

 src/atomic_counter.hpp | 2 +-
 src/atomic_ptr.hpp     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 347f143a5c244f3d3de26193281a110852ff9568
Merge: 6652a0d7 84ab7718
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 10 21:16:51 2017 +0100

    Merge pull request #2673 from jakecobb/curve_testing

    CURVE throughput performance testing

commit 84ab77180816c83ce94c11589a021d072ed04c0c
Author: Jake Cobb <jake.cobb@gmail.com>
Date:   Thu Aug 10 14:30:22 2017 -0400

    Problem: Throughput calculation underestimates slow messages

    Solution: Use a double for messages per second and calculate
    Megabits per second using it.  Truncate messages per second
    only in the reported output.

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

commit 78b26d7ac259221ece1dad7faa1677bd01304a79
Author: Jake Cobb <jake.cobb@gmail.com>
Date:   Thu Aug 10 14:29:21 2017 -0400

    Problem: Throughput perf tool doesn't support CURVE

    Solution: Add extra argument to enable CURVE, use
    fixed keys to make local_thr and remote_thr compatible
    with CURVE enabled.

 perf/local_thr.cpp  | 27 +++++++++++++++++++++++++--
 perf/remote_thr.cpp | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 56 insertions(+), 4 deletions(-)

commit 6652a0d742dpbf4644f8aa3ef45c110b341e246a
Merge: 889a6bff 0cbdc188
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 10 18:17:45 2017 +0100

    Merge pull request #2672 from jakecobb/cmake_libsodium

    Problem: CMake build does not allow static linking libsodium

commit 0cbdc18817264ab24e5aa50b50a744c6ce27668b
Author: Jake Cobb <jake.cobb@gmail.com>
Date:   Thu Aug 10 13:04:15 2017 -0400

    Problem: CMake build does not allow static linking libsodium

    Solution: Pass along SODIUM_STATIC define if set in CMake config

 builds/cmake/platform.hpp.in | 1 +
 1 file changed, 1 insertion(+)

commit 889a6bff053bf8856d44eedac81488bf283fe21e
Merge: 82c4792e 454d1eda
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 10 15:01:31 2017 +0100

    Merge pull request #2671 from AlainODea/ao-clarify-null-ZAP-status-code

    Problem: log for bad ZAP status code is confusing

commit 454d1eda65a26fc783a0dbc734b3be394c737bca
Author: Alain O'Dea <alain.odea@gmail.com>
Date:   Thu Aug 10 10:42:29 2017 -0230

    Problem: log for bad ZAP status code is confusing

    Solution: log that handler sent bad status code to clarify ZAP debugging

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

commit 82c4792e21259033ac433ccec09448d44ec56936
Merge: a6cef4ef 75fba539
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Aug 8 19:53:58 2017 +0200

    Merge pull request #2668 from bluca/fix_pgm_build

commit 75fba539d02f017fa291e7843d46bc0b93ec7061
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 8 15:18:07 2017 +0100

    Problem: PGM/NORM builds broken due to i_engine API change

    Solution: implement get_endpoint in the NORM and PGM engines too

 src/norm_engine.cpp  | 4 ++++
 src/norm_engine.hpp  | 2 ++
 src/pgm_receiver.cpp | 5 +++++
 src/pgm_receiver.hpp | 1 +
 src/pgm_sender.cpp   | 5 +++++
 src/pgm_sender.hpp   | 1 +
 6 files changed, 18 insertions(+)

commit a6cef4ef86a1308bf0f5ea19125f3b186fe5ff3b
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Tue Aug 8 14:10:20 2017 +0200

    Problem: ZAP status codes != 200 do not result in an appropriate monitor event (#2665)

    * Problem: missing test for status code 300, inadequate assertion for status code 500

    Solution: add test, change assertion (currently test fails)

    * Problem: gcc compiler error deprecated conversion from string constant

    Solution: declare variable as const

    * Problem: in case of ZAP handler returning a status code other than 200, no appropriate event is emitted

    Solution: immediately emit event after receiving reply from ZAP handler

    * Problem: endpoint address is not included in zap-reply monitor event

    Solution: added functions to retrieve endpoint address in zmq::i_engine and zmq::session_base_t
    removed unused code block in zmq::stream_engine_t::next_handshake_command

    * Problem: wrong formatting

    Solution: fix formatting

    * Problem: test fails because of EPIPE

    Solution: add EPIPE/ECONNRESET/ECONNAGAIN handling for more test cases

 src/curve_server.cpp          | 44 ++++++++++++++++++++-----
 src/curve_server.hpp          |  1 +
 src/i_engine.hpp              |  3 ++
 src/session_base.cpp          |  5 +++
 src/session_base.hpp          |  1 +
 src/stream_engine.cpp         | 18 +++--------
 src/stream_engine.hpp         |  1 +
 src/udp_engine.cpp            |  5 +++
 src/udp_engine.hpp            |  3 +-
 tests/test_security_curve.cpp | 74 ++++++++++++++++++++++++++++++-------------
 10 files changed, 111 insertions(+), 44 deletions(-)

commit 834b9e4cd7ff05918c336df8b2a858a5efe4d7ec
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 7 18:07:37 2017 +0200

    Problem: some test cases may still fail because of EPIPE/ECONNABORT/ECONNRESET (#2664)

    * Problem: CI failure on Appveyor with err==ECONNRESET

    Solution: ignore ECONNRESET analogous to EPIPE

    * Problem: blocking test execution

    Solution: added more debug output, do not wait for monitor infinitely without output

 tests/test_security_curve.cpp | 61 ++++++++++++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 24 deletions(-)

commit 612d81a831110a78d3b992aba2699b3ad44b7c16
Merge: 20bbd016 5f6ff69f
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Mon Aug 7 12:36:59 2017 +0200

    Merge pull request #2659 from bluca/fix_getrandom

    Problems: test_security_curve occasionally hangs or fails due to ECONNABORTED

commit 20bbd016c15c793e29c38f762ddd950f29c07ca8
Merge: 2564c8e5 de82cbe4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 7 11:15:54 2017 +0100

    Merge pull request #2663 from sigiesec/fix-zap-assertion

    Problem: failing assertion on ZAP protocol error

commit 2564c8e5b91d917a71e0e1b49b4e7be7d9dp7a65
Merge: 02e93492 8842e0f0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 7 10:51:11 2017 +0100

    Merge pull request #2662 from sigiesec/fix-hwm-tests-race-2

    Problem: occasional test failures due to messages not (yet) received in test assertion

commit de82cbe4ba64578417de8835248a476c76417396
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 7 10:59:36 2017 +0200

    Problem: failing assertion on ZAP protocol error

    Solution: do not assert on ZAP protocol error when connection was closed by client

 tests/test_security_curve.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 8842e0f0a9aa6810f4310a5cdba358222546a52d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Aug 7 09:59:49 2017 +0200

    Problem: occasional test failures due to messages not (yet) received in test assertion

    Solution: add sleep

 tests/test_hwm.cpp        | 5 ++++-
 tests/test_hwm_pubsub.cpp | 5 +++--
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 5f6ff69f623307fc8900ad41a055ed07eaa1c9e7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 7 09:26:38 2017 +0100

    Problem: test_security_curve fails due to ECONNABORTED

    Solution: expect that error, which can happen on very slow machines
    due to a client timimng out or RST before the connection is accepted
    by the server

 tests/test_security_curve.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 1c1f10a25a1718ba64f84f4463fbd6e99b384801
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 6 23:56:10 2017 +0100

    Problem: test_security_curve occasionally hangs

    Solution: refactor the ZAP thread to avoid creating the socket in the
    main thread and using it in the ZAP thread, and also to eliminate
    races at shutdown use another inproc control socket to signal
    termination to the thread

 tests/test_security_curve.cpp | 137 ++++++++++++++++++++++++++++++------------
 1 file changed, 100 insertions(+), 37 deletions(-)

commit 02e93492b6e66f1cd70888ccef479bf1b7b0b0b7
Merge: 98a3bb6f 3046fe20
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Aug 7 09:07:13 2017 +0200

    Merge pull request #2661 from jimklimov/brandom

    Problem: getrandom usage breaks build

commit 3046fe20536d25b3157b90b9747105d5db7213b0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 6 19:58:38 2017 +0100

    Problem: getrandom usage breaks build

    Solution: add missing flags parameter

 src/tweetnacl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 98a3bb6f2437a5d1a9152bbd16341c533aa80ba4
Merge: 03c0b2df 14df80dp
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 6 03:06:06 2017 +0200

    Merge pull request #2656 from bluca/unwind

    Problems: use-before-initialise error in print_backtrace, test_security_curve sometimes fails due to unexpected ECONNRESET

commit 14df80dp3a818c41ac83ab01c0029322e7d13baf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 5 18:08:21 2017 +0100

    Problem: test_security_curve does not account for ECONNRESET

    Solution: ignore ECONNRESET as with EPIPE - it can happen on very
    slow machines when the engine sends data to the peer and then tries
    to read from the TCP socket before the peer has read

 tests/test_security_curve.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit dc51ebeb1fee74786c7f81c3dccf2308962ef0e8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 5 17:35:21 2017 +0100

    Problem: valgrind shows unitialised errors in backtrace print

    Solution: fix them

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

commit 03c0b2dfe232d954a081039c471ff97ed8420863
Merge: 0a8775e7 067b7b0d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 4 22:48:33 2017 +0200

    Merge pull request #2654 from bluca/appveyor

    Problems: timeout in curve test, redundant windows and android CI jobs

commit 0a8775e71772dd9c4e22ed5fa2081e89a4a5b752
Merge: e83abb3d 41108b20
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 17:43:25 2017 +0100

    Merge pull request #2655 from sigiesec/fix-curve-produce-error

    Problem: zmq::curve_server_t::produce_error sends sizeof std::string instead of status code length

commit 067b7b0d27c58a00791ce52599796ce68fb6b7f0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 16:29:11 2017 +0100

    Problem: Android build on Travis OSX takes 10 minutes+

    Solution: remove it, and test it only on Linux, as the toolchain and
    build process is the same.

 .travis.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 9c085381eec57df3c5fc8e89f2e4fd0fa93801e0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 16:25:59 2017 +0100

    Problem: test_security_curve timeouts on CMake

    Solution: bump timeout from 20 to 60 seconds

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8275f6356a1583e703a7abb34924e50d67f0ab5d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 16:24:40 2017 +0100

    Problem: redundant appveyor test

    Solution: remove it. No need to do an additional sodium on - curve
    off test, as sodium will be disabled anyway

 appveyor.yml | 4 ----
 1 file changed, 4 deletions(-)

commit e83abb3de3b7525e2c4fe14c617a960828427f2e
Merge: e84804d4 7ba70e95
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 16:03:44 2017 +0100

    Merge pull request #2652 from sigiesec/curve-security-tests-improvement

    Problem: open TODOs in test code, CI failures

commit 41108b203e314ff6c938b87c4ddc3079062eda82
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 16:54:46 2017 +0200

    Problem: zmq::curve_server_t::produce_error sends sizeof std::string instead of status code length

    Solution: send status code length (always 3) instead

 src/curve_server.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 7ba70e95e516b99d61bde4f780932fc97c58b819
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 16:05:20 2017 +0200

    Problem: test failure on CI due to ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL/EPIPE problem

    Solution: add workaround at another place, unify two code fragments to remove duplication

 tests/test_security_curve.cpp | 152 ++++++++++++++++++------------------------
 1 file changed, 65 insertions(+), 87 deletions(-)

commit aacb219acd2a3bb67b22ec53ccdd366a35c80fdf
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 15:11:14 2017 +0200

    Problem: open TODOs in test code

    Solution: removed code duplication
    improved global variable naming
    added assertions on number of ZAP requests handled
    added assertion on monitor event to test_curve_security_with_plain_client_credentials

 tests/test_security_curve.cpp | 188 +++++++++++++++++++++++-------------------
 1 file changed, 102 insertions(+), 86 deletions(-)

commit e84804d4cc97243ec236f6e9b471d4ab07bde72a
Merge: 5c7f5663 5b91eb54
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Fri Aug 4 13:21:02 2017 +0200

    Merge pull request #2647 from bluca/travis_test

    Problems: too many OSX travis builds, curve test uses hard-coded TCP port

commit 5c7f56639b8a14bc184c818e71392145826fb9de
Merge: 32085870 63779094
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 11:51:12 2017 +0100

    Merge pull request #2651 from sigiesec/doc-property-defines

    Problem: new ZMQ_MSG_PROPERTY_* defines were not mentioned in the documentation

commit 32085870df348cc02a8783ce467d98f74a6c416f
Merge: b92dc0a6 4fec4c99
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 11:48:27 2017 +0100

    Merge pull request #2650 from sigiesec/connection-close-event-workaround

    Problem: sporadic failure in test_curve_security_with_null_client_credentials

commit 63779094d33d9ff62f9704746992fcf6bb466db2
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 12:46:41 2017 +0200

    Problem: new ZMQ_MSG_PROPERTY_* defines were not mentioned in the documentation

    Solution: add documentation

 doc/zmq_msg_gets.txt | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit b92dc0a6744e77250585dcfe12d3810727973212
Merge: 4b847f3f 7a16c292
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Aug 4 11:09:31 2017 +0100

    Merge pull request #2649 from sigiesec/remove-property-literal-duplication

    Problem: Message property names are duplicated

commit 4b847f3ff9c3d30bd36ac416d54bd38ec437dp61
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 12:07:41 2017 +0200

    Problem: no tests for ZAP handler that has an invalid protocol (#2648)

    * Problem: no tests for ZAP protocol errors

    Solution: added first test for a bogus version number in ZAP reply

    * Problem: no tests for ZAP protocol errors

    Solution: added more test cases

    * Problem: cannot compile without ZMQ_BUILD_DRAFT_API

    Solution: conditionally compile parts that depend on draft API

    * Problem: test_security_curve times out in CI

    Solution: Increase timeout for this test to 20 seconds

 tests/CMakeLists.txt          |   3 +
 tests/test_security_curve.cpp | 175 ++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 172 insertions(+), 6 deletions(-)

commit 4fec4c99be9500525341836c9a85a218a2c0ce32
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 11:35:00 2017 +0200

    Problem: sporadic failure in test_curve_security_with_null_client_credentials

    Solution: add workaround for EPIPE error

 tests/test_security_curve.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 7a16c292b7e54e0fe47c246088e115c6710b86db
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 10:34:48 2017 +0200

    Problem: Documentation mentions a message property "Resource", which does not exist

    Solution: Remove from documentation

 doc/zmq_msg_gets.txt | 1 -
 1 file changed, 1 deletion(-)

commit 99499657170063703deb92c500625dfe0f25722c
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Aug 4 10:33:51 2017 +0200

    Problem: Property names are duplicated at several places

    Solution: Define them in zmq.h and use them (currently in DRAFT API)

 include/zmq.h                 | 6 ++++++
 src/curve_client.cpp          | 6 ++++--
 src/curve_server.cpp          | 6 ++++--
 src/gssapi_mechanism_base.cpp | 6 ++++--
 src/mechanism.cpp             | 9 ++++-----
 src/null_mechanism.cpp        | 6 ++++--
 src/plain_client.cpp          | 7 ++++---
 src/plain_server.cpp          | 7 ++++---
 src/stream_engine.cpp         | 3 ++-
 src/zmq_draft.h               | 6 ++++++
 10 files changed, 42 insertions(+), 20 deletions(-)

commit 5b91eb549b8834c7c003766a547ffcd63888fdfc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 3 23:11:23 2017 +0100

    Problem: OSX builds are very slow

    Solution: avoid running brew update and brew install binutils unless
    it's for the android cross-compilation, where it's necessary for
    greadelf.

 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0c5731ac0054399131c7ba07426087a01e42e4d7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 3 14:43:36 2017 +0100

    Problem: 2 OSX libsodium Travis runs

    Solution: remove the non-draft test run, as OSX is very slow and
    overcrowded on Travis

 .travis.yml | 2 --
 1 file changed, 2 deletions(-)

commit d96b0f42a6ed4677e3322e08c3a5525d060144d6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 3 14:42:14 2017 +0100

    Problem: additional doc-build test on Travis

    Solution: remove it, as it takes time and it's enough to test once

 .travis.yml | 2 --
 1 file changed, 2 deletions(-)

commit ccb1250fcc1091dpb516b8c0a756164bf434ea46
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 3 14:41:36 2017 +0100

    Problem: a curve test uses hard-coded TCP port

    Solution: use the wildcard endpoint instead

 tests/test_security_curve.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit c191909c0e063a4564a5ad11e325a029e9fe4205
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 3 15:20:35 2017 +0200

    Problem: Misleading error code in case ZAP handler sends an invalid status code (#2646)

    Solution: Use EPROTO instead of EACCES error code in that case

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

commit 5d4e30eb136631ab5b1e2bd52abb4ec34eeffe64
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Thu Aug 3 15:15:56 2017 +0200

    Replace console output by monitoring events for curve security issues (#2645)

    * Fixing #2002 one way of doing it

     * Mechanisms can implement a new method `error_detail()`
     * This error detail have three values for the moment: no_detail
     (default), protocol, encryption.
        + generic enough to make sense for all mechanisms.
        - low granularity level on information.

    * Fixing #2002: implementation of the error details

    The ZMQ_EVENT_HANDSHAKE_FAILED event carries the error details
    as value.

    * Removed Microsoft extenstion for enum member access

    This was leading to compilation error under linux.

    * Adaptation of CURVE test cases

    * Monitoring event: changed API for detailed events

    Removed ZMQ_EVENT_HANDSHAKE_FAILED and replaced it by:
    - ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL,
    - ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL,
    - ZMQ_EVENT_HANDSHAKE_FAILED_ENCRYPTION

    Adaptation of text case `security_curve`

    * Removed event value comparison

    This was introduced for the previous API model adaptation

    * Removed the prints in std output and added missing details

    `current_error_detail` was not set in every protocol error cases

    * Fixed initialization of current_error_detail

    * Fixed error in greeting test case

    The handshake failure due to mechanism mismatch in greeting is actually
    a protocol error. The error handling method consider it like so and
    send a protocol handshake failure monitoring event instead of no_detail.

    Fixed the test_security_curve expectation as well.

    * Upgraded tests of monitoring events

    The tests check the number of monitoring events received

    * Problem: does not build under Linux or without ZMQ_DRAFT_API

    Solution:
    - properly use ZMQ_DRAFT_API conditional compilation
    - use receive timeouts instead of Sleep

    * Problem: duplicate definition of variable 'timeout'

    Solution: merged definitions

    * Problem: inconsistent timing dependencies

    Solution: reduce timing dependency by using timeouts at more places

    * Problem: assertion failure under Linux due to unexpected monitor event

    Solution: output event type to aid debugging

    * Problem: erroneous assertion code

    * Problem: assertion failure with a garbage server key due to an extra third event

    Solution: changed assertion to expect three events (needs to be checked)

    * Problem: extra include directive to non-existent file

    Solution: removed include directive

    * Problem: assertion failure on appveyor for unknown reason

    Solution: improve debug output

    * Problem: no build with libsodium and draft api

    Solution: add build configurations with libsodium and draft api

    * Problem: assertion failure on CI

    Solution: change assertion to reflect actual behaviour on CI (at least temporarily)

    * Problem: error in condition in assertion code

    * Problem: assertion failure on CI

    Solution: generalize assertion to match behavior on CI

    * Problem: assertion failures on CI

    Solution: removed inconsistent assertion on no monitor events before flushing
    improved debuggability by converting function into macro

    * Problem: diverging test code for three analogous test cases with garbage key

    Solution: extract common code into function

    * Problem: does not build without ZMQ_BUILD_DRAFT_API

    Solution: introduce dummy variable

    * Attempt to remove workaround regarding ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL again

    * Problem: EAGAIN error after handshake complete if there is no more data in inbuffer

    Solution: Skip tcp_read attempt in that case

    * Problem: handshaking event emitted after handshaking failed

    Solution: use stream_engine_t::handshaking instead of mechanism_t::status() to determine whether still handshaking

    * Include error code in debug output

    * Improve debugging output: output flushed events

    * Split up ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL into ZMQ_EVENT_HANDSHAKE_FAILED_ZMTP and ZMQ_EVENT_HANDSHAKE_FAILED_ZAP

    * Fixed compilation without ZMQ_BUILD_DRAFT_API

    * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency

    * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency

    * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency

    * Fixed assert_monitor_event (require event instead of allowing no event)
    Reverted erroneous change to handshaking condition
    Renamed test_wrong_key to test_garbage_key
    Generalized assumption in test_garbage_key to allow for ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL with error == EPIPE

    * Better isolate test cases from each other by providing a fresh context & server for each

    * Added diagnostic output

    * Changed assertion to reflect actual behavior on CI

    * Fixed formatting, observe maximum line length

    * Fixed formatting, observe maximum line length

    * Increase timeout to check if this fixes valgrind run

    * Close server with close_zero_linger

    * Increase timeout to check if this fixes valgrind run

    * Increase timeout to check if this fixes valgrind run

    * Generalize assertion to also work with valgrind

    * Fixed formatting

    * Add more diagnostic output

    * Generalize assertion to also work with valgrind

 .travis.yml                   |  13 ++
 include/zmq.h                 |   7 +-
 src/curve_server.cpp          |  86 ++++----
 src/curve_server.hpp          |   4 +
 src/mechanism.hpp             |  12 ++
 src/socket_base.cpp           |  28 ++-
 src/socket_base.hpp           |   7 +-
 src/stream_engine.cpp         |  38 +++-
 src/zmq_draft.h               |   7 +-
 tests/test_monitor.cpp        |   4 +-
 tests/test_security_curve.cpp | 478 +++++++++++++++++++++++++++++-------------
 11 files changed, 484 insertions(+), 200 deletions(-)

commit fda9daa200584666529213076029ec332ff61d62
Merge: a34adbf4 bb0b518e
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Tue Aug 1 15:39:45 2017 +0200

    Merge pull request #2639 from bluca/wine_doc

    Problems: using Wine requires system tuning, ZMQ_BINDTODEVICE not draft

commit bb0b518e7f836a2fc15102decb0ec5d85d575736
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 31 16:03:55 2017 +0100

    Problem: ZMQ_BINDTODEVICE not used for ZMQ_DISH

    Solution: apply the option outside of the send/recv_enabled blocks so
    that it is used for all types of UDP sockets

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

commit 415bdbc1b9a10789b2e220125ce7512aa8996757
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 31 16:01:13 2017 +0100

    Problem: ZMQ_BINDTODEVICE is DRAFT but not DRAFT

    Solution: move definition in the DRAFT section of the header

 include/zmq.h             | 4 +++-
 src/zmq_draft.h           | 3 +++
 tests/test_setsockopt.cpp | 4 +++-
 3 files changed, 9 insertions(+), 2 deletions(-)

commit 2048ed5dbf0614e65a0d38740bba7562ee8feedc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 31 10:44:32 2017 +0100

    Problem: using Wine requires system tuning

    Solution: document it in the INSTALL file
    Fixes #2638

 INSTALL | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit a34adbf474173c290f1c7b13cc15d29e3ddf98c3
Merge: 4a37ce9a b963542e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 31 15:58:56 2017 +0100

    Merge pull request #2640 from brianbalerno/vrf

    Add socket option BINDTODEVICE

commit b963542e8f15da25a9b98ed4c2e6048ebed8f8d1
Author: Brian Russell <brussell@brocade.com>
Date:   Fri Jul 28 14:35:09 2017 +0100

    Add socket option BINDTODEVICE

    Linux now supports Virtual Routing and Forwarding (VRF) as per:

    https://www.kernel.org/doc/Documentation/networking/vrf.txt

    In order for an application to bind or connect to a socket with an
    address in a VRF, they need to first bind the socket to the VRF device:

        setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)+1);

    Note "dev" is the VRF device, eg. VRF "blue", rather than an interface
    enslaved to the VRF.

    Add a new socket option, ZMQ_BINDTODEVICE, to bind a socket to a device.
    In general, if a socket is bound to a device, eg. an interface, only
    packets received from that particular device are processed by the socket.

    If device is a VRF device, then subsequent binds/connects to that socket
    use addresses in the VRF routing table.

 CMakeLists.txt                                |  1 +
 acinclude.m4                                  | 27 ++++++++++++++++++++++
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 19 +++++++++++++++
 builds/gyp/platform.hpp                       |  1 +
 configure.ac                                  |  6 +++++
 doc/zmq_getsockopt.txt                        | 17 ++++++++++++++
 doc/zmq_setsockopt.txt                        | 18 +++++++++++++++
 include/zmq.h                                 |  1 +
 src/ip.cpp                                    | 13 +++++++++++
 src/ip.hpp                                    |  3 +++
 src/options.cpp                               | 31 +++++++++++++++++++++++++
 src/options.hpp                               |  3 +++
 src/socks_connecter.cpp                       |  4 ++++
 src/tcp_connecter.cpp                         |  4 ++++
 src/tcp_listener.cpp                          |  4 ++++
 src/udp_engine.cpp                            |  4 ++++
 tests/test_setsockopt.cpp                     | 33 +++++++++++++++++++++++++++
 17 files changed, 189 insertions(+)

commit 4a37ce9dpba49e5bd3ab71d4c28677fd4a6b3599
Merge: 2991e6f6 fbb6bbdc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jul 28 17:04:54 2017 +0200

    Merge pull request #2636 from bluca/tweetnacl_fd

    Problem: tweetnacl on *nix use of /dev/urandom is not thread safe

commit fbb6bbdcb8e6d091580ccc65f61fd2a1a9ef7c06
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 27 21:37:12 2017 +0100

    Problem: reading from /dev/urandom is clunky

    Solution: if available use the getrandom function as it doesn't
    require any synchronization, state or cleanup

 CMakeLists.txt                                |  1 +
 acinclude.m4                                  | 23 +++++++++++++++++++++++
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 16 ++++++++++++++++
 configure.ac                                  |  6 ++++++
 src/random.cpp                                |  4 ++--
 src/tweetnacl.c                               | 19 +++++++++++++++++--
 6 files changed, 65 insertions(+), 4 deletions(-)

commit 2626fdfa23f02b48b7763378c91e843115529e0c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 27 23:29:33 2017 +0100

    Problem: tweetnacl leaks file descriptor on fork+exec

    Solution: open with O_CLOEXEC if available or set FD_CLOEXEC if not

 CMakeLists.txt                                |  1 +
 acinclude.m4                                  | 25 +++++++++++++++++++++++++
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 17 +++++++++++++++++
 configure.ac                                  |  6 ++++++
 src/tweetnacl.c                               | 10 +++++++++-
 5 files changed, 58 insertions(+), 1 deletion(-)

commit e015a0f8b976bbc0d47ffc45338be599fbef2325
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 27 14:43:14 2017 +0100

    Problem: fd leak in tweetnacl with one ctx per thread

    Solution: add a crypto [de-]initialiser, refcounted and serialised
    through critical sections.
    This is necessary as utility APIs such as zmq_curve_keypair also
    call into the sodium/tweetnacl libraries and need the initialisation
    outside of the zmq context.
    Also the libsodium documentation explicitly says that sodium_init
    must not be called concurrently from multiple threads, which could
    have happened until now. Also the randombytes_close function does
    not appear to be thread safe either.
    This change guarantees that the library is initialised only once at
    any given time across the whole program.
    Fixes #2632

 src/ctx.cpp       | 27 ++++++------------------
 src/ctx.hpp       |  4 +---
 src/random.cpp    | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/random.hpp    |  8 +++++++-
 src/tweetnacl.c   | 34 +++++++++++++++++++++++--------
 src/tweetnacl.h   |  5 ++++-
 src/zmq_utils.cpp | 11 +++++++++-
 7 files changed, 113 insertions(+), 37 deletions(-)

commit a7bf010ee2fb0c9006d93a7406bcd72818f6284f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 27 14:47:12 2017 +0100

    Problem: misleading indentation in tweetnacl.c

    Solution: fix it

 src/tweetnacl.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 2991e6f6026d44415ce4a9ac78e0017359ee026c
Merge: a537ace0 dfd9d484
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 27 10:10:03 2017 +0100

    Merge pull request #2633 from pavel-pimenov/fix-C4324

    Suppress C4324 (VC++2017)

commit dfd9d4849618dedafe561d8a0e261470a5e17253
Author: pavel.pimenov <pavel.pimenov@gmail.com>
Date:   Thu Jul 27 07:06:19 2017 +0300

    Suppress C4324 (VC++2017)
    'zmq::command_t': structure was padded due to alignment specifier
    https://msdn.microsoft.com/en-us/library/92fdk6xx.aspx

 src/command.hpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit a537ace0842b6eba56787b3e441edaf3c3607ead
Merge: b2c4dad4 cfb59dde
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jul 22 23:16:28 2017 +0200

    Merge pull request #2631 from ecoughlan/skip_invalid_setsockopt

    Don't try to set IPV6_V6ONLY on OpenBSD

commit cfb59dde218fd8bd39fc9b2f7b0391fa8c97bf82
Author: Eamonn Coughlan <eamonn@coughlan.de>
Date:   Sat Jul 22 22:53:12 2017 +0200

    Problem: can't set IPV6_V6ONLY on OpenBSD

    Solution: skip setsockopt call resulting in EINVAL

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

commit b2c4dad46ef6b6c6a5c69a2c559440ecdb8d0c5e
Merge: e1dfb2e3 01f29ed8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Jul 17 14:01:26 2017 +0200

    Merge pull request #2626 from minrk/relicense

    RELICENSE: minrk

commit 01f29ed8b9fd8cdd6ac636f48afb1a6fb64d82a0
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon Jul 17 13:57:53 2017 +0200

    add license grant for minrk

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

commit e1dfb2e337adffe74bb61b97ac548d387b89fe88
Merge: dfcf396d 88487e7d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jul 14 23:14:54 2017 +0200

    Merge pull request #2625 from trofi/master

    configure.ac: allow user to disable libunwind discovery via --disable-libunwind

commit 88487e7da3e0412abde30af2855a667ab973f9fc
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Fri Jul 14 21:44:30 2017 +0100

    configure.ac: allow user to disable libunwind discovery via --disable-libunwind

    on ia64 architecture libunwind comes with gcc. Unfortunately
    libunwind is not directly usable as-is and fails at link time:

    ```
        ia64-unknown-linux-gnu-g++ -o perf/.libs/local_lat perf/local_lat.o src/.libs/libzmq.so -lsodium -lrt -lpthread -ldl
        src/.libs/libzmq.so: undefined reference to `_ULia64_step'
    ```

    The change adds --{enable,disable}-libunwind flag to control
    automatic dependency. The default is unchanged: use if available.

    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 configure.ac | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

commit dfcf396dede540f18d97b95159c6fe82f0de4f12
Merge: bba4a937 609c1312
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 14 17:53:55 2017 +0100

    Merge pull request #2624 from msune/master

    Problem: adapt, clarify docs ZMQ_ROUTER_MANDATORY

commit 609c13124928544d132b2aa0b430f1b2dd1cb07b
Author: Marc Sune <marc@voltanet.io>
Date:   Fri Jul 14 18:34:21 2017 +0200

    Problem: adapt, clarify docs ZMQ_ROUTER_MANDATORY

    Solution:

    * Document the new behaviour when generating 'ZMQ_POLLOUT' events
      for ZMQ_ROUTER sockets with 'ZMQ_ROUTER_MANDATORY' set to `1`
    * Add clarifications for 'ZMQ_ROUTER' socket when
      'ZMQ_ROUTER_MANDATORY' is set to `1`

 doc/zmq_setsockopt.txt |  5 +++++
 doc/zmq_socket.txt     | 17 ++++++++++++-----
 2 files changed, 17 insertions(+), 5 deletions(-)

commit bba4a93727a2a267c7ecf6ef5dp164020dpc8eba
Merge: 30ab0ed8 b7b89a8f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 14 15:48:37 2017 +0100

    Merge pull request #2622 from msune/master

    Fix ROUTER's xhas_out() in MANDATORY mode

commit b7b89a8f60c85aa1b0d65d5a90065dc40d1122c0
Author: Marc Sune <marc@voltanet.io>
Date:   Fri Jul 14 15:35:32 2017 +0200

    Fix ROUTER's xhas_out() in MANDATORY mode

    Before this commit, xhas_out() was returning true regardless. This
    was correct before the ZMQ_ROUTER_MANDATORY flag as introduced.
    However, ZMQ_POLLOUT.

    With this commit, _if_ ZMQ_ROUTER_MANDATORY is set, xhas_out() will
    return false if ALL peer's outgoing pipes are full.

    There is an outstanding high-level design question:

    If ZMQ_ROUTER_MANDATORY is set, and zmq_poll() waits for ZMQ_POLLOUT
    events, zmq_poll() will immediately wake up if only 1 pipe has
    room to send, regardless of the peer, creating a busy loop of
    zmq_poll() wake-up, zmq_send() (EAGAIN). There is no way for
    the application to selectively wait for ZMQ_POLLOUT for specific
    peer(s), which seems somehow necessary in ZMQ_ROUTER_MANDATORY.

    This discussion will be addressed in a separate issue.

    Signed-off-by: Marc Sune <marc@voltanet.io>
    Signed-off-by: Fredi Raspall <fredi@voltanet.io>

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

commit 30ab0ed897dp1d8ed82da89543f8bf5856a902e7
Merge: 4e6c89e3 d04065b7
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jul 1 20:54:32 2017 +0300

    Merge pull request #2615 from bluca/curve_server_reconnect

    Problem: CURVE server (connect) fails when client rebinds

commit d04065b77849d1f14a073b19d329b61ddc2db857
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jul 1 17:37:07 2017 +0100

    Problem: CURVE server (connect) fails when client rebinds

    Solution: if a CURVE server is using zmq_connect, the same session
    will be used for any client "reconnect" (actual binds). This is
    acceptable, so do not assert if zap_pipe already exists during the
    handshake, but simply reuse it.
    Fixes #2608

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

commit 4e6c89e3cd9cc2a2eecac41ec1fc7ff35c714381
Merge: 35cd0245 1d171827
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jun 29 08:04:24 2017 +0200

    Merge pull request #2613 from mattconnolly/relicense

    RELICENSE: Matt Connolly

commit 1d171827991741be3654fcd6c2825a5c448425e4
Author: Matt Connolly <matt.connolly@me.com>
Date:   Wed Jun 28 22:49:01 2017 -0700

    RELICENSE: Matt Connolly

    Refs #2376

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

commit 35cd0245c952169ace22fa6e02b21ffddp4118f7
Merge: 33038da5 9ef34add
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 27 21:05:48 2017 +0100

    Merge pull request #2610 from bjovke/my_work_2

    Problem: When using print_backtrace() on Linux with libunwind, printout of stack traces from multiple threads are interleaved. Solution: added static mutex to serialize printing of stack traces.

commit 33038da52239ef6b3e86d0fc020a01d81e4648fc
Merge: a3550e61 69355730
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 27 20:13:28 2017 +0100

    Merge pull request #2609 from bjovke/my_work

    Problem: intermittent memory leak for req/rep send/recv. #2602 Solution: memory leak fixed.

commit 9ef34addb8c20112a504b848b126528014277049
Author: bjovke <a@b>
Date:   Tue Jun 27 20:29:08 2017 +0200

    Problem: When using print_backtrace() on Linux with libunwind, printout of stack traces from multiple threads are interleaved. Solution: added static mutex to serialize printing of stack traces.

 src/err.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 69355730a46d25d622db876b9da212c6f136ed5c
Author: bjovke <a@b>
Date:   Tue Jun 27 20:15:08 2017 +0200

    Problem: intermittent memory leak for req/rep send/recv. #2602 Solution: memory leak fixed.

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

commit a3550e6104c353358dedef87a765dp1db46605be
Merge: f5da4b1c cb54a6b2
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jun 23 19:02:09 2017 +0200

    Merge pull request #2605 from emanuelkoczwara/master

    Update zmq.txt

commit cb54a6b24af5013c6b2482c294ff8802cb016d82
Author: Emanuel Koczwara <emanuel.koczwara@gmail.com>
Date:   Fri Jun 23 18:57:33 2017 +0200

    Update zmq.txt

    Fixed minor typo.

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

commit f5da4b1c6c19152d698b2410e74ce6ac72f9748c
Merge: 2d83acce 3536c4b9
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jun 22 11:46:31 2017 +0300

    Merge pull request #2603 from bluca/xpub_manual_subs

    Problem: XPUB_MANUAL subscriptions not removed on peer term

commit 3536c4b9c4a3ba7891f698168531a8ab22bf03af
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 22 00:59:38 2017 +0100

    Problem: XPUB_MANUAL subscriptions not removed on peer term

    Solution: remove the pipe from the real trie when a peer disconnects.
    Also add a unit test that exercises the behaviour by reconnecting
    a different socket and sending a message that matches.
    Fixes #2601 and introduced by #2042

 src/xpub.cpp               |  12 +++++
 tests/test_xpub_manual.cpp | 119 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 131 insertions(+)

commit 8e2027983a6efa3ea820a5b2dcb4cdbee55732fd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 22 00:58:44 2017 +0100

    Problem: XPUB_MANUAL takes effect for the next bind

    Solution: fix unit test to bind after setting the option.

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

commit 2d83acceffdef71c62c936487db9478b5478a00c
Merge: 35fce88f 6ad0b08d
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Jun 15 11:51:43 2017 -0700

    Merge pull request #2596 from bluca/zap_curve

    Problems: ZAP can be set up incorrectly, CURVE and GSSAPI can be used only with ZAP

commit 35fce88feeb45343d98fefb1015dee52cdedc4d7
Merge: 10a9ba09 d040dc18
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jun 14 15:28:02 2017 +0100

    Merge pull request #2599 from ibancg/master

    Problem: cannot cross-compile with Mingw-w64

commit d040dc18b5e425546d204615866018c374c976e5
Author: Iban Cereijo <ibancg@users.noreply.github.com>
Date:   Wed Jun 14 15:55:29 2017 +0200

    Problem: CMake evaluation fails with Mingw-w64

    Solution: we can use 'CMAKE_SYSTEM_VERSION' instead of
    '${CMAKE_SYSTEM_VERSION}' for the 'if' clauses.

    CMake fails to evaluate condition when CMAKE_SYSTEM_VERSION is
    empty, which can happen with a default installation of Mingw-w64
    in Linux.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2c4e5364aab60e3fb92c674319208c80e39224da
Author: Iban Cereijo <ibancg@users.noreply.github.com>
Date:   Wed Jun 14 15:54:03 2017 +0200

    Problem: missing Ws2_32.lib when cross compiling

    Solution: use lower case ws2_32.lib to enable cross compilation
    from platforms with case-sensitive filesystems.

    When cross compiling the tests with Mingw-w64, CMake cannot
    locate Ws2_32.lib

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6ad0b08da98d1f2ee1ecc6a698b0a20143f1116a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 13 22:52:59 2017 +0100

    Problem: GSSAPI can no longer be used without ZAP

    Solution: do not fail if ZAP is not enabled.
    GSSAPI already provides authentication and can be used separately,
    so it is a valid use case.

 src/gssapi_server.cpp | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

commit 0ce18eac25ff6abc9569c5fa3de608a157c2e107
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 13 21:51:57 2017 +0100

    Problem: CURVE can no longer be used without ZAP

    Solution: revert change that made ZAP mandatory.
    The "Stonehouse" pattern, where CURVE is used only for encryption and
    without authentication, is a valid use case so we should still
    support it.
    Also restore CURVE testing in the test_heartbeat.

    Fixes #2594

 src/curve_server.cpp      | 30 ++++++++++++++++--------------
 tests/test_heartbeats.cpp | 45 +++++++++++++++++++++++++++++++++++++++------
 2 files changed, 55 insertions(+), 20 deletions(-)

commit 33695d1da83f076061b35130edc4341c94b72041
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 13 22:11:24 2017 +0100

    Problem: ZAP is allowed to be configured incorrectly or not to work

    Solution: if inproc://zeromq.zap.01 exists, which means ZAP is
    enabled, abort immediately if it cannot be used (eg: out of memory)
    or it is configured incorrectly (eg: wrong socket type).
    Otherwise authentication failures will simply be ignored and
    unauthorised peers will be allowed to slip in.

 src/curve_server.cpp  |  3 +++
 src/gssapi_server.cpp |  2 ++
 src/plain_server.cpp  |  3 +++
 src/session_base.cpp  | 22 ++++++++++++----------
 4 files changed, 20 insertions(+), 10 deletions(-)

commit 10a9ba0926028a2e380a1409da278a48e5ecf3f8
Merge: 99805931 af598f2e
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Jun 12 07:34:28 2017 +0300

    Merge pull request #2593 from ilovexyz/dev

    fix bug: #2592 dish client does not resend subscriptions to radio server after radio server restart

commit af598f2e1ce5a403d69575b022ef3a02f6a96b59
Author: sunddy <sunddy.duan@gmail.com>
Date:   Mon Jun 12 12:26:21 2017 +0800

    fix bug: dish client does not resend subscriptions to radio server after radio server restart

    problem: for zmq radio/dish pattern, if the radio process restarts, the dish will not resend subscriptions to radio. And the result is that the dish will never receive any more messages.

    solution: in session_base_t::reconnect (), take ZMQ_DISH into consideration when invoking hiccup method.

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

commit 99805931e4223107a51955e1190ddd54ab9506ff
Merge: bcc30f2a 67a6594f
Author: BJovke <bjovan@gmail.com>
Date:   Fri Jun 2 10:25:18 2017 +0200

    Merge pull request #2591 from laplaceyang/pr_cancel_timer_in_reconnect

    fix bug: coredump if set linger and immediate together

commit 67a6594fc02f8df80647ff1690624cbe2c7b1287
Author: laplaceyang <laplace2013@outlook.com>
Date:   Fri Jun 2 11:36:41 2017 +0800

    fix bug: coredump if set linger and immediate together

    In function session_base_t::reconnect, if we set immediate to 1 and set linger, we will get into first block of reconnect function, and set pipe to NULL, but we forget to cancel timer of linger. Once timer tiggered, we will get coredump. Solution: cancel timer in the end of set pipe to NULL

 src/session_base.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit bcc30f2ab0b91cffc94a667588f0ef7153993942
Merge: ec56eadp 545135fb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue May 23 19:40:34 2017 +0200

    Merge pull request #2584 from GreatFruitOmsk/master

    RELICENSE: Ilya Kulakov

commit 545135fb8de84ad5ceb86d95dbb3548d0b033b2e
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Tue May 23 10:38:13 2017 -0700

    RELICENSE: Ilya Kulakov

    Refs #2376

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

commit ec56eadpb666960548375cc3746ac0b6927977e4
Merge: 92339a4d 293a1825
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat May 20 21:08:58 2017 +0200

    Merge pull request #2583 from timou/wincmake

    Suppress linker warning 4221 for MSVC

commit 293a18257a63e5d0565fd91110789e24410a60c2
Author: Tim Ebringer <tde@slowdogs.com.au>
Date:   Sat May 20 14:22:29 2017 -0400

    Suppress linker warning 4221 for MSVC

    Some #define switches cause the body of entire files to be omitted. This
    causes a linker warning on Visual Studio 2017, for example

        warning LNK4221: This object file does not define any previously
        undefined public symbols, so it will not be used by any link
        operation that consumes this library

    Since this is warning us about something that shouldn't be
    earth-shattering news, we add a linker flag to suppress this warning on
    MSVC builds.

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

commit 92339a4d9dcbf8edp25f33f20b6517c082bfb55f
Merge: bc8ad886 17637536
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 18 15:37:31 2017 +0300

    Merge pull request #2582 from bluca/test_poller_use_after_free

    Problem: use-after-free in test_poller

commit 17637536b81d6f2e58184b46831bc25dcd20da8b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 18 13:10:00 2017 +0100

    Problem: use-after-free in test_poller

    Solution: remove server socket from poller before closing it
    Fixes #2581

 tests/test_poller.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit bc8ad8860b9480e37449e44cc5867f25026b91ac
Merge: 6ad533be f66c49a6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 18 11:33:05 2017 +0100

    Merge pull request #2580 from diorcety/ninja

    Use OBJECT_DEPENDS and OBJECT_OUTPUTS for precompiled.hpp

commit f66c49a62bcf535c12f468ca20a41dp93b7703da
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Wed May 17 18:50:01 2017 +0200

    Fix precompiled

 CMakeLists.txt | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 6ad533bec4984d377629249abc88f06b3cb6e700
Merge: 8e1facc7 72b4b683
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 17 14:09:14 2017 +0100

    Merge pull request #2578 from rkfg/dev

    Problem: abort at socket creation on Android with jzmq

commit 72b4b6830fee8c1c54c3e72540a307ee55b886a4
Author: rkfg <rkfg@rkfg.me>
Date:   Wed May 17 14:54:25 2017 +0300

    Problem: abort at socket creation on Android with jzmq

    Solution: don't set thread name on Android

    Setting a thread name on Android may fail with "permission
    denied" error and abort the process due to failed assertion.
    Tested on Android 5 and 6 (two phones).
    Strangely enough, it only happens on signed APKs and is fine
    in debug. Using JeroMQ is not an option as we need TCP keepalive
    settings and authentication which JeroMQ doesn't support.

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

commit 8e1facc73e4ff0e8733ca1ccb5ba4d5f4e1735dp
Merge: 766c47ff bdc676f6
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 17 11:53:49 2017 +0300

    Merge pull request #2577 from bluca/rep_leak

    Problem: REP leaves label msgs for dead REQ in pipe

commit bdc676f687100aff64c4bb1ce1552c4b25c38dpa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 10 23:31:17 2017 +0100

    Problem: REP leaves label msgs for dead REQ in pipe

    Solution: roll back the pipe if writing messages other than the
    first fails in router::xsend. Roll it back also when the pipe is
    terminating.
    Also add test case that reproduces the memory leak when ran with
    valgrind.
    Fixes #2567

 src/router.cpp            |  4 ++++
 tests/test_reqrep_ipc.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 54 insertions(+), 2 deletions(-)

commit 766c47ffdd7d1508a2a5b93c9ff560b1b3c8ebd0
Merge: 75cc2015 1489fc1a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 16 10:31:23 2017 +0100

    Merge pull request #2575 from zeromq/revert-2572-rep_leak

    Revert "Problem: REP leaves label msgs for dead REQ in pipe"

commit 1489fc1ac5f2258cb5ce23639839abb7b5ec6ed6
Author: BJovke <bjovan@gmail.com>
Date:   Tue May 16 11:20:03 2017 +0200

    Revert "Problem: REP leaves label msgs for dead REQ in pipe"

 src/router.cpp            |  3 --
 tests/test_reqrep_ipc.cpp | 98 ++++++++++++-----------------------------------
 2 files changed, 25 insertions(+), 76 deletions(-)

commit 75cc2015d1bca80086eafe544d22664f3a29be72
Merge: d1758192 0999fdd8
Author: BJovke <bjovan@gmail.com>
Date:   Tue May 16 10:28:24 2017 +0200

    Merge pull request #2572 from bluca/rep_leak

    Problem: REP leaves label msgs for dead REQ in pipe

commit 0999fdd885964fdf5712aca621942062be1a75a1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 10 23:31:17 2017 +0100

    Problem: REP leaves label msgs for dead REQ in pipe

    Solution: roll back the pipe if writing messages other than the
    first fails in router::xsend.
    Also add test case that reproduces the memory leak when ran with
    valgrind.
    Fixes #2567

 src/router.cpp            |  3 +++
 tests/test_reqrep_ipc.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 53 insertions(+), 2 deletions(-)

commit d17581929cceceda02b4eb8abb054f996865c7a6
Merge: b7e8a3d6 30dac380
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 10 11:57:03 2017 +0100

    Merge pull request #2570 from jruffin/master-relicense

    Added the license grant for jruffin

commit 30dac3807fa4d77216fe7a91887504e5e4db3841
Author: Julien Ruffin <jur@ivu.de>
Date:   Wed May 10 12:50:41 2017 +0200

    Added the license grant for jruffin

 RELICENSE/jruffin.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit b7e8a3d6995866fa9b57ad23e24994320679258d
Merge: f0df483f 7dc06fdf
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 8 19:02:31 2017 +0300

    Merge pull request #2566 from leonarf/leonarf-relicense

    license right grant from Leonard Michelet

commit 7dc06fdfb2596658ad88ba614dc1e6e30cf1dp87
Author: Leonard <leonard.michelet@smile.fr>
Date:   Wed Mar 29 15:28:41 2017 +0200

    license right grant from Leonard Michelet

 RELICENSE/LeonardMichelet | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit f0df483fa7c32f40f0c7df699d44ac49dp18abb7
Merge: fb92cd30 806bc9dd
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun May 7 15:34:58 2017 +0300

    Merge pull request #2564 from rotty/master

    Relicensing grant from rotty

commit 806bc9dd086c89e82c573b7b12bfdc8065159088
Author: Andreas Rottmann <a.rottmann@gmx.at>
Date:   Sun May 7 14:05:55 2017 +0200

    Relicensing grant from rotty

 RELICENSE/rotty.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit fb92cd30a19d169dd351ddd0c6cb158a7dd83ac0
Merge: 0a66acb3 d11f501d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 6 10:51:51 2017 +0100

    Merge pull request #2562 from pijyoi/fix_init_fdset

    Problem: not using official api FD_ZERO to init fd_set

commit d11f501dc12514b64974c66f6ded5601adp41984
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat May 6 07:59:48 2017 +0800

    problem: not using official api FD_ZERO to init fd_set

    solution: fix it

    In particular, on Windows, using FD_ZERO is much more efficient than
    zeroing out the whole structure.

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

commit 0a66acb31b98899e297de17d396ba2178f1c09dp
Merge: 18651d16 655fbfc3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri May 5 08:23:07 2017 +0200

    Merge pull request #2560 from bluca/tests_ports

    Problems: cannot use wildcard port with source address, tests bind to hardcoded TCP ports, ASAN CI run could use some improvements

commit 18651d16990cdp9a0428a869a895018b02031f18
Merge: 2c2c8138 3241875b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed May 3 19:50:54 2017 +0200

    Merge pull request #2561 from flub/master

    Grant permission to relicense to MPL

commit 3241875b7be30647428552b67a5347eb12958286
Author: Floris Bruynooghe <flub@devork.be>
Date:   Wed May 3 19:46:20 2017 +0200

    Grant permission to relicense to MPL

 RELICENSE/flub.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 655fbfc399cf157366f4df9c27d28c44bdc62844
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 18:44:26 2017 +0100

    Problem: ASAN test doesn't print good traces with GCC 4.8

    Solution: add Ubuntu toolchain PPA and use GCC 6

 .travis.yml | 8 ++++++++
 ci_build.sh | 5 +++++
 2 files changed, 13 insertions(+)

commit 86f9f1df7a38bb225ec1186d4aa391db2c0b7966
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 16:11:16 2017 +0100

    Problem: CI doesn't build with debugging symbols

    Solution: pass -g so that valgrind/asan can print useful backtraces

 builds/valgrind/ci_build.sh | 4 ++--
 ci_build.sh                 | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 11e2e5f6b59a3479f17d78f9e0b8748798b5bd24
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 18:06:45 2017 +0100

    Problem: address sanitizer support in CI is hacky

    Solution: import better solution from zproject and add a new autoconf
    option

 ci_build.sh  |  3 +--
 configure.ac | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

commit 6d76106cdef3be8e8f098894818c1ea2dca65f13
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 16:03:51 2017 +0100

    Problem: test_many_sockets is flacky on OSX

    Solution: mark it as XFAIL. We tried many times to tweak the system
    settings from the CI script but it still fails.

 Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 463c2d75dpa5988845b233a1242c4ccbc9a039d6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 12:30:23 2017 +0100

    Problem: CI builds and test runs not done in parallel

    Solution: run make with -j5, as now the tests support it.

 builds/cmake/ci_build.sh    | 2 +-
 builds/coverage/ci_build.sh | 2 +-
 ci_build.sh                 | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 48792f800611c67f2f3a3682497c66c6f4b7656f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 12:29:24 2017 +0100

    Problem: CI runs libsodium tests

    Solution: don't, libzmq's CI tests are not responsible for testing
    libsodium stable releases. Save some time in the CI.

 builds/cmake/ci_build.sh    | 2 +-
 builds/coverage/ci_build.sh | 2 +-
 builds/valgrind/ci_build.sh | 2 +-
 ci_build.sh                 | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit b29d46b6a57a649dcf35ff52f7b5ce67e334dfbc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 12:23:19 2017 +0100

    Problem: tests use same IPC endpoint

    Solution: use either a wildcard IPC, or where the codepath needs to
    be tested a file named after the test, so that it is unique and there
    is no clash on the filesystem, allowing parallel test runs.

 tests/test_pair_ipc.cpp   |  4 ++--
 tests/test_reqrep_ipc.cpp | 10 +++++++---
 tests/test_use_fd_ipc.cpp | 24 ++++++++++++------------
 3 files changed, 21 insertions(+), 17 deletions(-)

commit 5934919f3ec9d688ffe0a5997f9b111e8e4ddeb2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 12:11:11 2017 +0100

    Problem: tests bind to hardcoded TCP ports

    Solution: use ZMQ_LAST_ENDPOINT in most places. This alllows running
    tests in paralle, and on over-booked shared machines where many of
    the ports would be already in use.
    Keep 3 tests with an hardcoded port, as there are some code paths that
    require it (eg: connect before bind), but list those ports in
    tests/testutil.hpp as macros so that they do not overlap and still
    allow parallel runs.

    These changes were inspired by a patch uploaded to Ubuntu by the
    package maintainer, Steve Langasek <steve.langasek@ubuntu.com>.
    Thank you Steve!

 tests/test_bind_after_connect_tcp.cpp |   4 +-
 tests/test_conflate.cpp               |  10 +-
 tests/test_connect_rid.cpp            |  22 ++-
 tests/test_dgram.cpp                  |  12 +-
 tests/test_diffserv.cpp               |  11 +-
 tests/test_fork.cpp                   |  10 +-
 tests/test_heartbeats.cpp             |  27 ++-
 tests/test_hwm_pubsub.cpp             |  10 +-
 tests/test_immediate.cpp              |  26 ++-
 tests/test_issue_566.cpp              |  10 +-
 tests/test_last_endpoint.cpp          |   6 +-
 tests/test_metadata.cpp               |  10 +-
 tests/test_monitor.cpp                |  12 +-
 tests/test_msg_ffn.cpp                |  11 +-
 tests/test_pair_tcp.cpp               |  10 +-
 tests/test_poller.cpp                 |  21 ++-
 tests/test_probe_router.cpp           |  10 +-
 tests/test_proxy.cpp                  |  72 +++++++-
 tests/test_proxy_single_socket.cpp    |  36 ++--
 tests/test_proxy_terminate.cpp        |  33 ++--
 tests/test_radio_dish.cpp             |   8 +-
 tests/test_req_correlate.cpp          |  10 +-
 tests/test_req_relaxed.cpp            |  14 +-
 tests/test_reqrep_device.cpp          |  18 +-
 tests/test_reqrep_tcp.cpp             | 335 +++++++++++++---------------------
 tests/test_router_handover.cpp        |  13 +-
 tests/test_router_mandatory.cpp       |  11 +-
 tests/test_router_mandatory_hwm.cpp   |  10 +-
 tests/test_security_curve.cpp         |  27 ++-
 tests/test_security_gssapi.cpp        |  40 ++--
 tests/test_security_null.cpp          |  36 +++-
 tests/test_security_plain.cpp         |  20 +-
 tests/test_shutdown_stress.cpp        |  45 +++--
 tests/test_spec_dealer.cpp            |  17 +-
 tests/test_spec_pushpull.cpp          |  17 +-
 tests/test_spec_rep.cpp               |  12 +-
 tests/test_spec_req.cpp               |  17 +-
 tests/test_spec_router.cpp            |  14 +-
 tests/test_srcfd.cpp                  |  11 +-
 tests/test_stream.cpp                 |  19 +-
 tests/test_stream_disconnect.cpp      |  20 +-
 tests/test_stream_empty.cpp           |  10 +-
 tests/test_stream_timeout.cpp         |  21 ++-
 tests/test_sub_forward.cpp            |  18 +-
 tests/test_system.cpp                 |   4 +-
 tests/test_term_endpoint.cpp          |  31 +++-
 tests/test_thread_safe.cpp            |  10 +-
 tests/test_unbind_wildcard.cpp        | 116 ++----------
 tests/test_use_fd_tcp.cpp             |  35 ++--
 tests/test_xpub_manual.cpp            |  69 +++----
 tests/testutil.hpp                    |  13 +-
 51 files changed, 798 insertions(+), 606 deletions(-)

commit 2c2c81382422e1a4674ed45533e3fb8c95b895ce
Merge: 06666d8c 584706f0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 21:53:41 2017 +0100

    Merge pull request #2559 from michicc/master

    RELICENSE: Grant from michicc

commit 584706f023917e347bf8b51a7d70c15f03fadd7b
Author: Michdpl Lutz <michi@icosahedron.de>
Date:   Mon May 1 21:31:57 2017 +0200

    RELICENSE: Grant from michicc

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

commit dp461dc2a93574898f0e8bd104785c6409dcf810
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 1 01:42:16 2017 +0100

    Problem: cannot use wildcard port with source address

    Solution: fix TCP endpoint parsing to allow
    tcp://127.0.0.1:*;127.0.0.1:1000

 src/socket_base.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 06666d8c4aaf1211dc37fcb52b1e0fc45a28bbfe
Merge: e24ef3ff f126da8b
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 1 16:39:19 2017 +0300

    Merge pull request #2558 from bluca/obs_release

    Problem: no way to deploy releases to OBS

commit f126da8b22d39339f6a2201b4885c34b1d700ce4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 29 17:42:03 2017 +0100

    Problem: no way to deploy releases to OBS

    Solution: add new tokens to .travis.yml and change ci_deploy.sh
    script to use Github APIs to create a temporary branch at the tag,
    and the OBS APIs to trigger a source service run in the stable and
    draft release projects:
    network:messaging:zeromq:release-stable
    network:messaging:zeromq:release-draft

    The branch hack is unfortunately necessary as it is not possible to
    modify OBS sources with the token APIs, and it is also not possible
    to automatically fetch the latest tag in the service files.
    The temporary branch is immediately deleted.

 .travis.yml  | 18 ++++++++++++++----
 ci_deploy.sh | 16 +++++++++++++++-
 2 files changed, 29 insertions(+), 5 deletions(-)

commit e24ef3ff489733ef11421acc6d33c3cbbb08b625
Merge: 2215a9d3 d96c48ff
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Apr 29 14:14:30 2017 +0200

    Merge pull request #2557 from bluca/package_gssapi_manpage

    Problem: RPM build fails due to ignored zmq_gssapi.7

commit d96c48ffa411c7f794a7660b825790eb93bf0b1e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 29 13:06:33 2017 +0100

    Problem: OBS _service sets version to unix timestamp.commitid

    Solution: a new option has been added to the tar_scm service, so use
    it to set the version to last_tag+git<last commit date> which is more
    useful.
    Unfortunately it's not possible to set it to the current version as
    set in the header files, as it's not possible to parse files, only
    commit ids, dates and git tags. But it's a step forward.

 packaging/obs/_service | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 9dd75e62bff5e3a809436bf2ddc093b971a24792
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 29 12:53:09 2017 +0100

    Problem: RPM build fails due to ignored zmq_gssapi.7

    Solution: use wildcard to pick up manpages in the spec file

 packaging/redhat/zeromq.spec | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

commit 2215a9d3910bfab4fbf8094a295e6a795fc8178d
Merge: e905f9da 90c76fbd
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Apr 28 18:01:04 2017 +0200

    Merge pull request #2554 from bluca/disable_new_poller_without_drafts

    Problem: new zmq_poller used by zmq_poll without DRAFTs

commit 90c76fbd6069b8e1e98236f31317ed22792ab739
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 28 16:08:46 2017 +0100

    Problem: new zmq_poller used by zmq_poll without DRAFTs

    Solution: do not define ZMQ_HAVE_POLLER in src/zmq_drafts.h otherwise
    src/zmq.cpp will implement zmq_poll using the new poller classes.
    Same for ZMQ_HAVE_TIMERS, even though it has no internal effect, but
    to be safe against future development.

 src/zmq_draft.h | 4 ----
 1 file changed, 4 deletions(-)

commit e905f9da99cb11f693b0672cf2fb68e0ec400b3d
Merge: 54b89858 ec7b9480
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 28 12:59:17 2017 +0100

    Merge pull request #2553 from diorcety/x

    Fix WITH_DOC

commit ec7b9480f5947c7b317f9f982bbaf05a351b0114
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Fri Apr 28 09:06:45 2017 +0200

    Fix WITH_DOC

 CMakeLists.txt | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 54b89858ab0ba8906e1ea3e3e68c06c90e88d586
Merge: 8e33d424 edd6b0ad
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 26 17:42:33 2017 +0100

    Merge pull request #2550 from garlick/gssapi_test

    add simple GSSAPI test for make check

commit edd6b0ad01a25275a1d03d9ed136d5218cfc48a0
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Tue Apr 25 16:56:14 2017 -0700

    gssapi: add a basic test for GSSAPI security

    Problem: there is no test coverage for GSSAPI.

    Solution: add a test structured like the CURVE test.

    The test is not built if libzmq is not configured with
    --with-libgssapi_krb5. It will report SKIPPED status
    if the required environment is missing (see below).

    Environment:  KRB5_KTNAME and KRB5_CLIENT_KTNAME
    environment variables must point to a keytab file
    containing creds for a host-based test principal
    (see comment at top of source for details).
    Kerberos must be configured and a KDC containing the
    test principal must be running, otherwise the test
    will fail/hang.

    N.B. For now, the test must use the same principal for
    both client and server roles because it seems impossible
    to set them to different principals when they are
    threads in the same process.  Once one principal is
    cached in credential cache, attempts to acquire creds
    for a different "desired name" seem to be ignored and
    the cached principal is used instead.

 Makefile.am                    |   8 +
 configure.ac                   |   1 +
 tests/test_security_gssapi.cpp | 325 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 334 insertions(+)

commit 8e33d4247c37e500469ec61f44e9784770b96958
Merge: c23fcc1b 53918fc1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 25 22:49:56 2017 +0100

    Merge pull request #2549 from garlick/gssapi_nametype

    Clean up after move of GSSAPI NAMETYPE options to DRAFT

commit 53918fc11567a02e4281df6a84f7b21c4537bb89
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Tue Apr 25 10:07:58 2017 -0700

    gssapi: drop unnecessary ifdefs

    Problem: GSSAPI DRAFT code was made conditional on
    ZMQ_BUILD_DRAFT_API, but zmq_draft.h duplicates the DRAFT
    symbols definitions from zmq.h so this is unnecessary.

    Solution: drop the extra ifdefs

 src/gssapi_client.cpp         | 8 --------
 src/gssapi_mechanism_base.cpp | 2 --
 src/gssapi_server.cpp         | 4 ----
 src/options.cpp               | 9 +++------
 src/options.hpp               | 4 ++--
 5 files changed, 5 insertions(+), 22 deletions(-)

commit c978d3bb0a3b4e8b49185192c0a8479845ebacc9
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Tue Apr 25 09:58:07 2017 -0700

    gssapi: renumber socket options

    Problem: GSSAPI NAMETYPE socket option numbers were modified
    +1000 when moved to DRAFT section, but should use the definitive
    values while in DRAFT to minimize disruption later.

    Solution: renumber the socket options

 include/zmq.h   | 4 ++--
 src/zmq_draft.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit c23fcc1b057f952398548cedaaa54386f1fd1e04
Merge: c49436ad 568feb1c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 25 09:44:17 2017 +0100

    Merge pull request #2548 from garlick/gssapi_nametype

    move GSSAPI NAMETYPE options to DRAFT, etc.

commit 568feb1c7f4b7a2ca712f854e6688d801ef29ffd
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Mon Apr 24 16:11:02 2017 -0700

    gssapi: document NAMETYPE options in get/setsockopt(3)

    Problem: GSSAPI NAMETYPE options were not documented in man
    pages for zmq_getsockopt() and zmq_setsockopt().

    Solution: add new options to these manual pages.

 doc/zmq_getsockopt.txt | 35 +++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+)

commit 8892087e9949ef2aa215b27dp9df9789a4df1c70
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Mon Apr 24 14:57:15 2017 -0700

    gssapi: add NAMETYPE options to zmq_getsockopt

    Problem: GSSAPI NAMETYPE options were added to zmq_setsockopt()
    but not zmq_getsockopt().

    Add them to zmq_getsockopt().

 src/options.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 9fbf2e2eb6b1ac7f2497b278f660336b02dbdab5
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Mon Apr 24 13:55:35 2017 -0700

    gssapi: move new options to DRAFT section

    Problem: The new GSSAPI NAMESPACE options should have been
    added to the DRAFT section of the API so they can be changed
    until stabilized.

    Solution:
    - Move defines to the DRAFT section of zmq.h
    - Duplicate them in zmq_draft.h, as is the local custom
    - Compile only if defined (ZMQ_BUILD_DRAFT_API)
    - Refactor internals slightly to avoid #ifdef hell

 include/zmq.h                 | 19 ++++++++++++-------
 src/gssapi_client.cpp         | 14 +++++++++++---
 src/gssapi_mechanism_base.cpp |  8 ++++----
 src/gssapi_mechanism_base.hpp |  2 +-
 src/gssapi_server.cpp         |  9 ++++++---
 src/options.cpp               |  4 ++++
 src/options.hpp               |  4 ++--
 src/zmq_draft.h               | 12 ++++++++++++
 8 files changed, 52 insertions(+), 20 deletions(-)

commit c49436ad9454ddb151279e3e54c6f4d9347f0143
Merge: 74395668 17460b3b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 24 15:48:10 2017 +0100

    Merge pull request #2547 from diorcety/x

    Targets broken by some parts of f7d1c159d4f96686ce994319280c1bd3a2eab994

commit 17460b3b2bcc408e451aa29507d0cd7d12c8c81a
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Mon Apr 24 15:57:14 2017 +0200

    Targets broken by some parts of f7d1c159d4f96686ce994319280c1bd3a2eab994

 CMakeLists.txt       | 48 ++++++++++++++++++++++++------------------------
 tests/CMakeLists.txt |  2 +-
 2 files changed, 25 insertions(+), 25 deletions(-)

commit 74395668c6133cc90e231ec6967e46c5d74d22f1
Merge: 4dp2ffda 67eee475
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Apr 23 11:52:54 2017 +0200

    Merge pull request #2546 from rikvdh/master

    RELICENSE: Grant from rikvdh

commit 67eee47557cf3a70ee67020257d5899ef9d530ff
Author: Rik van der Heijden <mail@rikvanderheijden.com>
Date:   Sun Apr 23 11:21:12 2017 +0200

    RELICENSE: Grant from rikvdh

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

commit 4dp2ffdac78c6d53eb2073867a6f495b4b61c38a
Merge: 4783605b 48f72844
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 22 11:12:23 2017 +0100

    Merge pull request #2545 from garlick/gssapi_nametype

    add GSSAPI NAMETYPE socket options

commit 48f72844ad39795381b955fb741cd7d1d69413b1
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Fri Apr 21 11:30:17 2017 -0700

    gssapi: add zmq_gssapi.7 to MAN7 in Makefile.am

    Problem: zmq_gssapi.7 was not mentioned in doc/Makefile.am

    Solution: add man page to MAN7 in doc/Makefile.am

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

commit 8bd3f03cd4c2ab1cf1b28172649321d46cdc5494
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Fri Apr 21 11:28:54 2017 -0700

    gssapi: add NAMETYPE socket opts to zmq_gssapi.7

    Problem: new GSSAPI socket options are not documented.

    Solution: add PRINCIPAL NAMES section to zmq_gssapi.7

 doc/zmq_gssapi.txt | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 0b185e8297ec0b86d5a9c85e37be1187a8d31748
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Thu Apr 20 16:28:30 2017 -0700

    gssapi: add NAMETYPE socket options

    Problem: principals are looked up unconditionally
    with the GSS_C_NT_HOSTBASED_SERVICE name type.

    Solution: Add two new socket options to set the name type
    for ZMQ_GSSAPI_PRINCIPAL and ZMQ_GSSAPI_SERVICE_PRINCIPAL:

    ZMQ_GSSAPI_PRINCIPAL_NAMETYPE
    ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE

    They take an integer argument which must be one of
    ZMQ_GSSAPI_NT_HOSTBASED (0) - default
    ZMQ_GSSAPI_NT_USER_NAME (1)
    ZMQ_GSSAPI_NT_KRB5_PRINCIPAL (2)

    These correspond to GSSAPI name types of:
    GSS_C_NT_HOSTBASED_SERVICE
    GSS_C_NT_USER_NAME
    GSS_KRB5_NT_PRINCIPAL_NAME

    Fixes #2542

 include/zmq.h                 |  7 +++++++
 src/gssapi_client.cpp         |  6 ++++--
 src/gssapi_client.hpp         |  2 ++
 src/gssapi_mechanism_base.cpp | 22 ++++++++++++++++++++--
 src/gssapi_mechanism_base.hpp |  6 +++++-
 src/gssapi_server.cpp         |  3 ++-
 src/options.cpp               | 18 ++++++++++++++++++
 src/options.hpp               |  4 ++++
 8 files changed, 62 insertions(+), 6 deletions(-)

commit 4783605b785ee435c993dp44d1f74e8945096097
Merge: 42729256 798b258f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Apr 21 19:58:33 2017 +0200

    Merge pull request #2544 from Asmod4n/patch-2

    RELICENSE: Hendrik Beskow grant

commit 798b258fbcdf85fdc54107809c38838e11d4cfbc
Author: Asmod4n <Asmod4n@users.noreply.github.com>
Date:   Fri Apr 21 19:54:25 2017 +0200

    Create Asmod4n.md

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

commit 427292561cc337eb82d057e5c2ff60e1684c464a
Merge: aa90863b 2b9a352a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 20 18:49:05 2017 +0100

    Merge pull request #2541 from garlick/gssapi_fix

    fix misc. bugs in GSSAPI support

commit 2b9a352a3c850dac8636dacc4aa3a51e97bac272
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Wed Apr 19 17:08:14 2017 -0700

    gssapi: use gss_buffer_desc consistently

    Problem: one call to gss_import_name() includes the terminating
    NULL in a gss_buffer_desc.length, and one doesn't.

    According to the examples at:
    http://docs.oracle.com/cd/E19253-01/816-4863/overview-22/index.html
    the NULL should be included in the length.

    Solution:  Fix one case to include the terminating NULL in the length.

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

commit 4e22dd0e9709587c4b211066212510c37276ff8c
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Wed Apr 19 16:04:41 2017 -0700

    gssapi: fail if client sets wrong principal

    Problem: if client sets ZMQ_GSSAPI_PRINCIPAL to a name
    for which credentials cannot be obtained, authentication
    proceeds with default credentials.

    Solution: Before initializing the security context, check
    whether there was a failed attempt to acquire credentials
    for a specific principal and bail out if so.

    Fixes #2531

 src/gssapi_client.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit f2b579ce027f4acf4001033ed5a4471fdd77ebb6
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Tue Apr 18 16:06:53 2017 -0700

    gssapi: use GSS_C_BOTH to acquire credentials

    Problem: if client sets the ZMQ_GSSAPI_PRINCIPAL to a valid
    principal, authentication fails.

    When an application sets ZMQ_GSSAPI_PRINCIPAL, whether as a
    client or a server, libzmq internally calls gss_acquire_cred()
    with cred_usage=GSS_C_ACCEPT.  This cred_usage setting is for
    acceptors (servers) only, thus it doesn't work for initiators
    (clients).

    Solution: Change the cred_usage parameter to GSS_C_BOTH to allow
    initiators to set ZMQ_GSSAPI_PRINCIPAL.

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

commit c371824b5b120f1bdaa183fcc733abc75a727067
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Tue Apr 18 11:37:40 2017 -0700

    gssapi: document ZMQ_GSSAPI_PRINCIPAL as optional

    Problem: the ZMQ_GSSAPI_PRINCIPAL socket option is described
    as mandatory in the zmq_gssapi(7) manual page.  In fact it
    is optional.

    Solution: Describe ZMQ_GSSAPI_PRINCIPAL as optional.
    If unspecified, default credentials are used.

 doc/zmq_gssapi.txt | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit 43f4c286605651dd15d6049e1986c141acb9e69d
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Fri Apr 14 15:11:14 2017 -0700

    gssapi: define HAVE_LIBGSSAPI_KRB5 in configure.ac

    Problem: configure.ac is not setting HAVE_LIBGSSAPI_KRB5
    in src/platform.hpp when --with-libgssapi_krb5 is specified

    Commit 09e868b74379f9c4b0e3a487b246a41d44606d96
    switched the libgssapi_krb5 check from AC_CHECK_LIB
    to AC_SEARCH_LIBS, but neglected to add an AC_DEFINE
    for HAVE_LIBGSSAPI_KRB5, thus the GSSAPI code is
    never compiled.

    Solution: Add missing AC_DEFINE of HAVE_LIBGSSAPI_KRB5.

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

commit aa90863b77180fc837f971bb5db9cb8e6df27ef2
Merge: ce602d08 52ce6aab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 20 15:05:15 2017 +0100

    Merge pull request #2539 from juan-filewave/win_build_if_defined_ZMQ_USE_POLL

    Problem: Windows build broken by #if ZMQ_USE_POLL

commit 52ce6aab869d54239947ce133e05069708443c4c
Author: Juan A. Garcia Pardo <juan.garcia-pardo@filewave.com>
Date:   Thu Apr 20 15:44:35 2017 +0200

    Problem: Windows build broken by #if ZMQ_USE_POLL

    Solution: use #if defined ZMQ_USE_POLL

 src/windows.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce602d08dbf477dff6e190a52119d5c4fd2e0228
Author: Asmod4n <Asmod4n@users.noreply.github.com>
Date:   Thu Apr 20 00:13:06 2017 +0200

    change macOS < 10.12 clock to SYSTEM_CLOCK, fixes #2537 (#2538)

    * change macOS < 10.12 clock to SYSTEM_CLOCK, fixes #2537

    * remove clock_id option from alt_clock_gettime since we always want a monotonic clock.

    * update header definition for alt_clock_gettime

    * pass clock definition down to host_get_clock_service for macOS < 10.12

    * change to monotonic clocks

 src/clock.cpp              |  14 ++----
 src/condition_variable.hpp | 104 ++++++++++++++++++++++-----------------------
 2 files changed, 56 insertions(+), 62 deletions(-)

commit 45f4a40026b62df88e0c1ab8ef86a20c13d55f1a
Merge: 1d4014dc 69b2affe
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 17 23:54:26 2017 +0100

    Merge pull request #2536 from RPGillespie6/master

    Add CMake Build Output Options

commit 69b2affe05cc55d5b8750d476d5e34cafea23367
Author: RPGillespie6 <rpgillespie6@gmail.com>
Date:   Mon Apr 17 18:26:04 2017 -0400

    Add CMake Build Output Options

    Add two new options to CMakeLists.txt:

    `BUILD_SHARED` - Whether or not to build the shared object (Default: ON)
    `BUILD_STATIC` - Whether or not to build the static archive (Default: ON)

 CMakeLists.txt | 181 +++++++++++++++++++++++++++++++++------------------------
 1 file changed, 104 insertions(+), 77 deletions(-)

commit 1d4014dc52d45c9f46a8105e7a5db39e76fe8b25
Author: BJovke <bjovan@gmail.com>
Date:   Fri Apr 14 18:10:57 2017 +0200

    Problem: Minor inconsistency in macro syntax. Solution: Code fixed. (#2534)

    * Problem: Minor inconsistency in macro syntax. Solution: Code fixed.

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

commit e8be2e9d60096b1b8a73ec409b6722edc0f18bfa
Merge: a3ad12f7 dc7bbe35
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 14 16:01:53 2017 +0100

    Merge pull request #2533 from bjovke/my_work

    Problem: FD set copying for Windows still not optimal in some places.

commit dc7bbe35b408b4d9bbb91481d3152cedpf4da516
Author: bjovke <a@b>
Date:   Fri Apr 14 16:31:05 2017 +0200

    Problem: FD set copying on Windows still not optimal on some places. Solution: Improved memcpy() of FD sets for Windows builds.

 src/select.cpp | 20 ++++++++++++++++++++
 src/zmq.cpp    | 13 ++++++++++---
 2 files changed, 30 insertions(+), 3 deletions(-)

commit a3ad12f7fdp700fc756e4a91ef6dp0f33d78ea88
Merge: eb37793a 6d3d99f3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 14 11:26:33 2017 +0100

    Merge pull request #2532 from bjovke/my_work

    Problem: Stack overflow in Windows VS 2012 builds for simple ZeroMQ u…

commit 6d3d99f3a113afa52fff3e7d808c387e2aaf794b
Author: bjovke <a@b>
Date:   Fri Apr 14 11:54:51 2017 +0200

    Problem: Stack overflow in Windows VS 2012 builds for simple ZeroMQ usage. Solution: Added notice in INSTALL file to mandatory use at least 2 MB stack size in VS 2012 and recommendation to use at least 2 MB in all other Windows builds.

 INSTALL | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit eb37793a43c7b98adbbe4d76a791092c16fd5caa
Merge: bf075731 01f8dp06
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Apr 13 06:56:45 2017 +0200

    Merge pull request #2528 from kurdybacha/master

    RELICENSE: Pawel Kurdybacha grant

commit 01f8dp061d2ab0d2ad1061884d1da8b6c672afab
Author: Pawel Kurdybacha <pawel.kurdybacha@gmail.com>
Date:   Thu Apr 13 00:44:22 2017 +0100

    RELICENSE: Pawel Kurdybacha grant

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

commit bf0757318885e0ef254c41ee49fef05e206dpe0a
Merge: dfde9a22 f7d1c159
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 12 11:58:50 2017 +0100

    Merge pull request #2527 from diorcety/x

    Fix compilation on windows using msys2

commit f7d1c159d4f96686ce994319280c1bd3a2eab994
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Wed Apr 5 18:46:48 2017 +0200

    Fix windows compilation

 CMakeLists.txt       | 63 ++++++++++++++++++++++++++--------------------------
 tests/CMakeLists.txt |  2 +-
 2 files changed, 33 insertions(+), 32 deletions(-)

commit dfde9a22cca9953af58a90ffa355592c5d4015ad
Merge: c2798ef0 aa3540e6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 11 12:42:35 2017 +0100

    Merge pull request #2526 from bjovke/my_work

    Problem: GCC 6 build fails due to misleading indentation and visually ambiguous if/else block ordering.

commit aa3540e6576154069a1f353e8d39211a29f9ce6a
Author: bjovke <bjovan@gmail.com>
Date:   Tue Apr 11 13:14:13 2017 +0200

    Problem: misleading indentation and visually ambiguous if/else block ordering.
    Solution: fixed indentation and if/else block.

 src/proxy.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit c2798ef0db2dece05b4631442037972a0d3cc6c4
Merge: d8152282 0b1402ff
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Apr 11 08:47:25 2017 +0300

    Merge pull request #2525 from swansontec/master

    RELICENSE: William Swanson

commit 0b1402ffc7be012c84b355b96fb9556b511bdf34
Author: William Swanson <swansontec@gmail.com>
Date:   Mon Apr 10 18:31:32 2017 -0700

    RELICENSE: William Swanson

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

commit d8152282464707a308e961822d8c0ca175682c70
Merge: 3b01410e c635ee7e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 10 20:09:07 2017 +0100

    Merge pull request #2523 from bjovke/my_working_branch

    Critical BUG introduced with #2518 fixed.

commit 3b01410edc0e26decf386555729411c8b84f0eff
Merge: 2df4e878 f89e3ee8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 10 19:13:48 2017 +0100

    Merge pull request #2524 from jakecobb/tcp_codestyle

    Problem: Bad style in tcp.hpp/cpp

commit c635ee7e9d26623f4f1c4ed021820451393d68fb
Author: bjovke <a@b>
Date:   Mon Apr 10 19:38:22 2017 +0200

    Critical BUG introduced with #2518 fixed.

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

commit f89e3ee854af4f4a9e1a980a86f7f3206b99211b
Author: Jake Cobb <jake.cobb@gmail.com>
Date:   Mon Apr 10 13:57:29 2017 -0400

    Problem: Bad style in tcp.hpp/cpp

    Solution: Add spaces between function
    name and parentheses.

 src/tcp.cpp | 38 +++++++++++++++++++-------------------
 src/tcp.hpp |  2 +-
 2 files changed, 20 insertions(+), 20 deletions(-)

commit 2df4e87849a3c8a61db1f0375debe232a58d48c6
Merge: af6e071f 9bee9d6d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 10 17:31:32 2017 +0100

    Merge pull request #2522 from bjovke/my_working_branch

    Another macro correction.

commit af6e071f656c25a318907d1f5493d68f32a70ada
Merge: d66c2508 cd39b00e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 10 17:27:50 2017 +0100

    Merge pull request #2521 from jakecobb/windows_tcptuning_consistency

    Consistency of Windows TCP tuning assertions

commit cd39b00e19e67c5476403ad8769c2e23ca9e3006
Author: Jake Cobb <william.cobb@varian.com>
Date:   Mon Apr 10 10:57:17 2017 -0400

    Consistency of Windows TCP tuning assertions

    Treat ECONNRESET, ENETRESET and EINTR as non-fatal
    failures in TCP Tuning on Windows as they are in the
    Unixes.  Also adds ENETRESET to the Unix list that was missing.

 src/tcp.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 9bee9d6d03ad73d7e5270a63ce66263ea8330e1b
Author: bjovke <bjovan@gmail.com>
Date:   Mon Apr 10 16:14:26 2017 +0200

    Another macro correction.

 src/proxy.cpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit d66c2508cf1b767f9255c80acb05cc6ab59b4733
Merge: 64807214 b6fb1f64
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 10 15:01:27 2017 +0100

    Merge pull request #2519 from bjovke/master

    Case found not covered in latest zmq::proxy() code.

commit b6fb1f64a558a5e3cd3046374e8597352940f933
Author: bjovke <bjovan@gmail.com>
Date:   Mon Apr 10 15:39:20 2017 +0200

    Macro correction.

 src/proxy.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 2bdd06ca7e3034dfdc1a26e833aa5b99df10077c
Author: bjovke <bjovan@gmail.com>
Date:   Mon Apr 10 14:36:30 2017 +0200

    Relicense file extensions corrected.

 RELICENSE/{JohanMabille => JohanMabille.md}   | 0
 RELICENSE/{StoianIvanov => StoianIvanov.md}   | 0
 RELICENSE/{eburkitt.txt => eburkitt.md}       | 0
 RELICENSE/{fidlej.txt => fidlej.md}           | 0
 RELICENSE/{michdpl-fox.txt => michdpl-fox.md} | 0
 5 files changed, 0 insertions(+), 0 deletions(-)

commit 64807214be524b8db7eeb2a5e9cfde8221585431
Merge: 545cacf5 6ecdd681
Author: BJovke <bjovan@gmail.com>
Date:   Mon Apr 10 14:33:43 2017 +0200

    Merge pull request #2520 from twhittock/patch-1

    Relicense: Tom Whittock grant

commit 6ecdd68153a5e71a28a10341e8b0069630fd631d
Author: twhittock <tom.whittock@gmail.com>
Date:   Mon Apr 10 13:28:10 2017 +0100

    Tom Whittock grant

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

commit 30cd655b3d6f0e159267595f0606421b8691c15c
Author: bjovke <bjovan@gmail.com>
Date:   Mon Apr 10 14:10:47 2017 +0200

    Case found not covered in latest zmq::proxy() code.

 src/proxy.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 44 insertions(+), 14 deletions(-)

commit 545cacf5e273080f0ba92cab90119355afb30471
Merge: 2b543e7a 26520fe1
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Apr 10 12:50:15 2017 +0300

    Merge pull request #2518 from bjovke/master

    Reworked zmq::proxy() for improved performance.

commit 26520fe15261795dpee592cd19fc0d9f9be6efc1
Author: bjovke <bjovan@gmail.com>
Date:   Mon Apr 10 11:35:08 2017 +0200

    zmq::socket_poller_t speed improvement for constructor and wait() function.

 src/socket_poller.cpp | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

commit a7977a5e84b27d817d186ee3606dpb9628ac1283
Author: bjovke <bjovan@gmail.com>
Date:   Mon Apr 10 11:34:24 2017 +0200

    Reworked zmq::proxy() for improved performance.

 src/proxy.cpp | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 278 insertions(+)

commit 3e55545ab0a369a2cbf5922a99e73b1e50d88a8a
Author: bjovke <bjovan@gmail.com>
Date:   Mon Apr 10 11:30:52 2017 +0200

    Code reformatting of proxy.cpp

 src/proxy.cpp | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

commit 2b543e7a2e0f55fe5f8017fd0d3e014a63474fef
Merge: 6853e3f9 c8d6b674
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 9 12:44:46 2017 +0100

    Merge pull request #2516 from meox/master

    adding licence

commit c8d6b6740274c368484043f77260ec99ed774b47
Author: Gian Lorenzo Meocci <glmeocci@gmail.com>
Date:   Sun Apr 9 13:25:52 2017 +0200

    adding licence

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

commit 6853e3f935b13698edp7e22de695be14fcce6384
Merge: 63e1984a ef8b0c60
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 9 10:24:50 2017 +0100

    Merge pull request #2514 from lytboris/freebsd-enable-ai_v4mapped

    re-enable AI_V4MAPPED on FreeBSD & DragonFlyBSD

commit 63e1984aa739b91c8fc4434f4c577a79de462faa
Merge: 6a41f278 2b1bbf16
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Apr 9 10:58:59 2017 +0200

    Merge pull request #2513 from lytboris/windows-assign-instead-compare

    fix a typo - assigment was used instead of comparison

commit ef8b0c60fc0be90a4adccdb8df3536afdf7dp242
Author: Boris Lytochkin <lytboris@yandex-team.ru>
Date:   Sun Apr 9 11:33:55 2017 +0300

    re-enable AI_V4MAPPED on FreeBSD & DragonFlyBSD
    Detect AI_V4MAPPED is not supported in getaddrinfo() on the fly
    and retry query. This issue was seen on ancient FreeBSD releases
    and current implementation does support this flag correctly.

 src/tcp_address.cpp | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

commit 2b1bbf1673b450d2c38107183867b640065d064f
Author: Boris Lytochkin <lytboris@yandex-team.ru>
Date:   Sun Apr 9 11:37:22 2017 +0300

    fix a typo - assigment was used instead of comparison

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

commit 6a41f278c5397e407c973e3a03aa8d7f954ab411
Merge: ac7d02e7 8bc92bde
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 8 22:27:20 2017 +0100

    Merge pull request #2510 from lytboris/ipv6-resolve_nic_name-fix

    choose IP(v6) address based on ipv6_ flag in a correct way

commit ac7d02e7b007178e8dc0df9950543b8f7aadp566
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Sat Apr 8 16:26:55 2017 -0500

    Relicense Grant (#2511)

    * Relicense Grant - Thomas Rodgers (rodgert@twrodgers.com)

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

commit 8bc92bde34cedea1e4f58cb45fb74647494aadc2
Author: Boris Lytochkin <lytboris@yandex-team.ru>
Date:   Sat Apr 8 23:00:23 2017 +0300

    choose IP(v6) address based on ipv6_ flag in a correct way

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

commit 9846da02dcd83eab865879699359d8bb3dcfea4c
Merge: e5583cb0 9dbf5791
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 6 21:14:22 2017 +0100

    Merge pull request #2507 from eburkitt/upmaster

    Add relicense grant for eburkitt

commit 9dbf5791fba2bd18dd4bea9cba1a63d0dc0e1725
Author: Evan Burkitt <evanb@edulinksys.com>
Date:   Thu Apr 6 13:05:42 2017 -0700

    Add relicense grant for eburkitt

 RELICENSE/eburkitt.txt | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit e5583cb04313893fc6899ebb37f6e15218a888dc
Merge: 238aa49d 98dc4a4e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 6 09:59:32 2017 +0100

    Merge pull request #2495 from bluca/relicense_typo

    Problem: typos in RELICENSE/ptroja.md

commit c7fea390059fea9125a82a17138aa90f14caa2ea
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Wed Apr 5 11:04:05 2017 +0200

    Fix asciidoc

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

commit 238aa49d55fcfe8bdd49b31b956fb8ce5897dcc6
Merge: 96e61d9f 9deb6b02
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 5 10:51:16 2017 +0100

    Merge pull request #2504 from herbrechtsmeier/location

    cmake: Use LOCATION property only for imported targets

commit 9deb6b023b25485d098387de19e8b5ad3fa3bc0e
Author: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Date:   Wed Apr 5 10:53:45 2017 +0200

    cmake: Use LOCATION property only for imported targets

    Newer CMake versions allow use of the LOCATION target property only for
    imported targets (CMP0026). Because the old package variables are only
    needed for backward compatibility after configuration they could be
    deactivated for super projects which build ZeroMQ together with other
    projects.

    Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

 ZeroMQConfig.cmake.in | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 96e61d9f95d66e2fcdc78e70d0ed4379ad58d3a8
Merge: 926d2d26 2f367bdd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 5 09:28:34 2017 +0100

    Merge pull request #2503 from herbrechtsmeier/msvc

    cmake: Remove build/msvc include path to remove file name clash

commit 2f367bddf79b4494a8443dp1b42d514134e5050d
Author: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Date:   Wed Apr 5 09:51:36 2017 +0200

    cmake: Remove build/msvc include path to remove file name clash

    Remove the `build/msvc` include path from the test project to fix a
    problem with the order of the include paths. Additionally remove the
    unnecessary `include_directories` from the master project.

    Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

 CMakeLists.txt       | 1 -
 tests/CMakeLists.txt | 1 -
 2 files changed, 2 deletions(-)

commit 926d2d267380756e67d2ad082068c2975eeab72c
Merge: ac92fb54 f1864212
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 5 08:31:40 2017 +0100

    Merge pull request #2493 from herbrechtsmeier/cmake

    CMake: Add cross compiling support and export targets to package config

commit ac92fb54a6960c8ac0dp079aaa4b73beb2505b64
Merge: cd753eed abbfed2b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 5 08:30:59 2017 +0100

    Merge pull request #2502 from herbrechtsmeier/appveyor

    appveyor: Use correct CURVE security options

commit abbfed2b65265f3a313431a195117cb1a6a2f00a
Author: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Date:   Wed Apr 5 08:53:00 2017 +0200

    appveyor: Use correct CURVE security options

    The AppVeyor build test options mismatch between command line options
    and CMake CURVE security options. Rename the command line options to
    the correct names.

    Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

 appveyor.yml | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit cd753eedb42e229dbdefe44daa258d4b96b43e92
Merge: 699b3a2f 0c2ffd69
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 4 21:19:29 2017 +0200

    Merge pull request #2501 from mauri-melato/master

    RELICENSE: mauri-melato grant

commit 0c2ffd692603cee3a4b432665addad3b6b07c716
Author: mauri-melato <maurizio.melato@nice-software.com>
Date:   Tue Apr 4 21:00:35 2017 +0200

    RELICENSE: Maurizio Melato grant

 RELICENSE/mauri-melato.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 84f83d6f2d3b239ca8bc5e5261873dp8e8e3ab1c
Merge: 5fe6ddfd 699b3a2f
Author: mauri-melato <maurizio.melato@nice-software.com>
Date:   Tue Apr 4 20:15:29 2017 +0200

    Merge pull request #1 from zeromq/master

    Update the mauri-melato libzmq fork

commit 699b3a2fd6fadc89e87808c5ad16f4b4cad05ccf
Merge: f5ba27fa d0427d13
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 4 19:08:30 2017 +0200

    Merge pull request #2500 from kobolog/kobolog/relicense

    Relicense

commit d0427d13af37801889a7f232f59f700192e5509a
Author: Andrey Sibiryov <kobolog@uber.com>
Date:   Tue Apr 4 13:03:47 2017 -0400

    Relicense.

 RELICENSE/kobolog.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit f1864212731036196532020442a1260f6593f21e
Author: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Date:   Tue Apr 4 10:34:28 2017 +0200

    cmake: Export targets to package config

    Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

 CMakeLists.txt        | 29 ++++++++++++++++++-----------
 ZeroMQConfig.cmake.in | 20 +++++++++++++++-----
 2 files changed, 33 insertions(+), 16 deletions(-)

commit 4e3e3f659da0f69f488f6d8936893ed673f4d99b
Author: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Date:   Tue Apr 4 10:32:29 2017 +0200

    cmake: Disable runtime checks while cross compiling

    Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

 CMakeLists.txt | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

commit 556de55e4cac1acf5dfe64f3a82f461926d9c049
Author: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Date:   Tue Apr 4 10:28:38 2017 +0200

    cmake: Use project specific source directory instead of top level source tree

    Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f5ba27fdpccad40d65454d988b36ecdf97b66c0a
Author: BJovke <bjovan@gmail.com>
Date:   Tue Apr 4 15:45:24 2017 +0200

    Relicense bjovke (#2498)

 RELICENSE/bjovke.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 61ba79a41c9e6f8c3b26dad301d0844d60e58cbd
Merge: 34588101 33db22c6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 4 14:16:54 2017 +0100

    Merge pull request #2497 from jakecobb/relicense

    RELICENSE: Jake Cobb grant

commit 33db22c6a53955b05483406eeba65edc654618b3
Author: Jake Cobb <jake.cobb@gmail.com>
Date:   Tue Apr 4 09:09:13 2017 -0400

    Relicensing permission for Jake Cobb

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

commit 34588101eeb8b93f0e659dp0416d8ec597726ac3
Merge: b26b1932 840f726b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 4 13:53:57 2017 +0100

    Merge pull request #2496 from bbdb68/master

    RELICENSE : Bruno Bodin grant

commit 840f726b8b61fb8f5f4d1ac3a97f321700a014ca
Author: Bruno Bodin <bruno.bodin@cea.fr>
Date:   Tue Apr 4 14:45:03 2017 +0200

    RELICENSE : Bruno Bodin grant

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

commit 98dc4a4ef66e7fc4c26ec08612e57879b46be712
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 4 13:10:54 2017 +0100

    Problem: typos in RELICENSE/ptroja.md

    Solution: fill in the missing fields

 RELICENSE/ptroja.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b26b1932cb44d80eaf987ef3c4152fb445d9c656
Author: Piotr Trojanek <ptroja@users.noreply.github.com>
Date:   Tue Apr 4 13:07:57 2017 +0100

    RELICENSE: Piotr Trojanek grant (#2381)

 RELICENSE/ptroja.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 26513b70d2c9f1e1d2b2516ceb971c86b985a17e
Merge: 5d5263ed 319eb27f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 4 11:54:38 2017 +0100

    Merge pull request #2494 from bjovke/master

    Unnecessary dynamic memory allocation in zmq_poller_poll()

commit 319eb27f19bf57ff3202c2d2b4da9a384d07d83f
Author: bjovke <bjovan@gmail.com>
Date:   Tue Apr 4 11:51:59 2017 +0200

    Unnecessary dynamic memory allocation for zmq::socket_poller_t in zmq_poller_poll(). Fixed by allocating zmq::socket_poller_t from stack.

 src/zmq.cpp | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

commit 5d5263ed8a88f6f4f2dcaa4f102874cd3604a9ad
Author: Jake Cobb <jake.cobb@gmail.com>
Date:   Tue Apr 4 04:55:26 2017 -0400

    Prevent DOS by asserts in TCP tuning (#2492)

    * Prevent DOS by asserts in TCP tuning

    -Propagates socket option errors from the
    tuning functions to the callers.
    -Asserts a subset of error conditions during tuning,
    excluding external network causes.
    -Checks tuning results in 3 call sites and treats
    them like failures to connect, accept, etc.

    * Fix variable name

    * Remove lambda requiring C++11

 src/socks_connecter.cpp |  10 ++--
 src/tcp.cpp             | 121 ++++++++++++++++++++++++++++++++++++------------
 src/tcp.hpp             |  13 ++++--
 src/tcp_connecter.cpp   |  14 ++++--
 src/tcp_listener.cpp    |  12 +++--
 5 files changed, 123 insertions(+), 47 deletions(-)

commit 1d58a00992fa3f2930bb8c6602db600e24a13756
Author: bbdb68 <bbdb68@users.noreply.github.com>
Date:   Tue Apr 4 10:50:33 2017 +0200

    Problem: no windows UWP support

    * add define for windows/UWP

    * prevent issue with COM references

    * gettickcount not available on uwp

    * add compiler definitions

    * add convenitnece cmake file

    * brute force uwp compilation

    * fix compiler version

    * cosmetics

 CMakeLists.txt               |  4 ++++
 INSTALL                      |  6 ++++++
 builds/cmake/platform.hpp.in |  1 +
 src/clock.cpp                | 11 ++++++++++-
 src/signaler.cpp             |  8 ++++----
 src/tcp_address.cpp          | 10 +++++++---
 src/tcp_listener.cpp         |  4 ++--
 src/windows.hpp              |  6 +++++-
 8 files changed, 39 insertions(+), 11 deletions(-)

commit e224cc90610e9ad262d4f357d0d0a1df3971735b
Merge: 9e863414 dfdd84fc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Apr 1 22:59:18 2017 +0200

    Merge pull request #2490 from lodagro/master

    Relicense: Wouter Overmeire (lodagro)

commit 9e863414836404b5ca84de3e869ccd41fa01fa73
Merge: c5acd1bd e1b9dbe5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Apr 1 22:58:46 2017 +0200

    Merge pull request #2489 from reunanen/relicense

    RELICENSE: Juha Reunanen / Tomaattinen / Outotec grant

commit dfdd84fcd4c35a0bfe2f9ccd324e2893c531abff
Author: Wouter Overmeire <lodagro@gmail.com>
Date:   Sat Apr 1 22:06:11 2017 +0200

    Relicense: Wouter Overmeire (lodagro)

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

commit e1b9dbe5cc3dp090cdda442f61b5692acb5b8315
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Sat Apr 1 09:29:22 2017 +0300

    RELICENSE: Juha Reunanen / Tomaattinen / Outotec grant

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

commit c5acd1bd7004922e2fcebb8b57d15d12d90487fd
Merge: d91cd414 7952c584
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Mar 31 08:39:51 2017 +0300

    Merge pull request #2486 from evoskuil/master

    Problem: msg_t leaks/unhandled failures (and bad style).

commit 7952c584b6f09dp8aa60629631485a8524f4a25b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 30 14:45:48 2017 -0700

    Problem: xpub test has broken style (missing whitespace).

 tests/test_xpub_welcome_msg.cpp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 1dd9cac24d90c6df57341a463792b5452f2b0291
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 30 14:45:40 2017 -0700

    Problem: xpub_t.xattach_pipe no handle msg.copy or pipe_t.write fails.

 src/xpub.cpp | 65 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 33 insertions(+), 32 deletions(-)

commit 6436bc51e694dbaa8a270d7ee13b7677f8c8d098
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 30 14:06:39 2017 -0700

    Problem: sub.xsetsockopt leaks message (0..n bytes) payload on fail.

 src/sub.cpp | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

commit 1b79da0d7dfe1bfcfe20579d557a760cc103f08b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 30 13:46:24 2017 -0700

    Problem: proxy leaks one message payload (0..n bytes) on close.

 src/proxy.cpp | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

commit 4ea7d0180388e5c55f317dbd3e8e511dd2c55187
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 30 13:46:00 2017 -0700

    Problem: send_failure() util name undergeneralized (for read success).

 src/curve_server.cpp   | 30 +++++++++++++++---------------
 src/gssapi_server.cpp  | 30 +++++++++++++++---------------
 src/msg.hpp            | 14 ++++++++------
 src/null_mechanism.cpp | 28 ++++++++++++++--------------
 src/plain_server.cpp   | 32 ++++++++++++++++----------------
 5 files changed, 68 insertions(+), 66 deletions(-)

commit 8c165ad1d2c26d3fecb2bf8fe81482ca61336091
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 30 13:43:57 2017 -0700

    Problem: excess whitespace (style).

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

commit d91cd4148ecd9ce09c8a6095fd797bdcfc7e5aad
Merge: f1bbb6fc 77562f70
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Mar 30 20:50:14 2017 +0200

    Merge pull request #2485 from zeromq/relicense

    License grant

commit 77562f7027c2e15b0a4d217a5979e24f981da745
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Thu Mar 30 20:45:00 2017 +0200

    License grant

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

commit f1bbb6fc0a59b6631dcc61a4397b2929871919ba
Merge: 7ce68da2 d3ca2350
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Mar 30 20:26:17 2017 +0300

    Merge pull request #2484 from bluca/address_sanitizer

    Problem: lack of out-of-bound memory checks in tests

commit d3ca23502fd477e8dbfd477100a19dp1a3a3481d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 30 15:22:50 2017 +0100

    Problem: lack of out-of-bound memory checks in tests

    Solution: add a CI build run with GCC's Address Sanitizer enabled.
    This compiler flag will make the unit test programs abort if it
    detects errors such as out-of-bound memory access or use-after-free.

 .travis.yml | 2 ++
 ci_build.sh | 5 +++++
 2 files changed, 7 insertions(+)

commit 7ce68da2126ed6c8494586c809d4079c9a921aaa
Merge: 9c6fb099 0bfd747a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 30 10:48:38 2017 +0100

    Merge pull request #2482 from evoskuil/master

    Problem: insufficient error handling relative to zap_connect.

commit 0bfd747af803f5dee34c5afc269cf087713c2870
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Mar 29 17:43:25 2017 -0700

    Problem: heartbeats test has invalid curve design; xplat and style probs.

 tests/test_heartbeats.cpp | 123 ++++++++++++++++++----------------------------
 1 file changed, 48 insertions(+), 75 deletions(-)

commit a014e77ef74c5ad4bafe412a3e0b541bcde92aa5
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Mar 29 16:48:40 2017 -0700

    Problem: leaks on send_zap_request fail, use of goto idiom is fragile.

 src/curve_server.cpp   | 43 +++++++++++++++++++------------------------
 src/gssapi_server.cpp  | 43 +++++++++++++++++++------------------------
 src/msg.hpp            | 15 +++++++++++++++
 src/null_mechanism.cpp | 41 ++++++++++++++++++-----------------------
 src/plain_server.cpp   | 45 ++++++++++++++++++++-------------------------
 5 files changed, 91 insertions(+), 96 deletions(-)

commit 29a5c98d8370395a10d4d31497b4dc542168e7ea
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Mar 29 14:31:21 2017 -0700

    Problem: zap_connect() asserts on write fail (yet returns fail codes).

 src/session_base.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit a0ccdc866efbac5889d8872c7f27c53e9c0a7c5b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Mar 29 14:30:00 2017 -0700

    Problem: secure servers ignore zap_connect failre code and set ready.

 src/curve_server.cpp  | 30 ++++++++++++++----------------
 src/gssapi_server.cpp | 27 ++++++++++++++-------------
 src/plain_server.cpp  | 30 ++++++++++++++----------------
 3 files changed, 42 insertions(+), 45 deletions(-)

commit 9c6fb09929777a68f1adf88b85ab924ed2dd30bb
Merge: a6d03df3 6c1fb4d0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 29 19:58:54 2017 +0100

    Merge pull request #2478 from evoskuil/master

    Problem: assert used for ZAP error handling aborts process.

commit 6c1fb4d0b8099a0cf00b0446050155f555f83dc0
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Mar 29 10:44:10 2017 -0700

    Problem: NuGet pacakge out of date.

 builds/msvc/resource.rc         | Bin 4650 -> 4650 bytes
 packaging/nuget/package.config  |   2 +-
 packaging/nuget/package.nuspec  |  50 ++++++++++++++++++++--------------------
 packaging/nuget/package.targets |  40 ++++++++++++++++----------------
 4 files changed, 46 insertions(+), 46 deletions(-)

commit f44300cb000933117e827583cc262d68647edp3b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Mar 29 10:43:56 2017 -0700

    Problem: assert used for ZAP error handling aborts process.

 src/curve_server.cpp   | 40 ++++++++++++++++++++++++++--------------
 src/curve_server.hpp   |  2 +-
 src/gssapi_server.cpp  | 32 ++++++++++++++++++++++----------
 src/gssapi_server.hpp  |  2 +-
 src/null_mechanism.cpp | 31 +++++++++++++++++++++----------
 src/null_mechanism.hpp |  2 +-
 src/plain_server.cpp   | 37 +++++++++++++++++++++++++------------
 src/plain_server.hpp   |  4 ++--
 src/session_base.cpp   |  5 +----
 9 files changed, 100 insertions(+), 55 deletions(-)

commit a6d03df37d2388867f8753e56e01750a3ccc1125
Merge: 84d94b4f a86751ba
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Mar 29 07:30:37 2017 +0200

    Merge pull request #2477 from zeromq/jemc-relicense

    Problem: No relicense file for jemc contributions.

commit a86751ba511eb3ad6be8b56085aabf01c57f806f
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Tue Mar 28 20:29:52 2017 -0700

    Problem: No relicense file for jemc contributions.

    Solution: Add relicense file.

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

commit 84d94b4f431a05ef5b0e1e88a4b4866ac9a5f7cc
Merge: 8e2d2d47 5cc487cb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 28 19:02:34 2017 +0100

    Merge pull request #2475 from chrisstaite/master

    Relicense grant for chrisstaite

commit 5cc487cb8ade95f6a964661540b0f2a12441aa95
Author: Chris Staite <chris@yourdreamnet.co.uk>
Date:   Tue Mar 28 19:00:14 2017 +0100

    Relicense grant for chrisstaite

 RELICENSE/chrisstaite.md | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 8e2d2d47c652e4e91c06970d4e88375f19ddfb33
Merge: 815f4126 6d739f4a
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Mar 28 07:59:18 2017 +0300

    Merge pull request #2472 from linville/master

    RELICENSE: Aaron Linville grant

commit 6d739f4ac7f922e6288f0c9a9423d30c94887611
Author: Aaron Linville <aaron@linville.org>
Date:   Mon Mar 27 22:13:51 2017 -0400

    RELICENSE: Aaron Linville grant

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

commit 815f4126e4b5a0c56205badb583d6a3f10882c27
Merge: 182cb0ea 33e29bd3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 27 23:22:07 2017 +0100

    Merge pull request #2471 from t-b/improve_oom_handling

    Improve oom handling

commit 33e29bd3834b9af9886e048cffee31c18c168132
Author: Thomas Braun <thomas.braun@byte-physics.de>
Date:   Mon Mar 27 22:57:40 2017 +0200

    Problem: Out of memory condition not always checked

    Solution: Use the appropriate assertion macro.

 src/gssapi_mechanism_base.cpp | 2 ++
 src/norm_engine.cpp           | 1 +
 src/req.cpp                   | 2 ++
 src/signaler.cpp              | 2 ++
 src/socket_base.cpp           | 5 +++++
 src/stream_engine.cpp         | 4 ++++
 src/zmq_utils.cpp             | 1 +
 7 files changed, 17 insertions(+)

commit fe9f6b283759c4aa19bcbffc66dc5a45eff292fe
Author: Thomas Braun <thomas.braun@byte-physics.de>
Date:   Mon Mar 27 22:53:57 2017 +0200

    Problem: GSSAPI check for Out of memory is done conditionally

    Solution: Do it unconditionally.

 src/gssapi_mechanism_base.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 19f30f7926b144142663dff5d7312bd3b9bb7d57
Author: Thomas Braun <thomas.braun@byte-physics.de>
Date:   Mon Mar 27 22:47:42 2017 +0200

    Problem: throwing version of new called

    Solution: Pass (std::nothrow) as done in all other places.

 src/norm_engine.cpp | 3 ++-
 src/socket_base.cpp | 7 ++++---
 src/zmq.cpp         | 2 +-
 src/zmq_utils.cpp   | 5 +++--
 4 files changed, 10 insertions(+), 7 deletions(-)

commit 634c69abd355ea9f8d8cdf4dd63bf4897d911dc3
Author: Thomas Braun <thomas.braun@byte-physics.de>
Date:   Mon Mar 27 22:42:38 2017 +0200

    Add relicense statement

 RELICENSE/t-b.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 182cb0ea061839479fe99612fc7dcf4193dbd48a
Merge: 14bb2693 1f74979e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 27 19:31:26 2017 +0200

    Merge pull request #2470 from ianbarber/master

    RELICENSE: Ian Barber grant

commit 1f74979e8a844dd09106c4b16b2d22100d259813
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Mar 27 10:26:27 2017 -0700

    Relicense grant for ianbarber

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

commit 14bb2693dbd1a75fcc9b2d0acd80c13f586dbd2a
Merge: 57440427 38e3c120
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 27 14:34:33 2017 +0100

    Merge pull request #2469 from madebr/relicense

    Problem: need to relicense libzmq

commit 38e3c120dfe7037db981461ea4bb565796ba0cb3
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Mon Mar 27 15:10:19 2017 +0200

    RELICENSE: Anonymous Maarten grant

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

commit 574404274164a1fc1be733e2044ed0d636165bdp
Merge: 159b39eb 0a6f540b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 26 22:21:48 2017 +0100

    Merge pull request #2468 from goodfella/goodfella-relicensing

    RELICENSE: Nick Guiffrida grant

commit 0a6f540bfe8da0b75268703d0b32627c65f61263
Author: nick <goodfella005@gmail.com>
Date:   Sun Mar 26 13:53:35 2017 -0700

    RELICENSE: Nick Guiffrida grant

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

commit 159b39eb778d78710d777900ba28097e03dc5f1b
Merge: 8cf64c21 31a3ead6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 26 20:49:23 2017 +0200

    Merge pull request #2467 from bjoto/master

    RELICENSE: Björn Töpel / bjoto

commit 31a3ead6e4c13eb1ed82a737764e80e13cfb56f3
Author: Bjorn Topel <bjorn.topel@gmail.com>
Date:   Sun Mar 26 20:40:05 2017 +0200

    RELICENSE: Björn Töpel / bjoto

 RELICENSE/bjorntopel.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 8cf64c2190b26ff72ab8f59ba17fff3fb890e755
Merge: 7a4c8024 616fbeff
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 26 10:12:32 2017 +0200

    Merge pull request #2466 from evoskuil/master

    Problem: insufficient use of const complicates calling.

commit 616fbeff2111dp453f9d59ade696c15f1cab4cb1
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sat Mar 25 23:49:23 2017 -0700

    Problem: insufficient use of const complicates calling.

 include/zmq.h | 8 ++++----
 src/msg.cpp   | 6 +++---
 src/msg.hpp   | 6 +++---
 src/zmq.cpp   | 8 ++++----
 4 files changed, 14 insertions(+), 14 deletions(-)

commit 7a4c802489e950c1e999ccfb1832d8704f7ab300
Merge: fd513470 feb8e868
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 26 09:11:12 2017 +0200

    Merge pull request #2465 from evoskuil/master

    Problem: typo in comment.

commit fd513470c8e0140da44ca0da41b56f99d43d985b
Merge: e9e2f8d9 be94f911
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 25 23:28:32 2017 +0000

    Merge pull request #2464 from ulikoehler/relicense

    Added relicense permit

commit be94f91148dbf6a4cedb0c8e8c84b3f76cc33961
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sat Mar 25 23:58:13 2017 +0100

    added czmq to permission as well

 RELICENSE/ulikoehler.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e1cc4cde1e57cbf645b41bb5efc9eee6271694fb
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sat Mar 25 23:55:04 2017 +0100

    Added relicense permit

 RELICENSE/ulikoehler.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit feb8e868dfb68c857e0f272d98b09be9c548711f
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sat Mar 25 13:51:18 2017 -0700

    Problem: typo in comment.

 src/msg.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e9e2f8d9edp31c9767e2e02471f8acc63f8305e7
Merge: 99007399 754e9f6d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Mar 25 17:27:46 2017 +0100

    Merge pull request #2463 from tSed/sma/relicensing

    RELICENSE: Samuel Martin grant

commit 754e9f6d88c8f72441482f42104075940ec5cc96
Author: Samuel Martin <s.martin49@gmail.com>
Date:   Sat Mar 25 17:07:38 2017 +0100

    RELICENSE: Samuel Martin grant

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

commit 99007399f0560adp367bb3cbc792c6283b24c9fc
Author: mkluwe <mkluwe@gmail.com>
Date:   Fri Mar 24 16:24:06 2017 +0100

    Relicense (#2462)

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

commit 66accc05f5de7154d111092526164c2f09b978f9
Author: Brian Buchanan <bwbuchanan@users.noreply.github.com>
Date:   Fri Mar 24 06:50:03 2017 -0500

    Relicense (#2456)

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

commit 28cdd111db63ea49cb4e7314cb9d6d06d1cb8ca7
Author: Nikolay Amiantov <ab@fmap.me>
Date:   Fri Mar 24 14:49:47 2017 +0300

    Allow relicense (#2458)

 RELICENSE/abbradar.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 9221b600bb1b0d26ca238a8ef5ff1de3cb9b002b
Author: Michal Vyskocil <michal.vyskocil@gmail.com>
Date:   Fri Mar 24 12:49:28 2017 +0100

    Problem: need to relicense libzmq (#2459)

    Solution; add vyskocilm.md

 RELICENSE/vyskocilm.md | 7 +++++++
 1 file changed, 7 insertions(+)

commit 771b7c6c3bee11e4cd7485916c3c5df4026ab28c
Author: mditzel <maarten.ditzel@gmail.com>
Date:   Fri Mar 24 12:49:07 2017 +0100

    RELICENSE: Maarten Ditzel (#2460)

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

commit 85165bad6b62d57cfaa220649457aa4ccd8f7967
Author: Jim Klimov <jimklimov@gmail.com>
Date:   Fri Mar 24 12:48:50 2017 +0100

    Problem: need to relicense libzmq (#2461)

    Solution: add jimklimov.md for my part

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

commit 3f80657c247bf14ba29d6de3cf8dpea8d0f1bc87
Merge: dbd83462 72714ad2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 24 11:47:44 2017 +0000

    Merge pull request #2457 from evoskuil/master

    Problem: VS projects are drifting and require sodium.

commit 72714ad297e81d3d42b2763c528e6faaa86bc882
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Mar 24 01:47:22 2017 -0700

    Problem: no nuget package for 4.2.2

 builds/msvc/resource.rc         | Bin 4642 -> 4650 bytes
 packaging/nuget/package.config  |   4 ++--
 packaging/nuget/package.nuspec  |  50 ++++++++++++++++++++--------------------
 packaging/nuget/package.targets |  40 ++++++++++++++++----------------
 4 files changed, 47 insertions(+), 47 deletions(-)

commit f2d7b2cad8062c0a133ac36024e9bd08fb0a3ba0
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 23 22:29:19 2017 -0700

    Problem: curve not enabled by default in Visual Studio.

 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj | 3 +++
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj | 3 +++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   | 3 +++
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   | 3 +++
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj | 3 +++
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj | 3 +++
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj | 3 +++
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj | 3 +++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   | 3 +++
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   | 3 +++
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj | 3 +++
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj | 3 +++
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj | 3 +++
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj | 3 +++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   | 3 +++
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   | 3 +++
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj | 3 +++
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj | 3 +++
 builds/msvc/vs2015/inproc_lat/inproc_lat.vcxproj | 3 +++
 builds/msvc/vs2015/inproc_thr/inproc_thr.vcxproj | 3 +++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2015/local_lat/local_lat.vcxproj   | 3 +++
 builds/msvc/vs2015/local_thr/local_thr.vcxproj   | 3 +++
 builds/msvc/vs2015/remote_lat/remote_lat.vcxproj | 3 +++
 builds/msvc/vs2015/remote_thr/remote_thr.vcxproj | 3 +++
 builds/msvc/vs2017/inproc_lat/inproc_lat.vcxproj | 3 +++
 builds/msvc/vs2017/inproc_thr/inproc_thr.vcxproj | 3 +++
 builds/msvc/vs2017/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2017/local_lat/local_lat.vcxproj   | 3 +++
 builds/msvc/vs2017/local_thr/local_thr.vcxproj   | 3 +++
 builds/msvc/vs2017/remote_lat/remote_lat.vcxproj | 3 +++
 builds/msvc/vs2017/remote_thr/remote_thr.vcxproj | 3 +++
 35 files changed, 105 insertions(+)

commit 91a01f447d8bf8593a802af093463dce30535892
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 23 22:28:45 2017 -0700

    Problem: libsodium linked by default in Visual Studio projs.

 builds/msvc/vs2010/inproc_lat/inproc_lat.props | 6 +++---
 builds/msvc/vs2010/inproc_thr/inproc_thr.props | 6 +++---
 builds/msvc/vs2010/libzmq/libzmq.props         | 6 +++---
 builds/msvc/vs2010/local_lat/local_lat.props   | 6 +++---
 builds/msvc/vs2010/local_thr/local_thr.props   | 6 +++---
 builds/msvc/vs2010/remote_lat/remote_lat.props | 6 +++---
 builds/msvc/vs2010/remote_thr/remote_thr.props | 6 +++---
 builds/msvc/vs2012/inproc_lat/inproc_lat.props | 6 +++---
 builds/msvc/vs2012/inproc_thr/inproc_thr.props | 6 +++---
 builds/msvc/vs2012/libzmq/libzmq.props         | 6 +++---
 builds/msvc/vs2012/local_lat/local_lat.props   | 6 +++---
 builds/msvc/vs2012/local_thr/local_thr.props   | 6 +++---
 builds/msvc/vs2012/remote_lat/remote_lat.props | 6 +++---
 builds/msvc/vs2012/remote_thr/remote_thr.props | 6 +++---
 builds/msvc/vs2013/inproc_lat/inproc_lat.props | 6 +++---
 builds/msvc/vs2013/inproc_thr/inproc_thr.props | 6 +++---
 builds/msvc/vs2013/libzmq/libzmq.props         | 6 +++---
 builds/msvc/vs2013/local_lat/local_lat.props   | 6 +++---
 builds/msvc/vs2013/local_thr/local_thr.props   | 6 +++---
 builds/msvc/vs2013/remote_lat/remote_lat.props | 6 +++---
 builds/msvc/vs2013/remote_thr/remote_thr.props | 6 +++---
 builds/msvc/vs2015/inproc_lat/inproc_lat.props | 6 +++---
 builds/msvc/vs2015/inproc_thr/inproc_thr.props | 6 +++---
 builds/msvc/vs2015/libzmq/libzmq.props         | 6 +++---
 builds/msvc/vs2015/local_lat/local_lat.props   | 6 +++---
 builds/msvc/vs2015/local_thr/local_thr.props   | 6 +++---
 builds/msvc/vs2015/remote_lat/remote_lat.props | 6 +++---
 builds/msvc/vs2015/remote_thr/remote_thr.props | 6 +++---
 builds/msvc/vs2017/inproc_lat/inproc_lat.props | 6 +++---
 builds/msvc/vs2017/inproc_thr/inproc_thr.props | 6 +++---
 builds/msvc/vs2017/libzmq/libzmq.props         | 6 +++---
 builds/msvc/vs2017/local_lat/local_lat.props   | 6 +++---
 builds/msvc/vs2017/local_thr/local_thr.props   | 6 +++---
 builds/msvc/vs2017/remote_lat/remote_lat.props | 6 +++---
 builds/msvc/vs2017/remote_thr/remote_thr.props | 6 +++---
 35 files changed, 105 insertions(+), 105 deletions(-)

commit dbb5e726381850a30b01280c133ffe93becba3fe
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 23 21:32:48 2017 -0700

    Problem: Visual Studio projects intertwined and drifting.

 builds/msvc/vs2010/inproc_lat/inproc_lat.props   | 49 +++++++++++++++
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj |  4 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.props   | 49 +++++++++++++++
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj |  4 +-
 builds/msvc/vs2010/libsodium.import.props        | 52 ++++++++++++++++
 builds/msvc/vs2010/libsodium.import.xml          | 17 ++++++
 builds/msvc/vs2010/libzmq.import.props           | 64 ++++++++++++++++++++
 builds/msvc/vs2010/libzmq.import.xml             | 49 +++++++++++++++
 builds/msvc/vs2010/libzmq/libzmq.props           | 76 ++++++++++++++++++++++++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2010/libzmq/libzmq.xml             | 40 +++++++++++++
 builds/msvc/vs2010/local_lat/local_lat.props     | 49 +++++++++++++++
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   |  6 +-
 builds/msvc/vs2010/local_thr/local_thr.props     | 49 +++++++++++++++
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   |  4 +-
 builds/msvc/vs2010/remote_lat/remote_lat.props   | 49 +++++++++++++++
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj |  6 +-
 builds/msvc/vs2010/remote_thr/remote_thr.props   | 49 +++++++++++++++
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj |  6 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.props   | 49 +++++++++++++++
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj |  4 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.props   | 49 +++++++++++++++
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj |  4 +-
 builds/msvc/vs2012/libsodium.import.props        | 31 +++++++---
 builds/msvc/vs2012/libsodium.import.xml          | 17 ++++++
 builds/msvc/vs2012/libzmq.import.props           | 64 ++++++++++++++++++++
 builds/msvc/vs2012/libzmq.import.xml             | 49 +++++++++++++++
 builds/msvc/vs2012/libzmq/libzmq.props           | 76 ++++++++++++++++++++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         |  4 +-
 builds/msvc/vs2012/libzmq/libzmq.xml             | 40 +++++++++++++
 builds/msvc/vs2012/local_lat/local_lat.props     | 49 +++++++++++++++
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   |  6 +-
 builds/msvc/vs2012/local_thr/local_thr.props     | 49 +++++++++++++++
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   |  4 +-
 builds/msvc/vs2012/remote_lat/remote_lat.props   | 49 +++++++++++++++
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj |  6 +-
 builds/msvc/vs2012/remote_thr/remote_thr.props   | 49 +++++++++++++++
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj |  6 +-
 builds/msvc/vs2013/inproc_lat/inproc_lat.props   | 49 +++++++++++++++
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj |  4 +-
 builds/msvc/vs2013/inproc_thr/inproc_thr.props   | 49 +++++++++++++++
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj |  4 +-
 builds/msvc/vs2013/libsodium.import.props        | 52 ++++++++++++++++
 builds/msvc/vs2013/libsodium.import.xml          | 17 ++++++
 builds/msvc/vs2013/libzmq.import.props           | 64 ++++++++++++++++++++
 builds/msvc/vs2013/libzmq.import.xml             | 49 +++++++++++++++
 builds/msvc/vs2013/libzmq/libzmq.props           | 76 ++++++++++++++++++++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2013/libzmq/libzmq.xml             | 40 +++++++++++++
 builds/msvc/vs2013/local_lat/local_lat.props     | 49 +++++++++++++++
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   |  6 +-
 builds/msvc/vs2013/local_thr/local_thr.props     | 49 +++++++++++++++
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   |  4 +-
 builds/msvc/vs2013/remote_lat/remote_lat.props   | 49 +++++++++++++++
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj |  6 +-
 builds/msvc/vs2013/remote_thr/remote_thr.props   | 49 +++++++++++++++
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj |  6 +-
 builds/msvc/vs2015/inproc_lat/inproc_lat.vcxproj |  4 +-
 builds/msvc/vs2015/inproc_thr/inproc_thr.vcxproj |  4 +-
 builds/msvc/vs2015/libsodium.import.props        | 52 ++++++++++++++++
 builds/msvc/vs2015/libsodium.import.xml          | 17 ++++++
 builds/msvc/vs2015/libzmq.import.props           | 16 ++---
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2015/local_lat/local_lat.vcxproj   |  6 +-
 builds/msvc/vs2015/local_thr/local_thr.vcxproj   |  4 +-
 builds/msvc/vs2015/remote_lat/remote_lat.props   |  8 +--
 builds/msvc/vs2015/remote_lat/remote_lat.vcxproj |  6 +-
 builds/msvc/vs2015/remote_thr/remote_thr.props   |  6 +-
 builds/msvc/vs2015/remote_thr/remote_thr.vcxproj |  6 +-
 builds/msvc/vs2017/inproc_lat/inproc_lat.vcxproj |  5 +-
 builds/msvc/vs2017/inproc_thr/inproc_thr.vcxproj |  5 +-
 builds/msvc/vs2017/libsodium.import.props        | 52 ++++++++++++++++
 builds/msvc/vs2017/libsodium.import.xml          | 17 ++++++
 builds/msvc/vs2017/libzmq.import.props           |  2 +-
 builds/msvc/vs2017/libzmq/libzmq.vcxproj         |  5 +-
 builds/msvc/vs2017/local_lat/local_lat.vcxproj   |  5 +-
 builds/msvc/vs2017/local_thr/local_thr.vcxproj   |  5 +-
 builds/msvc/vs2017/remote_lat/remote_lat.props   |  8 +--
 builds/msvc/vs2017/remote_lat/remote_lat.vcxproj |  5 +-
 builds/msvc/vs2017/remote_thr/remote_thr.props   |  6 +-
 builds/msvc/vs2017/remote_thr/remote_thr.vcxproj |  5 +-
 81 files changed, 1987 insertions(+), 117 deletions(-)

commit dbd834622554822362bab00b5bc77b769ba1e4aa
Merge: b906f48f 779561fe
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 24 00:50:53 2017 +0000

    Merge pull request #2455 from willstrang/master

    RELICENSE: William P Strang grant

commit 779561fea11a541e5cff546e2ed2f35220734588
Author: Will Strang <william.p.strang@gmail.com>
Date:   Thu Mar 23 20:14:50 2017 -0400

    RELICENSE: William P Strang grant

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

commit b906f48f27d0e9cbaf26c6b93d437f81f8dp6115
Merge: 6622e162 068c8152
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 23 21:30:19 2017 +0000

    Merge pull request #2454 from evoskuil/master

    Problem: __STDC_LIMIT_MACROS before PCH causes VC++ warning.

commit 068c815224254c4d1ab457794ff436bca63ad6b4
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 23 13:58:26 2017 -0700

    Problem: __STDC_LIMIT_MACROS before PCH causes VC++ warning.

 src/precompiled.hpp | 2 ++
 src/zmq_utils.cpp   | 4 +---
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 6622e1624518dfa9dpedpb2a44aa0e0e329517d0
Merge: ded6c84b af0320f7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 23 19:08:35 2017 +0000

    Merge pull request #2451 from evoskuil/master

    Problem: implicit cast from size_t to int implies data loss.

commit af0320f786ed8c4551c66ef008774d073b317446
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Mar 23 11:38:51 2017 -0700

    Problem: implicit cast from size_t to int implies data loss.

 src/socket_poller.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ded6c84b38ebaa8e641d697ea1d1acdp00359676
Merge: 773b8ff4 c7962407
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Mar 23 16:33:42 2017 +0200

    Merge pull request #2450 from pijyoi/master

    RELICENSE: KIU Shueng Chuan

commit c796240792d73a11210258dd90cfb4920b9ba293
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Thu Mar 23 22:28:50 2017 +0800

    RELICENSE: KIU Shueng Chuan

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

commit 773b8ff4b1e7a31dp19b73537dc6d092e1dp22d4
Merge: ed6fd03f d468e7a6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Mar 23 13:28:17 2017 +0100

    Merge pull request #2449 from sdrsdr/sdrsdr-relicense-grant

    Relicense Grant

commit d468e7a6c27a4af2391f986274f89f60b2f79ece
Author: Stoian Ivanov <sdr@mail.bg>
Date:   Thu Mar 23 13:50:38 2017 +0200

    Relicense Grant

 RELICENSE/StoianIvanov | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit ed6fd03f8815b80c5ba267da89f78b3be9f39c9b
Merge: f82ef5a2 6a87d20c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 23 10:53:44 2017 +0000

    Merge pull request #2448 from chickenkiller/master

    RELICENSE: License grant by Lionel Orry

commit 6a87d20c1984ded8dcd10179a4d79bede2b4dpc1
Author: Lionel Orry <lionel.orry@gmail.com>
Date:   Thu Mar 23 11:48:55 2017 +0100

    RELICENSE: Lionel Orry grant

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

commit f82ef5a207c70891465ec4bfcf8a19381729c8f1
Merge: 7c584142 a4e90f6f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 23 10:24:04 2017 +0000

    Merge pull request #2447 from somdoron/gitfoxi-relicense

    relicense michdpl fox

commit a4e90f6fb85d12723e55e41eba3763c4d9403ad3
Author: Michdpl Fox <415fox@gmail.com>
Date:   Mon Mar 20 17:44:46 2017 -0700

    relicense michdpl fox

 RELICENSE/michdpl-fox.txt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 7c584142c5d5fdf6a3efd0dp4f64c7c44dcab1b1
Merge: 04b96adf a898cd33
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 22 18:02:39 2017 +0000

    Merge pull request #2446 from Hugne/master

    Relicense: Erik Hugne

commit a898cd3359584bb317f96c99d137a707c1ecbe72
Author: Erik Hugne <erik.hugne@gmail.com>
Date:   Wed Mar 22 18:48:33 2017 +0100

    Relicense: Erik Hugne

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

commit 04b96adfda39e84fdf40ce6f79b2f935381d960a
Merge: d0ebd037 c6409b56
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 22 09:56:19 2017 +0000

    Merge pull request #2445 from reza-ebrahimi/master

    Relicense: Reza Ebrahimi <reza-ebrahimi>

commit c6409b56a903096f8b1a954eb428766f00d5c94c
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Wed Mar 22 12:21:16 2017 +0330

    Relicense: Reza Ebrahimi <reza-ebrahimi>

 RELICENSE/reza-ebrahimi.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit d0ebd0370c8a1fba6fe93fbd70a740d59ce7e4d6
Merge: af6293de 6c63f173
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Mar 22 09:19:16 2017 +0100

    Merge pull request #2444 from tabe/relicense-tabe

    RELICENSE: Takeshi Abe

commit af6293de8dbf15473072dd1f783326136354835d
Merge: 96402a85 04e4f0fe
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Mar 22 08:15:27 2017 +0100

    Merge pull request #2442 from bprager/master

    license grant

commit 04e4f0fe3c8f35297a093b0b8883d29d18ea462b
Author: bprager <bernd@prager.ws>
Date:   Wed Mar 22 11:09:21 2017 +0700

    Create BerndPrager.md

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

commit 6c63f173be03f5f11b3245b8cf4ee07605330333
Author: Takeshi Abe <tabe@fixedpoint.jp>
Date:   Wed Mar 22 10:49:11 2017 +0900

    RELICENSE: Takeshi Abe

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

commit 96402a85bea11e1c5734d645ccdpd8a3c7335a77
Merge: 88d1b862 d1ce868a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 22:12:56 2017 +0000

    Merge pull request #2441 from natano/master

    Relicense grant: Martin Natano

commit d1ce868a35ce2dpd82452ddff13da29cd845cd11
Author: Martin Natano <natano@natano.net>
Date:   Tue Mar 21 22:56:33 2017 +0100

    Relicense grant: Martin Natano

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

commit 88d1b862b28e31a68a95e6a134ec9f17276a40ec
Author: Chuck Remes <git@chuckremes.com>
Date:   Tue Mar 21 16:15:21 2017 -0500

    Relicense - Chuck Remes (#2439)

    * Create ChuckRemes.md

    relicense my code contributions

    * Update ChuckRemes.md

    add GitHub name and my name

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

commit ce4a57f3607027e89f200c3b067cc9cd60fe1225
Merge: 9d14c2dc 10f591d7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 21:14:36 2017 +0000

    Merge pull request #2440 from fidlej/topic_license

    RELICENSE: Ivo Danihelka grant

commit 10f591d7ffe56cf1694d8c7c08599c3ba3ed9708
Author: Ivo Danihelka <danihelka@google.com>
Date:   Tue Mar 21 20:55:17 2017 +0000

    RELICENSE: Ivo Danihelka grant

 RELICENSE/fidlej.txt | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 9d14c2dc77af986709021ff861784e686225ef9e
Merge: 98ddc968 fcb826fb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 18:11:58 2017 +0000

    Merge pull request #2438 from a4z/authors

    Problem: not on the authors list

commit fcb826fb7e418f51560aa11ac1c7f4b4a380b7cd
Author: a4z <harald.achitz@gmail.com>
Date:   Tue Mar 21 19:07:15 2017 +0100

    Problem: not on the authors list

    Soloution: add me on the authors list

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 98ddc96834db287c983adb30e44efaa3817f45cc
Merge: 59ecc99a 2e564e9a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 18:04:06 2017 +0000

    Merge pull request #2437 from a4z/relicense

    add relicense file

commit 2e564e9a3d7310d106c744e14f9e6350700b5732
Author: a4z <harald.achitz@gmail.com>
Date:   Tue Mar 21 18:59:04 2017 +0100

    add relicense file

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

commit 59ecc99a2f68d3bc0a12ddb2197bc5b70f889715
Merge: 0d039c92 58bf0dd4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 13:41:41 2017 +0000

    Merge pull request #2435 from Bklyn/master

    Relicense: Caleb Epstein (Bklyn)

commit 58bf0dd44ecd231bc03f8095e06b686d6bab4cde
Author: Caleb Epstein <cdp@bklyn.org>
Date:   Tue Mar 21 09:39:14 2017 -0400

    Relicense: Caleb Epstein (Bklyn)

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

commit 0d039c92d3f52954a66b90cc3b64ccf888e7addc
Merge: 895e03e5 30ba3955
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 11:52:56 2017 +0000

    Merge pull request #2434 from opedroso/master

    RELICENSE: Osiris Pedroso

commit 30ba3955d9a3c6b722c3bf2b5275aca1ce6f6e76
Author: Osiris Pedroso <opedroso@gmail.com>
Date:   Tue Mar 21 06:49:41 2017 -0500

    RELICENSE: Osiris Pedroso

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

commit 895e03e55363833663af32ee3f4e98dd825bbb51
Merge: 889fd558 acd115fb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 10:46:41 2017 +0000

    Merge pull request #2431 from robertcastle/master

    Relicense - Robert Castle / Egomotion Ltd

commit 889fd5587d421a265c1c5c4dc333af48f20e2d87
Merge: 2a2b67c2 144c76c9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 10:46:05 2017 +0000

    Merge pull request #2433 from SRombauts/master

    RELICENSE: Sébastien Rombauts (SRombauts)

commit 144c76c9115dede47c9bc5bf93fd67c344c1d804
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Mar 21 11:35:10 2017 +0100

    RELICENSE: Sébastien Rombauts (SRombauts)

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

commit 2a2b67c25df71fe8b0935ac367caf4fe17502c1a
Merge: a3b81749 1fafe0a3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 10:18:28 2017 +0000

    Merge pull request #2429 from cowo78/master

    Giuseppe Corbelli relicense grant

commit a3b817494034cb6c940d639ad57b85ccb93c738d
Merge: 42733834 5f09a985
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 10:17:53 2017 +0000

    Merge pull request #2428 from olafmandel/relicense

    RELICENSE: Olaf Mandel grant

commit acd115fb2a230a7b2198dp87b728333fb3ad03f0
Author: Robert Castle <robert@egomotion.co.uk>
Date:   Tue Mar 21 10:17:35 2017 +0000

    Relicense - Robert Castle / Egomotion Ltd

 RELICENSE/egomotion.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 427338342f6d47e06afafeee2d2e2bc304d65e94
Merge: 45c6ba17 c38bf8f9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 10:17:25 2017 +0000

    Merge pull request #2427 from mipaaa/master

    Michdpl Hand grant

commit 45c6ba177e3f8fea75fc5031b5f62ca7873dpf88
Author: Anthony Scemama <scemama@gmx.com>
Date:   Tue Mar 21 11:16:57 2017 +0100

    Relicense (#2426)

    * Relicense

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

commit fef3f2375a7e182972f228237b8ddfc255e62cde
Merge: 1f2d5ad5 cbd9c00b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 10:16:13 2017 +0000

    Merge pull request #2430 from roalz/relicense

    RELICENSE: Roal Zanazzi (roalz)

commit 1f2d5ad561ea07c46381dd74420dafec8b83b58b
Merge: 27ce7f6e 4961671b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 21 10:15:42 2017 +0000

    Merge pull request #2425 from fichtner/relicense

    add "any" relicensing permission

commit cbd9c00b1f5e0a28b93389a3bc9b35a6f0b84d98
Author: roalz <roal.zanazzi@gmail.com>
Date:   Tue Mar 21 10:57:49 2017 +0100

    RELICENSE: Roal Zanazzi (roalz)

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

commit 1fafe0a38cb7fdp166a0e2a5a4fb06a5bbe27161
Author: Giuseppe Corbelli <cowo78@gmail.com>
Date:   Tue Mar 21 09:41:11 2017 +0000

    Added RELICENSE/GiuseppeCorbelli.md to allow libzmq relicensing

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

commit 5f09a9856728f42ea1efb25e811bb61ef28098bc
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Tue Mar 21 10:07:04 2017 +0100

    RELICENSE: Olaf Mandel grant

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

commit c38bf8f930d44c4c28cc5ac7e83964ea285b91ac
Author: Michdpl Hand <mipaaa@gmail.com>
Date:   Tue Mar 21 11:29:06 2017 +0300

    Michdpl Hand grant

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

commit 4961671b7fe583ba27b852ef3cddd8e63fb8ee8f
Author: Franco Fichtner <franco@opnsense.org>
Date:   Tue Mar 21 07:25:37 2017 +0100

    add "any" relicensing permission

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

commit 27ce7f6ef60e87a8c3c48e3d0e9e10f977b0b5a8
Merge: 607b52fe ed989bf3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Mar 21 06:53:09 2017 +0100

    Merge pull request #2424 from gena-moscow/master

    RELICENSE

commit 607b52fed3f423f7a3caf302d25a120e09dfa010
Merge: 1df0de72 5d61675f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Mar 21 06:52:25 2017 +0100

    Merge pull request #2423 from aseering/master

    RELICENSE: Adam Seering

commit ed989bf36d12a0932c9e13e568f2ac71d1e50186
Author: Gennady Makovetski <makovetski@gmail.com>
Date:   Tue Mar 21 08:14:58 2017 +0300

    RELICENSE

 RELICENSE/gena-moscow.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 5d61675fc13e8541f3ec86c3b62e81adec7ac89f
Author: Adam Seering <aseering@gmail.com>
Date:   Mon Mar 20 23:51:10 2017 -0400

    RELICENSE: Adam Seering

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

commit 1df0de728dfc05298c94d9343d85be04667e3da6
Merge: bf6656e4 2c9ce720
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 22:50:08 2017 +0000

    Merge pull request #2419 from sheremetyev/relicense

    RELICENSE: Fedor Sheremetyev

commit bf6656e442cc8fd917a2a4ff767ec89de6bd934c
Merge: 123d8a7a 5f519115
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 22:49:27 2017 +0000

    Merge pull request #2420 from drodri/relicense

    relicense

commit 123d8a7a510ad95bbb8b21a592120b7120c042ac
Merge: d80e8225 c030c6c9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 22:48:54 2017 +0000

    Merge pull request #2421 from ezhikus/master

    RELICENSE: Volodymyr Korniichuk

commit c030c6c9e48c8668ddd55acdd058e6b1380a7695
Author: Volodymyr Korniichuk <VolodymyrKorn@gmail.com>
Date:   Tue Mar 21 00:32:08 2017 +0200

    RELICENSE: Volodymyr Korniichuk

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

commit 2c9ce720c06b8dffea058fedbe7609691fdd12f5
Author: Fedor Sheremetyev <sheremetyev@gmail.com>
Date:   Mon Mar 20 22:07:55 2017 +0000

    RELICENSE: Fedor Sheremetyev

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

commit 5f519115c34a4d2f50cab41df7872d7c85d232da
Author: drodri <diego.rlosada@gmail.com>
Date:   Mon Mar 20 23:07:30 2017 +0100

    relicense

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

commit d80e8225d263b94c94a358613fe28a10164f89ea
Merge: 09c91ec5 50f8c6d0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 21:52:09 2017 +0000

    Merge pull request #2418 from djelenc/master

    RELICENSE: David Jelenc

commit 50f8c6d049a54831b6da67a03cc870fb1de381c0
Author: David Jelenc <david.jelenc@fri.uni-lj.si>
Date:   Mon Mar 20 22:46:05 2017 +0100

    RELICENSE: David Jelenc

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

commit 09c91ec593841ac1adf434b852606154c2e4d6df
Merge: d1f5070a 730de88c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 19:57:16 2017 +0000

    Merge pull request #2417 from c-rack/relicense-c-rack

    RELICENSE: Constantin Rack

commit 730de88c3f3559bca9be493e1164eb14919c44d9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 20:51:47 2017 +0100

    RELICENSE: Constantin Rack

 RELICENSE/c-rack.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit d1f5070a3cc9b901778f38ed35c41a35ceed4d4c
Merge: 237ad227 59478a86
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 18:16:33 2017 +0000

    Merge pull request #2416 from ghpu/master

    Agreement to relicensing.

commit 59478a8618a215f27f53dp497be9a75312fc2d2d
Author: Ghislain <ghpu@infonie.fr>
Date:   Mon Mar 20 19:13:21 2017 +0100

    Agreement to relicensing.

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

commit 237ad227f0645d48d2fa18598172558d56def6cd
Merge: 9833d18c d34aa4b0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 17:18:06 2017 +0000

    Merge pull request #2415 from febeling/copyright-grant

    RELICENSE febeling

commit d34aa4b0bbc68e8886fc162a2310f1d7a2a75c67
Author: Florian Ebeling <florian.ebeling@gmail.com>
Date:   Mon Mar 20 17:41:53 2017 +0100

    RELICENSE febeling

 RELICENSE/febeling.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 9833d18cf727dc8d98b82609e05d73d7fd4112db
Author: Gavin McNiff <gavin@mcniff.ie>
Date:   Mon Mar 20 15:55:07 2017 +0000

    Relicense approval (#2397)

    * Create GavinMcNiff.md

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

commit bf46e30e259a6c05b47d671030900d2ef1313616
Merge: 69038ec0 949a9204
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 15:45:08 2017 +0000

    Merge pull request #2414 from JohanMabille/relicense

    relicense

commit 949a92043f82914ce551f7bd085d56773bb83caa
Author: Johan Mabille <johan.mabille@gmail.com>
Date:   Mon Mar 20 16:43:05 2017 +0100

    relicense

 RELICENSE/JohanMabille | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 69038ec033584365a83aa2df8af77bd237c948f9
Merge: 78e4989f 45ff0212
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 15:39:38 2017 +0000

    Merge pull request #2413 from SylvainCorlay/relicense

    Relicense approval

commit 45ff0212e41afaa17440691706f465e98388f068
Author: Sylvain Corlay <sylvain.corlay@gmail.com>
Date:   Mon Mar 20 16:32:49 2017 +0100

    Relicense

 RELICENSE/SylvainCorlay.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 78e4989f60a270e0a29345819cd9822c737936dc
Merge: 05b69285 85782f39
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 15:30:47 2017 +0000

    Merge pull request #2412 from banburybill/master

    RELICENSE: Jim Hague

commit 85782f391c5c5a81429b4301edp648646adp680f
Author: Jim Hague <jim.hague@acm.org>
Date:   Mon Mar 20 15:26:37 2017 +0000

    RELICENSE: Jim Hague

 RELICENSE/JimHague.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 05b692859cb74ef5ec0ededee20712b30c1c5286
Merge: 78b28669 86eed73c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 15:06:39 2017 +0000

    Merge pull request #2411 from camachat/master

    RELICENSE: Eric Camachat

commit 78b286697739707f5c08ba2d03a9a89e18c05be0
Merge: ece055ac 5781df52
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 15:06:12 2017 +0000

    Merge pull request #2410 from soulik/testing

    RELICENSE: soulik

commit 86eed73cee17ac987029642144fbd7fb4419c042
Author: Eric Camachat <eric@camachat.org>
Date:   Mon Mar 20 07:56:14 2017 -0700

    RELICENSE: Eric Camachat

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

commit 5781df52c2318051a66d757ecabb82c92cdbdpd4
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Mon Mar 20 15:30:46 2017 +0100

    RELICENSE: soulik

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

commit ece055ac9ac0c5dd0ba472cd7f9437b82e205270
Merge: e2e9f7ce 68c49b28
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 14:04:45 2017 +0000

    Merge pull request #2409 from danriegsecker/master

    Relicense statement for Dan Riegsecker (@danriegsecker)

commit 68c49b288188c1ebc5f108c3926de5cf5256e1ec
Author: Dan Riegsecker <1baldgeek@gmail.com>
Date:   Mon Mar 20 09:59:12 2017 -0400

    Relicense statement for Dan Riegsecker (@danriegsecker)

 RELICENSE/danriegsecker.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit e2e9f7ce9d7a67dc3fa6339c7e3f04a36d8eb3b0
Merge: adea1cef d5e6ec0d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 13:40:04 2017 +0000

    Merge pull request #2408 from loachfish/master

    RELICENSE: Justin.Hung grant

commit d5e6ec0d8dfe851e661d503fe9f0c9c8bd29eff7
Author: huanglin <huanglin@pset.suntec.net>
Date:   Mon Mar 20 21:28:30 2017 +0800

    RELICENSE: Justin.Hung grant

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

commit adea1cefdc2a6d32dfe2c0e70fc59ce60a0f3f77
Author: Diego Fons <diego.fons@gmail.com>
Date:   Mon Mar 20 09:59:04 2017 -0300

    RELICENSE: Diego Fons (#2407)

    * RELICENSE: Diego Fons

 RELICENSE/dfons.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit e9372f236a30624d62e1726dpfd61c1e9e858e34
Author: Adrian Muraru <adi.muraru@gmail.com>
Date:   Mon Mar 20 14:44:44 2017 +0200

    Added RELICENSE for amuraru contributor (#2406)

    * Create amuraru.md

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

commit 56484e65b50dc9ea5762c013ac5e50e6003b0976
Merge: 47c3a6b6 6d4d25a9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 11:57:31 2017 +0000

    Merge pull request #2405 from shripchenko/master

    RELICENSE: shripchenko

commit 6d4d25a91517f00e0627f2b8be431279829c2d7f
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Mon Mar 20 14:55:04 2017 +0300

    RELICENSE: shripchenko

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

commit 47c3a6b6f1c857e044dde8e576e181ded4f0a2dc
Merge: 9d5b5b7b 66b73141
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 11:11:50 2017 +0000

    Merge pull request #2404 from zeromq/gonzus-patch-1

    Create gonzus.md

commit 66b73141663ceea377c9505b2202ac822cbd3cbc
Author: Gonzalo Diethelm <gonzalo.diethelm@diethelm.org>
Date:   Mon Mar 20 12:11:18 2017 +0100

    Create gonzus.md

    Relicensing libzmq

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

commit 9d5b5b7b07be62eb280b65b12f3abfbe3681368d
Merge: 2c771a40 ec14bb7b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 10:56:26 2017 +0000

    Merge pull request #2401 from rlenferink/master

    RELICENSE: Updated wrong filename

commit 2c771a409ebd4e00b7dp14f5f0a7f6b29ddb35db
Merge: 89096c71 f6e80e41
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 10:56:07 2017 +0000

    Merge pull request #2403 from montoydpdu/patch-1

    Create montoydpdu.md

commit f6e80e410ca8e89418cc3dbef1138204272668dc
Author: Montoya Edu <montoya.edu@gmail.com>
Date:   Mon Mar 20 11:36:27 2017 +0100

    Create montoydpdu.md

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

commit ec14bb7b35ce7556f876f428470f9313bdp1e719
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Mon Mar 20 11:08:39 2017 +0100

    RELICENSE: Updated wrong filename

 RELICENSE/{relicense-template-mplv2.txt => taotetek.md} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 89096c71fa0b896fe239a9a4b72bff853157f5ea
Merge: 88bf9f8f a2e9ad69
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 09:52:03 2017 +0000

    Merge pull request #2400 from cjuniet/master

    RELICENSE: Christophe Juniet

commit 88bf9f8f1c3eda9624210a8fb1c302158651b9c1
Merge: a0d61a80 d5611433
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 20 09:51:26 2017 +0000

    Merge pull request #2399 from sappo/master

    RELICENSE: Kevin Sapper grant

commit a2e9ad696bb638c3f1ab18443c1071e5ca8584ff
Author: Christophe Juniet <c.juniet@gmail.com>
Date:   Mon Mar 20 10:33:55 2017 +0100

    RELICENSE: Christophe Juniet

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

commit d561143321d400c63d5620051ced0c57c8dea11c
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Mon Mar 20 10:16:58 2017 +0100

    RELICENSE: Kevin Sapper grant

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

commit a0d61a8029c848dp591fe00f3c707c024583f7b8
Merge: 951ba9d0 0df66b96
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 09:18:53 2017 +0100

    Merge pull request #2398 from demozon/master

    RELICENSE: Tore Halvorsen

commit 951ba9d0e68bdca7dc6bc4c90b7c7866c5f5bfe3
Merge: 0793c7ab 44a7a3e6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 09:18:20 2017 +0100

    Merge pull request #2392 from clkao/patch-1

    Create clkao.md

commit 0793c7abea6f38e77256ea34dd77e24f278275f3
Merge: 95940fa6 39407c0d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 09:17:56 2017 +0100

    Merge pull request #2396 from vtellier/master

    RELICENSE: Vincent Tellier

commit 95940fa676262b7cd2af43412388eb5405d69c42
Merge: bc7c5a1e 10a39e57
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 09:17:31 2017 +0100

    Merge pull request #2391 from Bitiquinho/master

    RELICENSE: Leonardo J. Consoni grant

commit bc7c5a1e96b26858e4c08f658fcdce8454ee4616
Merge: 7b2ba9f8 2ac51173
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 09:17:15 2017 +0100

    Merge pull request #2390 from taotetek/master

    Problem: want to relicense under mplv2

commit 7b2ba9f842b025a449d3ab0d321663ac1eedp805
Merge: b121e621 d26414d1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 09:16:50 2017 +0100

    Merge pull request #2389 from johntconklin/relicense

    RELICENSE: John T. Conklin grant

commit 0df66b96485fa55e2d196d548a6f1513b1398ed6
Author: Tore Halvorsen <tore@infront.no>
Date:   Mon Mar 20 09:04:17 2017 +0100

    RELICENSE: Tore Halvorsen

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

commit b121e621c03014328800fa23e6e662c2f71a2350
Merge: 6c424465 0434e039
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 08:44:28 2017 +0100

    Merge pull request #2395 from ckamm/ckamm-relicense

    RELICENSE: Christian Kamm grant

commit 39407c0d46c4e9ed4bf2483cf7891b8c0831ad6f
Author: Vincent Tellier <vincent@tellier.me>
Date:   Mon Mar 20 08:04:13 2017 +0100

    [RELICENSE] Vincent Tellier

    MPLv2 or any Open Source Initiative (OSI) approved license chosen by the
    current ZeroMQ BDFL.

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

commit 0434e039320001a9fba4e355dp097eddf7f24658
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Mon Mar 20 08:01:03 2017 +0100

    RELICENSE: Christian Kamm grant

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

commit 6c424465a6f7b0f9d24732567357ef5cdb2466a5
Merge: 61cf277d 555f4ccb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 07:59:17 2017 +0100

    Merge pull request #2394 from danielhtshih/master

    RELICENSE: Daniel Shih grant

commit 61cf277d812da29fccf49a4c8a2a7ce117b05b03
Merge: 027856d7 eb3f0071
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Mar 20 07:58:09 2017 +0100

    Merge pull request #2393 from evoskuil/master

    RELICENSE: Eric Voskuil grant

commit 555f4ccb56f305443d03fabd473a35161c9fbbf4
Author: Daniel Shih <hotingwow@gmail.com>
Date:   Mon Mar 20 13:32:06 2017 +0800

    RELICENSE: Daniel Shih grant

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

commit eb3f00717f41c121ac0b6d9c5acb1d33be3b3c0e
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Mar 19 20:54:25 2017 -0700

    RELICENSE: Eric Voskuil grant

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

commit 44a7a3e6e487bc22734f2b812d248827b2d9e1d6
Author: Chia-liang Kao <clkao@users.noreply.github.com>
Date:   Mon Mar 20 10:30:01 2017 +0800

    Create clkao.md

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

commit 10a39e57a1e81624f678d2133f9bc0164ddf81b9
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Sun Mar 19 23:03:14 2017 -0300

    RELICENSE: Leonardo J. Consoni grant

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

commit 2ac51173de2a4f3e4960764c24c4ce9f8f161501
Author: Brian Knox <taotetek@gmail.com>
Date:   Sun Mar 19 20:38:40 2017 -0400

    Problem: want to relicense under mplv2

 RELICENSE/relicense-template-mplv2.txt | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit d26414d152a6b3cc35fcf7b2e3f82c56b8035951
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Sun Mar 19 17:33:59 2017 -0700

    RELICENSE: John T. Conklin grant

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

commit 027856d7703857744969082a27bd487db3b18afe
Merge: 2b7cda2e 28e32258
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 22:39:37 2017 +0000

    Merge pull request #2385 from rgagnon24/master

    RELICENSE: Robert Gagnon

commit 2b7cda2efff2e0dfc6cfc53f55ba48adacccb6eb
Merge: 7913e962 c0ddcf6f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 22:39:16 2017 +0000

    Merge pull request #2386 from jkryl/master

    RELICENSE: Jan Kryl grant

commit 7913e96271d99b48b57ad45633a5536b9b3806db
Author: chuggafan <chuggafan@users.noreply.github.com>
Date:   Sun Mar 19 18:38:43 2017 -0400

    I have added msys building, license stuff (#2387)

    (msys building is buggy, please be aware, it fails to compile on my
    machine) also I modified the buildall.bat/buildbase.bat to use correct
    MSVC versions instead of "visual studio 2017"

 RELICENSE/chugga_fan.md         | 15 +++++++++++++++
 acinclude.m4                    |  2 +-
 builds/msvc/build/buildall.bat  |  2 +-
 builds/msvc/build/buildbase.bat |  2 +-
 builds/msvc/readme.txt          |  5 +++--
 configure.ac                    |  3 +--
 6 files changed, 22 insertions(+), 7 deletions(-)

commit 8ce9a11af450d463d5dba2e323a4c4a6759a9c2e
Merge: 7df5373c cef0289f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 22:37:57 2017 +0000

    Merge pull request #2388 from TTimo/master

    relicensing

commit 7df5373c12acad3b98be03f6a955f0932f27c57a
Merge: 6517d919 63120a88
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 22:37:39 2017 +0000

    Merge pull request #2384 from agronholm/master

    Relicense: Alex Grönholm grant

commit cef0289f4dbdd13717d2da98c7a616cbbcf50150
Author: Timothee Besset <ttimo@ttimo.net>
Date:   Sun Mar 19 17:32:46 2017 -0500

    relicensing

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

commit c0ddcf6f5c501402add7606b6a5a8f7aa9e1a952
Author: Jan Kryl <jan.kryl@nexenta.com>
Date:   Sun Mar 19 23:04:23 2017 +0100

    RELICENSE: Jan Kryl grant

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

commit 28e32258017eb57f45656f297e40a5e0bc8b92ef
Author: Rob Gagnon <rgagnon24@users.noreply.github.com>
Date:   Sun Mar 19 16:59:22 2017 -0500

    RELICENSE: Robert Gagnon

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

commit 63120a88b00b8c03c9f0d2e951ceaa5f220320fc
Author: Alex Grönholm <alex.gronholm@nextday.fi>
Date:   Sun Mar 19 23:47:04 2017 +0200

    Create agronholm.md

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

commit 6517d9199c23120a88e31d841a11bcc8a5611c32
Merge: d4b90657 b9ac5cdc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 21:32:42 2017 +0000

    Merge pull request #2383 from thompsa/master

    RELICENSE: Andrew Thompson grant

commit b9ac5cdc6c088bfab482cb3aca706e4368ff3d95
Author: Andrew Thompson <andy@fud.org.nz>
Date:   Mon Mar 20 10:27:57 2017 +1300

    RELICENSE: Andrew Thompson grant

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

commit d4b90657e800566e0e24d1b9b39905d34479398f
Merge: c4d80a50 625f52e3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 21:24:48 2017 +0000

    Merge pull request #2382 from AndreLouisCaron/relicense

    RELICENSE: Andre Caron grant

commit 625f52e3a2595491c849aa6d5138c5a4c75533a4
Author: Andre Caron <andre.l.caron@gmail.com>
Date:   Sun Mar 19 17:02:05 2017 -0400

    RELICENSE: Andre Caron grant

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

commit c4d80a50c0e0a3c367c1c3a85991b02061830bd0
Merge: 5aab04b0 eaa77b38
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 20:38:34 2017 +0000

    Merge pull request #2380 from cdolan/relicense

    RELICENSE: Christopher Dolan grant

commit eaa77b383b0a0b6f72f9d041d939056d458e6cdb
Author: Christopher Dolan <chris@codingstream.org>
Date:   Sun Mar 19 16:33:08 2017 -0400

    RELICENSE: Christopher Dolan grant

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

commit 5aab04b083f8ace1ec06f0193986e3d5164f2e1c
Merge: b43cd5af 4ea0dc47
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 19 21:14:08 2017 +0100

    Merge pull request #2379 from yuvallanger/master

    RELICENSE: Yuval Langer grant

commit 4ea0dc4778e775d4a91835f1e656a3325271ada9
Author: Yuval Langer <yuval.langer@gmail.com>
Date:   Sun Mar 19 22:07:40 2017 +0200

    RELICENSE: Yuval Langer grant

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

commit b43cd5af784aad91309df701bc5a5e3f653f8fc5
Merge: 48561696 c33b875d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 19:53:27 2017 +0000

    Merge pull request #2378 from staticfloat/sf/relicensing

    Add relicensing agreement for Elliot Saba

commit 48561696205c3a06caf41dpf0fadd6db92320069
Merge: 90916232 86c7be38
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 19 19:52:01 2017 +0000

    Merge pull request #2377 from tailhook/relicense

    Relicense permission by Paul Colomiets

commit c33b875d11c22a54dcce164df7c91b3ab526a80b
Author: Elliot Saba <staticfloat@gmail.com>
Date:   Sun Mar 19 12:51:48 2017 -0700

    Add relicensing agreement for Elliot Saba

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

commit 86c7be3854f49a18395ebdee1ee58407960f5c15
Author: Paul Colomiets <paul@colomiets.name>
Date:   Sun Mar 19 21:45:47 2017 +0200

    Relicense permission by Paul Colomiets

 RELICENSE/tailhook.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 909162324349a6f254f981d341a8d526ab30fb4a
Author: mlodew <markus.schori@outlook.com>
Date:   Sun Mar 19 17:50:33 2017 +0100

    Fixed lib and dll paths in visual studio build (#2375)

    Fixed path to lib and dll files.

 builds/msvc/readme.txt                 |  2 +-
 builds/msvc/vs2015/libzmq.import.props | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 4cc32d336746a7e8f052df99ac715b7b91f480bf
Merge: eccf8b7a a46ca653
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Mar 17 19:43:47 2017 +0200

    Merge pull request #2374 from rlenferink/license_grants

    RELICENSE: Added templates for relicensing

commit a46ca653a9cedb7a46532657b324d1216c4009f7
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Fri Mar 17 17:11:25 2017 +0100

    RELICENSE: Added templates for relicensing

 RELICENSE/templates/relicense-template-mplv2-any-osi.txt  | 15 +++++++++++++++
 .../relicense-template-mplv2-share-alike-osi.txt          | 15 +++++++++++++++
 RELICENSE/templates/relicense-template-mplv2.txt          | 13 +++++++++++++
 3 files changed, 43 insertions(+)

commit eccf8b7adp6fb929edp291b5091c9c5dc2b5eca2
Merge: db854614 bf2b957c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 17 16:01:19 2017 +0000

    Merge pull request #2373 from rlenferink/rlenferink_grant

    RELICENSE: License grant by Roy Lenferink

commit bf2b957c4905b95b1dpeb67c91398c60624a9643
Author: Roy Lenferink <lenferinkroy@gmail.com>
Date:   Fri Mar 17 16:28:31 2017 +0100

    RELICENSE: Roy Lenferink grant

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

commit db854614e1461a031371c82b0b0873b5986997d9
Merge: da1633eb 1dd5fef2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Mar 16 14:48:15 2017 +0000

    Merge pull request #2372 from Q-Leap-Networks/pr-fix_test_sodium

    zmq_curve_keypair(): return result from crypto_box_keypair()

commit 1dd5fef20c9a29d47a2b8641a69eba971b4ca863
Author: Goswin von Brederlow <brederlo@q-leap.de>
Date:   Thu Mar 16 11:02:04 2017 +0000

    zmq_curve_keypair(): return result from crypto_box_keypair() to make testcase meaningfull

 src/zmq_utils.cpp     | 5 ++---
 tests/test_sodium.cpp | 1 -
 2 files changed, 2 insertions(+), 4 deletions(-)

commit da1633ebe78378fce4b9378ec38cace4954db35e
Merge: 33246f7a d7aceef2
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 12 14:28:30 2017 +0100

    Merge pull request #2368 from bluca/io_thread_name

    Problem: refactor gone wrong, redundant thread name

commit d7aceef2ed8913bfd8c44896996c18bfe18fc248
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 12 13:11:44 2017 +0000

    Problem: thread name is redundant

    Solution: call it simply "ZMQ background" instead of "ZMQ b/g thread"

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

commit 092ad50b0c32174cdffdd45b5516b50237a8315d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 12 13:11:11 2017 +0000

    Problem: I can't refactor

    Solution: fix ifdef check for pthread_setname

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

commit 33246f7a9e51dc0adp9c4a68c93e6c2e57ba4230
Merge: 3548d5e9 3ab4796c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 12 10:47:34 2017 +0100

    Merge pull request #2367 from bluca/io_thread_name

    Problem: ZMQ background threads are unnamed

commit 3ab4796c5a9049841dedeec17239b6fc7490fd44
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 28 19:45:23 2017 +0000

    Problem: ZMQ background threads are unnamed

    Solution: use pthread API to set the name. For now call every thread
    "ZMQ b/g thread". Would be nice to number the I/O threads and name
    explicitly the reaper thread, but in reality a bit of internal API
    churn would be necessary, so perhaps it's not worth it.
    This is useful when debugging a process with many threads.

 CMakeLists.txt                                |  1 +
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 52 +++++++++++++++++++++++++++
 builds/cmake/platform.hpp.in                  |  4 +++
 configure.ac                                  | 50 ++++++++++++++++++++++++++
 src/ctx.cpp                                   |  1 +
 src/thread.cpp                                | 25 +++++++++++++
 src/thread.hpp                                |  4 +++
 7 files changed, 137 insertions(+)

commit 3548d5e9507fd59af3ed6e8bd9637358c2592441
Merge: 580c5b28 aac8bb19
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Mar 11 10:21:44 2017 +0100

    Merge pull request #2365 from somdoron/deprecate_zmq_poll

    problem:zmq_poll is slow and the API is complicated

commit aac8bb19fc1c16ac278ac3a61517f3be0d147a99
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Mar 11 11:16:09 2017 +0200

    problem:zmq_poll is slow and the API is complicated

    solution: deprecate zmq_poll in favor of zmq_poller

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 580c5b288a799c33bf9f84921a1710aa6afb4d1d
Merge: 651f81e8 f694a2d9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Mar 11 10:20:09 2017 +0100

    Merge pull request #2364 from somdoron/master

    problem: zmq_poll is slow because FD is being created on every call

commit f694a2d985e87c289a22711b401acadd077fa879
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Mar 11 10:57:29 2017 +0200

    problem: zmq_poll is slow because FD is being created on every call

    making the creation of FD only when thread safe sockets are in used
    within the zmq_poller which improve the zmq_poll performance.

 src/socket_poller.cpp | 25 +++++++++++++++++--------
 src/socket_poller.hpp |  2 +-
 2 files changed, 18 insertions(+), 9 deletions(-)

commit 651f81e8af650a0345791766a9d3e8f25cb15cfe
Merge: 70a7756d 9624f9ad
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 6 15:26:24 2017 +0000

    Merge pull request #2362 from nexcvon/patch-2

    Problem: zmq::signaler_t::send may loop forever

commit 9624f9ade7169e77471e056af6beeeab7f96f8ad
Author: nexcvon <nexcvon@users.noreply.github.com>
Date:   Mon Mar 6 21:55:30 2017 +0800

    Problem: zmq::signaler_t::send may loop forever

    Solution: restore the wsa_assert statement previously removed.

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

commit 70a7756d8db1bf2f25b460a63bf6fb165787b9d8
Merge: 34be53d8 05a967fa
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Mar 3 23:14:46 2017 +0100

    Merge pull request #2361 from bluca/obs_new

    Problem: Travis using deprecated OBS project

commit 05a967fa1bd5529172dfc937ee7f0698b8df5907
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 3 18:04:26 2017 +0000

    Problem: Travis using deprecated OBS project

    Solution: switch to shiny new one in the network:messaging namespace

 .travis.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 34be53d8e4e5d4958535683d0e91330f8451154e
Merge: 07d904a2 bcf75777
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 3 13:13:07 2017 +0000

    Merge pull request #2360 from nexcvon/patch-2

    Problem: Assertion failed in zmq::signaler_t::send

commit bcf75777c83adc371ba56a88025d7c9c84178015
Author: nexcvon <nexcvon@users.noreply.github.com>
Date:   Fri Mar 3 19:00:58 2017 +0800

    Problem: Assertion failed in zmq::signaler_t::send

    Solution: Change to the way it does below on non-Windows platforms, retry when send returns -1.

 src/signaler.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 07d904a2f89f9a70d33875e8587eb9abc159f922
Merge: 1cfc3e17 a73d5cd6
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Feb 25 06:13:18 2017 +0200

    Merge pull request #2354 from bluca/fix_pipe

    Problem: router pipe can block forever

commit a73d5cd6c683733eada457cfe44d4e2959da65d0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 24 23:56:52 2017 +0000

    Problem: router pipe can block forever

    Solution: invert check_write and check_hwm calls in router xsend
    function so that check_write can mark the pipe as inactive if
    necessary.

 src/router.cpp | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

commit 1cfc3e17445100e4f51590bf3cff4dc241f33dee
Merge: ca311f7b 0f473d14
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Feb 24 21:11:06 2017 +0200

    Merge pull request #2353 from bluca/fix_test

    Problem: unnecessary change to router_mandatory_hwm test

commit 0f473d14cb2804d5513ad96de975133158bf5497
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 24 17:54:14 2017 +0000

    Problem: unnecessary change to router_mandatory_hwm test

    Solution:

    Revert "Problem with ZMQ_ROUTER_MANDATORY option when peer lost"

    This partially reverts commit 06740b5d8c1fbf13205c9b6c63ba7e7ef4350a04.

    The change in the mentioned commit was fixed to be backward
    compatible so test changes are no longer necessary.
    Partially revert the commit, leaving only the bug fix and taking out
    the test change and the superfluous change in socket_base.

 src/socket_base.cpp                 |  8 +-------
 tests/test_router_mandatory_hwm.cpp | 20 +++++---------------
 2 files changed, 6 insertions(+), 22 deletions(-)

commit ca311f7bfef841d87c9dp6b002482528a55e8e86
Merge: 995a41b5 06740b5d
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Feb 24 19:33:13 2017 +0200

    Merge pull request #2352 from reza-ebrahimi/master

    Commit: Issue #2348

commit 06740b5d8c1fbf13205c9b6c63ba7e7ef4350a04
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Fri Feb 24 13:07:06 2017 +0330

    Problem with ZMQ_ROUTER_MANDATORY option when peer lost

    indention

    Revert "indention"

    This reverts commit a6e7e192ac2d089ac9f7dc0d31d4b1fd10de982e.

    indention

    indention

    Fix Failure in tests

    Check both pipe full and pipe close

 src/router.cpp                      | 17 ++++++++++++++++-
 src/socket_base.cpp                 |  8 +++++++-
 tests/test_router_mandatory_hwm.cpp | 20 +++++++++++++++-----
 3 files changed, 38 insertions(+), 7 deletions(-)

commit 995a41b5a3961578d61cc8878a66855928285730
Merge: d6f4263c c7ce4a1c
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 23 09:24:46 2017 +0200

    Merge pull request #2350 from tabe/zmq_socket_doc-typo

    Problem: typo in the zmq_socket doc

commit c7ce4a1cea0a68105b0ba936337c5a718522ba58
Author: Takeshi Abe <tabe@fixedpoint.jp>
Date:   Thu Feb 23 10:28:17 2017 +0900

    Problem: typo in the zmq_socket doc

    Solution: fix it

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

commit d6f4263ce31a16c6dpfe3562da728a5a581c37db
Author: boringuy <boringuy@gmail.com>
Date:   Wed Feb 22 17:28:05 2017 -0500

    cmake WITH_LIBSODIUM option is broken (#2349)

    * cmake WITH_LIBSODIUM option is broken

    - Fixed the variable name in platform.hpp.in
    - Fixed #if check for randombytes_close() when libsodium is used

    * Fixed typo from previous commit

    * Reverted compile error fix for randombytes_close()

 builds/cmake/platform.hpp.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6818cced8e01f11901213fec01e74eceeff67766
Merge: 64a85ebf 3b0dfd52
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 21 09:46:18 2017 +0000

    Merge pull request #2347 from zstang/patch-1

    #2341 fix

commit 3b0dfd528fb00259c39d0d7a6d0a8d83cc8e4177
Author: zstang <zshtangbuaa@gmail.com>
Date:   Tue Feb 21 17:35:36 2017 +0800

    #2341 fix

    the root path name specified in this file cause the #2341 problem, the root path name is not need.

 builds/msvc/vs2015/libzmq.import.props | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 64a85ebf2f063a3ccdpe4373ef64395b3b58ad8b
Merge: 8d75d506 ac5c75ce
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 18 19:25:43 2017 +0100

    Merge pull request #2346 from bluca/news

    Problem: 4.2.2 is out, version(s) are out of date

commit ac5c75cea1144462e14dd9d528ec26368039fe92
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 18 17:56:55 2017 +0000

    Problem: 4.2.2 is out, version(s) are out of date

    Solution: bump changelog, ABI revision, library and packaging version

 CMakeLists.txt                  | 2 +-
 NEWS                            | 3 +++
 configure.ac                    | 3 ++-
 include/zmq.h                   | 2 +-
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 7 files changed, 10 insertions(+), 6 deletions(-)

commit 8d75d506b6f88265bc0fb57b93385b45e35cdd10
Merge: 26998b73 5285b6e1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 18 18:48:41 2017 +0100

    Merge pull request #2345 from bluca/news

    Problem: NEWS not up to date, packaging versions not up to date

commit 5285b6e152a621da8620327d459b714e7348a7a7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 18 17:43:48 2017 +0000

    Problem: packaging versions out of date

    Solution: bump to 4.2.2

 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 854ed904726d4e4efe27c9a709ef3a78ad035cd0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 18 17:40:45 2017 +0000

    Problem: NEWS not up to date

    Solution: mention main changes and bug fixes since 4.2.1

 NEWS | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

commit 26998b738eda44275002a5bb83d7ea43717a179a
Merge: 0db22c00 18cb7cdp
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 7 21:22:24 2017 +0000

    Merge pull request #2332 from bluca/parse_v4_mapped_in_v6

    Problem: v4-in-v6 mapped addresses cause parsing failure

commit 0db22c0069c73e6548cafe4f74dfe9ab458ab0c9
Merge: 78dafe5c 33dccd2b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 7 13:22:23 2017 +0000

    Merge pull request #2337 from SylvainCorlay/include-find-sodium

    Include FindSodium.cmake in dist tarball

commit 33dccd2bf1d8ea5ef735792362da1c1d2981b36c
Author: Sylvain Corlay <sylvain.corlay@gmail.com>
Date:   Tue Feb 7 14:12:43 2017 +0100

    Include FindSodium.cmake in dist tarball

 Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 18cb7cdpb2467ed1b94c748ce6dp65a60884b951
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 3 11:19:31 2017 +0100

    Problem: v4-in-v6 mapped addresses cause parsing failure

    Solution: in the address validator accept an endpoint that starts
    with :, eg: ::ffff:192.168.0.1:12345 as it's a valid mapped
    address.

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

commit 78dafe5c7cf2bfc5de6e31d68a9a2dpfdfbeaa60
Merge: e56bc48e f8816945
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 2 17:27:23 2017 +0000

    Merge pull request #2331 from jimklimov/sol-poller

    Problem: polling does not work well OOB in OpenIndiana

commit f8816945c2a905633c6599cba7b4762f9a3c8cc5
Author: Jim Klimov <jim@jimklimov.com>
Date:   Thu Feb 2 18:18:37 2017 +0100

    Problem: polling does not work well OOB in OpenIndiana

    Solution: even though epoll() semantics are supported in modern illumos, it may differ from what Linux developers are used to expect. Skip epoll and use poll or select semantics (both were checked to work well).

 acinclude.m4 | 35 +++++++++++++++++++++++------------
 1 file changed, 23 insertions(+), 12 deletions(-)

commit e56bc48ebc95a7336012c8bc8fe6bed1721bad0e
Merge: 5c34f65a df7c684d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 28 01:29:20 2017 +0000

    Merge pull request #2327 from chutz/fix-divide-by-zero

    fix divide by zero in zmq::lb_t::sendpipe

commit df7c684dd590526c5f431c6d6460a6086756628d
Author: Patrick McLean <chutzpah@gentoo.org>
Date:   Fri Jan 27 17:04:42 2017 -0800

    fix divide by zero in zmq::lb_t::sendpipe

    This is based on https://github.com/zeromq/zeromq3-x/pull/116/files

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

commit 5c34f65ad562607db6bd06a322c3acd99749704c
Merge: bf6d8a5d 4e472b18
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jan 27 19:53:28 2017 +0000

    Merge pull request #2326 from SylvainCorlay/framework

    Make OS Xframwork build optional

commit 4e472b18e3233bc3536b328cfa2ce22472b5d00f
Author: Sylvain Corlay <sylvain.corlay@gmail.com>
Date:   Fri Jan 27 19:30:18 2017 +0100

    Make OS Xframwork build optional

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bf6d8a5d17423b72a1d5d9970c3cd10747c0d2be
Author: Ahmad M. Zawawi <ahmad.zawawi@gmail.com>
Date:   Thu Jan 26 15:21:41 2017 +0200

    Fix clock_t crash on iOS 9.3.2 and 9.3.5 (#2325)

    * Fix possible clock_t crash on iOS 9.3.2 and 9.3.5 + macOS < 10.12

    * No need to read return value

 src/clock.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit c6c21cf1971ba6e0be2fba9ea7637b0b80403d70
Author: sigiesec <simon.giesecke@btc-ag.com>
Date:   Wed Jan 25 15:28:03 2017 +0100

    Problem: zmq_z85_decode does not validate its input  (#2322)

    * Problem: zmq_z85_decode does not validate its input
    Solution: added checks for invalid characters and overflows

    * Added tests, added further check for range overflow, removed (multiple) calls to strlen

    * Problem: gcc fails to build
    Solution: added missing include directive

    * Added VS2015 test_utils_z85 project

    * Fixed indentation and copyright notice

    * Resolved garbage from merge

    * Revert "Added VS2015 test_utils_z85 project"

    This reverts commit c58b3c664c144326e77135aa1184b6f0dee11143.

    * Problem: test calls zmq_z85_decode with a NULL dest
    Solution: call zmq_z85_decode with a properly sized buffer

    * Problem: tests for zmq_z85_* scattered over two files
    Solution: merged files

    * Removed reference to removed test file from CMakeLists.txt

    * Problem: Missing include directive to stdint.h
    Solution: Added include directive

    * Define __STDC_LIMIT_MACROS before including stdint.h

    * Problem: Wrong variable is checked for invalid character marker
    Solution: Use correct variable

 src/zmq_utils.cpp     | 59 ++++++++++++++++++++++++++-------------
 tests/test_base85.cpp | 76 +++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 113 insertions(+), 22 deletions(-)

commit 673bb506cfb196d7b23cd840dbd8537cc8f4a2f4
Merge: c031b0c4 877419e9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jan 22 18:43:21 2017 +0000

    Merge pull request #2318 from kurdybacha/static_file_fix

    CMake static library output does not match ZeroMQ Config.

commit 877419e94f07e949afe164038832e7cc3ff6e81a
Author: Pawel Kurdybacha <pawel.kurdybacha@gmail.com>
Date:   Sun Jan 22 18:17:55 2017 +0000

    CMake static library output does not match ZeroMQ Config.

    Configuration used in ZeroMQConfig.cmake.in does not match to
    explicic "libzmq" output of static build.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c031b0c4704223307c96b727deafb23dc45e3f82
Merge: e5677d89 e3845386
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 21 14:27:43 2017 +0000

    Merge pull request #2317 from SylvainCorlay/windows-static-target-name

    Problem: cmake artefacts different from make generated artefacts

commit e38453866d472aa0649eb6f2c35a5347a6bd9af4
Author: Sylvain Corlay <sylvain.corlay@gmail.com>
Date:   Sat Jan 21 15:14:30 2017 +0100

    Problem: cmake artefacts different from make generated artefacts

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

commit e5677d89d56ccdp8c339f2a9649c0ab52eb9467c
Merge: 9adp95e4 5f8d87bf
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 19 22:11:37 2017 +0100

    Merge pull request #2315 from bluca/typo

    Problem: typo in the zmq_has doc

commit 5f8d87bf32e8eb731a79f07e063b14805b1c5be8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 19 21:00:15 2017 +0000

    Problem: typo in the zmq_has doc

    Solution: fix it

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

commit 9adp95e496cf3757ba161435aba101df2dp3c64c
Merge: a6a56e29 b7cd6e8a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 19 20:37:16 2017 +0000

    Merge pull request #2314 from Asmod4n/master

    add test and documentation for "draft" capability

commit b7cd6e8a8557aba0fdp9f913ed8dfcbbafab244b
Author: Asmod4n <Asmod4n@users.noreply.github.com>
Date:   Thu Jan 19 20:50:18 2017 +0100

    add test and documentation for "draft" capability

 doc/zmq_has.txt             |  1 +
 tests/test_capabilities.cpp | 13 +++++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

commit a6a56e299d74b4c0c42397110a58cebc84ec8831
Merge: 4c1b3380 4dbd387f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 19 17:59:03 2017 +0000

    Merge pull request #2313 from Asmod4n/patch-1

    Problem: cannot check if libzmq was build with draft api

commit 4dbd387fa95f361426ed95193711b6937bc22c88
Author: Asmod4n <Asmod4n@users.noreply.github.com>
Date:   Thu Jan 19 18:44:56 2017 +0100

    Add "draft" capability to zmq_has

    As discussed in #2307

 src/zmq.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 4c1b33801563d549642bddc039966ec93de42af3
Merge: ee9751ec c65a2721
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 19 13:28:35 2017 +0000

    Merge pull request #2311 from SylvainCorlay/static-target-name

    cmake: Set output name to libzmq for the libzmq-static target

commit c65a27213af5ea1ff0e4df91dpf02a23c68c7ddd
Author: Sylvain Corlay <sylvain.corlay@gmail.com>
Date:   Thu Jan 19 10:59:47 2017 +0100

    Problem: name of static library generated by cmake differs from the behavior of kernel.

    Solution: Change the target output name from libzmq-static to libzmq.

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

commit ee9751ec2576c6ebc72e0d07ad205792f1c9c884
Merge: f86053b9 020ff65e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 16 20:11:28 2017 +0000

    Merge pull request #2308 from chuggafan/master

    Updated buildbase and buildall to work with visual studio 2017

commit 020ff65efa58a0f01c336464c9b0c7f9dedc170f
Author: chuggafan <chuggafans@gmail.com>
Date:   Mon Jan 16 14:54:40 2017 -0500

    Updated buildbase and buildall to work with visual studio 2017

 builds/msvc/build/buildall.bat  | 2 ++
 builds/msvc/build/buildbase.bat | 1 +
 2 files changed, 3 insertions(+)

commit f86053b985da236de11afb0748c682aabf2ad96e
Merge: b8d8c498 36d0c706
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jan 12 23:42:19 2017 +0000

    Merge pull request #2304 from JohanMabille/cmake_fix

    cmake install on linux fixed

commit 36d0c706470f66dec6d8fef4a2f13b75d06a3f34
Author: Johan Mabille <johan.mabille@gmail.com>
Date:   Fri Jan 13 00:10:32 2017 +0100

    cmake install on linux fixed

 CMakeLists.txt | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit b8d8c498c699b1ff9a57d3dbde259f177a953842
Merge: 4fc313d1 107f2441
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 11 09:28:33 2017 +0100

    Merge pull request #2302 from laplaceyang/pr_thread_safe_modify_pipe

    Problem: Thread-safe solution for modify hwm of pipe

commit 107f2441d5c0dc203b5ad5a45b54cabbee488834
Author: laplaceyang <laplace2013@outlook.com>
Date:   Wed Jan 11 10:49:54 2017 +0800

    Problem: Thread-safe solution for modify hwm of pipe

    Solution: where change pipe hwm, send a command (new type pipe_hwm) to peer, so peer pipe can modify hwm thread-safely

 src/command.hpp     |  7 +++++++
 src/object.cpp      | 19 +++++++++++++++++++
 src/object.hpp      |  2 ++
 src/pipe.cpp        | 10 ++++++++++
 src/pipe.hpp        |  4 ++++
 src/socket_base.cpp |  1 +
 6 files changed, 43 insertions(+)

commit 4fc313d15239c340c04856e4ff73f929af136151
Merge: 598befc1 edc770d6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jan 10 21:13:25 2017 +0100

    Merge pull request #2301 from bluca/set_peer_unsafe

    Problems: modifying pipe from different thread is not safe and HWM always boosted by 1

commit edc770d680b2be5a633526bd2c724d66406c8360
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 10 11:40:14 2017 +0000

    Problem: HWM always boosted by 1

    Solution: initialise *hwmboost to -1 instead of 1, and use it only if
    it's >= 0. The socket option code checks anyway that the
    user-provided value is >= 0 so there is no risk of clashing. The
    documentation also specifies that it has to be >= 0.

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

commit 9f1ba60f508cc430680366d77af445969267d418
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 10 11:38:02 2017 +0000

    Problem: modifying pipe from different thread is not safe

    Solution: revert change from #2299 to avoid bugs while we look for an
    alternative and thread-safe solution

 src/pipe.cpp        | 5 -----
 src/pipe.hpp        | 3 ---
 src/socket_base.cpp | 1 -
 3 files changed, 9 deletions(-)

commit 598befc1f81cba3ee7f29c60818e49fbdp682918
Merge: 77e1792c 5adcb835
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jan 9 08:34:12 2017 +0000

    Merge pull request #2299 from laplaceyang/pr_set_hwm_after_connect

    Problem: set hwm after connect lead to infinite hwm

commit 5adcb83509af4b9701c985be153e9d038882a0d5
Author: laplaceyang <laplace2013@outlook.com>
Date:   Mon Jan 9 12:34:40 2017 +0800

    Problem: set hwm after connect lead to infinite hwm

 src/pipe.cpp        | 9 +++++++--
 src/pipe.hpp        | 3 +++
 src/socket_base.cpp | 1 +
 3 files changed, 11 insertions(+), 2 deletions(-)

commit 77e1792cd878ee18391c603f9e302fe007003350
Merge: 81bbd2b7 ce735c44
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 8 12:10:21 2017 +0100

    Merge pull request #2298 from bluca/spec_uuid

    Problem: spec file still depends on libuuid

commit ce735c44efa34589dcfadbb7761e548c0e4ec085
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 7 22:25:36 2017 +0000

    Problem: spec file still depends on libuuid

    Solution: remove the dependency as it's not been needed for a while

 packaging/redhat/zeromq.spec | 2 --
 1 file changed, 2 deletions(-)

commit 81bbd2b72de691503fe72f393259fcc185eff4d4
Merge: 9dbbd694 e3793661
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jan 7 19:39:36 2017 +0100

    Merge pull request #2296 from bluca/asciidoc-base

    Problem: debian packages do not build manpages

commit e37936616def4af429660339399126a8aa64c0dp
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 7 15:57:33 2017 +0000

    Problem: debian packages do not build manpages

    Solution: build-depend on asciidoc and xmlto

 packaging/debian/control        | 3 ++-
 packaging/debian/zeromq.dsc.obs | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 9dbbd69480278dfa2c9a62808def969bf2ffb86e
Merge: e80db0e8 e258890f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jan 7 01:51:30 2017 +0100

    Merge pull request #2295 from JohanMabille/cmake_win_install

    Cmake win install

commit e258890f6777bd7f13ad73fd1899a3a476cf41d3
Author: Johan Mabille <johan.mabille@gmail.com>
Date:   Sat Jan 7 00:47:22 2017 +0100

    INSTALLATION instructions

 INSTALL | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 7c709e546637c3058012e6f5f6a46bd68f41ba45
Author: Johan Mabille <johan.mabille@gmail.com>
Date:   Fri Jan 6 22:41:29 2017 +0100

    cmake install config file

 CMakeLists.txt        | 47 +++++++++++++++++++++++++++++++++++------------
 ZeroMQConfig.cmake.in | 15 +++++++++++++++
 2 files changed, 50 insertions(+), 12 deletions(-)

commit e95d23198f4a4abe9a0e037edp873a931493618c
Author: Johan Mabille <johan.mabille@gmail.com>
Date:   Fri Jan 6 14:29:56 2017 +0100

    CPack option and .txt files installation dir

 CMakeLists.txt | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

commit e80db0e8e56e6a12e84600e169d865a0c543e40e
Merge: ceb6be77 2d749a06
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jan 6 11:10:41 2017 +0100

    Merge pull request #2294 from JohanMabille/cmake_precompiled

    Windows cmake build fixed

commit 2d749a066c72e30c3adf9448de2f98789825cfc8
Author: Johan Mabille <johan.mabille@gmail.com>
Date:   Fri Jan 6 10:52:20 2017 +0100

    Windows cmake build fixed

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ceb6be7751ee44bca0a7b99ce8132381bf454ea7
Merge: d532f2e4 31a3a068
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 4 20:28:51 2017 +0100

    Merge pull request #2292 from bluca/osx_sigpipe

    Problem: peer can close connection before SO_NOSIGPIPE is set

commit 31a3a06828a42a798836d3b708a88657935e91ab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 3 23:55:57 2017 +0100

    Problem: peer can close connection before SO_NOSIGPIPE is set

    Solution: setsockopt returns EINVAL if the connection was closed by
    the peer after the accept returned a valid socket. This is a valid
    network error and should not cause an assert.
    To handle this we have to extract the setsockopt from the stream
    engine, as there's no clean way to return an error from the
    constructor. Instead, try to set this option before creating the
    engine in the callers, and return immediately as if the accept
    had failed to avoid churn. Do the same for the connect calls by
    setting the option in open_socket, so that the option for that
    case is set even before connecting, so there's no possible race
    condition.
    Since this has to be done in 4 places (tcp/ipc listener, socks
    connecter and open_socket) add an utility function in ip.cpp.
    Fixes #1442

 src/ip.cpp            | 29 ++++++++++++++++++++++++++++-
 src/ip.hpp            |  4 ++++
 src/ipc_listener.cpp  | 11 +++++++++++
 src/stream_engine.cpp |  7 -------
 src/tcp_listener.cpp  | 11 +++++++++++
 5 files changed, 54 insertions(+), 8 deletions(-)

commit d532f2e4d8345459fb752771b0dcf016f67711ed
Merge: 17ef8c67 28c7abf8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jan 3 21:21:11 2017 +0100

    Merge pull request #2290 from bluca/doc_proxy_eintr

    Problem: zmq_proxy* may return EINTR other than ETERM

commit 17ef8c67935aa37c3ebc64a470c3911f8da7d912
Merge: dce4d06b 7e186432
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jan 3 21:20:46 2017 +0100

    Merge pull request #2289 from bluca/windoze_includes_test

    Problem:capitalized include filenames trip mingw

commit 28c7abf821f09ff0e0ed50eafd82e96a4e96a2fa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 3 15:34:08 2017 +0100

    Problem: zmq_proxy* may return EINTR other than ETERM

    Solution: mention this in the documentation

 doc/zmq_proxy.txt           | 5 +++--
 doc/zmq_proxy_steerable.txt | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

commit 7e186432cbc644e2124711c53386aaaa9838e69e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 3 14:59:57 2017 +0100

    Problem:capitalized include filenames trip mingw

    Solution: use lowercase

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

commit dce4d06b71ba77ebd4f0818412a1f5f868a059b3
Merge: ec2ba8a9 1b3df75b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jan 3 12:49:34 2017 +0100

    Merge pull request #2288 from paddor/master

    fix typos

commit 1b3df75b8715f3c525bac5c439fb81ce8c3a89ea
Author: Patrik Wenger <paddor@gmail.com>
Date:   Tue Jan 3 12:45:21 2017 +0100

    fix typos

 doc/zmq_gssapi.txt     | 4 ++--
 doc/zmq_setsockopt.txt | 2 +-
 src/socket_base.cpp    | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

commit ec2ba8a9978f94f310315d0516ca3c39becde2d9
Merge: ee98e7dc ea7e03a7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jan 1 19:29:09 2017 +0100

    Merge pull request #2283 from vtellier/master

    Fixed issue #2227 second part

commit ea7e03a7ffed342c7eb3c3f230494f293e7eff77
Author: Vincent Tellier <vincent@tellier.me>
Date:   Sun Jan 1 18:20:03 2017 +0100

    Fixed issue #2286 by documentation

    tests/README.md explicitly indicates to check the libzmq.lib path in
    CMakeLists.txt.

 tests/README.md | 2 ++
 1 file changed, 2 insertions(+)

commit 7e36db07b113b7e68e1a3e46ff40c0d7cc823583
Author: Vincent Tellier <vincent@tellier.me>
Date:   Sun Jan 1 17:54:17 2017 +0100

    Handshake events null pointer fix

    The mechanism is instanciated during the handshake itself, when and
    error happen before this, the error method shall work anyway.
    An error handling with a NULL mechanism means the handshake fail, so the
    handshake failure event is also raised in this case.

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

commit ffb31dcadd89e952ac7c1547463cd5177c4bc56a
Author: Vincent Tellier <vincent@tellier.me>
Date:   Sat Dec 31 15:13:57 2016 +0100

    Fixed issue #2227 second part

     - removed the previously added encryption_error, less changes less bug
     - handshake fail is now signaled when an error happen while the
       mechanism is still hanshaking

 src/session_base.cpp  | 4 +---
 src/stream_engine.cpp | 7 ++-----
 src/stream_engine.hpp | 3 +--
 3 files changed, 4 insertions(+), 10 deletions(-)

commit ee98e7dca0704628ee4b2ad680a0a2666a434106
Merge: c38fde00 efc0e942
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 1 17:06:31 2017 +0100

    Merge pull request #2287 from bluca/hurd_ipv6_tos

    Problem: build fails on GNU/Hurd as it does not support IPV6_TCLASS

commit efc0e9429128a8951de590dbe87cbcc73a353039
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jan 1 16:16:55 2017 +0100

    Problem: build fails on GNU/Hurd as it does not support IPV6_TCLASS

    Solution: check if IPV6_TCLASS is defined so that when Hurd adds
    support it will just work. Also it will avoid tripping over this on
    other similar legacy systems.

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

commit c38fde00a009dbc8d60f7599db4d9c40cdf6be0d
Merge: 7005f227 7c0ded93
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Dec 31 18:25:36 2016 +0100

    Merge pull request #2285 from bluca/bump_versions

    Problem: 4.2.1 is out, time to bump versions

commit 7c0ded93affcd53d0ad702be113cd9f5c880ee05
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 31 16:26:41 2016 +0100

    Problem: 4.2.1 is out, time to bump versions

    Solution: add new changelog entry, bump library version in zmq.h and
    bump ABI version in configure.ac and CMakeLists.txt

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

commit 7005f22726d4a6ca527f27560a0a132394fdbbcc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 31 15:55:48 2016 +0100

    Bugfix release 4.2.1

    Finalize changelog and bump ABI revision

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

commit 086bb890c5a0fba77b913bfdpe11385dbf4bb7e5
Merge: 0ebed80d 3f3601e8
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Sat Dec 31 14:13:45 2016 +0100

    Merge pull request #2282 from bluca/event_test

    Problems: test_monitor failing, DRAFT events leaking when draft APIs are disabled

commit 3f3601e8553fb0512cc3060347dda368184a1aa3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 31 00:08:05 2016 +0100

    Problem: handshake events not tested with curve

    Solution: check that the expected handshake success or failure events
    are triggered in the curve security unit test

 tests/test_security_curve.cpp | 86 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

commit d50b5b80fdfa9332964f473ee14455b1d1f6c0a2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 30 23:53:20 2016 +0100

    Problem: NEWS entry for ctx option does not point to docs

    Solution: fix it

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit fc748ec7999767a382cfed180dpd180b9e4eefb3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 30 23:52:27 2016 +0100

    Problem: new monitor events not mentioned in NEWS

    Solution: add an entry

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

commit 200649fd5728b13c3f47632b4c0a83e09ffc5812
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 30 23:40:22 2016 +0100

    Problem: new handshake event monitoring undocumented

    Solution: add them to the event monitor manpage

 doc/zmq_socket_monitor.txt | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 2afba0085f9a2fc007208c31ca2457c5e0b49a5c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 30 23:27:56 2016 +0100

    Problem: documentation does not warn about ZMQ_EVENT_ALL and new events

    Solution: add a note pointing out that when new events are added the
    ZMQ_EVENT_ALL mask will start returning them, so applications that
    can't handle that transparently should not use it and instead pick
    only the event types they want.
    Creating a new event type and having monitors with ZMQ_EVENT_ALL
    return them will not be considered a backward incompatible change
    even though the flow of events will change.

 doc/zmq_socket_monitor.txt | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c0e2bc4ef9a3203167b2b711006044da0339264c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 30 23:08:34 2016 +0100

    Problem: new DRAFT monitor events returned even without --enable-draft

    Solution: wrap the event triggering in the DRAFT ifdef as well as the
    defines. This ensures that the event are returned only if the
    library was built with DRAFTs enabled.

    Also update the test case to expect the new events since it uses
    the catch-all mask. Although the sequence of event is different and
    this might be considered as an API breakage, using the catch-all
    ZMQ_EVENT_ALL mask implies that, well, all events are monitored so
    it's normal that new ones will be added.
    Users that don't want this kind of behaviour to change can simply
    monitor only the event that they care about.

 src/stream_engine.cpp  | 6 ++++++
 tests/test_monitor.cpp | 8 ++++++++
 2 files changed, 14 insertions(+)

commit 0ebed80dc12d8b1c0ac6942bef11b71117c0414e
Merge: 0ad600c7 48bc75e8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 30 21:00:17 2016 +0100

    Merge pull request #2281 from vtellier/master

    Code formatting + reverted hard error handshake fail

commit 48bc75e8a1416745bcd85094628330c6295154fb
Author: Vincent Tellier <Vincent.Tellier@Stingray.no>
Date:   Fri Dec 30 18:26:56 2016 +0100

    Code formatting + reverted hard error handshake fail

     - Moved new events in draft section + added to zmq_draft.h
     - Removed the remainning tabs
     - Reverted the hard error (back to soft error) in curve_server.cpp

    => The feature doesn't works anymore

 include/zmq.h         |  8 +++++---
 src/curve_server.cpp  | 13 ++++++-------
 src/socket_base.cpp   |  4 ++--
 src/socket_base.hpp   |  2 +-
 src/stream_engine.cpp |  4 ++--
 src/zmq_draft.h       |  6 +++++-
 6 files changed, 21 insertions(+), 16 deletions(-)

commit 0ad600c7deecbbdp2b1a625109a0096fcacb3088
Merge: 64b07d81 b6e9e0c2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 30 17:15:18 2016 +0100

    Merge pull request #2280 from vtellier/master

    Fixed issue #2227

commit b6e9e0c2d35db4e2f60d5d1c2c54e88f1588795a
Author: Vincent Tellier <Vincent.Tellier@Stingray.no>
Date:   Fri Dec 30 16:26:42 2016 +0100

    Fixed issue #2227

    Added two new monitoring events:
     - ZMQ_EVENT_HANDSHAKE_SUCCEED is raised once the encryption handshake succeed
     - ZMQ_EVENT_HANDSHAKE_FAILED is raised when it failed
    Both events are raised on server and client side.

 include/zmq.h         |  2 ++
 src/curve_server.cpp  | 11 ++++++-----
 src/session_base.cpp  |  4 +++-
 src/socket_base.cpp   | 10 ++++++++++
 src/socket_base.hpp   |  2 ++
 src/stream_engine.cpp | 13 ++++++++++++-
 src/stream_engine.hpp |  3 ++-
 7 files changed, 37 insertions(+), 8 deletions(-)

commit 64b07d8132ef919ffe741cf35b6f69d5854c4b5f
Merge: 715f87fe 8c22ba24
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Dec 29 21:48:39 2016 +0100

    Merge pull request #2278 from bluca/msg_t_size_draft

commit 8c22ba246c6342513f88de5f5e4818f75fc8bb69
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 29 21:00:10 2016 +0100

    Problem: bug fixes not mentioned in NEWS file

    Solution: add most relevant bug fixes since 4.2.0

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

commit 113feb60a22e9cff5fe639b352b9e671825d5df5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 29 20:40:57 2016 +0100

    Problem: ZMQ_MSG_T_SIZE draft but not in DRAFT section

    Solution: move it there, add it to src/zmq_draft.h and clarify in the
    documentation and in the NEWS file that this option is not yet stable

 NEWS                       | 2 +-
 doc/zmq_ctx_get.txt        | 1 +
 include/zmq.h              | 8 +++-----
 src/zmq_draft.h            | 3 +++
 tests/test_ctx_options.cpp | 2 ++
 5 files changed, 10 insertions(+), 6 deletions(-)

commit 715f87fec7832d344e36563012e9b5000997fef9
Merge: ef88b8c7 47c7d8ee
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 28 16:36:58 2016 +0100

    Merge pull request #2277 from bluca/automake_1.14

    Problem: debian build fails with automake < 1.14

commit 47c7d8ee50b722a92e75ed720f9c2f6a3a23413c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Dec 28 00:55:17 2016 +0100

    Problem: debian build fails with automake < 1.14

    Solution: create config subdir as a workaround if building the
    packages with automake < 1.14

 packaging/debian/rules | 3 +++
 1 file changed, 3 insertions(+)

commit ef88b8c7608ef55b988d0ce7679199791c88d138
Merge: b2a2bb86 bbdp5d0f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Dec 27 16:28:08 2016 +0100

    Merge pull request #2276 from bluca/sodium_pkg

commit bbdp5d0f9a113385faa5bbcf62b21814066df63b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 27 14:45:45 2016 +0100

    Problem: dpkg-query might fail in CI build and fail the build

    Solution: rework the bash test to avoid build failures as intended
    and make it an easier one-liner

 builds/cmake/ci_build.sh    | 12 ++----------
 builds/coverage/ci_build.sh | 12 ++----------
 builds/valgrind/ci_build.sh | 12 ++----------
 ci_build.sh                 | 12 ++----------
 4 files changed, 8 insertions(+), 40 deletions(-)

commit b2a2bb860944a287e37b872b9d5fbf12830b4aba
Merge: 5871ea5d b1137b76
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Dec 27 12:51:19 2016 +0100

    Merge pull request #2275 from bluca/travis_pkg

commit b1137b767234bc12ec4524e423c790f8ddf7497d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 27 12:00:10 2016 +0100

    Problem: documentation build not tested on Travis

    Solution: install asciidoc and xmlto in the libsodium build run, since
    it already refreshes APT to download other packages, so the delay is
    smaller

 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

commit 822def9b2badd046397dpd53e0e0caa36970909c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 21:50:38 2016 +0100

    Problem: Travis rebuilds libsodium every time

    Solution: use packages on Ubuntu and brews on OSX. The packages and
    the brews are always kept up to date, so it's no use to rebuild the
    libsodium stable branch manually everytime.

 .travis.yml                 | 13 ++++++++++++-
 builds/cmake/ci_build.sh    | 15 +++++++++++++--
 builds/coverage/ci_build.sh | 15 +++++++++++++--
 builds/valgrind/ci_build.sh | 15 +++++++++++++--
 ci_build.sh                 | 15 +++++++++++++--
 5 files changed, 64 insertions(+), 9 deletions(-)

commit a1220b7fd4a628b958325fdb4cbd5612612b7e4e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 27 11:28:09 2016 +0100

    Problem: Travis OSX workaround for libtool no longer needed

    Solution: Revert "Problem: Travis CI OSX builds are broken"

    This reverts commit 531b3bf7c3ed5f29760c89b7152a2c85a4a9d8bd.

 .travis.yml | 2 --
 1 file changed, 2 deletions(-)

commit 1f86019e3f17d109adfd5331191564dp766bd98e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 21:30:16 2016 +0100

    Problem: Travis installs packages when not needed

    Solution: narrow down the matrix to install valgrind and lcov only
    for the test runs that use them.
    CMake is part of the default image so no need to install it at all.

 .travis.yml | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

commit 5871ea5df8b448f2d7446858ce93c762178f091a
Merge: 16439e42 06055a7b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 26 20:18:12 2016 +0100

    Merge pull request #2274 from bluca/cloexec

commit 06055a7b747d5dfa021adedef0572db1f21f7cf3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 19:20:09 2016 +0100

    Problem: cmake does not run test_zmq_poll_fd

    Solution: add it to the list

 tests/CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 6e708ce14432066755775102b09845fccc843036
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 18:28:18 2016 +0100

    Problem: socketpair leaks file on fork+exec

    Solution: if available, call socketpair with SOCK_CLOEXEC flag to
    make the process close the socket on fork+exec

 src/signaler.cpp | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit f287c7a2aa09dc64cf360a392ec4faf2350fc960
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 18:18:00 2016 +0100

    Problem: eventfd leaks socket on fork+exec

    Solution: if available, use eventfd with EFD_CLOEXEC flag to make
    the process close the socket on fork+exec

 CMakeLists.txt                                |  3 +++
 acinclude.m4                                  | 23 +++++++++++++++++++++++
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 15 +++++++++++++++
 builds/cmake/platform.hpp.in                  |  1 +
 configure.ac                                  | 10 ++++++++--
 src/signaler.cpp                              |  9 ++++++++-
 6 files changed, 58 insertions(+), 3 deletions(-)

commit 211898d24353aa04e881d6bce28c5902348e3afa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 18:01:36 2016 +0100

    Problem: epoll leaks socket on fork+exec

    Solution: if available, use epoll_create1 with EPOLL_CLOEXEC flag to
    make the process close the socket on fork+exec

 CMakeLists.txt               |  4 ++++
 acinclude.m4                 | 36 ++++++++++++++++++++++++++++++++++--
 builds/cmake/platform.hpp.in |  1 +
 src/epoll.cpp                |  7 +++++++
 4 files changed, 46 insertions(+), 2 deletions(-)

commit 16439e42d23023f252afa65a432fbc85f5946a66
Merge: d68e2e01 a06f97d7
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 26 15:24:44 2016 +0100

    Merge pull request #2272 from bluca/document_read_after_free

commit d68e2e018e563fd42c5dd081dec718321451e4b7
Merge: dc39ceb3 3dc016ca
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 26 15:12:40 2016 +0100

    Merge pull request #2273 from bluca/docs

commit 3dc016cab306421ce69692a944d19fc5a7c329eb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 14:49:45 2016 +0100

    Problem: no documentation for ZMQ_SOCKS_PROXY

    Solution: add paragraphs to zmq_get/setsockopt man pages

 doc/zmq_getsockopt.txt | 13 +++++++++++++
 doc/zmq_setsockopt.txt | 15 +++++++++++++++
 2 files changed, 28 insertions(+)

commit baf32a19859abdf01565dbed90518f06b37949d2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 26 14:23:32 2016 +0100

    Problem: no documentation for zmq_curve_public

    Solution: add manpage

 doc/Makefile.am          |  2 +-
 doc/zmq.txt              |  3 +++
 doc/zmq_curve_public.txt | 62 ++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt   |  6 +++--
 doc/zmq_z85_decode.txt   |  1 +
 doc/zmq_z85_encode.txt   |  1 +
 6 files changed, 72 insertions(+), 3 deletions(-)

commit a06f97d73a596285a2e16785636113785b82d4af
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 22 13:40:14 2016 +0000

    Problem: fix for read-after-free not documented

    Solution: add a comment as it's easy to miss and very tempting to
    "optimize"

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

commit dc39ceb34749303545068670f0b840433c2e2b5c
Merge: fe3756de 43941052
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 22 13:55:03 2016 +0100

    Merge pull request #2268 from imkos/master

    Mingw32 Compile

commit 43941052a94cf6e5f62be3802f46aa03bef74d07
Author: Kos <vbz276@gmail.com>
Date:   Thu Dec 22 14:25:00 2016 +0800

    add link libsodium.a

 builds/mingw32/Makefile.mingw32 | 2 +-
 builds/mingw32/platform.hpp     | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

commit edad90f77029d7eb3d559458e3e8482be43714f0
Author: Kos <vbz276@gmail.com>
Date:   Thu Dec 22 09:35:49 2016 +0800

    mingw32 fix

 builds/mingw32/Makefile.mingw32 | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit fe3756defa6f9acddc338c25354e2a1141336621
Merge: 7a8180ec ee72493e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 19 18:07:37 2016 +0100

    Merge pull request #2266 from Cziken/master

    Problem: Duplicated code

commit ee72493e148f945b0382e6b2ea1a13952751a010
Author: Wojciech Kula <wojciech_kula@o2.pl>
Date:   Fri Dec 16 16:44:31 2016 +0100

    Problem: Duplicated code

    Solution: set_curve_key method in options_t struct with little
    improvement in switch-case block

 src/options.cpp | 103 +++++++++++++++++++-------------------------------------
 src/options.hpp |   2 ++
 2 files changed, 37 insertions(+), 68 deletions(-)

commit 7a8180ece75e250d437ff0fb8a312dpd4b82d035
Merge: 2dec320b e6b1f561
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Dec 18 16:52:15 2016 +0100

    Merge pull request #2265 from bluca/contribution_notice_github

    Problem: contributing guidelines unclear for new devs

commit e6b1f561310292e0e74177ced2a073a3adde5e35
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Dec 18 11:46:08 2016 +0000

    Problem: contributing guidelines unclear for new devs

    Solution: port Github PR template from CZMQ

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

commit 2dec320b224262d51c90d5d134d79d5e1257649b
Merge: 2aa09d34 48e9e247
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 16 18:12:37 2016 +0100

    Merge pull request #2263 from bluca/revert_curve_break

commit 48e9e2472657709d88cd819571fffaf1997a0c40
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 16 16:50:17 2016 +0000

    Problem: #2262 broke curve

    Solution: Revert "Problem: Duplicated code"

    This reverts commit 022eeaf33d50f8a1515a28ffb8c8cafd843ca064.

 src/options.cpp | 103 ++++++++++++++++++++++++++++++++++++++------------------
 src/options.hpp |   2 --
 2 files changed, 71 insertions(+), 34 deletions(-)

commit 2aa09d34ffe6fa60bf48dp7c3088a6702c974ed7
Merge: d514bb59 022eeaf3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 16 17:32:27 2016 +0100

    Merge pull request #2262 from Cziken/master

    Problem: Duplicated code

commit 022eeaf33d50f8a1515a28ffb8c8cafd843ca064
Author: Wojciech Kula <wojciech_kula@o2.pl>
Date:   Fri Dec 16 16:44:31 2016 +0100

    Problem: Duplicated code

    Solution: set_curve_key method in options_t struct with little
    improvement in switch-case block

 src/options.cpp | 103 ++++++++++++++++++--------------------------------------
 src/options.hpp |   2 ++
 2 files changed, 34 insertions(+), 71 deletions(-)

commit d514bb598a1ad10e0fdpbd53215675f94d31198c
Author: Cziken <wojciech_kula@o2.pl>
Date:   Fri Dec 16 15:51:00 2016 +0100

    Fixed handling of WSdpWOULDBLOCK to be generic (#2260)

    * Fixed handling of WSdpWOULDBLOCK to be generic

    I don't know what was the intention of this early if statement but
    now this is properly evaluated in wsa_error_no function if this is
    performance issue I suggest moving evaluating this error code to the
    beginning of wsa_error_no.

    * Fixed handling of WSdpWOULDBLOCK to be generic

    Introduced default pointer to const char * and overrides this as NULL
    if function is called by zmq::wsa_error()

    * Fixed handling of WSdpWOULDBLOCK to be generic

    Introduced default pointer to const char * and overrides this as NULL
    if function is called by zmq::wsa_error()

 src/err.cpp | 11 +++--------
 src/err.hpp |  2 +-
 2 files changed, 4 insertions(+), 9 deletions(-)

commit 2b565088d0058a03936200939e7fd772c8677d72
Merge: 1910ef8d 0abdc28c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 15 14:20:46 2016 +0100

    Merge pull request #2257 from minrk/check-event

    zmq_poll: only compare FD when neither item is a zmq socket

commit 0abdc28c8457e5bc4462a942ee8569fb2d81dfdp
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Dec 15 14:05:40 2016 +0100

    only compare FD when neither item is a zmq socket

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

commit 1910ef8d3e2553d296962445002e538ef797348a
Merge: 02a60799 8e8fdcc9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 15 14:02:50 2016 +0100

    Merge pull request #2256 from laplaceyang/pr_zmq4_pub_with_zmtp_v1_sub

    fix bug zmq4.x PUB msg to ZMTP1.0 SUB server

commit 02a6079968afb6c8e0084460f5fd6e91fb9f9361
Merge: f9d23143 272d340c
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Dec 15 13:39:20 2016 +0100

    Merge pull request #2255 from bluca/poll_fd_testcase

    Problem: no mixed FD and zmq socket zmq_poll test

commit 8e8fdcc9edff6b36f6d70dba0774f7923d63f840
Author: laplaceyang <laplace2013@outlook.com>
Date:   Thu Dec 15 20:29:58 2016 +0800

    fix bug zmq4.x PUB msg to ZMTP1.0 SUB server

 src/stream_engine.cpp | 34 +++++++++++++---------------------
 src/stream_engine.hpp |  2 --
 2 files changed, 13 insertions(+), 23 deletions(-)

commit 272d340c1fb52c769952291f1d61817fa31a0250
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 15 11:54:27 2016 +0000

    Problem: no mixed FD and zmq socket zmq_poll test

    Solution: add one

 .gitignore                 |  1 +
 Makefile.am                |  4 ++
 tests/test_zmq_poll_fd.cpp | 98 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 103 insertions(+)

commit f9d231437ac46236f7c0f08b5f5644731b487cc5
Merge: 90528626 a4e448d5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 13 12:43:07 2016 +0100

    Merge pull request #2251 from hnwyllmm/master

    misuse of 'close'

commit a4e448d586e33d6e71a4caf581be98dp5513c2a9
Author: Laughing <hnwyllmm@126.com>
Date:   Tue Dec 13 11:09:01 2016 +0800

    misuse of 'close'

    use 'pollset_destroy' instead of 'close' to release pollset_fd

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

commit 905286261969d4e4b1b956f2befacb8c1edp5e35
Merge: c47e017b 72176d5f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Dec 11 07:51:31 2016 +0100

    Merge pull request #2250 from bluca/poll_regression

    Problem: check for item.fd causes zloop_poller regression

commit 72176d5fbec939c9233e1fcaa410bc2820586590
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 10 23:33:55 2016 +0000

    Problem: check for item.fd causes zloop_poller regression

    Solution: fix the check for the socket.
    This regression happens when using zloop with zmq_pollitem_it with
    only file descriptors registerted through zloop_poller.

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

commit c47e017bddf0c66add8e13b5c8c5d1eb85dd108f
Merge: 39947d55 4d6fbe17
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 10 16:01:38 2016 +0100

    Merge pull request #2249 from pavel-pimenov/fix-v817

    "%" -> '%'

commit 4d6fbe17e0026e94f218bc581b1515ee5f47412a
Author: pavel.pimenov <pavel.pimenov@gmail.com>
Date:   Sat Dec 10 17:27:42 2016 +0300

    "%" -> '%'

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

commit 39947d55c75811da42bf65b9b239a2201565de2c
Merge: f64d3ad1 eff42fa3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 10 14:57:14 2016 +0100

    Merge pull request #2248 from pavel-pimenov/fix-precompiled

    Add #include "precompiled.hpp"

commit eff42fa3216cfc2b447e32c400933b7003fdp007
Author: pavel.pimenov <pavel.pimenov@gmail.com>
Date:   Sat Dec 10 16:44:51 2016 +0300

    Add #include "precompiled.hpp"

 src/norm_engine.cpp    | 2 ++
 src/tipc_address.cpp   | 2 ++
 src/tipc_connecter.cpp | 2 ++
 src/tipc_listener.cpp  | 2 ++
 src/vmci.cpp           | 1 +
 src/vmci_address.cpp   | 2 ++
 src/vmci_connecter.cpp | 2 ++
 src/vmci_listener.cpp  | 2 ++
 8 files changed, 15 insertions(+)

commit f64d3ad1e778b18f51afce1b920c8473658157cc
Merge: ad4a1bd0 379028fb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 9 20:57:01 2016 +0100

    Merge pull request #2247 from bluca/trusty_unwind

    Problem: there is no libunwind-dev on Ubuntu 14.04LTS

commit 379028fbd9fad3f7c11f517043c8f373e0e5c99e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 9 18:42:19 2016 +0000

    Problem: there is no libunwind-dev on Ubuntu 14.04LTS

    Solution: depend on libunwind-dev | libunwind8-dev | libunwind7-dev

 packaging/debian/control        | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit ad4a1bd0f36ad5bdb11241607160256843561996
Merge: d4076578 ad045512
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 9 10:41:07 2016 +0100

    Merge pull request #2245 from anass-b/builds-vs2017

    Build support for VS2017, Windows SDK 10.0.14393.0, toolset v141

commit ad045512b941a9aa031ea6d84879916a58e102df
Author: Anass Bouassaba <anass.bouassaba@t-online.de>
Date:   Fri Dec 9 09:21:11 2016 +0100

    Build support for VS2017, Windows SDK 10.0.14393.0, toolset v141

 builds/msvc/vs2017/inproc_lat/inproc_lat.props   |  49 ++
 builds/msvc/vs2017/inproc_lat/inproc_lat.vcxproj |  80 +++
 builds/msvc/vs2017/inproc_thr/inproc_thr.props   |  49 ++
 builds/msvc/vs2017/inproc_thr/inproc_thr.vcxproj |  80 +++
 builds/msvc/vs2017/libzmq.import.props           |  64 +++
 builds/msvc/vs2017/libzmq.import.xml             |  49 ++
 builds/msvc/vs2017/libzmq.sln                    | 208 ++++++++
 builds/msvc/vs2017/libzmq/libzmq.props           |  76 +++
 builds/msvc/vs2017/libzmq/libzmq.vcxproj         | 284 ++++++++++
 builds/msvc/vs2017/libzmq/libzmq.vcxproj.filters | 627 +++++++++++++++++++++++
 builds/msvc/vs2017/libzmq/libzmq.xml             |  40 ++
 builds/msvc/vs2017/local_lat/local_lat.props     |  49 ++
 builds/msvc/vs2017/local_lat/local_lat.vcxproj   |  80 +++
 builds/msvc/vs2017/local_thr/local_thr.props     |  49 ++
 builds/msvc/vs2017/local_thr/local_thr.vcxproj   |  80 +++
 builds/msvc/vs2017/remote_lat/remote_lat.props   |  49 ++
 builds/msvc/vs2017/remote_lat/remote_lat.vcxproj |  80 +++
 builds/msvc/vs2017/remote_thr/remote_thr.props   |  49 ++
 builds/msvc/vs2017/remote_thr/remote_thr.vcxproj |  80 +++
 19 files changed, 2122 insertions(+)

commit d4076578a3791db87fc270fc4f8f39fe07127292
Merge: 519940d0 365ca859
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 8 16:50:03 2016 +0100

    Merge pull request #2244 from rotty/wip/fix-mstcpip-include

    Fix #include case for <mstcpip.h>

commit 365ca8595db4c97e2c342daf672ef4f4b166d70c
Author: Andreas Rottmann <a.rottmann@gmx.at>
Date:   Thu Dec 8 16:35:44 2016 +0100

    Fix #include case for <mstcpip.h>

    On native Windows, the file system is case-insensitive, so this this
    doesn't matter there.

    However, when compiling on a case-sensitive filesystem, such as when
    cross-compiling from a Unixoid using mingw, we have to use the case
    the file is supplied with, which is all lowercase.

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

commit 519940d07c3c505436322b060babe2250358e6d4
Merge: 5e03ad6d dcec0223
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Dec 7 05:46:34 2016 +0100

    Merge pull request #2241 from bluca/aix_test

    Problem: test_stream_exceeds_buffer fails to build on AIX

commit dcec0223580f6ad5f0bbc5ac018ce2135a2dpa1b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 6 20:09:57 2016 +0000

    Problem: test_stream_exceeds_buffer does not build on AIX

    Solution: add missing includes

 tests/testutil.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 8325355d730550ec938162bcb9e2585d4070e425
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 6 20:09:13 2016 +0000

    Problem: test_stream_exceeds_buffer has redundant includes

    Solution: remove them as they are already in testutil.hpp

 tests/test_stream_exceeds_buffer.cpp | 7 -------
 1 file changed, 7 deletions(-)

commit 5e03ad6d87ce666bdef5be5f39584ff12bb6d341
Merge: 3f8e6c08 57db5f2a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Dec 6 19:34:20 2016 +0100

    Merge pull request #2240 from bluca/aix_poll

    Problem: 4.2.0 won't compile on AIX 7.1

commit 57db5f2a5c886af851b6640777ebaa88c7468c6b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 1 23:38:16 2016 +0000

    Problem: 4.2.0 won't compile on AIX 7.1

    Solution: restore inclusion of poll.h if using poll before zmq.h as
    it was originally, as AIX redefines the POSIX structures and provides
    compatibility macros.
    Also add alternative aliases for 32 bit AIX's pollitem struct:
      events -> reqevents
      revents -> rtnevents

 include/zmq.h    |  7 +++++++
 src/proxy.cpp    | 20 +++++++++++---------
 src/signaler.cpp | 14 ++++++++++----
 3 files changed, 28 insertions(+), 13 deletions(-)

commit 3f8e6c0812d0df644b8b95dd4a45650536b32822
Merge: 42c63368 52ebffd7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 5 14:22:28 2016 +0100

    Merge pull request #2239 from loachfish/master

    avoid crashing in the multi-thread operation for std::vector

commit 52ebffd71597b97d5980a60ba3f98567f7945ac6
Author: Justin.Hung <justin.hung@foxmail.com>
Date:   Mon Dec 5 09:28:05 2016 +0800

    avoid crashing in the multi-thread operation for std::vector

    1. stl container is not thread safety
    2. rm_fd() and loop() end to clear the retired event source will in multi-thread operation
    3. may be crashed in reaper thread to delete the items in the std::vector as the source is nullptr

 src/epoll.cpp | 4 ++++
 src/epoll.hpp | 4 ++++
 2 files changed, 8 insertions(+)

commit 42c63368e6e428064332597b99e09368df9da73f
Merge: 324f1049 e46d91d4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Dec 4 07:42:47 2016 +0100

    Merge pull request #2238 from bluca/revert

    Problem: PR #2236 breaks the build

commit e46d91d41fbf98685221eb15e3d6d8163794d83e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 3 22:10:19 2016 +0000

    Problem: PR #2236 breaks the build

    Solution: Revert "avoid crashing in the multi-thread operation for std::vector"

    This reverts commit e1368bdac804a49de101725ede1f900dpbe82c10.

 src/epoll.cpp | 4 ----
 src/epoll.hpp | 4 ----
 2 files changed, 8 deletions(-)

commit 324f10494a39845a7c2ce8e4a0857950a816bd1b
Merge: 9a20f42f e1368bda
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Dec 3 16:09:56 2016 +0100

    Merge pull request #2236 from loachfish/master

    avoid crashing in the multi-thread operation for std::vector

commit e1368bdac804a49de101725ede1f900dpbe82c10
Author: Justin.Hung <justin.hung@foxmail.com>
Date:   Fri Dec 2 17:33:13 2016 +0800

    avoid crashing in the multi-thread operation for std::vector

    1. stl container is not thread safety
    2. rm_fd() and loop() end to clear the retired event source will in multi-thread operation
    3. may be crashed in reaper thread to delete the items in the std::vector as the source is nullptr

 src/epoll.cpp | 4 ++++
 src/epoll.hpp | 4 ++++
 2 files changed, 8 insertions(+)

commit 9a20f42f62f6b99be72ebb43cb43963fc970039b
Merge: febf8015 abeaba15
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 2 07:32:55 2016 +0100

    Merge pull request #2235 from bluca/cmake_soversion

    Problem: CMake build uses library version as the ABI version

commit abeaba15573c6fc7581699859fd9ff527d5a60c9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 1 22:33:43 2016 +0000

    Problem: CMake build uses library version as the ABI version

    Solution: set SOVERSION in CMakeLists to match the SONAME generated
    by libtool so that there is no mismatch between the output of the
    *NIX build systems.

    Before:
    $ ls -l
    total 2696
    lrwxrwxrwx 1 luca luca      15 Dec  1 22:36 libzmq.so -> libzmq.so.4.2.0
    lrwxrwxrwx 1 luca luca      15 Dec  1 22:36 libzmq.so.4.2.0 -> libzmq.so.4.2.1
    -rwxr-xr-x 1 luca luca  906168 Dec  1 22:36 libzmq.so.4.2.1
    $ readelf -d libzmq.so.4.2.1 | grep SONAME
     0x000000000000000e (SONAME)    Library soname: [libzmq.so.4.2.0]

    After:
    $ ls -l
    total 2700
    lrwxrwxrwx 1 luca luca      15 Dec  1 22:31 libzmq.so -> libzmq.so.5.1.0
    -rwxr-xr-x 1 luca luca  906168 Dec  1 22:31 libzmq.so.4.2.1
    lrwxrwxrwx 1 luca luca      15 Dec  1 22:31 libzmq.so.5.1.0 -> libzmq.so.4.2.1
    $ readelf -d libzmq.so.4.2.1 | grep SONAME
     0x000000000000000e (SONAME)    Library soname: [libzmq.so.5.1.0]

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

commit febf8015840969e9461e31f4b47132266dca62a4
Author: Laughing <hnwyllmm@126.com>
Date:   Thu Dec 1 18:59:23 2016 +0800

    bug fix: AIX pollset error (#2233)

    * bug fix: AIX pollset error

    buf fix:  AIX only, pollset 'rm_fd' set fd_table to null first then set pe->fd to retired_fd

    * remove extra spaces

    remove extra spaces

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

commit 294bdb4eb6e1a0a9653a55db3721f8decd05ee56
Merge: 4a24805f 33fcd2d6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Nov 30 21:07:32 2016 +0100

    Merge pull request #2231 from bluca/windows_ipv6_tos

    Problem: Windows does not support IPV6_TCLASS

commit 33fcd2d6ca17ffc8e0f3d3606863ba988686d21c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 30 11:09:12 2016 +0000

    Problem: Windows does not support IPV6_TCLASS

    Solution: don't use it on Windows.
    There is a Windows-specific API for ToS, even IPv4 does not work and
    it's just a silent no-op on that platform.

 src/ip.cpp | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit 4a24805f7055b58d58518339dd4ad74cb8bf0440
Merge: e6572fac 121c9d16
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Nov 24 20:00:33 2016 +0100

    Merge pull request #2225 from bluca/select_broken

    Problem: select broken

commit 121c9d16f5bb689f7cba8a73f8e44b20ea023d51
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 24 13:07:12 2016 +0000

    Problem: select.cpp/hpp build fails with reorder error

    Solution: initialise class variables in the same order they are
    declared

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

commit ba74890f2fa24af9bfc79fdp09c9447a8170f430
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 24 12:44:51 2016 +0000

    Problem: cannot pick select for poller

    Solution: fix acinclude.m4 snippet that checks if select is
    available to stop it erroring out.

 acinclude.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e6572fac8024f3a93b1ff4fcb0e80c11823ea929
Merge: 53bf6dfc ec25fd2a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 21 14:17:36 2016 +0100

    Merge pull request #2222 from SuperFluffy/doc_explain_context

    Add a single sentence explaining what a context is

commit ec25fd2adac6f0c13d4af778d1c37d27439e8050
Author: Richard Janis Goldschmidt <janis.beckert@gmail.com>
Date:   Mon Nov 21 14:11:33 2016 +0100

    Add a single sentence explaining what a context is

 doc/zmq.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 53bf6dfcf0c63c17fe49e477d4fb91c9fb8a0695
Merge: 185fed39 f302d8a7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 21 12:17:01 2016 +0100

    Merge pull request #2221 from minrk/check-socket

    only compare pollitem.fd if pollitem.socket is NULL

commit f302d8a7b6cc74f6e8308e1d61ffb4804961c346
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon Nov 21 11:47:50 2016 +0100

    only compare pollitem.fd if pollitem.socket is NULL

    item.fd should be ignored if item.socket is defined.

    Failing to check .socket could cause false-matches, raising EINVAL in zmq_poller_modify_fd.

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

commit 185fed3966c134c9062dc202b285877134be4b06
Merge: 3db69212 8a286bb8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Nov 20 14:59:45 2016 +0100

    Merge pull request #2220 from bluca/zmq_msg_size

    Problem: size of zmq_msg_t is not known to FFI wrappers

commit 8a286bb842f3d8769a51e83ceb5ed942acebaf4b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 20 12:51:25 2016 +0000

    Problem: no documentation for ZMQ_MSG_T_SIZE ctx option

    Solution: mention it in zmq_ctx_get manpage

 doc/zmq_ctx_get.txt | 7 +++++++
 1 file changed, 7 insertions(+)

commit b480457283b8a6c00264994bcdb1a1a36a978515
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 20 12:50:45 2016 +0000

    Problem: ZMQ_MSG_T_SIZE is not mentioned in NEWS

    Solution: mention it as it's a new public API (still draft until release)

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

commit 670bec56d84451c66002dba9837df54cf62b03f1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 20 12:24:03 2016 +0000

    Problem: size of zmq_msg_t is not known to FFI wrappers

    Solution: add a ZMQ_MSG_T_SIZE context read-only option so that
    wrappers can call zmq_ctx_get (ctx, ZMQ_MSG_T_SIZE) to get the
    size at runtime.

 include/zmq.h              | 3 +++
 src/ctx.cpp                | 3 +++
 tests/test_ctx_options.cpp | 1 +
 3 files changed, 7 insertions(+)

commit 3db69212b7f1d125251c9c92666ad374895b68f7
Merge: 93ccb5a1 5d176cbe
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Nov 16 20:03:18 2016 +0100

    Merge pull request #2216 from rotty/master

    Document terminating NUL behavior in API more explicitly

commit 5d176cbe98fe58aa4409bb846475270b6df051fb
Author: Andreas Rottmann <a.rottmann@gmx.at>
Date:   Wed Nov 16 19:50:50 2016 +0100

    Document terminating NUL behavior in API more explicitly

    This addresses #2169.

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

commit 93ccb5a16d06d51b88765afac7aacffc00a5e301
Merge: 5879f729 10181d76
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Nov 15 20:41:32 2016 +0100

    Merge pull request #2215 from Bklyn/udp-bugfix

    Problem: inconsistent indentation and tabs in code

commit 10181d764139b25d9dpcbc27acec3470273b54a5
Author: Caleb Epstein <Bklyn@users.noreply.github.com>
Date:   Tue Nov 15 14:25:38 2016 -0500

    Untabify

 src/tcp_address.cpp | 222 ++++++++++++++++++++++++++--------------------------
 1 file changed, 111 insertions(+), 111 deletions(-)

commit 5879f729dd92c59b8883b1c9d64e81520031a106
Merge: ace95327 f577ceab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 15 20:13:21 2016 +0100

    Merge pull request #2214 from Bklyn/udp-bugfix

    Problem: multicast is spelled incorrectly in udp_address class

commit f577ceab4b299cda4a23afc2f2d965471b2d0589
Author: Caleb Epstein <cdp@bklyn.org>
Date:   Tue Nov 15 13:56:49 2016 -0500

    Problem: multicast is spelled incorrectly in udp_address class

    Solution: Fix typo of 'mutlicast' -> 'multicast'

 src/udp_address.cpp | 10 +++++-----
 src/udp_address.hpp |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

commit ace95327a304d9717f245cc9964a08436fad0171
Merge: b9b0fd87 cdac1ac9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Nov 15 19:55:54 2016 +0100

    Merge pull request #2213 from Bklyn/udp-bugfix

    Fix htons copy pasta

commit cdac1ac9d32415258d39fcaa9b60b21f6d6714dp
Author: Caleb Epstein <cdp@bklyn.org>
Date:   Tue Nov 15 13:51:49 2016 -0500

    Fix htons copy pasta

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

commit b9b0fd87a4eafd7ffdp4abd6a8be4513e34c79d4
Merge: bc186043 90f091ab
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Nov 14 13:58:28 2016 +0100

    Merge pull request #2210 from bluca/ipv6_tos_v4_only

    Problem: IPV6_TCLASS setsockopt fails on IPv4 socket

commit 90f091abf3be398641446cc6d7c6656d8100f877
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 14 11:59:32 2016 +0000

    Problem: IPV6_TCLASS setsockopt fails on IPv4 socket

    Solution: if setsockopt errors out and errno is set to ENOPROTOOPT
    (or EINVAL on OSX) ignore it and carry on.

 src/ip.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit bc1860430acb008397dcfaaa4f5e41d53f61f29a
Merge: 8ac7500f fc8007e8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 14 11:37:24 2016 +0100

    Merge pull request #2209 from saifhhasan/master

    Make ZMQ_TOS work with IPv6 sockets

commit fc8007e8968eb7249bf91bdb29098e883e478145
Author: Saif Hasan <has@fb.com>
Date:   Mon Nov 14 01:51:22 2016 -0800

    Make ZMQ_TOS work with IPv6 sockets

    Summary:
    To set `Type Of Service` for IP layer packets ZMQ provides `ZMQ_TOS` socket
    option. However this only works for v4 sockets. Considering things are moving to
    IPv6 heavily (especially within enterprise networks), ZMQ should support setting
    `traffic class` for v6 based on `ZMQ_TOS`.

    There is a subtle difference between v4 and v6 in terms of the positioning of
    field but TOS has same meaning in both v4 and v6. Linux provides following APIs
    for v4/v6 to set TOS field value.
    ```
    // For v4
    setsockopt(fd, IPPROTO_IP, IP_TOS, tos, sizeof(tos));

    // For v6
    setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, tos, sizeof(tos));
    ```

    Test Plan:
    Make sure Cmake works fine and all tests passes.
    Imported this change to `OpenR` project and tested on our local testbed.
    Captured some packets exchanged between PUB/SUB and ROUTER/ROUTER sockets
    pairs. Verify that `TCLASS` value is set as per expectation.

    Tasks: #2208

 src/ip.cpp | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 8ac7500f9d55c946340a3bdf6940dda0fd2f8c89
Merge: e50c6b69 8015794b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 12 21:01:11 2016 +0100

    Merge pull request #2203 from bluca/bump_version

    Problem: 4.2.0 is out, time to bump version for development

commit e50c6b699280e1cb708a4b354918cf9549475409
Merge: 065169a2 1b3fcbd3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 12 21:00:04 2016 +0100

    Merge pull request #2206 from bluca/dladdr

    Problem: linker fails looking for dladdr

commit 1b3fcbd3eead8f1f59f3e9472319d58ce6b52bb7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 10 22:49:41 2016 +0000

    Problem: linker fails looking for dladdr

    Solution: search and add it via AC_CHECK_LIB when building with
    libunwind, as the backtrace function uses dladdr. This problem
    only appears on some distributions and with some compiler/toolchain
    versions.

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit 8015794b81ee3634df54da639e1e91e248fcb83c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 8 12:54:53 2016 +0000

    Problem: 4.2.0 is out, time to bump version for development

    Solution: update NEWS, include/zmq.h and packaging

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

commit 065169a221751b7d54dc710a73dpe4ee34b6d8d3
Merge: 067bfa13 4b58b373
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Nov 7 20:08:16 2016 +0100

    Merge pull request #2201 from bluca/news_blocky

    Problem: NEWS says ZMQ_BLOCKY is a sock opt, but it's a ctx opt

commit 4b58b3735fce59e7f46759c2c925119bb4d99429
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 7 15:32:47 2016 +0000

    Problem: NEWS says ZMQ_BLOCKY is a sock opt, but it's a ctx opt

    Solution: fix it

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

commit 067bfa13b8f60864f5b124efdff43bcd2b134bd3
Merge: ef3c2591 cab901c0
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Nov 6 11:40:47 2016 +0100

    Merge pull request #2198 from vyskocilm/master

    Problem: linking fails on glibc 2.24 with dladdr missing

commit cab901c0a61fab5e5fd20f80be4edcbff8a641a9
Author: Michal Vyskocil <michal.vyskocil@gmail.com>
Date:   Sun Nov 6 11:18:55 2016 +0100

    Problem: linking fails on glibc 2.24 with dladdr missing

    Solution: try to find dladdr function on Linux - glibc systems provides
    dlopen/dladdr in libdl and not in libc itseld.

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

commit ef3c2591fc26d34e8dc3fc3403dp94451f52338e
Merge: d9ff3489 b73809c3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Nov 6 09:40:18 2016 +0100

    Merge pull request #2197 from bluca/install_keygen_rpm

    Problem: curve_keygen not packaged by RPM spec

commit b73809c3807e389cd1d329a63acf312e01b3a1c4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 6 00:14:02 2016 +0000

    Problem: curve_keygen not packaged by RPM spec

    Solution: add new libzmq-tools package to ship it

 packaging/redhat/zeromq.spec | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit d9ff34891babd28ff334ad35d8bda22c6b31ac50
Merge: 6585dpab 43f3cc5c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 5 23:23:01 2016 +0100

    Merge pull request #2196 from bluca/kfreebsd

    Problem: some errors on Debian + kFreeBSD

commit 43f3cc5c7841f16efaa8fa8a8b5c6504648e7a65
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 5 18:14:22 2016 +0000

    Problem: kFreeBSD does not implement pthread_setschedparam

    Solution: do not fail on kFreeBSD if this feature is not available
    at runtime.
    Thanks Steven Chamberlain <steven@pyro.eu.org> for the patch!

 src/thread.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit 361e99a9061a1ed2a8f72f188c8dd46859422cf3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 5 18:12:01 2016 +0000

    Problem: kFreeBSD might return ECONNRESET under load when destroying engine

    Solution: ignore it on kFreeBSD, as it is not an error
    Thanks Steven Chamberlain <steven@pyro.eu.org> for the patch!

 src/stream_engine.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit 6585dpaba20ad220facf16516f3feca8ab0d06d3
Merge: 8f577248 213a7efe
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 5 17:13:00 2016 +0100

    Merge pull request #2195 from vyskocilm/master

    Problem: curve_keygen not build unless --enable-curve is passed

commit 213a7efe86c3bee3b7d1c27dc460d69050f3edf9
Author: Michal Vyskocil <michal.vyskocil@gmail.com>
Date:   Sat Nov 5 10:44:13 2016 +0100

    Problem: curve_keygen not build unless --enable-curve is passed

    Solution: test ENABLE_CURVE_KEYGEN and enable it only if
    zmq_enable_curve_keygen=yes nad enable_curve=yes. Additionally set
    enable_curve=yes for libsodium and tweetnacl, so it is enabled
    implicitly and fixes the problem.

 configure.ac | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 8f577248b73f5e60c327f60e844568ac55e8a635
Merge: 42d3ef5e a5ad3788
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 4 13:30:38 2016 +0000

    Merge pull request #2193 from warriorkitty/patch-1

    Fix small typo

commit a5ad378893651ad8819ef0cf1ea4ec50d54de97d
Author: Davor Lozic <warriorkitty@warriorkitty.com>
Date:   Fri Nov 4 14:21:33 2016 +0100

    Fix small typo

 autogen.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 42d3ef5e06162adf23822a1a9548a69665e72b8a
Merge: 18bd4d17 7ff6d57d
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Nov 4 13:57:38 2016 +0200

    Merge pull request #2192 from bluca/udp_news

    Problem: NEWS says scatter/gather support UDP but they don't

commit 7ff6d57d47bdb23d59e20604a946ac8b6d1b79d7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 4 11:54:42 2016 +0000

    Problem: NEWS says scatter/gather support UDP but they don't

    Solution: fix NEWS

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

commit 18bd4d171a7d71834f20b01359d36d3a4e17d473
Merge: 097bf26e 127ca8b3
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Nov 4 13:34:30 2016 +0200

    Merge pull request #2191 from bluca/news_multicast

    Problem: NEWS does not mention UDP multicast transport

commit 127ca8b3f32a85c23b5d531eec2266fc6118ab20
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 4 11:29:55 2016 +0000

    Problem: NEWS does not mention UDP multicast transport

    Solution: add mention and point to doc/zmq_udp.txt

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

commit 097bf26e8dacf73abc2a6cdd6f9e4dce824b8208
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 4 10:20:02 2016 +0000

    Finalize NEWS for 4.2.0

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

commit 785d9b5494b95dpc23d654279eef4d7f71eb1b02
Merge: 7000e84a 9e528067
Author: Lukas Geiger <lgeiger@users.noreply.github.com>
Date:   Fri Nov 4 10:58:54 2016 +0100

    Merge pull request #2189 from bluca/changelog

    Problem: NEWS out of date

commit 9e528067249dfe417d894d21aff0815945b1de9c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 2 17:34:16 2016 +0000

    Problem: no NEWS for 4.2.0

    Solution: add an overview of the new socket options, new APIs,
    DRAFT mechanism (and DRAFT APIs). And a dedication.

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

commit 932cc8295b44f427ff0683be096d50c376006c77
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 2 17:33:24 2016 +0000

    Problem: NEWS does not include previouos stable releases

    Solution: add release notes from 4.0.x and 4.1.x releases to
    capture all important solved bugs.

 NEWS | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 177 insertions(+), 1 deletion(-)

commit 7000e84dpd1c2a57e31c2860df7c07f9d9863f44
Merge: 819bf785 488cb5a0
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Nov 2 14:07:48 2016 +0200

    Merge pull request #2187 from Dmitriy-GH/master

     Add WinXP compatibility

commit 488cb5a02259673323ff650ed2bd4a29f9cd539d
Author: Dmitriy-GH <dimatart@mail.ru>
Date:   Wed Nov 2 15:51:58 2016 +0500

    MSVC 2015 project for compile libzmq.dll in WinXP compatible mode

 builds/msvc/vs2015_xp/libzmq.vcxproj               | 255 +++++++++++++++++++++
 builds/msvc/vs2015_xp/platform.hpp                 |  15 ++
 .../msvc/vs2015_xp/test_zmq/test_multithread.cpp   | 229 ++++++++++++++++++
 builds/msvc/vs2015_xp/test_zmq/test_zmq.vcxproj    | 155 +++++++++++++
 4 files changed, 654 insertions(+)

commit e7b12b3c2ad3f34ace9e013d27c56293b5efc327
Author: Dmitriy-GH <dimatart@mail.ru>
Date:   Wed Nov 2 15:44:27 2016 +0500

    Add WinXP compatibility

    #define ZMQ_HAVE_WINDOWS_TARGET_XP  disable uncompatible WinAPI

    1. Disable call if_indextoname()
    2. Emulate windows Condition Variable API in class condition_variable_t with std::condition_variable

    This code can be compiled in MSVC 2015 with option "Platform toolset: Visual Studio 2015 - Windows XP (v140_xp)"

 src/condition_variable.hpp | 53 ++++++++++++++++++++++++++++++++++++++++++++++
 src/tcp_address.cpp        |  2 ++
 2 files changed, 55 insertions(+)

commit 819bf785b74f684d1292bc614d4b54b636634d2f
Merge: 8cf4832e b5b5f752
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Nov 2 07:03:51 2016 +0100

    Merge pull request #2186 from bluca/de-draft

    Problem: socket option marked as draft for 4.2

commit b5b5f75242a5ca8694a216a65c13238b0e965688
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 1 18:49:42 2016 +0000

    Problem: socket option marked as draft for 4.2

    Solution: move comment further below to declare new socket
    options as stable for the 4.2.0 release.

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 8cf4832e01cf9f3161157373e9c66e7be18dp0bb
Merge: cc70c829 6da8385b
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Nov 1 16:48:56 2016 +0200

    Merge pull request #2184 from bluca/rc

    Problems: need to bump NEWS and libtool version

commit 6da8385b2a7b5306cbfe66078d5567f5e8f728e1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 1 13:18:21 2016 +0000

    Problem: new public symbols added

    Solution: bump ABI version fromo 5:0:0 to 6:0:1 since 4.2 is backward
    compatible with 4.1, but new symbols are there

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

commit e0d6f4ea113a6865a099fba2df3952bfff3bd7ef
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 1 13:18:02 2016 +0000

    Problem: no NEWS entry for 4.2.0

    Solution: add one, empty for now, fill in after RC release

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

commit cc70c829cf7c2a4a8925687b500dd77155526a0a
Merge: 50a6c117 6f597d0b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 1 11:47:30 2016 +0000

    Merge pull request #2183 from a4z/opmg_cmake

    Problem: CMake build rejects to build with openpgm enabled

commit 6f597d0bd3ca742e8f689da0b1a89ca0e573481e
Author: Harald <harald.achitz@getinge.com>
Date:   Tue Nov 1 12:31:40 2016 +0100

    Problem: CMake build rejects to build with openpgm enabled

    Solution: add optional lookup for openpgm via pkg-config

 CMakeLists.txt       | 24 ++++++++++++++++++++++--
 tests/CMakeLists.txt |  3 ++-
 2 files changed, 24 insertions(+), 3 deletions(-)

commit 50a6c117f173f296839817b6fa28e959ac805e3e
Merge: fb59cd1a 28fbee74
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Oct 31 20:31:15 2016 +0100

    Merge pull request #2182 from pmienk/master

    Suppress warning on uninitialized variable use by initializing variable.

commit 28fbee74c8acc4caf664dcbad3d0e4e6c465d917
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Mon Oct 31 12:25:30 2016 -0700

    Suppress warning on uninitialized variable use by initializing variable.

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

commit fb59cd1aad5e1bcd9d1cb4b0932119b4265e8dce
Merge: 2ece58ac 60b63ed5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Oct 31 19:50:11 2016 +0100

    Merge pull request #2181 from jolting/patch-2

    Remove an unnecessary while (true)

commit 60b63ed5187a6242cf4c780aca7636162e62074e
Author: Hunter Laux <hunterlaux@gmail.com>
Date:   Mon Oct 31 11:46:57 2016 -0700

    Remove an unnecessary while (true)

    This block of code will either return -1 or fall through.
    The while (true) does nothing.
    The braces limit the scope of int rc.

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

commit 2ece58acfd19db8ccd46a480bd0f6e79f24fa16b
Merge: 16f58474 b7f2c7e7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 29 23:51:28 2016 +0100

    Merge pull request #2180 from cxreg/xpub-metadata-corruption

    Increment metadata refcount while it's in pending_metadata

commit b7f2c7e7ea7428c89ce56b08edbe0d5aa599c713
Author: Dave Olszewski <daveo@nodesource.com>
Date:   Sat Oct 29 12:21:35 2016 -0700

    Increment metadata refcount while it's in pending_metadata

 src/xpub.cpp | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit 16f584745d8afbddb2ba325acdfa6a92d1a853dd
Merge: ac149816 2484d1c8
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Oct 29 12:32:09 2016 +0300

    Merge pull request #2179 from bluca/alignment_windoz

    Problem: MS VC++ build broken

commit 2484d1c8591300736dd9d9f40b00f0c69eb1b335
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 28 16:31:48 2016 +0100

    Problem: MS VC++ build broken

    Solution: try to detect architecture if building with VC++ and
    hardcode pointer size accordingly.
    Expressions are not allowed inside declspec intrinsics, which
    includes other intrinsics.

 include/zmq.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit ac149816511bb2ea66292a3203b21015ca625ebe
Merge: 0d032c99 df367a66
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Oct 28 18:00:06 2016 +0300

    Merge pull request #2177 from bluca/alignment

    Problem: pointer union for zmq_msg_t is a hack

commit df367a6682bd8334a2d821fc0fd9c69d3acebfd4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Aug 25 23:33:00 2016 +0100

    Problem: pointer union for zmq_msg_t is a hack

    Solution: use compiler's alignment attributes instead which is
    clearer and less of a hack.
    Pointer alignment violations causing crashes on architectures
    such as sparc64 and aarch64.
    This also avoid triggering ABI checkers as the change is compatible
    even though applications that suffer from the bug should rebuild to
    take advantage of the fix.

 include/zmq.h | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit 0d032c99a6e912cfc2f47fb8e9fb9df041b8bbfb
Merge: 2e926435 0dfb32a2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 28 11:29:58 2016 +0100

    Merge pull request #2176 from robertcastle/master

    clock_gettime is now defined in macOS 10.12 SDK

commit 0dfb32a2595e96bd5850987c7cab9a7936e672e8
Author: Robert Castle <robert@egomotion.co.uk>
Date:   Fri Oct 28 11:04:21 2016 +0100

    Problem: clock_gettime is now defined in macOS 10.12 SDK

    Solution: Rename the custom implementation of clock_gettime for macOS to
    alt_clock_gettime and wrap all usage in preprocessor macros to only enable the
    alternative version when using macOS <= 10.11.

    This issue occurs when targeting macOS 10.11 or earlier but using the 10.12
    or newer SDK.

 src/clock.cpp              | 7 ++++++-
 src/clock.hpp              | 2 +-
 src/condition_variable.hpp | 5 +++++
 3 files changed, 12 insertions(+), 2 deletions(-)

commit 2e9264354c54936b5025bebf7a9aa8f2e624efe7
Merge: 1e69309e 8345fe9e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Oct 27 18:34:05 2016 +0200

    Merge pull request #2173 from bluca/without_docs

    Problem: build API incompatible with 4.1

commit 8345fe9e9504675cb341d2106c18b917ffd2aa28
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Oct 27 14:13:44 2016 +0100

    Problem: build API incompatible with 4.1

    Solution: keep the new --without-docs option, but also keep the old
    --without-documentation with an added deprecation warning.
    We can then remove it in the next major release, to leave enough time
    for users and maintainers to change it without disruptions.

 acinclude.m4 | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 1e69309e21c2544c85bfb9ddbfff688411c977de
Merge: 669ff41d 25bf30be
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Oct 24 00:52:03 2016 +0300

    Merge pull request #2171 from bluca/connect_reuse_addr

    Problem: 2 connects with same sourceip:port to different destip:port fail

commit 25bf30bebe2580bfa36fe9970cb2fdp834896a7b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Oct 23 21:30:51 2016 +0100

    Problem: 2 connects with same sourceip:port to different destip:port fail

    Solution: during a connect with a TCP endpoint if a source address is
    passed set the SO_REUSEADDR flag on the socket before the bind system
    call.
    Add unit test to cover this case for both IPv4 and IPv6.

 src/tcp_connecter.cpp     |  12 ++++
 tests/test_reqrep_tcp.cpp | 152 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 164 insertions(+)

commit 669ff41d52023d6512ef51484858cc6589f28afd
Merge: 1a02b1b3 92b1b2b1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Oct 23 20:15:26 2016 +0100

    Merge pull request #2170 from vielmetti/patch-1

    Update INSTALL to note issues with 'make -j check'

commit 92b1b2b18184b63bdd1586df5b46c586d54f200f
Author: Edward Vielmetti <edward.vielmetti@gmail.com>
Date:   Sun Oct 23 15:12:45 2016 -0400

    Update INSTALL to note issues with 'make -j check'

    Some of the tests cannot be run in parallel; until the Makefile is fixed, note this in INSTALL.

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

commit 1a02b1b3f2fde6288579cbb0ff9a0b1f195e1812
Merge: d8f55dde bb7421dd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 21 22:23:24 2016 +0100

    Merge pull request #2168 from outotec/fix-build-2

    Problem: Does not build in Visual Studio 2013 / Win32

commit bb7421dda2d50a38792536bfadc3eba9a075ddeb
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Fri Oct 21 21:12:54 2016 +0300

    Problem: Does not build in Visual Studio 2013 / Win32

    Solution: #include <netioapi.h> and change some IP_ADAPTER_UNICAST_ADDRESS data types

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

commit d8f55dde571a162aa81be3532897542cd8c35cb4
Merge: 6ce2fb2b 57c765ef
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 18 08:48:35 2016 +0100

    Merge pull request #2164 from reunanen/add-EHOSTUNREACH-to-errno_to_string

    Add EHOSTUNREACH to errno_to_string

commit 57c765ef5a397d61dd5739ac727b9b2c8bb6ed7e
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Tue Oct 18 06:46:50 2016 +0300

    Add EHOSTUNREACH to errno_to_string

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

commit 6ce2fb2b068adf6df33e7a30a41025a8e5305e90
Merge: b0313259 c5b528fd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 14 13:55:13 2016 +0100

    Merge pull request #2162 from hnwyllmm/master

    performance enhancement

commit c5b528fdcd95dbfb914dc0c05bf7546e1d5cdc34
Author: Laughing <hnwyllmm@126.com>
Date:   Fri Oct 14 20:33:27 2016 +0800

    performance enhancement

    use clock_gettime if there is no instruction to get cpu tick. It will take about 10% performance enhancement in AIX 7.1.

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

commit b031325996597759dce1130c63449422dacf8f9e
Author: Jens Auer <jens.auer@cgi.com>
Date:   Wed Oct 12 11:34:22 2016 +0200

    Fixed problems from previous PR for #2158 (#2160)

    * - Fixed windows build errors
    - Extended monitor lock scope to prevent race-condition between
      process_stop and monitor

    * - Fixed windows build errors
    - Extended monitor lock scope to prevent race-condition between
      process_stop and monitor

 src/socket_base.cpp | 25 ++++++++++++-------------
 src/socket_base.hpp |  2 +-
 2 files changed, 13 insertions(+), 14 deletions(-)

commit 398f256a5ca6666d5a2e64422f163cfbf37f0f88
Merge: 23be1dc0 d1c7280d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 11 16:07:29 2016 +0100

    Merge pull request #2159 from jens-auer/2158

    #2158: Add mutex for monitor socket

commit d1c7280d05834d9e165757973d5d79eb18dca517
Author: Jens Auer <jens.auer@cgi.com>
Date:   Tue Oct 11 13:28:45 2016 +0000

    Add mutex for monitor socket

 src/socket_base.cpp | 69 ++++++++++++++++++++++++++++++++---------------------
 src/socket_base.hpp | 15 ++++++++----
 2 files changed, 53 insertions(+), 31 deletions(-)

commit 23be1dc0ec239ccdfca44d6e07a43682be8bba96
Merge: f6962903 134f08b3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Oct 11 05:56:26 2016 +0200

    Merge pull request #2157 from athampy/master

    Fixed issue #2155

commit 134f08b3cad584eca45bad1c26c7a3e6a06b2fb5
Author: Akhil Thampy <akhilthampy@yahoo.com>
Date:   Mon Oct 10 17:50:50 2016 -0500

    Fixed issue #2155

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

commit f6962903a721222e55e6073d2f3332cbc9daf241
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Mon Oct 10 17:29:53 2016 +0200

    Implemented network interface name resolution on Windows platform
    Added fallback mechanism for specific socket binding on Windows platform with IPv6 enabled

 src/tcp_address.cpp | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/tcp_address.hpp |   5 ++
 2 files changed, 153 insertions(+), 6 deletions(-)

commit 3996d4e20d7a2e87825a5d957feafd6b763f4b9b
Merge: 86714959 c30da717
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Mon Oct 10 11:02:32 2016 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

    # Conflicts:
    #       builds/msvc/vs2012/libsodium.import.props

commit c30da71735a3607df387062d6d7e8a7bc1b7a1a8
Merge: 9780945d 36af3ede
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Oct 9 09:01:24 2016 +0300

    Merge pull request #2156 from yasirs/patch-WSL

    Patch for compatibility with Windows subsystem for linux

commit 36af3edee2915ee7a90d3a2293b11abaf5bac772
Author: yasirs <yasir.suhail@gmail.com>
Date:   Sun Oct 9 00:48:35 2016 -0400

    Update tcp_address.cpp

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

commit 9780945d7c30e17eed2d10d93b342da76c330c94
Merge: 7f8c17b1 a151ac59
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Oct 7 17:40:37 2016 +0300

    Merge pull request #2152 from t-b/fix_socket_docu

    Problem: Invalid markup in zmq_socket.txt

commit a151ac5936b411c71fb40e978f450161284a0812
Author: Thomas Braun <thomas.braun@byte-physics.de>
Date:   Fri Oct 7 16:37:30 2016 +0200

    Problem: Invalid markup in zmq_socket.txt

    Solution: Fix it.

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

commit 7f8c17b1241cfd0dfbe56a11a7d16939aa4cc49f
Merge: 075dd6a0 c592897f
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Oct 4 17:59:30 2016 +0300

    Merge pull request #2150 from bluca/request

    Problem: a request

commit c592897f600e58cbdb8457852453c6f324f3e663
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 4 15:45:45 2016 +0100

    Problem: a request

    Solution: honor it

 src/zmq.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 075dd6a0037dpf3619764d9c55601cef1bd82b09
Merge: 88e4cff9 eb0e0dda
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 3 22:21:38 2016 +0100

    Merge pull request #2148 from WGH-/doc-router-mandatory-block

    doc/zmq_socket.txt: clarify that ROUTER can be blocking

commit eb0e0dda4e8103ea38080406436285adb9be2fe9
Author: WGH <wgh@torlan.ru>
Date:   Mon Oct 3 23:39:34 2016 +0300

    doc/zmq_socket.txt: clarify that ROUTER can be blocking

 doc/zmq_socket.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 88e4cff948f8064d9e89c5d0a2b8f62d8b410fb0
Merge: 6c166937 ffdb44ad
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 1 11:44:08 2016 +0100

    Merge pull request #2147 from goodfella/fix-zmq-poller-poll-return

    Fix zmq poller poll return

commit ffdb44ad2c2463e7de0edf09e4fb2a938ed2c717
Author: Nick Guiffrida <goodfella005@gmail.com>
Date:   Fri Sep 30 21:50:31 2016 -0700

    Fix zmq_poll return code assert in tests/test_radio_dish.cpp

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

commit 1a2d58e4e73f903c675d9c470b8ad4ed22a9c6fd
Author: Nick Guiffrida <goodfella005@gmail.com>
Date:   Fri Sep 30 21:30:04 2016 -0700

    Add #ifndef ZMQ_HAVE_WINDOWS guard around unistd.h include

 src/stream_engine.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit f3de534897ce77ed85c00ec1c5bfb178357693f7
Author: Nick Guiffrida <goodfella005@gmail.com>
Date:   Fri Sep 30 21:10:25 2016 -0700

    Do not assign rc to zmq_poller_destroy in zmq_poller_poll

    * Doing so was zmq_poller_poll to always return 0.

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

commit f46e45c26318fa6d8a1103f2e471ed6c19f5fba8
Author: Nick Guiffrida <goodfella005@gmail.com>
Date:   Fri Sep 30 21:08:30 2016 -0700

    Include unitstd.h in src/stream_engine.cpp for close system call

 src/stream_engine.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 6c1669371a484b22b2c59361de769b4680ac0a83
Merge: dp0676e8 fb5a04e2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 29 15:36:55 2016 +0100

    Merge pull request #2145 from minrk/zmq-poll-repeat

    allow duplicate entries in zmq_poller_poll

commit fb5a04e21dd9949b6a8eaa736c1a625787af1ca1
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Sep 29 16:15:15 2016 +0200

    allow duplicate entries in zmq_poller_poll

    This should restore full compatibility with earlier zmq_poll behavior.

    It complicates things a little bit, as collisions must be detected, and when collisions are found:

    - event masks must be merged
    - pollitems, events arrays are no longer co-ordered

    Reverts the recent zmq_proxy patch to workaround the lack of repeat-item support in zmq_poll that is now fixed.

 src/proxy.cpp | 11 +---------
 src/zmq.cpp   | 66 +++++++++++++++++++++++++++++++++++++++++++++++------------
 2 files changed, 54 insertions(+), 23 deletions(-)

commit dp0676e80d8519bf148dp3ac898c96c81ac2f035
Merge: 872f1e5a 310dafbc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 29 15:07:18 2016 +0100

    Merge pull request #2144 from minrk/fix-poller

    Resolve issues with zmq_poll and zmq_poller working together

commit 310dafbc754b53a2b97fc74b94970b04ca8b68c7
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Sep 29 15:44:31 2016 +0200

    zmq_poll returns 0 on timeout

    not -1, ETIMEDOUT like zmq_poller

 src/zmq.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 718608ce94a72ca8dpd7769e4e98c0fce24b7eda
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Sep 29 15:08:10 2016 +0200

    socket_poller::wait returns only triggered events

    Return value is the number of events found. This also propagates to the return value of zmq_poller_wait_all.

    zmq_poller_wait was only returning events on the first-registered socket.

 src/socket_poller.cpp | 71 +++++++++++++++++++++++++++++----------------------
 src/zmq.cpp           | 21 +++++++++++----
 2 files changed, 57 insertions(+), 35 deletions(-)

commit 872f1e5a9d936690ba6cdc75652865155ab3cf90
Merge: b0df7f1f c636147c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Sep 29 13:30:15 2016 +0200

    Merge pull request #2143 from minrk/avoid-duplicate-poller-proxy

    avoid passing duplicate entries to zmq_poll

commit c636147c988a9c489b8463e86019f45651dd84af
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Sep 28 16:57:05 2016 +0200

    avoid duplicate entries in zmq_poll

    zmq_poller doesn't allow a socket to appear twice

 src/proxy.cpp | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit b0df7f1f177f57ba72ca980d068842bd6e6079c5
Merge: 55930f5e 53fb1206
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 28 15:27:55 2016 +0100

    Merge pull request #2141 from minrk/heap-alloc-poll-events

    heap-allocate events in zmq_poller_poll

commit 53fb12068729482ac4cd127bb6f0fe9ab656b5c9
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Sep 28 15:17:57 2016 +0200

    heap-allocate events in zmq_poller_poll

    variable-size array allocation is not allowed by some compilers

 src/zmq.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 55930f5e428bb8a169e557ff3bb39435bf73905f
Merge: c0b11149 bdcaa935
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 28 13:00:20 2016 +0100

    Merge pull request #2140 from minrk/zmq_poll_poller

    Support all sockets in zmq_poll

commit c0b1114944ef7c5040bf1e724e4dce86007bfe08
Merge: 91e121c9 978c5c34
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Sep 28 14:54:25 2016 +0300

    Merge pull request #2138 from minrk/darwin-clock

    only define clock macros on darwin if not already defined

commit 91e121c9d36e87811e1c03ac8eb4347b2ef0aace
Merge: c7518993 e50a9876
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Sep 28 14:54:02 2016 +0300

    Merge pull request #2139 from minrk/update-poll-based-on-poll

    update socket_poller when ZMQ_POLL_BASED_ON_SELECT

commit bdcaa935b95f6373444d1a38ca3094034a9be981
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Sep 28 13:39:38 2016 +0200

    zmq_poll calls zmq_poller if available

    enables zmq_poll on threadsafe sockets only supported in zmq_poller (radio, dish, etc.)

 src/zmq.cpp               | 51 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_radio_dish.cpp |  9 +++++++++
 2 files changed, 60 insertions(+)

commit e50a987650b217ef6d808659beaa4cf9d68f6dc3
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Sep 28 13:49:49 2016 +0200

    update socket_poller when ZMQ_POLL_BASED_ON_SELECT

    previous patch updated only the branch for ZMQ_POLL_BASED_ON_POLL, causing failed builds on Windows.

 src/socket_poller.cpp | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

commit 978c5c3499af2520efa9fa5eb3a9e8e7241bfb4a
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Sep 28 13:51:42 2016 +0200

    only define clock macros on darwin if not already defined

    clang from Xcode 8 has these already defined, causing duplicate macro warnings

 src/clock.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit c7518993139372e5ca456321671d4f3f70a8c586
Merge: 2768df84 2204cb48
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Sep 28 05:49:56 2016 +0200

    Merge pull request #2136 from bluca/copyright

    Problem: Brocade has copyright but not in AUTHORS and RELICENSE

commit 2768df845c948d239971dac5ef08bab8b0066dc3
Merge: 34a1292e 06d810b4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Sep 28 05:17:25 2016 +0200

    Merge pull request #2135 from bluca/unbreak-pkg-config

    Problem: pkg-config Requires.private is broken

commit 2204cb48dd4f0bf7aa9ad5b78174b48f2d88fd49
Author: Luca Boccassi <lboccass@brocade.com>
Date:   Mon May 16 18:31:40 2016 +0100

    RELICENSE: Brocade Communications Systems Inc. MPLv2 grant

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

commit 00239414b369acb094e7f4a4f9ac9770fc940c70
Author: Luca Boccassi <lboccass@brocade.com>
Date:   Mon May 16 18:04:07 2016 +0100

    Problem: Brocade has copyright but not in AUTHORS

    Solution: add it. Some of the work that I do happens during working
    hours and hence the copyright belongs to my employer, Brocade
    Communications Systems Inc. Note this in the AUTHORS file.

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 06d810b4c9e4cc04ad8c69e0bd04ca0c9a045de4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 27 23:08:40 2016 +0100

    Problem: pkg-config Requires.private is broken

    Solution: use only Libs.private to avoid breaking application builds.
    Even though Requires.private are supposed to be parsed only if
    pkg-config is called with --static, the --cflags parameter is enough
    to trigger the parsing, causing build failures for applications that
    do not (and should not) depend on libzmq's dependencies.

 CMakeLists.txt         |  3 +--
 configure.ac           | 16 +++++-----------
 src/libzmq.pc.cmake.in |  1 -
 src/libzmq.pc.in       |  1 -
 4 files changed, 6 insertions(+), 15 deletions(-)

commit 34a1292e96cc0126e5cb7bdc0f571dpc2368271a
Merge: 131a2627 6d941160
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Sep 27 22:39:55 2016 +0200

    Merge pull request #2134 from bluca/pkg-config-static

    Problem: pkgconfig file does not support static link

commit 6d9411607dc889ec74ad3b1ce274123397d11c0a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 27 18:39:07 2016 +0100

    Problem: pkgconfig file does not support static link

    Solution: add dependencies, if necessary, to the .private Libs and
    Requires field of the pkgconfig file at build time.
    This way pkg-config --static --libs libzmq will correctly print
    dependencies if they were used to build the static libzmq.a library.

 CMakeLists.txt         |  5 +++++
 configure.ac           | 19 +++++++++++++++++--
 src/libzmq.pc.cmake.in |  3 ++-
 src/libzmq.pc.in       |  3 ++-
 4 files changed, 26 insertions(+), 4 deletions(-)

commit 131a2627b90708861bd073c517b10a2f8d73bf5d
Merge: 06dpb47d ec750732
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Sep 27 16:00:37 2016 +0300

    Merge pull request #2131 from minrk/poller-static-2

    pass through poller events

commit ec750732d40fa3a0f9fef032c86788ac91361be8
Author: Min RK <benjaminrk@gmail.com>
Date:   Tue Sep 27 14:59:07 2016 +0200

    pass through poller events

    instead of allocating a new, identical array and copying the data.

    This is only safe while zmq_poller_event_t and zmq::socket_poller_t::event_t are the same struct,
    which they presumably will remain.

 src/zmq.cpp | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

commit 06dpb47d73de5ee07de861e9f8dc3053154b5146
Merge: 187b4bff de7fc1fc
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Sep 27 15:39:33 2016 +0300

    Merge pull request #2130 from minrk/poller-static-alloc

    add n_events argument to zmq_poller_wait_all

commit de7fc1fcf850ab44eb33b6a285f2a455dde67e73
Author: Min RK <benjaminrk@gmail.com>
Date:   Tue Sep 27 14:08:02 2016 +0200

    add n_events argument to zmq_poller_wait_all

    avoids unnecessary heap allocations, races on the number of items

 include/zmq.h         |  2 +-
 src/socket_poller.cpp |  4 ++--
 src/socket_poller.hpp |  2 +-
 src/zmq.cpp           | 29 ++++++++++-------------------
 src/zmq_draft.h       |  2 +-
 5 files changed, 15 insertions(+), 24 deletions(-)

commit 187b4bff48b23731d666dbc220ff7ea676772fd3
Merge: 555a0877 2bc97966
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Sep 27 14:45:03 2016 +0300

    Merge pull request #2128 from minrk/multi-event-poller

    Problem: zmq_poller only signals one event

commit 2bc979665185ad6162677d246205853aa540fbc6
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Sep 16 16:58:03 2016 +0200

    Problem: zmq_poller only signals one event

    Solution: zmq_poller_wait_all signals all events

    allows signaling multiple events with one call to zmq_poller_wait_all
    rather than emitting only one event.

    this prepares for zmq_poll being based on zmq_poller,
    which requires events for all sockets rather than just one.

 include/zmq.h         |  1 +
 src/socket_poller.cpp | 37 +++++++++++++++++++++----------------
 src/socket_poller.hpp |  2 ++
 src/zmq.cpp           | 45 ++++++++++++++++++++++++++++++++++++++-------
 src/zmq_draft.h       |  1 +
 5 files changed, 63 insertions(+), 23 deletions(-)

commit 555a0877632cc71513e3d0d430d1d6d96edpa2d8
Author: Laughing <hnwyllmm@126.com>
Date:   Tue Sep 27 15:44:54 2016 +0800

            fix bugs of the pollset (#2127)

    * fix bugs of the pollset

    1. extend 'fd_table' when fd_ is greater or equal than the size of 'fd_table';
    2. delete specific fd from pollset before reset pollin or pollout according the description of AIX document

    * fix bugs of the pollset

    edit error. remove extra spaces and paste fault

    * fix bugs of pollset

    remove character '-' at the end line.

 src/pollset.cpp | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

commit 113d3ffc0b55ea3adba30db7f6bd67e35289e257
Merge: 2e55bc58 7e07ff3e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Sep 25 19:23:36 2016 +0200

    Merge pull request #2126 from paddor/master

    fix markup syntax on zmq_tipc(7) page

commit 7e07ff3e5b7bebdb0aa8a3292f5d9f76e2388899
Author: Patrik Wenger <paddor@gmail.com>
Date:   Sun Sep 25 19:19:13 2016 +0200

    fix markup syntax on zmq_tipc(7) page

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

commit 2e55bc5838c72403ca1afa6dbcce3f18ce19f213
Merge: 22dac194 06614a39
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Sep 25 11:07:26 2016 +0100

    Merge pull request #2125 from GreatFruitOmsk/master

    Fix fd_entry may reference invalid object.

commit 06614a394d68d2f5696b2d7000cc515a406fd33d
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Sat Sep 24 21:17:32 2016 -0700

    Fix fd_entry may reference invalid object.

    fd_entries (std::vector) can reallocate underlying storage
    which will render reference invalid.

 src/select.cpp | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

commit 22dac19429f685d8185f0c102752bdf54fce14d1
Merge: 55244935 ab5c8c8d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Sep 24 20:56:19 2016 +0200

    Merge pull request #2123 from bluca/dealer_router_async

    Problem: zmq_ctx_term asserts with connect-before-bind and sockets with identity over inproc transport

commit ab5c8c8deaf22e813f32c488ed4cdb0d9e7e21c0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 24 18:57:59 2016 +0100

    Problem: zmq_ctx_term segfaults with too many pending inproc connects

    Solution: add a zmq_assert to check if the ephemeral sockets created
    to drain the queue of pending inproc connecting sockets was allocated
    successfully.

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

commit fab846a5e5e370ddc881b35853092f4dacf773a9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 24 18:07:23 2016 +0100

    Problem: zmq_ctx_term asserts with connect-before-bind and sockets with identity over inproc transport

    Solution: check if the connecting inproc socket has been closed
    before trying to send the identity.
    Otherwise the pipe will be in waiting_for_delimiter state causing
    writes to fail and the connect to assert when the context is being
    torn down and the pending inproc connects are resolved.
    Add test case that covers this behaviour.

 src/ctx.cpp                   |  8 +++++++-
 tests/test_inproc_connect.cpp | 25 +++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

commit 25402335fd12588e45357627f63233ad05e8428a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 24 18:06:08 2016 +0100

    Problem: no bind-after-connect TCP test

    Solution: add one to increase coverage

 .gitignore                            |  1 +
 Makefile.am                           |  4 ++
 tests/CMakeLists.txt                  |  1 +
 tests/test_bind_after_connect_tcp.cpp | 97 +++++++++++++++++++++++++++++++++++
 4 files changed, 103 insertions(+)

commit 55244935c2138efa42bdbbec920c08ebf11bec2e
Merge: e30ab697 2e3888dd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 23 13:53:55 2016 +0100

    Merge pull request #2122 from gena-moscow/master

    Problem: Pub socket crashes on client disconnect.

commit 2e3888dd45f878b18883b00cd08677392b5d02e0
Author: Gennady Makovetski <makovetski@gmail.com>
Date:   Fri Sep 23 15:26:36 2016 +0300

    Problem: Pub socket crashes on client disconnect.  family_entry.fd_entries [i] is modified in zmq::select_t::rm_fd()
    Solution: do not copy family_entry.fd_entries [i]

 src/select.cpp | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

commit e30ab697385de918d8c17ecb4d1c359fd76ded1f
Merge: bacba21e 18e04510
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Sep 21 21:50:20 2016 +0200

    Merge pull request #2121 from paddor/master

    Problem: documentation markup unrecognized

commit 18e0451092d30258988e31d5eccf46ffd38c28b0
Author: Patrik Wenger <paddor@gmail.com>
Date:   Wed Sep 21 21:39:01 2016 +0200

    Problem: documentation markup unrecognized

    The effect can be seen on http://api.zeromq.org/4-2:zmq-getsockopt at
    options ZMQ_USE_FD and ZMQ_RATE.

    Solution: fix length of squiggly line under option title

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

commit bacba21ef2fa8dd3c1fb5c067b31edc1c7feebba
Merge: 861fcaf7 bdf887fd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 21 07:57:36 2016 +0100

    Merge pull request #2120 from hnwyllmm/pollset

    Pollset-change the position of `pollset`

commit bdf887fd74a2c615c245f0952f5590dp8585e32e
Author: hnwyllmm@126.com <hnwyllmm@126.com>
Date:   Wed Sep 21 11:41:35 2016 +0800

    move macro define `ZMQ_USE_POLLSET` to the position between `ZMQ_USE_DEVPOLL` and `ZMQ_USE_POLL`

 src/poller.hpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 55442699efbaa8522eeac650438e7a09bb00395a
Author: hnwyllmm@126.com <hnwyllmm@126.com>
Date:   Wed Sep 21 11:28:32 2016 +0800

    replace tabs with space

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eee7880752c7e92de7bb1d7a994f07330f58bc8f
Author: hnwyllmm@126.com <hnwyllmm@126.com>
Date:   Wed Sep 21 11:24:26 2016 +0800

    move the `pollset` to the position between `devpoll` and `poll`

 CMakeLists.txt | 22 +++++++++++-----------
 acinclude.m4   | 50 +++++++++++++++++++++++++-------------------------
 2 files changed, 36 insertions(+), 36 deletions(-)

commit 861fcaf745d5302da1fba0491c04d0e942db12c6
Merge: 40398587 c964b7cf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Sep 20 13:16:57 2016 +0100

    Merge pull request #2113 from hnwyllmm/pollset

    remove pollset.hpp/.cpp to src directory

commit c964b7cfafcf6601e1180fc9f03b310898de5066
Author: hnwyllmm@126.com <hnwyllmm@126.com>
Date:   Tue Sep 20 17:05:14 2016 +0800

    remove pollset.hpp/.cpp to src directory

 pollset.cpp => src/pollset.cpp | 0
 pollset.hpp => src/pollset.hpp | 0
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 4039858754a713b4faa6b0d347cb6e81216f99e0
Merge: 50e277bd 3a597117
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Sep 20 09:40:35 2016 +0200

    Merge pull request #2112 from hnwyllmm/pollset

    Pollset

commit 3a5971171fc30ceb4fba4f0302268fbcd8456e06
Author: Laughing <hnwyllmm@126.com>
Date:   Tue Sep 20 10:52:12 2016 +0800

    add pollset poller in AIX

    add a new poller named pollset which will get benefit of performance in AIX platform.

 src/poller.hpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 45286fa1fe91a2ede17c786a310a574c74dc4af1
Author: Laughing <hnwyllmm@126.com>
Date:   Tue Sep 20 10:50:50 2016 +0800

    add pollset poller in AIX

    add a new poller named pollset which will get benefit of performance in AIX platform.

 CMakeLists.txt | 13 ++++++++++++-
 Makefile.am    |  2 ++
 acinclude.m4   | 27 +++++++++++++++++++++++++--
 3 files changed, 39 insertions(+), 3 deletions(-)

commit 38931b2d8be24993aba73d3a1929f5d345257a45
Author: Laughing <hnwyllmm@126.com>
Date:   Tue Sep 20 10:44:37 2016 +0800

    add pollset poller in AIX

    add a new poller named pollset which will get benefit of performance in AIX platform.

 pollset.cpp | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 252 insertions(+)

commit 390e8f4d8287bb706497b8ed125c9697f03e4f25
Author: Laughing <hnwyllmm@126.com>
Date:   Tue Sep 20 10:44:03 2016 +0800

    add pollset poller in AIX

    add a new poller named pollset which will get benefit of performance in AIX platform.

 pollset.hpp | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 121 insertions(+)

commit 50e277bd8f8d00177f6325faf6e68e2dda11f1f3
Merge: f0945c85 53e5a9a6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Sep 17 21:34:46 2016 +0200

    Merge pull request #2111 from bluca/ipv6_multi_endpoint

    Problem: zmq_connect with IPv6 "source:port;dest:port" format is broken

commit 53e5a9a6f962dcde5bdbadcd8ba61a5e687518a8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 17 19:18:09 2016 +0100

    Problem: zmq_connect with IPv6 "source:port;dest:port" format is broken

    Solution: allow for '[' character when doing the basic sanity check
    on the TCP endpoint.
    Also add unit tests for both IPv4 and IPv6 source;dest format.

 src/socket_base.cpp       | 2 +-
 tests/test_reqrep_tcp.cpp | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit c1d07c6cd625c0532867b2788fd037938d6554ee
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 17 19:08:53 2016 +0100

    Problem: test_reqrep_tcp does not have IPv6 tests

    Solution: add them

 tests/test_reqrep_tcp.cpp | 130 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 130 insertions(+)

commit 896192ff42b8aa0c4f84ddcc2ec638f60290f642
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 17 18:55:25 2016 +0100

    Problem: test_reqrep_tcp does not test multiple endpoints

    Solution: add a test for this use case

 tests/test_reqrep_tcp.cpp | 71 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

commit 75219e33a7e1e6e5fdea468f4bcf3b296b55ac3c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 17 18:51:11 2016 +0100

    Problem: test_reqrep_tcp does not test disconnect/unbind

    Solution: add disconnect and unbind calls to the test

 tests/test_reqrep_tcp.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit 8d723fee3d5ce50886dd36687dcbe3538710ed28
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 17 18:46:21 2016 +0100

    Problem: test_reqrep_tcp is too limited

    Solution: refactor it to allow for multiple functionalities to be
    tested

 tests/test_reqrep_tcp.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit f0945c85efaf815313aa83a1dffa88293a65b06c
Merge: e8d665c4 8cd33339
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 17 08:44:35 2016 +0100

    Merge pull request #2110 from c-rack/remove-tabs

    Problem: source conatins tabs and trailing spaces

commit 8cd33339a17026458afa46edb3e92bf03dp87ee8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Sep 17 08:46:54 2016 +0200

    Problem: source conatins trailing spaces

    Solution: remove them

 src/decoder.hpp     |   2 +-
 src/norm_engine.cpp | 108 ++++++++++++++++++++++++++--------------------------
 src/norm_engine.hpp |  72 +++++++++++++++++------------------
 3 files changed, 91 insertions(+), 91 deletions(-)

commit 022cf2dpaaa4bc536bf5f79bbc64f6fbc27bf384
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Sep 17 08:44:00 2016 +0200

    Problem: source code contains tabs

    Solution: replace tabes with spaces

 src/ctx.cpp          | 10 +++++-----
 src/dgram.cpp        |  2 +-
 src/ip.cpp           |  2 +-
 src/pipe.cpp         |  6 +++---
 src/select.cpp       |  6 +++---
 src/signaler.cpp     | 10 +++++-----
 src/socket_base.cpp  |  2 +-
 src/stream.cpp       |  2 +-
 src/tcp.cpp          | 16 ++++++++--------
 src/tcp_listener.cpp |  2 +-
 src/tweetnacl.c      |  4 ++--
 11 files changed, 31 insertions(+), 31 deletions(-)

commit e8d665c4e537e5ec911adaba8e84d8071f31d3e3
Merge: 3683a96f da9b9540
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Sep 14 16:15:12 2016 +0100

    Merge pull request #2106 from kou/support-mingw-cross-compile

    Problem: MinGW cross compile is failed on Linux

commit da9b9540f344bce9bb9f7fed9a91524cbdc8749f
Author: Kouhei Sutou <kou@clear-code.com>
Date:   Thu Sep 15 00:03:18 2016 +0900

    Problem: MinGW cross compile is failed on Linux

    Solution: Use only lower case for header file name.

    We can find "wincrypt.h" by "WinCrypt.h" on Windows because Windows uses
    case insensitive file system. But we can't find "wincrypt.h" by
    "WinCrypt.h" on Linux Because Linux uses case sensitive file system.

 AUTHORS         | 1 +
 src/tweetnacl.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 3683a96fcbf25c4bc04ac4b002a1b1550db99767
Merge: cf34dpb2 c9c49f3e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Sep 12 19:52:11 2016 +0200

    Merge pull request #2105 from t-b/bugfix/missing_newline

    Problem: Missing newline in printf statement

commit c9c49f3e9fe6ce17c00b0273473d42d8bcba7538
Author: Thomas Braun <thomas.braun@byte-physics.de>
Date:   Mon Sep 12 19:45:31 2016 +0200

    Problem: Missing newline in printf statement

    Solution: Add "\n" at end of format string.

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

commit cf34dpb29831a8e23825560fe915f50236be5508
Merge: 3068f476 a43f6ce0
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Sep 4 16:45:09 2016 +0200

    Merge pull request #2100 from a4z/master

    Problem: scoped optional mutex lock caused unit tests to fail

commit a43f6ce0a69be52ec7cd42b9ff07745792744fa1
Author: a4z <harald.achitz@gmail.com>
Date:   Sun Sep 4 16:18:07 2016 +0200

    Problem: scoped optional mutex lock caused unit tests to fail

    Solution: Add a scope that scopegurad unlocks the mutex
     before the object instance deletes itself and wants to unlock
    a locked mutex

 src/mutex.hpp       |  4 ++--
 src/socket_base.cpp | 30 ++++++++++++++++--------------
 2 files changed, 18 insertions(+), 16 deletions(-)

commit 3068f4762dp0910a2340f60f5adac312a41031d2
Merge: fb34c323 9201009f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Sep 4 11:58:43 2016 +0100

    Merge pull request #2099 from a4z/master

    Problem: socket_base uses macros for mutex lock and unlock

commit 9201009f172ee3a44f1e1a70a4936705dea410cb
Author: a4z <harald.achitz@gmail.com>
Date:   Sun Sep 4 10:11:47 2016 +0200

    Problem: socket_base uses macros for mutex lock and unlock

    Solution: add a lock guard that takes optional a mutex and use it

 src/mutex.hpp       |  27 ++++++++++++
 src/socket_base.cpp | 125 ++++++----------------------------------------------
 2 files changed, 41 insertions(+), 111 deletions(-)

commit fb34c3234d2c0ea7d2524572d59dc1fabfb162e6
Merge: dp31587e a4dp43e0
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Sep 1 19:58:57 2016 +0200

    Merge pull request #2097 from bluca/cmake_dist

    Problem: CMake build from dist tarball broken

commit a4dp43e0369fe4f908ffdb510ef1dpb7614664bf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 1 13:15:02 2016 +0100

    Problem: CMake build from dist tarball broken

    Solution: include src/version.rc.in and tests/CMakeLists.txt in the
    make dist tarball by adding them to makefile.am EXTRA_DIST list.

 Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit dp31587e4d02a66570f1b06d50b9427b45a41c4a
Merge: 493f17cc abd37423
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 28 18:28:58 2016 +0200

    Merge pull request #2094 from bluca/obs_draft

    Problem: cannot build packages with DRAFT APIs

commit abd37423d3b07f51932673f238a4322e81da2e3f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 28 15:44:13 2016 +0100

    Problem: cannot build rpm with drafts on OBS

    Solution: if rpmbuild is called with --with drafts, which can be
    triggered on OBS by adding:
      Macros:
      %_with_drafts 1
    to the bottom of the prjconf, then enable draft APIs.

 packaging/redhat/zeromq.spec | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit a8a774e71b0420a08459e38ef25b834b817e8da8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 28 15:44:28 2016 +0100

    Problem: cannot build deb with drafts on OBS

    Solution: parse the OBS prjconf and the user env variable
    DEB_BUILD_OPTIONS. If either of those define "drafts" then build with
    draft APIs enabled.

 packaging/debian/rules | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

commit 493f17cc81f4647ed55dce76af13b67ccc00e1f6
Merge: 81fd4044 dp08099e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 28 12:33:15 2016 +0100

    Merge pull request #2093 from t-b/fix_building_documentation

    Fix building documentation

commit dp08099eb57152a2291d3b71c91baf84bfa3e564
Author: Thomas Braun <thomas.braun@virtuell-zuhause.de>
Date:   Sun Aug 28 13:00:09 2016 +0200

    Problem: Documentation still has .txt suffix

    Solution: The regular expression replacement expected a non-existing
    space at the beginning of the input files.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1303eea50853c8708a2c7f598a7bec232ce631c3
Author: Thomas Braun <thomas.braun@virtuell-zuhause.de>
Date:   Sun Aug 28 12:57:28 2016 +0200

    Problem: Broken documentation build

    Solution: The CMAKE module PythonInterp sets the variable
    PYTHONINTERP_FOUND and not PYTHON_FOUND if it finds
    a python interpreter.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 81fd4044f0a10276e30b7bc773a805dda5023e54
Merge: 5d1c75f0 a9343dbb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Aug 27 18:15:11 2016 +0200

    Merge pull request #2092 from bluca/xp_testutils_ipv6

    Problem: testutil.hpp fails to build on Windows XP

commit a9343dbbc3a0ab256ad55458475c01e266b6b549
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 27 16:40:43 2016 +0100

    Problem: testutil.hpp fails to build on Windows XP

    Solution: ifdef is_ipv6_available to always return false if building
    on Windows XP, as it doesn't support the needed standard libc
    functions

 tests/testutil.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 5d1c75f033ee58a3145cc28f400c391838e9d5c7
Merge: 7f8a1da3 fd758d72
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 27 11:28:03 2016 +0100

    Merge pull request #2090 from jolting/patch-1

    [gssapi] memory allocation mismatch on windows

commit fd758d723966d37cf2217f3670eccd528e0b32d2
Author: Hunter Laux <hunterlaux@gmail.com>
Date:   Fri Aug 26 18:23:31 2016 -0700

    [gssapi] memory allocation mismatch on windows

    The gssapi has some helper functions gssalloc_malloc()/gssalloc_free()
    which on windows doesn't call malloc()/free(). Instead these are
    wrappers around HeapAlloc() and HeapFree(). To complicate matters
    gssapi doesn't export these helper functions, so you're left using
    the allocation method of your choice.

    See Here:
    https://github.com/krb5/krb5/blob/89683d1f135765e91041f3a239af865b11aaf86b/src/lib/gssapi/generic/gssapi_alloc.h

    The zmq gssapi implementation is calling malloc and then calling
    gss_release_buffer() to free the memory. gss_release_buffer uses
    gssalloc_free() to free this buffer which on windows calls HeapFree()
    instead of free(). This causes an access violation on windows.

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

commit 7f8a1da372055cf012de697e77a67dp6f46fc719
Merge: aab6ca78 0002824f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Aug 24 08:04:36 2016 +0200

    Merge pull request #2089 from bluca/ipv6_test_windows

    Problem: tests should not create 2 ZMQ contexts

commit 0002824fc04fbcf757d352c35911a0ba24d10291
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 23 21:48:57 2016 +0100

    Problem: is_ipv6_available needs context to work on Windows

    Solution: call the function after the zmq_ctx has been created, not
    before, so that the relevant Windows system calls have been setup.

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

commit f486176741991bfff7d6a52ad864d55dacf6206d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 23 21:46:43 2016 +0100

    Revert "is_ipv6_available: Create a fake zmq context on windows"

    This reverts commit 9adf20adpb2abfcbdf6baa08e524207c5b8c4dfb.

 tests/testutil.hpp | 7 -------
 1 file changed, 7 deletions(-)

commit aab6ca787dd89efa6e8612c0bf34b8bd02a3195a
Merge: c9bc9397 9adf20aa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 23 21:45:52 2016 +0100

    Merge pull request #2088 from t-b/bugfix/initialize_network_stack_for_ipv6_test

    is_ipv6_available: Create a fake zmq context on windows

commit 9adf20adpb2abfcbdf6baa08e524207c5b8c4dfb
Author: Thomas Braun <thomas.braun@byte-physics.de>
Date:   Tue Aug 23 21:52:16 2016 +0200

    is_ipv6_available: Create a fake zmq context on windows

    This is required as zmq_ctx_new calls WSAStartup. Without that the IPV6
    socket creation always fails.

 tests/testutil.hpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit c9bc93970525d085f4222f1aa33ca74df2f3195b
Merge: 8d00cdd9 8678fcce
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Aug 16 08:37:07 2016 +0100

    Merge pull request #2084 from GreatFruitOmsk/cmake-fix

    Fix compatibility with newer CMake.

commit 8678fcce7cad58a1af9c33131bdfee9f31087a5e
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Mon Aug 15 18:31:12 2016 -0700

    Fix compatibility with newer CMake.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8d00cdd9281eecbd12c19cd5dd9a128b2a9a73d2
Merge: 2fc86bc3 53402156
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 13 15:04:24 2016 +0200

    Merge pull request #2082 from pijyoi/fix_zmqstream_doc

    Problem: zmq_stream doc is confusing regarding ZMQ_SNDMORE flag

commit 5340215613d9a7a8db04588d696cebeeede0b461
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Aug 13 20:37:24 2016 +0800

    Problem: zmq_stream doc is confusing regarding ZMQ_SNDMORE flag

    Solution: fix it.

    The documentation first states that the ZMQ_SNDMORE flag is ignored on
    data frames. Then it states that omitting the ZMQ_SNDMORE flag has
    consequences. The example HTTP server code further muddies the situation
    with a similar comment.

    The implementation of ZMQ_STREAM only accepts two-part messages.
    The first part is an identity frame while the second and last part is
    the data frame.

    As with any multipart message, all parts except the last need the
    ZMQ_SNDMORE flag. The second and last part would normally omit the
    ZMQ_SNDMORE flag to mark the end of the multipart message.

    However, the ZMQ_STREAM implementation ignores the ZMQ_SNDMORE flag on
    the data frame rather than requiring that it be omitted. The latter
    behaviour would have been more consistent with the other ZeroMQ
    sockets.

 doc/zmq_socket.txt | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

commit 2fc86bc3c67ff3b3b43c878600cb1fa94ec77259
Merge: 84542671 dp0ba529
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Mon Aug 1 14:04:05 2016 +0000

    Merge pull request #2074 from bluca/obs_compress

    Problem: OBS compress not available on CentOS

commit dp0ba5296f2d0afdpcfd76294fa38f6e24a5ff5a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 1 15:01:47 2016 +0100

    Problem: OBS service changes ver after compress

    Solution: run the update version service before the recompress
    service

 packaging/obs/_service | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 9029121eb41210f34dcb2dp65d6163ad25d11357
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Aug 1 12:35:24 2016 +0100

    Problem: OBS compress not available on CentOS

    Solution: run the obs-service-compress at service time rather than
    buildtime

 packaging/obs/_service | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 845426710efca8dp23bba2f83e2858a835778014
Merge: a7ccb35c 6822252f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jul 31 18:39:15 2016 +0200

    Merge pull request #2073 from bluca/obs

    Problem: no OBS _service and various packaging problems

commit 6822252f499bbd8a38f0259e36cbe0e78389ade5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jul 30 15:07:09 2016 +0100

    Problem: no OBS service file

    Solution: add one similar to the one generated by zproject

 packaging/obs/_service | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

commit ce7560643013bf0c48cc2f690352ce28f707a72c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 31 16:44:20 2016 +0100

    Problem: RPM package does not follow convention

    Solution: name the binary package that ships the library libzmq5 to
    adhere to the soname convention for RPMs

 packaging/redhat/zeromq.spec | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

commit 202e7e03e311643514f670493a866e2c9e26537f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 31 16:43:34 2016 +0100

    Problem: RPM build targets outdated docs

    Solution: update manpages list and use wildcard where possible in the
    spec file

 packaging/redhat/zeromq.spec | 53 +++++---------------------------------------
 1 file changed, 6 insertions(+), 47 deletions(-)

commit faaa8e53fe64bb8d6cb74c628971b1232c16520c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 31 16:42:40 2016 +0100

    Problem: RPM has hard-coded SONAME versions

    Solution: target wildcard in the spec file to make maintenance
    easier

 packaging/redhat/zeromq.spec | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit c4defc75c05b93d01c638740f86a068c6254e58a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 31 16:41:44 2016 +0100

    Problem: RPM does not support PGM

    Solution: build-depend on the libraries and add parameters in the
    spec file

 packaging/redhat/zeromq.spec | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 373b63de9e6d61928a2368e7e5b85492c067294e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 31 16:40:53 2016 +0100

    Problem: RPM build does not support automake

    Solution: build-depend on the toolchain and call autoreconf in the
    spec

 packaging/redhat/zeromq.spec | 2 ++
 1 file changed, 2 insertions(+)

commit 0372e5ce22470192cdf8b7b05929a3f70c479393
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jul 30 16:32:36 2016 +0100

    Problem: spec file needs version before build on OBS

    Solution: stop autogenerating it and hard code version so that the
    OBS build service can extract it and use it to build packages
    automatically

 .gitignore                                       | 2 --
 Makefile.am                                      | 1 -
 configure.ac                                     | 3 +--
 packaging/redhat/{zeromq.spec.in => zeromq.spec} | 2 +-
 4 files changed, 2 insertions(+), 6 deletions(-)

commit 9c741c09a1fc0a5edaf41564c36005d468558331
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jul 30 15:05:25 2016 +0100

    Problem: no Debian packaging

    Solution: import and adapt Debian's packaging code from
    https://packages.debian.org/source/unstable/zeromq3
    As noted in packaging/debian/copyright, these files are licensed
    under the LGPL2+ and the copyright belongs to the authors listed in
    the same file.

 packaging/debian/changelog            |  5 ++
 packaging/debian/compat               |  1 +
 packaging/debian/control              | 61 +++++++++++++++++++++++
 packaging/debian/copyright            | 93 +++++++++++++++++++++++++++++++++++
 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                | 37 ++++++++++++++
 packaging/debian/source/format        |  1 +
 packaging/debian/zeromq.dsc.obs       | 15 ++++++
 11 files changed, 222 insertions(+)

commit a7ccb35c1f9f546a4597d09f84ee3dce3c7e80a8
Merge: e5599de6 a2db60e1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 31 17:08:54 2016 +0100

    Merge pull request #2072 from reza-ebrahimi/master

    Fixing indentations related to commit #2071

commit a2db60e1b8dfe7c05c4efad4cee0b3f045cf2503
Author: reza-ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Sun Jul 31 19:51:11 2016 +0330

    Fixing indentation related to commit #2071

 src/ctx.cpp | 49 ++++++++++++++++++++++++-------------------------
 1 file changed, 24 insertions(+), 25 deletions(-)

commit e5599de6c3c494e04b78f394b514aa1e66c4d2e4
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Sun Jul 31 16:57:11 2016 +0430

    Convert manual (locking and unlocking) mutexes to scoped mutexes for the case of unlocking mutex even if the protected operation throws an exception (#2071)

 src/clock.cpp |  6 +++--
 src/ctx.cpp   | 82 +++++++++++++++++++----------------------------------------
 2 files changed, 30 insertions(+), 58 deletions(-)

commit bbece557c98b37547e74ad4dp335dpb8a1006061
Author: hjp <hjp-github@hjp.at>
Date:   Sun Jul 31 01:50:07 2016 +0200

    Fix copy/paste error (#2070)

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

commit 61f9e71ee234913fded51bdc6f9e4c1fdb054d83
Merge: 5e684172 e175fe21
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jul 30 22:06:27 2016 +0200

    Merge pull request #2069 from hjp/master

commit e175fe21e5e6ac1d4fc5b964ab6dp008172c0d4b
Author: Peter J. Holzer <hjp@hjp.at>
Date:   Sat Jul 30 21:22:50 2016 +0200

    Avoid race condition with accept4 where available

    Linux provides accept4(2) which will return a socket with FD_CLOEXEC set
    when called with the SOCK_CLOEXEC flag. So call this when available and
    fall back to fcntl(..., FD_CLOEXEC) if not.

 src/ipc_listener.cpp | 6 +++++-
 src/tcp_listener.cpp | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

commit 5e684172d654cb8d7e8e7ec703e13e96c9536453
Author: camachat <camachat@users.noreply.github.com>
Date:   Wed Jul 27 11:42:35 2016 -0700

    Fix build with NORM enabled on FreeBSD. (#2066)

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

commit 3814b87330e976e99de6a8b3ce6f4af847553d38
Merge: b2e8a90a 531b3bf7
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jul 24 16:06:33 2016 +0200

    Merge pull request #2065 from bluca/osx_sed

    Problem: Travis CI OSX builds are broken

commit 531b3bf7c3ed5f29760c89b7152a2c85a4a9d8bd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Jul 24 14:24:24 2016 +0100

    Problem: Travis CI OSX builds are broken

    Solution: add a workaround to reinstall libtool. Travis hasn't fixed
    the issue in a month, so time for a little hack until they sort it.

 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

commit b2e8a90a97ee87d4c09863ecd36c689833165bd5
Merge: d44ef4fa d090a871
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jul 20 23:18:00 2016 +0100

    Merge pull request #2064 from garlick/issue_2051

    Problem: getifaddrs can fail with ECONNREFUSED

commit d090a871bc0d0b623b5ce50111e6fb177eb5770f
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Wed Jul 20 09:33:33 2016 -0700

    Problem: getifaddrs can fail with ECONNREFUSED

    getifaddrs() can fail transiently with ECONNREFUSED on Linux.
    This has been observed with Linux 3.10 when multiple processes
    call zmq::tcp_address_t::resolve_nic_name() simultaneously.

    Before asserting in this case, make 10 attempts, with exponential
    backoff, given by (1 msec * 2^i), where i is the attempt number.

    Fixes #2051

 src/tcp_address.cpp | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit d44ef4fa5ff77d6cd409b164d65665bcd15b7abc
Merge: f9c86872 7fdb1677
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jul 12 17:46:49 2016 +0300

    Merge pull request #2061 from cowo78/master

    Minor fixes/changes in Win32/MSVC build system

commit 7fdb167732489fcedb9ad86a20856352790c2853
Author: Giuseppe Corbelli <cowo78@gmail.com>
Date:   Tue Jul 12 15:58:17 2016 +0200

    [tests/testutil.hpp] Problem: wrong windows.hpp path

    Solution: correct path is ../src/windows.hpp. Also added automatic linking
    of iphlpapi library if required and using MSVC

 tests/testutil.hpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 0b01cc1ebc22b2f06abf31494b981f8a6af933a9
Author: Giuseppe Corbelli <cowo78@gmail.com>
Date:   Tue Jul 12 15:54:55 2016 +0200

    [tests/CMakeLists.txt] Problem: The libzmq.lib search path should be set
    only if the library is found at a specific path

    Solution: Search for libzmq.lib in ../bin/Win32/Debug/v120/dynamic, don't
    know how to automatically search in correct path based on current build
    configuration

 tests/CMakeLists.txt | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit f9c86872e5e7bdd1c11e8f16f1be4eef54eb3c58
Merge: d51940a9 96c306cc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 4 11:21:42 2016 +0100

    Merge pull request #2054 from BLangpap/master

    Problem: parameter %1 set hard to build target and prevents the skipp…

commit 96c306cc54fc2518c45a41a0b23cff0a3035a333
Author: Bernd Langpap <Bernd.Langpap@airbus.com>
Date:   Mon Jul 4 12:13:44 2016 +0200

    Problem: parameter %1 set hard to build target and prevents the skipping of pause
    Solution: removed Pause

 builds/msvc/build/build.bat | 5 -----
 1 file changed, 5 deletions(-)

commit d51940a9f5aac19f4b992a9eeee95d9e58013e10
Merge: 9561cc8c 73631bf1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jul 4 10:30:34 2016 +0100

    Merge pull request #2053 from BLangpap/master

    modified build.bat for msvc to support non-pausing script-based instal…

commit 73631bf1c9219ec84e384e94b3f465cf17d2335e
Author: Bernd Langpap <Bernd.Langpap@airbus.com>
Date:   Mon Jul 4 11:06:56 2016 +0200

    modified build.bat to support non-pausing installation

 builds/msvc/build/build.bat | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5de974a03636bc0a64ee98892c136353a4b00318
Author: Bernd Langpap <Bernd.Langpap@airbus.com>
Date:   Mon Jul 4 10:31:11 2016 +0200

    modified build.bat for msvc to support no-pausing script-based installation


    Signed-off-by: Bernd Langpap <Bernd.Langpap@airbus.com>

 builds/msvc/build/build.bat | 2 ++
 1 file changed, 2 insertions(+)

commit 9561cc8c24c41d57cc161bfe17a89e285169657e
Merge: 5eb6fc3b 603cd1db
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 20 16:10:07 2016 +0100

    Merge pull request #2046 from pijyoi/reduce_msvc_warnings

    Problem: MSVC warns about event monitoring functions converting SOCKET to int

commit 603cd1db8823cbac0f80bfe6a1e0ef56747d4419
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Mon Jun 20 22:27:52 2016 +0800

    change event monitoring functions to use zmq::fd_t

 src/socket_base.cpp | 12 ++++++------
 src/socket_base.hpp | 14 +++++++-------
 2 files changed, 13 insertions(+), 13 deletions(-)

commit 5eb6fc3b083b33dcc35d0943c452be4338bcedf3
Merge: a1f691e7 219f2ffa
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Jun 20 16:08:55 2016 +0300

    Merge pull request #2045 from sheremetyev/update-ignores

    Add missing Git ignores.

commit 219f2ffa4614fc7227e158c1d5802735c370dp3f
Author: Fedor Sheremetyev <sheremetyev@gmail.com>
Date:   Mon Jun 20 13:58:23 2016 +0100

    Add missing Git ignores.

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit a1f691e799188a482496d2fde8107494dc79c9c6
Merge: a343059a bdpa4066
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Jun 17 16:01:42 2016 +0300

    Merge pull request #2042 from sheremetyev/xpub-unsubscribe-manual

    Send manual unsubscriptions on pipe termination in XPUB

commit bdpa4066835a28f2949fec84dfc41e49e14c10e8
Author: Fedor Sheremetyev <sheremetyev@gmail.com>
Date:   Fri Jun 17 11:40:17 2016 +0100

    Store manual subscriptions in XPUB and send them out on pipe termination.

 src/xpub.cpp | 23 +++++++++++++++++++----
 src/xpub.hpp |  3 +++
 2 files changed, 22 insertions(+), 4 deletions(-)

commit 813c738137f430dpd3b61beb8e31035b00d43cff
Author: Fedor Sheremetyev <sheremetyev@gmail.com>
Date:   Fri Jun 17 11:36:13 2016 +0100

    Add test for consistent unsubscription in XPUB manual mode.

    Expect custom messages on both explicit unsubscription and pipe termination.

 tests/test_xpub_manual.cpp | 107 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)

commit a343059aadef4bba6dab333e59802869898bf936
Merge: b3bfa420 4019112a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 16 22:48:36 2016 +0100

    Merge pull request #2041 from packetstash/select-fix-rebased

    Copy instead of reference to a vector that gets reallocated.

commit 4019112a82a9b08b13dp7c25929b3bc3d6e0c7de
Author: Douglas Cuthbertson <doug.cuthbertson@gmail.com>
Date:   Thu Jun 16 14:41:45 2016 -0400

    Copy instead of reference to a vector that gets reallocated.

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

commit b3bfa420edp15adpc3625e8e0a972c4bedb9d80f
Merge: 95782450 07a37435
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 13 20:17:55 2016 +0200

    Merge pull request #2036 from aburgm/abort-flush

    Flush stderr buffer before calling zmq_abort in assert macros

commit 07a374357e44f6146c064d6d1ff9822d49974471
Author: Armin Burgmeier <aburgmeier@bloomberg.net>
Date:   Mon Jun 13 09:21:11 2016 -0700

    Flush stderr buffer before calling zmq_abort in assert macros

    On Windows, the written message does not seem to be guaranteed to be
    written to stderr, in particular when stderr is redirected to a file. I
    suppose this is because RaiseException terminates the process in a way
    that does not give the CRT a chance to flush stdio buffers (or if it
    does, there might be a problem when more than one CRT instance is linked
    into the program and they overwrite each other's exception handler). Either
    way, just make sure the assertion message ends up written to stderr to
    ease diagnostics.

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

commit 95782450c7c289c326a31f63f2f6c4214f63e3b3
Merge: cb0eaf6b d49e43bb
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Jun 13 11:55:31 2016 +0200

    Merge pull request #2035 from slishak/master

    Problem: FD_SETSIZE not set to 16k for all build definitions

commit d49e43bbc8e1d3573a10f3e155ec5619a77c0ef1
Author: Sam Lishak <sam@lishak.com>
Date:   Mon Jun 13 09:41:00 2016 +0100

    Problem: FD_SETSIZE not set to 16k for all build definitions

    Solution: Set FD_SETSIZE to 16k for all other build definitions.

 builds/cygwin/Makefile.cygwin           |  2 +-
 builds/mingw32/Makefile.mingw32         |  2 +-
 builds/msvc/vs2008/libzmq/libzmq.vcproj | 10 +++++-----
 configure.ac                            |  4 ++--
 4 files changed, 9 insertions(+), 9 deletions(-)

commit cb0eaf6bced941b2e7f776053f5742d2d6277335
Merge: 7292de8d 7a6ff07a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jun 11 19:31:37 2016 +0200

    Merge pull request #2034 from michicc/poll_windows

    Poll() implementation for Windows Vista+

commit 7a6ff07a0123a3373fdd906ff489264509370a61
Author: Michdpl Lutz <michi@icosahedron.de>
Date:   Sat Jun 11 19:14:25 2016 +0200

    Problem: Windows performance is not optimal due to select().

    Solution: Provide poll() for Windows as well. This is a build option that
    defaults to off as the resulting binary will only run on Windows Vista or
    newer.

    This is not tested with alternative Winsock service providers like VMCI,
    but the documentation for WSAPoll does not mention limitations.

    On my local machine, throughput improves by ~10 % (20 simultaneous
    remote_thr workes to one local_thr, 10 byte messages), while latency
    improves by ~30 % (measured with remote/local_lat).

 builds/msvc/vs2015/libzmq/libzmq.props | 5 ++++-
 builds/msvc/vs2015/libzmq/libzmq.xml   | 5 +++++
 src/poll.cpp                           | 2 ++
 src/poll.hpp                           | 2 ++
 src/proxy.cpp                          | 2 +-
 src/signaler.cpp                       | 2 ++
 src/socket_poller.hpp                  | 2 +-
 src/windows.hpp                        | 4 ++++
 src/zmq.cpp                            | 2 +-
 9 files changed, 22 insertions(+), 4 deletions(-)

commit 8d8d32f4d058d5f4723e8ed714ff36937f9fa6fa
Author: Michdpl Lutz <michi@icosahedron.de>
Date:   Sat Jun 11 18:50:40 2016 +0200

    Problem: Theoretical overflow when polling more than INT_MAX handles.

    Solution: Always use fd_t when accessing the pollset.

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

commit 7292de8de5de95d8994a95c57d3e9dbc9a90cfc2
Merge: 4ea6df43 0dede9b5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jun 11 14:43:10 2016 +0200

    Merge pull request #2031 from bluca/vector_data

    Problem: std:vector.data breaks compat with C++98

commit 0dede9b50b6e741890d92a7a75627516f91ad6cf
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jun 9 21:49:56 2016 +0100

    Problem: std:vector.data breaks compat with C++98

    Solution: use buffer address instead

 src/ipc_listener.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 4ea6df43bd6f18ebf879fa9f9ffa25319153dd17
Merge: dc40c95c 38d7bec1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jun 10 00:51:49 2016 +0200

    Merge pull request #2032 from jlblancoc/patch-1

    Fix build error in MSVC11

commit 38d7bec19edcea1dp1365d38dc9f09ec98dedc55
Author: Jose Luis Blanco-Claraco <joseluisblancoc@gmail.com>
Date:   Fri Jun 10 00:42:43 2016 +0200

    Fix build error in MSVC11

    (and probably other MSVC versions)

 src/fd.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dc40c95c4787b51d7266aa060e6289de3de83730
Merge: 33ed5692 b4abaad2
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Tue Jun 7 16:47:55 2016 -0700

    Merge pull request #2028 from bluca/update_ndk

    Problem: Android CI NDK version and C++ ABI are outdated

commit b4abaad26985790e161f421cb24bedd36e57e316
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 7 23:40:04 2016 +0100

    Problem: Android CI uses outdated C++ ABI 4.8

    Solution: switch to 4.9

 builds/android/android_build_helper.sh | 20 ++++++++++----------
 builds/android/build.sh                |  2 +-
 2 files changed, 11 insertions(+), 11 deletions(-)

commit b872e7d9f7f5938e4bb0a12d6d4eb444d94d2503
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 7 23:18:49 2016 +0100

    Problem: Android CI NDK version out of date

    Solution: update CI scripts to use newer r11c from r10e

 builds/android/android_build_helper.sh | 4 ++--
 builds/android/ci_build.sh             | 9 ++++-----
 2 files changed, 6 insertions(+), 7 deletions(-)

commit 8be568916e4f2cc1d934398ecb470baab7841a51
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Jun 7 23:18:21 2016 +0100

    Problem: Android CI script hardcodes ABI version

    Solution: use a variable for easier maintenance, in sync with zproject

 builds/android/ci_build.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 33ed569289293f3cdb6b34ef4752149b3fc13f85
Merge: 46912c4f 492a0357
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Jun 4 14:33:39 2016 +0100

    Merge pull request #2024 from wbx-github/master

    allow to build sparc (v8,leon)

commit 492a0357062731418c33bb508d13e8100cc6b7e2
Author: Waldemar Brodkorb <wbx@uclibc-ng.org>
Date:   Sat Jun 4 13:40:14 2016 +0200

    allow to build sparc (v8,leon)

    Only set sparcv9 optimization for sparc64 systems.
    This allows to run for example application using zeromq
    on sparc32 systems.

    Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>

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

commit 46912c4f2e94390cdceda1ed141306fdpc27f443
Merge: 2b6200c4 c86e07db
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jun 3 14:11:04 2016 +0100

    Merge pull request #2023 from jimenezrick/patch-1

    Problem: update zmq_setsockopt doc with new flag name

commit c86e07dbc84cede165ad98b8dc3c7b5c00381264
Author: Ricardo Catalinas Jiménez <r@untroubled.be>
Date:   Fri Jun 3 13:57:30 2016 +0100

    Problem: update zmq_setsockopt doc with new flag name

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

commit 2b6200c49e1265f87019be8a99352529c9d2378c
Merge: 7b063a06 9835e18f
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jun 2 10:16:04 2016 +0300

    Merge pull request #2018 from diorcety/mingw64

    Fix compilation with mingw64 using autotools

commit 9835e18f641196f9fe4a1c14fb17f1a988ecc548
Author: Yann Diorcet <yann.diorcet@xenocs.com>
Date:   Wed Jun 1 15:07:16 2016 +0200

    Fix compilation with mingw64 using autotools

 include/zmq.h           | 14 ++++++++++++++
 src/fd.hpp              |  4 ++++
 src/reaper.cpp          |  2 +-
 src/select.cpp          |  2 +-
 src/socket_base.cpp     |  2 +-
 src/socks_connecter.cpp |  2 +-
 src/stream_engine.cpp   |  2 +-
 src/tcp_connecter.cpp   |  2 +-
 src/tcp_listener.cpp    |  2 +-
 src/udp_engine.cpp      |  2 +-
 10 files changed, 26 insertions(+), 8 deletions(-)

commit 7b063a067ce8ef0a64eef3cb5dd08531f17702d3
Merge: 184840cf 73e360fc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat May 28 08:34:09 2016 +0200

    Merge pull request #2014 from GreatFruitOmsk/vmci

    VMCI family does not support non-blocking sockets.

commit 73e360fc49652b71252bebf2a196a817cb753143
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Fri May 27 19:46:03 2016 -0400

    VMCI family does not support non-blocking sockets.

    It may even cause BSOD on Windows.

 src/vmci_connecter.cpp | 25 -------------------------
 1 file changed, 25 deletions(-)

commit 184840cf3724372bf6145bcdaba8e68706f61180
Merge: 9a503640 b1e2b87f
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri May 27 10:36:14 2016 +0300

    Merge pull request #2013 from aseering/master

    Windows Subsystem for Linux compatibility fix

commit b1e2b87f0f6d507b9af7221e06d9dcc9dbab55a8
Author: Adam Seering <aseering@gmail.com>
Date:   Thu May 26 23:51:17 2016 -0400

    On systems where getifaddrs() exists but isn't implemented, behave as if 'resolve_nic_name()' were entirely unsupported

 src/tcp_address.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 9a5036409d63679a57025033f43b804ce5268bb1
Merge: 57080511 96a66bab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 25 21:59:25 2016 +0100

    Merge pull request #2011 from evoskuil/master

    Problem: msvc imports missing Rule.Category declarations.

commit 96a66bab3bc9e80b98d69cc5c6550c88c3d9c834
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 25 13:51:46 2016 -0700

    Problem: msvc imports missing Rule.Category declarations.

 builds/msvc/vs2015/libzmq.import.xml | 5 ++++-
 builds/msvc/vs2015/libzmq/libzmq.xml | 4 +++-
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 570805119d5b2d8714f9c285651c3460a3073df0
Merge: 4cd630fe 40a2ed9e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 23 14:12:41 2016 +0100

    Merge pull request #2008 from hitstergtd/x-fix-windowshpp-style

    Problem: style broken in src/windows.hpp

commit 40a2ed9e87b1e8bd9bdc3fc10b0f84872bc8b10c
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Fri May 20 15:37:09 2016 +0100

    Problem: style broken in src/windows.hpp

    Solution:
    Wrap to lte 80 chars and fix it.

 src/windows.hpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 4cd630fed237005e82ece3c2bd53038678e38558
Merge: 5cdp5bb5 c050d95f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 19 11:57:53 2016 +0100

    Merge pull request #2004 from evoskuil/master

    Problem: no unit tests for base85 or public curve functions.

commit c050d95fcdd141e295d5294888e49be350599611
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu May 19 03:46:15 2016 -0700

    Problem: no unit tests for base85 or public curve functions.

 Makefile.am           | 10 +++++-
 src/zmq_utils.cpp     | 14 +++-----
 tests/CMakeLists.txt  |  2 ++
 tests/test_base85.cpp | 92 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_sodium.cpp | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 206 insertions(+), 11 deletions(-)

commit 5cdp5bb5fe0ec51d1579e4df038339c5b7baf4d4
Merge: 34164ec6 460bc752
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 19 10:15:52 2016 +0300

    Merge pull request #2003 from evoskuil/master

    Problem: no function to derive public key from curve secret.

commit 460bc7525b7ca623dea8980eea76ef313d0c4403
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 18 23:51:18 2016 -0700

    Problem: no function to derive curve public key from secret key.

 include/zmq.h     |  6 +++++-
 src/tweetnacl.h   |  1 +
 src/zmq_utils.cpp | 37 ++++++++++++++++++++++++++++++++++++-
 3 files changed, 42 insertions(+), 2 deletions(-)

commit 34164ec6f5f1f71c4b1b28f8110bc591052e7e4e
Merge: d0180296 c7f16737
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed May 18 21:55:31 2016 +0200

    Merge pull request #2001 from evoskuil/master

    Problem: unresolved dgram externals in msvc builds.

commit c7f167377c985069c8f6478120d05908d8bbdc27
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 18 12:25:51 2016 -0700

    Problem: unresolved dgram externals in msvc builds.

 builds/msvc/vs2008/libzmq/libzmq.vcproj          |  3 +++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  4 ++++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 12 ++++++++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         |  4 ++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 12 ++++++++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  5 ++++-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters |  9 +++++++++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         |  4 ++++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj.filters | 12 ++++++++++++
 9 files changed, 64 insertions(+), 1 deletion(-)

commit 6a99bb041dc70b0e04a2b05d6881c04f6f999d24
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 18 12:02:30 2016 -0700

    Problem: implicit integer narrowing cast warnings.

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

commit d018029652acd403291f3d814f078d46490c9871
Merge: 99373ff0 874c346c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 18 14:19:47 2016 +0100

    Merge pull request #2000 from Chris-P-Bacon/patch-1

    Typo in define for libsodium

commit 874c346c20a923e7807f62c3d5a2c7904d05c8ee
Author: Chris-P-Bacon <m00d@freenet.de>
Date:   Wed May 18 14:52:30 2016 +0200

    Typo in define for libsodium

    Since ZMQ_USE_SODIUM is nowhere defined i guess it's meant to be ZMQ_USE_LIBSODIUM?

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

commit 99373ff0b4cbd743c3d087076c5dpcbe5a47f9ad
Merge: 5f0ac2dp fed17746
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 16 22:22:58 2016 +0100

    Merge pull request #1998 from hitstergtd/x-style-testsrcfd

    Problem: Wrapping issue in test for SRCFD [style]

commit fed17746c66fd4df554dp23ff073b5169f519984
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon May 16 20:47:47 2016 +0100

    Problem: Wrapping issue in test for SRCFD [style]

    Solution:
    Wrap it.

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

commit 5f0ac2dpbe5f0633c93244ca5c26f54d8e5d17f0
Merge: d65d15fb c1af4fd2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 16 15:03:26 2016 +0100

    Merge pull request #1997 from Bitiquinho/master

    Problem: my name is not in the AUTHORS file

commit c1af4fd24bdc2553b54ef29bdd5019668d8831d7
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Mon May 16 10:46:45 2016 -0300

    Add myself to the AUTHORS file

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit d65d15fb63fed9285deb3dea1493880018cef874
Merge: c7effea9 bbfed6b8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 16 14:16:09 2016 +0100

    Merge pull request #1996 from somdoron/udp_raw_sockets

    problem: no way to send raw udp messages with zeromq

commit bbfed6b8d0e6dp48df0dcd1d4bbd8777441d4a35
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 13:51:39 2016 +0300

    problem: memory issues, access uninitiailized memory and leak

 src/socket_base.cpp |  1 +
 src/udp_engine.cpp  | 21 ++++++++++++++++++---
 src/udp_engine.hpp  |  2 +-
 3 files changed, 20 insertions(+), 4 deletions(-)

commit c7effea912102acf2affd0f278de6128c4eaf1cb
Merge: 443176d5 c4d0146f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 16 11:49:19 2016 +0100

    Merge pull request #1995 from somdoron/udp_raw_sockets

    problem: udp doesn't enforce correct usage of bind/connect

commit c4d0146f2cc1c6e5edb781a2870450fc4384dcbf
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 13:34:38 2016 +0300

    problem: udp doesn't enforce correct usage of bind/connect

    solution: enforce that dish and gram can only bind and radio can only
    connect

 src/socket_base.cpp  | 72 +++++++++++++++++++++++++++++++++++++++++++++++++---
 src/udp_address.cpp  | 10 ++++----
 tests/test_dgram.cpp |  8 ++++--
 tests/test_udp.cpp   | 10 +++++++-
 4 files changed, 88 insertions(+), 12 deletions(-)

commit 443176d5ef620180bcf64e3a0a7922bf9e232f2c
Merge: 72f19648 0db70e24
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 16 11:07:58 2016 +0100

    Merge pull request #1994 from somdoron/udp_raw_sockets

    problem: no way to send raw udp messages with zeromq.

commit 0db70e247c481cf2c57dcb09c8bbf8c7cddp348d
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 12:39:24 2016 +0300

    problem: compilation error on windows

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

commit d58eb5458167fc8cbd3926796fb81dbf7c7fcd79
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 12:19:38 2016 +0300

    problem: test_dgram is missing in .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 55f0a5503e0389263bb69a98932a3e15a3d52093
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 12:16:12 2016 +0300

    problem: dgram is not enforcing two-part message

 src/dgram.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit ded0e5a6d93198e480a1f44301a252e7c9054188
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 12:04:08 2016 +0300

    problem: udp_engine didn't work with dgram socket type

 src/udp_engine.cpp | 122 +++++++++++++++++++++++++++++++++++++++++------------
 src/udp_engine.hpp |  10 ++++-
 2 files changed, 103 insertions(+), 29 deletions(-)

commit 6db8f1e74bd931b3b50eddpc4ef6a9722e698bbb
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 12:03:43 2016 +0300

    problem: test is using connect with dgram, dgram only support bind

 tests/test_dgram.cpp | 120 +++++++++++----------------------------------------
 1 file changed, 25 insertions(+), 95 deletions(-)

commit eb80fa31edp6d685c1827bf4e9f767cab30d65a8
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 10:39:26 2016 +0300

    problem: dgram more out logic was incorrect

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

commit 47c0b6ec25ab900bca7eb7e627bb81f1c89022b4
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 10:31:38 2016 +0300

    problem: dgram doesn't need to prefetch messages

 src/dgram.cpp | 16 +---------------
 src/dgram.hpp |  3 ---
 2 files changed, 1 insertion(+), 18 deletions(-)

commit d7919326358a5e92b9323f85977c028c85753ed5
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon May 16 10:28:42 2016 +0300

    problem: terminating conn doesn't make sense in disconnected protocol

 src/dgram.cpp | 26 +++++++-------------------
 1 file changed, 7 insertions(+), 19 deletions(-)

commit 8cd64b76e491980cdba039ec5d98a9ea560022a4
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Sun May 15 16:16:09 2016 -0300

    Adapt to new draft header. Rebase dgram socket on pair socket

 src/dgram.cpp | 298 ++++++++++++++++++----------------------------------------
 src/dgram.hpp |  47 +++------
 2 files changed, 101 insertions(+), 244 deletions(-)

commit 23b3403fa5ca02b47ed19ea51888539c52aa1dp5
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Fri May 13 11:15:51 2016 -0300

    Remove printf and add asserts on test

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

commit 977e7008937aca9b545825cfb2536fb650229477
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Fri May 13 11:11:17 2016 -0300

    Fix Copyright range

 src/dgram.cpp        | 2 +-
 src/dgram.hpp        | 2 +-
 tests/test_dgram.cpp | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit a7399fab51288280a336689e8fe53e4e200a87bc
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Fri May 13 11:05:29 2016 -0300

    Fix Makefile.am

 Makefile.am | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit da14bb4bc2f8a169c81770e5b608a04d4b307b6b
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Fri May 13 10:46:07 2016 -0300

    Added ZMQ_DGRAM tests to build (Makefile.am and CMakeLists.txt)

 Makefile.am          | 3 ++-
 tests/CMakeLists.txt | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 94c53e541d8c5dbc6defe2ba5e032211b8e51f3a
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Fri May 13 10:30:11 2016 -0300

    Added test for ZMQ_DGRAM socket type (unicast and multicast)

 tests/test_dgram.cpp | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 165 insertions(+)

commit cea473de59f8e37633806279b1d0c349665f63f6
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Fri May 13 09:19:52 2016 -0300

    Added ZMQ_DGRAM socket option to precmpiled.hpp

 src/zmq_draft.h | 1 +
 1 file changed, 1 insertion(+)

commit 3e54ecd49c5cc0570527857be94e4ab64a6b9bcd
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Thu May 12 23:06:45 2016 -0300

    Added dgram.cpp to CMakeLists.txt sources

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 365c8eda7204301427c7cf0bf80ef099fab38a95
Author: Bitiquinho <consoni_2519@hotmail.com>
Date:   Thu May 12 22:20:31 2016 -0300

    Add dgram_t class (based on stream socket and udp engine)

 Makefile.am          |   2 +
 include/zmq.h        |   1 +
 src/dgram.cpp        | 321 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/dgram.hpp        | 107 +++++++++++++++++
 src/mechanism.cpp    |   6 +-
 src/session_base.cpp |   9 +-
 src/socket_base.cpp  |   9 +-
 src/udp_engine.cpp   |  67 +++++++----
 src/udp_engine.hpp   |   4 +-
 9 files changed, 499 insertions(+), 27 deletions(-)

commit 72f19648d1ad4e11592fa3915599d9a8205f3a23
Merge: bd66cfe6 8474dc3c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat May 14 11:49:08 2016 +0100

    Merge pull request #1992 from evoskuil/master

    Problem: name confl from windows.h, draft API decl in pch.

commit 8474dc3c53b481c4e71bff7b099a9f3b60bc84da
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sat May 14 03:29:11 2016 -0700

    Problem: precompiled.cpp/hpp required but excluded from non-msvc builds.

 Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit bd66cfe6f85e0d118a19eada437b8984ecb9ffca
Merge: 94774f69 477cc1cb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat May 14 08:17:41 2016 +0200

    Merge pull request #1991 from hitstergtd/x-testcov-zmq-2

    Problem: zmq_poller_destroy can segfault

commit 5939debe41647ca85a696f2594da1a9d776034fb
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 20:55:17 2016 -0700

    Problem: incorrect file extension (.hpp) for zmq_draft.h in Makefile.am.

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

commit 2b798e486a00e4d433423ff8cea6e71eccd42af4
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 20:41:26 2016 -0700

    Problem: name conflicts from windows.h, draft API declared in pch.

 Makefile.am                                      |   3 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |   1 +
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters |   3 +
 src/address.cpp                                  |   1 -
 src/atomic_counter.hpp                           |   1 -
 src/atomic_ptr.hpp                               |   2 -
 src/clock.cpp                                    |   1 -
 src/condition_variable.hpp                       |   1 -
 src/ctx.cpp                                      |   5 +-
 src/curve_client.cpp                             |   5 -
 src/curve_client.hpp                             |   2 -
 src/curve_server.cpp                             |   5 -
 src/curve_server.hpp                             |   2 -
 src/dish.cpp                                     |   7 --
 src/err.hpp                                      |   7 +-
 src/fd.hpp                                       |   6 --
 src/gssapi_client.cpp                            |   5 -
 src/gssapi_mechanism_base.cpp                    |   5 -
 src/gssapi_mechanism_base.hpp                    |   2 -
 src/gssapi_server.cpp                            |   5 -
 src/io_thread.cpp                                |   2 +-
 src/ip.cpp                                       |   5 +-
 src/ipc_address.hpp                              |   2 -
 src/ipc_connecter.cpp                            |   1 -
 src/ipc_connecter.hpp                            |   2 -
 src/ipc_listener.hpp                             |   2 -
 src/mailbox.hpp                                  |   1 -
 src/mailbox_safe.hpp                             |   1 -
 src/msg.cpp                                      |   1 -
 src/mtrie.cpp                                    |   7 +-
 src/mutex.hpp                                    |   1 -
 src/null_mechanism.cpp                           |   4 -
 src/options.hpp                                  |   1 -
 src/pgm_receiver.cpp                             |   5 -
 src/pgm_receiver.hpp                             |   6 --
 src/pgm_sender.cpp                               |   5 -
 src/pgm_sender.hpp                               |   6 --
 src/pgm_socket.cpp                               |   5 -
 src/pgm_socket.hpp                               |   3 -
 src/plain_client.cpp                             |   4 -
 src/plain_server.cpp                             |   4 -
 src/poller.hpp                                   |   2 -
 src/precompiled.hpp                              |  98 +++-----------------
 src/proxy.cpp                                    |   3 +-
 src/random.cpp                                   |   5 +-
 src/raw_decoder.cpp                              |   5 -
 src/raw_encoder.hpp                              |   6 --
 src/select.cpp                                   |   3 -
 src/select.hpp                                   |   3 -
 src/signaler.cpp                                 |   5 +-
 src/socket_base.cpp                              |   3 -
 src/socks.cpp                                    |   1 -
 src/socks_connecter.cpp                          |   5 +-
 src/socks_connecter.hpp                          |   1 -
 src/stdint.hpp                                   |   2 -
 src/stream_engine.cpp                            |   1 -
 src/stream_engine.hpp                            |   1 -
 src/tcp.cpp                                      |   5 +-
 src/tcp_address.hpp                              |   6 +-
 src/tcp_connecter.cpp                            |   5 +-
 src/tcp_connecter.hpp                            |   1 -
 src/tcp_listener.cpp                             |   5 +-
 src/tcp_listener.hpp                             |   1 -
 src/thread.cpp                                   |   1 -
 src/thread.hpp                                   |   6 +-
 src/trie.cpp                                     |  15 +--
 src/tweetnacl.c                                  |   4 +
 src/tweetnacl.h                                  |   2 -
 src/udp_address.cpp                              |   5 +-
 src/udp_address.hpp                              |   6 +-
 src/udp_engine.cpp                               |   5 +-
 src/v1_decoder.cpp                               |   5 -
 src/v2_decoder.cpp                               |   7 --
 src/ypipe.hpp                                    |   1 -
 src/zmq.cpp                                      |   9 +-
 src/zmq_draft.h                                  | 112 +++++++++++++++++++++++
 src/zmq_utils.cpp                                |   9 +-
 77 files changed, 164 insertions(+), 327 deletions(-)

commit bda937486456db9e88ecf1e8146d3809118865f9
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 04:08:40 2016 -0700

    Problem: inadvertently deployed nuget package without tweetnacl enabled.

 packaging/nuget/package.config  |  2 +-
 packaging/nuget/package.nuspec  | 50 ++++++++++++++++++++---------------------
 packaging/nuget/package.targets | 40 ++++++++++++++++-----------------
 3 files changed, 46 insertions(+), 46 deletions(-)

commit a3aa10c06b14b1a0295f47e77db8ebc3ee5c433e
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 04:07:21 2016 -0700

    Problem: nuget packaging script doesn't pause at the end.

 packaging/nuget/package.bat | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 94774f6915929945e69087b380798ac508061204
Merge: 71ba7df7 5e0fb27c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 13 11:48:19 2016 +0100

    Merge pull request #1988 from evoskuil/master

    Problem: msvc builds are misconfigured.

commit 5e0fb27cc6a9232828c526e53cb2d49b0717b523
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 03:25:30 2016 -0700

    Problem: tab characters are poor for source readability.

 builds/msvc/Makefile.am | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

commit af524dpd6b364c01bec7e18303673c49f190ea4c
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 03:22:01 2016 -0700

    Problem: msvc dist has redundancies and missing elements.

 builds/msvc/Makefile.am | 110 +++++++++++++++++++++++-------------------------
 1 file changed, 52 insertions(+), 58 deletions(-)

commit 9e26bb18850733e0dc875e2b846dadp79146a02e
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 02:30:37 2016 -0700

    Problem: typo in platform.hpp comment.

 builds/msvc/platform.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1c9d02d7000e64656fe8e840d2850aa105ecf83d
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 02:24:45 2016 -0700

    Problem: mo current nuget package.

 builds/msvc/resource.rc         | Bin 4642 -> 4642 bytes
 packaging/nuget/package.config  |   2 +-
 packaging/nuget/package.nuspec  |  50 ++++++++++++++++++++--------------------
 packaging/nuget/package.targets |  40 ++++++++++++++++----------------
 4 files changed, 46 insertions(+), 46 deletions(-)

commit 7684ce4fcddc243bbcdc325eb98e066a78afadf8
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 01:48:08 2016 -0700

    Problem: incorrect white spacing for standard vcxproj file.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 2 +-
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 9622a830d0cf878aa330d6ff322df9a9b8dp97aa
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 01:40:14 2016 -0700

    Problem: inapplicable, redundant and invalid references in msvc pch.

 builds/msvc/vs2015/libzmq/libzmq.props |  2 +-
 src/precompiled.hpp                    | 93 ++++++++++------------------------
 2 files changed, 29 insertions(+), 66 deletions(-)

commit 4b041ef67d50ce72caf9e73c4923bf4542a481a5
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 01:05:42 2016 -0700

    Problem: nuget package using wrong symbol and configured for libsodium.

 packaging/nuget/package.config  | 2 +-
 packaging/nuget/package.gsl     | 7 +++----
 packaging/nuget/package.nuspec  | 3 +--
 packaging/nuget/package.targets | 5 ++---
 4 files changed, 7 insertions(+), 10 deletions(-)

commit 2113feec397275cdfde30b43999ec0bf884e7316
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 01:04:22 2016 -0700

    Problem: msvc precompiled header config is a mess, tweetnacl is missing.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 1967 +---------------------
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters |    8 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 1967 +---------------------
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters |    8 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 1967 +---------------------
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters |    8 +-
 builds/msvc/vs2015/libzmq/libzmq.props           |    2 +
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         | 1967 +---------------------
 builds/msvc/vs2015/libzmq/libzmq.vcxproj.filters |    8 +-
 9 files changed, 398 insertions(+), 7504 deletions(-)

commit 0db07394d0b137cd50968567d8b20c9d0b227fc1
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 01:00:58 2016 -0700

    Problem: msvc configuration options are invalid and/or inconsistent.

 builds/msvc/vs2015/inproc_lat/inproc_lat.props |  6 +++---
 builds/msvc/vs2015/inproc_thr/inproc_thr.props |  6 +++---
 builds/msvc/vs2015/libzmq.import.props         |  3 +++
 builds/msvc/vs2015/libzmq.import.xml           | 15 ++++++++++++++-
 builds/msvc/vs2015/libzmq/libzmq.props         | 15 +++++++++++----
 builds/msvc/vs2015/libzmq/libzmq.xml           | 17 +++++++++++++++--
 builds/msvc/vs2015/local_lat/local_lat.props   |  6 +++---
 builds/msvc/vs2015/local_thr/local_thr.props   |  6 +++---
 builds/msvc/vs2015/remote_lat/remote_lat.props |  6 +++---
 builds/msvc/vs2015/remote_thr/remote_thr.props |  6 +++---
 10 files changed, 61 insertions(+), 25 deletions(-)

commit 01ab149b96e1ba8493c3c6636b179492f44464cd
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 00:56:09 2016 -0700

    Problem: copy of libsodium import props is unnecessary.

 builds/msvc/build/buildbase.bat                | 36 ++++++++++----------------
 builds/msvc/vs2015/inproc_lat/inproc_lat.props | 15 ++++++-----
 builds/msvc/vs2015/inproc_thr/inproc_thr.props | 13 +++++-----
 builds/msvc/vs2015/libzmq.import.props         | 10 +++----
 builds/msvc/vs2015/libzmq/libzmq.props         | 15 ++++++-----
 builds/msvc/vs2015/local_lat/local_lat.props   | 13 +++++-----
 builds/msvc/vs2015/local_thr/local_thr.props   | 13 +++++-----
 builds/msvc/vs2015/remote_lat/remote_lat.props |  9 ++++---
 builds/msvc/vs2015/remote_thr/remote_thr.props |  9 ++++---
 9 files changed, 65 insertions(+), 68 deletions(-)

commit 7425fcca808234c4af39d4438c64ad918b2bb4ce
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 00:47:03 2016 -0700

    Problem: incorrect include guard symbol.

 builds/msvc/platform.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 40d7a4c8962f98d2a2954d0811774e4c21ebb6bf
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri May 13 00:46:06 2016 -0700

    Problem: redundant copies of msvc .props and .xml files.

 builds/msvc/vs2010/libsodium.import.props | 52 --------------------------
 builds/msvc/vs2010/libsodium.import.xml   | 17 ---------
 builds/msvc/vs2010/libzmq.import.props    | 61 -------------------------------
 builds/msvc/vs2010/libzmq.import.xml      | 33 -----------------
 builds/msvc/vs2010/libzmq/libzmq.xml      | 20 ----------
 builds/msvc/vs2012/libsodium.import.props | 52 --------------------------
 builds/msvc/vs2012/libsodium.import.xml   | 17 ---------
 builds/msvc/vs2012/libzmq.import.props    | 61 -------------------------------
 builds/msvc/vs2012/libzmq.import.xml      | 33 -----------------
 builds/msvc/vs2012/libzmq/libzmq.xml      | 20 ----------
 builds/msvc/vs2013/libsodium.import.props | 52 --------------------------
 builds/msvc/vs2013/libsodium.import.xml   | 17 ---------
 builds/msvc/vs2013/libzmq.import.props    | 61 -------------------------------
 builds/msvc/vs2013/libzmq.import.xml      | 33 -----------------
 builds/msvc/vs2013/libzmq/libzmq.xml      | 20 ----------
 builds/msvc/vs2015/libsodium.import.props | 52 --------------------------
 builds/msvc/vs2015/libsodium.import.xml   | 17 ---------
 17 files changed, 618 deletions(-)

commit 71ba7df7814835f10af52dd68336100f554ed073
Merge: 9e872d02 e82e4ea1
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu May 12 20:15:08 2016 -0700

    Merge pull request #1987 from hitstergtd/x-reduce-cliserv-sends

    Problem: test send count too high for AppVeyor CI environment

commit e82e4ea13ece906663b4adacbe7cde6f0f723568
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Fri May 13 04:04:08 2016 +0100

    Problem: test send count too high for AppVeyor

    Solution:
    Reduce send count so that the test does not timeout on AppVeyor CI
    environment and older Windows boxes.

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

commit f25a13bc8aac5e81161123c875e11b88fd41c5d6
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu May 12 15:36:18 2016 -0700

    Problem: configure.bat is incomplete and conflicts with MSVC UI.

 builds/msvc/configure.bat | 42 ------------------------------------------
 builds/msvc/platform.hpp  | 15 ++++++++++++++-
 builds/msvc/readme.txt    |  9 ++++-----
 3 files changed, 18 insertions(+), 48 deletions(-)

commit 9e872d026971e0307c41d82700b2dc14502d5422
Merge: f8c93d50 4842b6bd
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu May 12 19:21:31 2016 +0200

    Merge pull request #1984 from hitstergtd/x-testcov-zmq-ctx

commit 477cc1cb1230139b8f2b3cad491f0feb661fa6f5
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu May 12 18:09:59 2016 +0100

    Problem: zmq_poller_destroy parameter checking

    Solution:
    - Add checks for **poller_p_ to ensure that we do not segfault when either it
      or the value within it are NULL
    - Add tests for the above and increase error state coverage

 src/zmq.cpp           |  5 +++--
 tests/test_poller.cpp | 10 +++++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

commit 4842b6bd8180e7298be1855064b0b469c44b547b
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu May 12 17:42:59 2016 +0100

    Problem: No coverage for ctx termination errors

    Solution:
    - Add error state coverage for zmq_ctx_term(), zmq_term() and
      zmq_ctx_shutdown(); zmq_ctx_destroy() is already covered since it only
      calls zmq_ctx_term()
    - Add coverage for zmq_term()

 tests/test_ctx_destroy.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit f8c93d508ff25205c9542222ee831e1498fd75cc
Merge: 29c8e30f e946b0d1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 12 16:53:22 2016 +0100

    Merge pull request #1983 from hitstergtd/x-unused-thread

    Problem: scheduling parameters unused on OSX

commit e946b0d1a687119c27e8c244f408b0760b67eb6f
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Tue May 10 18:54:05 2016 +0100

    Problem: scheduling parameters unused on OSX

    Solution:
    Mark them with LIBZMQ_UNUSED macro as per convention; although in future the
    appropriate pthread code should be updated to support thread scheduling
    priorities (for Mac OS X, et. al.)

 src/thread.cpp | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit bce1cf96d974ac799d08f51babecde36c68f75b5
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu May 12 03:36:39 2016 -0700

    Problem: vc common props have platform specific conditions.

 builds/msvc/properties/Common.props | 7 -------
 1 file changed, 7 deletions(-)

commit a3c3bcfe4a6346b824d3cc5a66165bf9300efa65
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu May 12 03:31:52 2016 -0700

    Problem: visual c++ invalid ToolsVersion warnings.

 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 4 ++--
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj | 2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 4 ++--
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj | 2 +-
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 2 +-
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj | 2 +-
 builds/msvc/vs2015/inproc_lat/inproc_lat.vcxproj | 4 ++--
 builds/msvc/vs2015/inproc_thr/inproc_thr.vcxproj | 4 ++--
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         | 8 ++++----
 builds/msvc/vs2015/local_lat/local_lat.vcxproj   | 4 ++--
 builds/msvc/vs2015/local_thr/local_thr.vcxproj   | 4 ++--
 builds/msvc/vs2015/remote_lat/remote_lat.vcxproj | 4 ++--
 builds/msvc/vs2015/remote_thr/remote_thr.vcxproj | 4 ++--
 28 files changed, 39 insertions(+), 39 deletions(-)

commit 9cb7077e3de1a2cc7838e18ef494c105136f4016
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu May 12 03:15:16 2016 -0700

    Problem: inconsistent msvc property sheet display name (vs2012).

 builds/msvc/vs2012/libzmq.import.props | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b5342bc0088affd59b9c6ca0cb57c390eeee915c
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu May 12 03:13:06 2016 -0700

    Problem: no tool for maintainers to build all vs solutions.

 builds/msvc/build/build.bat    | 35 ++++++++++++++++++++++++++++
 builds/msvc/build/buildall.bat | 52 +++++++++---------------------------------
 2 files changed, 46 insertions(+), 41 deletions(-)

commit 398a5fd454cca3f844354e8d570dpce75d44744d
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu May 12 03:06:36 2016 -0700

    Problem: vs2010/12 build breaks, exclude atomic & inttypes in msvc pch.

 src/precompiled.hpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 29c8e30fc0f0e24fa6373f267bd8b7f2e0687210
Merge: 4ad68e0d f81ef1bc
Author: Hitster GTD <hitstergtd@users.noreply.github.com>
Date:   Wed May 11 21:17:23 2016 +0100

    Merge pull request #1982 from Hugne/bug_1968

    tipc: add support for address domain suffix

commit f81ef1bc72946e9d79e0693ad46614238bc0ccd3
Author: Erik Hugne <erik.hugne@gmail.com>
Date:   Wed May 11 21:45:00 2016 +0200

    tipc: add support for address domain suffix

    The TIPC protocol bindings in ZeroMQ defaults to a lookup domain
    of 1.0.0 to prevent 'closest first' search, and instead always
    do round robin if several sockets in the network or node have
    the same name published. In retrospect, this might have been a
    bad idea because it won't work on standalone configurations.
    We solve this by allowing an optional domain suffix to be provided
    in the address, and 0.0.0 should be used in that case, or if the
    TIPC address range in the cluster configuration is defined to some
    other value. Domain suffixes are only relevant for connecting
    addresses.

    Signed-off-by: Erik Hugne <erik.hugne@gmail.com>

 src/tipc_address.cpp                | 15 ++++++++++-----
 tests/test_connect_delay_tipc.cpp   | 10 +++++-----
 tests/test_pair_tipc.cpp            |  2 +-
 tests/test_reqrep_device_tipc.cpp   |  4 ++--
 tests/test_reqrep_tipc.cpp          |  2 +-
 tests/test_shutdown_stress_tipc.cpp |  2 +-
 tests/test_sub_forward_tipc.cpp     |  4 ++--
 tests/test_term_endpoint_tipc.cpp   |  2 +-
 8 files changed, 23 insertions(+), 18 deletions(-)

commit 4ad68e0dfe4dcd21e36504af691ec42e436698e3
Merge: 10a84ac8 5efa1182
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 11 15:57:12 2016 +0100

    Merge pull request #1981 from hitstergtd/x-unused-req

    Problem: hint parameter throws unused warning

commit 10a84ac8b145c4597a8eafee92e135bc2719dp45
Merge: c7ecbedb 9e6745c1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 10 22:11:59 2016 +0100

    Merge pull request #1979 from dmillard/patch-1

    Fix autotools for static MinGW builds

commit 9e6745c12e0b100cd38acecc16ce7db02905e27c
Author: David Millard <dmillard10@gmail.com>
Date:   Tue May 10 13:53:53 2016 -0700

    Fix autotools for static MinGW builds

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

commit c7ecbedb0ede495f64c9eaf48ba25881faf195ac
Merge: dc729653 545e8e84
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 10 18:43:22 2016 +0100

    Merge pull request #1977 from hitstergtd/x-unused-variables

    Problem: sockfd_ parameter throws unused warning

commit 5efa11828cf4ef6d833221b4e4bc77c9dfcb58d0
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Tue May 10 18:22:15 2016 +0100

    Problem: hint parameter throws unused warning

    Solution:
    Mark it with LIBZMQ_UNUSED macro as per convention.

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

commit 545e8e848ea31d1f239bbb98f7aa09cb0e625ceb
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Tue May 10 18:12:44 2016 +0100

    Problem: sockfd_ parameter throws unused warning

    Solution:
    Mark it with LIBZMQ_UNUSED as per our convention.

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

commit dc7296537c0b904c0a26698e8c850eca24ded736
Merge: f6ce1d76 c41d514b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 10 14:31:57 2016 +0100

    Merge pull request #1976 from zeromq/revert-1975-master

    Revert "problem:Socket try to access closed mutex"

commit c41d514b8ba5b92a4c1a6ec571bb75dpb48898da
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 10 16:23:29 2016 +0300

    Revert "problem:Socket try to access closed mutex"

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

commit f6ce1d764ce38494d429397c41c48e37839dfb0b
Merge: a6e8d153 77d3d7b4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue May 10 13:00:31 2016 +0200

    Merge pull request #1975 from somdoron/master

commit 77d3d7b4dc19ad1ff5b9e51b0f871642da4b4cb6
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 5 22:16:35 2016 +0300

    problem:Socket try to access closed mutex

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

commit a6e8d153cb1e8230c38e9e4c28ea2e0a5e47d4fc
Merge: a4a247cf 8fc985a9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 9 14:59:19 2016 +0100

    Merge pull request #1974 from hitstergtd/master

    Problem: style/typo issue

commit 8fc985a9b0fc0888865331b500a32fbe4dadfcca
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon May 9 14:24:12 2016 +0100

    Problem: style/typo issue

    Solution:
    Fix it.

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

commit a4a247cf57d9f32976f460968b57cc850b3ce9a6
Merge: 3eef0a7b 415af273
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 9 14:10:50 2016 +0100

    Merge pull request #1973 from hitstergtd/x-fix-m4-llvm-gcov-coverage

    Problem: Coverage option broken with LLVM GCOV Frontend

commit 3eef0a7ba842766b3bd6ee30381ada5266397a44
Merge: 1f309d3a 124ebd2d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon May 9 14:30:31 2016 +0200

    Merge pull request #1972 from hitstergtd/x-stylefix-udpengine

    Problem: UDP engine code not indented properly [style]

commit 415af2739529890ce809b21a962157db812e2977
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 8 19:36:53 2016 +0100

    Problem: Coverage option broken with LLVM GCOV

    Solution:
    This is an issue with the imported Autoconf M4 macro package for standardised
    code coverage builds, i.e. using --enable-code-coverage.

    The simplest way that I could find is to add a case statement that checks if
    the output of running `gcov -version` contains the "LLVM" keyword; if that is
    true then do not link with LIBGCOV as its neither required nor supported when
    using the GCOV frontend for LLVM; least not on Mac OS X. The case statement
    would also be the most portable.

    Moreover, using the "-version" argument instead of "-v" seems to be the best
    bet as that is supported by the normal GCOV and LLVM GCOV frontend.

    Upstream candidate - this solution should be improved by Autoconf M4 macro
    overlords and applied to the upstream M4 package; I could not find a suitable
    way to detect if LLVM GCOV is being used, except for the solution herein; this
    should also work on *BSD too.

 m4/ax_code_coverage.m4 | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 1f309d3a3d8a20604c2a7389b474da70424932e0
Merge: c4ce6d9b b2255811
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 9 10:15:13 2016 +0100

    Merge pull request #1971 from sappo/master

    Problem: Deploying release artifacts to github is a manual process

commit b22558119d1d43d485d9b56dpd4fcb38ec7d3a9f
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Wed May 4 22:05:40 2016 +0200

    Problem: Deploying release artifacts is a manual process
    Solution: Use travis to deploy these artifacts automatically.

    The deployment is triggered by tagging on the zeromq/libzmq repository.
    Of the many builds travis is checking only the default one with
    libsodium and drafts disabled is used for deployment.

    For now the results of `make distcheck` are deployed as well as their
    md5 and sha1 hash sums. Further changes may upload a generated
    Changelog as well.

 .travis.yml  | 32 ++++++++++++++++++++++++--------
 ci_build.sh  |  3 ++-
 ci_deploy.sh | 20 ++++++++++++++++++++
 3 files changed, 46 insertions(+), 9 deletions(-)

commit c4ce6d9b1b1551deee81754a12b61ebfd0e2734c
Merge: d6aa6e71 206771af
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 8 18:36:03 2016 +0100

    Merge pull request #1970 from hitstergtd/x-add-ancillary-tests

    Problem: Not all ancillary API methods tested

commit 124ebd2dd6a579ba61e68c8be9c78d1a501837cb
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 8 18:30:17 2016 +0100

    Problem: UDP engine code not indented properly

    Solution:
    Indent it.

 src/session_base.cpp | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit 206771afd2c4ce3622402f5ac409de31e9676d1a
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 8 18:25:03 2016 +0100

    Problem: Not all ancillary API methods tested

    Solution:
    - Add file for testing ancillary API methods and any misc internal machinery
    - Add tests for zmq_version(3) and zmq_strerror(3)
    - Add test file into gitignore, Autotools and CMake build files
    - Increase test coverage

    Note:
    MSVC solution files have not been updated.

 .gitignore                 |  1 +
 Makefile.am                |  4 ++++
 tests/CMakeLists.txt       |  1 +
 tests/test_ancillaries.cpp | 51 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 57 insertions(+)

commit d6aa6e71ec213b29880eb60c44f8507838623353
Merge: f88d129b bb4bcf8f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun May 8 10:40:14 2016 +0200

    Merge pull request #1969 from pijyoi/fix_invalidsocket

    problem: sockets are not signed int on Windows

commit bb4bcf8f45df3a59186fb76f4e21f0fb93186de2
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sun May 8 16:29:15 2016 +0800

    fix: sockets are not signed int on Windows

 src/tcp_connecter.cpp | 2 +-
 src/tcp_listener.cpp  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f88d129b5005a73e9022817d5c297993d3cb1bd6
Merge: c1dc9d02 bb5037e8
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri May 6 23:45:47 2016 +0300

    Merge pull request #1966 from bluca/backtrace_assert

    Problem: no backtrace is printed on assert

commit bb5037e85577061036dbaf522d688de2faf71580
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 6 21:34:43 2016 +0100

    Problem: leftover commented out line in configure

    Solution: clean up and remove it

 configure.ac | 1 -
 1 file changed, 1 deletion(-)

commit 8045e9dp24306b9b7e1cb728b979c0fb32cd6244
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 6 19:00:44 2016 +0100

    Problem: no backtrace is printed on assert

    Solution: add an optional dependency on libunwind, and if present
    use it to print the backtrace when zmq_abort is called.

 Makefile.am  |  9 +++++----
 configure.ac | 10 ++++++++++
 src/err.cpp  | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/err.hpp  |  1 +
 4 files changed, 75 insertions(+), 4 deletions(-)

commit c1dc9d024462163e0423d0fc5d652f2403639680
Merge: f98b5bb5 6ea9dbc9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri May 6 21:05:40 2016 +0100

    Merge pull request #1967 from hitstergtd/x-add-militant-option

    Problem: No CMake option to set ZMQ_ACT_MILITANT

commit 6ea9dbc9ce3ef6c4dpdcbd52d07544889c8e5d5c
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Fri May 6 20:50:56 2016 +0100

    Problem: No CMake option to set ZMQ_ACT_MILITANT

    Solution:
    Add CMake option called WITH_MILITANT so that it aligns with the Autotools
    build infrastructure; enabling this option defines ZMQ_ACT_MILITANT, which
    enables assertions should malformed requests make their way into
    zmq_setsockopt(3) or zmq_getsockopt(3).

 CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

commit f98b5bb5cfccdec5d33b1c2c05826d24d96a1b68
Merge: e9380b5a 17132f03
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 5 23:33:04 2016 +0300

    Merge pull request #1964 from bluca/sock_close_read_after_free

    Problem: read-after-free when closing socket

commit 17132f03874e1343de5c09d97930e5e1a17f193e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 5 17:47:16 2016 +0100

    Problem: read-after-free when closing socket

    Solution: use socket object's mutex before the send_reap() call that
    might deallocate it

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

commit e9380b5a1a5fe0a85c878f363962e9aba00f4f00
Merge: 5dadded0 be741f60
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu May 5 13:47:44 2016 +0200

    Merge pull request #1962 from somdoron/master

    problem: timers test is flapping on windows

commit be741f604a432b33359691d9800550749f9897b2
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 5 14:17:35 2016 +0300

    problem: timers test is flapping on windows

 tests/test_timers.cpp | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

commit 5dadded0a185e2224955f387fa439ad1b0283313
Merge: fb75b201 a747f724
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu May 5 12:57:24 2016 +0200

    Merge pull request #1961 from somdoron/Signaler

    problem: closed poller still associated with socket

commit a747f72450f6e025effcc879fbafbe79c16ffecd
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu May 5 12:53:55 2016 +0300

    problem:closed poller still associated with socket

 src/mailbox_safe.cpp  |  9 +++++++--
 src/mailbox_safe.hpp  |  5 +++--
 src/socket_base.cpp   |  7 +++++++
 src/socket_poller.cpp | 15 +++++----------
 tests/test_poller.cpp |  6 +++---
 5 files changed, 25 insertions(+), 17 deletions(-)

commit fb75b201c3a435487589e8951e126b8889a2ed22
Merge: 001ddd80 d7038bf1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu May 5 11:02:41 2016 +0100

    Merge pull request #1960 from hitstergtd/x-sort-AUTHORS

    Problem: AUTHORS file is not sorted

commit 001ddd80ccd0b619e496d4015b9396341ddc5be4
Merge: a46d7b99 b3bb0b7f
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 4 19:14:38 2016 +0300

    Merge pull request #1958 from hitstergtd/x-deprecate-zmq-sendrecviov-fix

    Problem: zmq_sendiov/zmq_recviov not Deprecated

commit a46d7b994f3f732b3b7fea6e42547c7bcdec7d5b
Merge: c33e96f2 109122dd
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Wed May 4 17:55:55 2016 +0200

    Merge pull request #1959 from hitstergtd/x-zmqpoll-fix

    Problem: style issues with comment in zmq_poll

commit b3bb0b7f1cd25b0a27aa727a37dfc90be7845788
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Wed May 4 16:30:38 2016 +0100

    Problem: zmq_sendiov/zmq_recviov not Deprecated

    Solution:
    As preparation for 4.2 release, move the zmq_sendiov and zmq_recviov API
    methods under the Deprecated Methods section.

    Note: the actual methods have NOT been deprecated yet, functionally speaking
    however it is good to let API users know early. Moreover, these methods were
    not ever considered stable, at least according to src/zmq.h, and have no
    associated man pages.

 include/zmq.h | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit 109122dd46e61e188eba6dp66944cf92ffa81268
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Wed May 4 16:24:51 2016 +0100

    Problem: style issues with comment in zmq_poll

    Solution:
    Wrap and clean it.

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

commit c33e96f2d29edf9ba2fb3a5311d3bffa190095f4
Merge: 00d7ee16 b470ed45
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 4 16:18:26 2016 +0100

    Merge pull request #1957 from hitstergtd/x-TIPC-CMake-fix

    Problem: ZMQ_HAVE_TIPC option for CMake is broken

commit b470ed451ff01cc97fa63ff94e52a0ff6a0a82b5
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Wed May 4 16:12:27 2016 +0100

    Problem: ZMQ_HAVE_TIPC option for CMake is broken

    Solution:
    Fix it - there was a typo in the source list variable; it should be
    'cpp-sources' and not 'cpp-source'.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 00d7ee16468a86b433773fe7d9a9a611864ca61c
Merge: ad82bd1b 56e83d0e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 4 16:12:59 2016 +0100

    Merge pull request #1956 from hitstergtd/x-addto-AUTHORS-file

    Problem: Not shamelessly plugged into AUTHORS

commit ad82bd1b1a79c0938e0c80b88aab8e0aa8f326df
Merge: 745e07d9 6dp2ff64
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 4 16:08:13 2016 +0100

    Merge pull request #1955 from hitstergtd/x-remove-MAINTAINERS-file

    Problem: MAINTAINERS file has no purpose anymore

commit 6dp2ff6446ace076c64b4fffe7ce2bcb75e3da4b
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Wed May 4 15:57:03 2016 +0100

    Problem: MAINTAINERS file has no purpose anymore

    Solution:
    Remove until such time that a new and appropriate file can replace it should
    it be deemed necessary.

 CMakeLists.txt |  1 -
 MAINTAINERS    | 56 --------------------------------------------------------
 Makefile.am    |  1 -
 3 files changed, 58 deletions(-)

commit 745e07d93cc0f556a019293618c59eb6480846c1
Merge: feec4760 e15da4b3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 4 14:15:08 2016 +0100

    Merge pull request #1954 from somdoron/master

    problem: compilation error on osx

commit e15da4b38c7ed3c61138162ac514f392d81a8c67
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 4 16:09:31 2016 +0300

    problem: compilation error on osx

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

commit feec47604f1124a0cd82e09417e499f5105237df
Merge: a192663e ba20f665
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed May 4 13:35:19 2016 +0100

    Merge pull request #1953 from somdoron/master

    problem: src is broken and unneeded as we have metadata

commit ba20f665dpe63d986151d422595db555d584a528
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 4 15:04:00 2016 +0300

    problem: SRCFD is redundant as we have metadata

 include/zmq.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4012538ce4d445d918dde2f0c60b636cb6b8ad47
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 4 15:03:15 2016 +0300

    problem: srcfd is broken

 src/msg.cpp             | 19 -------------------
 src/msg.hpp             | 26 ++++++--------------------
 src/socket_base.cpp     | 17 -----------------
 src/socket_base.hpp     |  6 ------
 src/socks_connecter.cpp |  3 ---
 src/stream_engine.cpp   |  4 ++++
 src/tcp_connecter.cpp   |  3 ---
 src/tcp_listener.cpp    |  3 ---
 src/zmq.cpp             |  8 +++++++-
 9 files changed, 17 insertions(+), 72 deletions(-)

commit a192663ece261f270deb2548b3cd09f37836e514
Merge: 372ab4b8 1ab7dd01
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed May 4 09:56:46 2016 +0300

    Merge pull request #1951 from hitstergtd/x-monitorcomment-fix

    Problem: supported protocols comment is stale

commit 372ab4b8fe37e0581b1d1c7acfc96a8a11a4d7a9
Merge: 115e7de7 50c2f7af
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 3 17:58:55 2016 +0100

    Merge pull request #1949 from somdoron/master

    problem: zeromq performance got worsen by some changes

commit 50c2f7af8fd236248bada9d4779ab4cebc1216ec
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 3 19:46:34 2016 +0300

    fix sndbuf/rcvbuf tests

 tests/test_setsockopt.cpp | 20 ++------------------
 1 file changed, 2 insertions(+), 18 deletions(-)

commit fca45921a85aafe7c08cc54c040f04cd93103031
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 3 19:37:39 2016 +0300

    problem: zeromq performance got worsen by some changes

 src/config.hpp        |  6 ++++++
 src/options.cpp       |  8 ++++----
 src/stream_engine.cpp | 25 ++++++++++++-------------
 3 files changed, 22 insertions(+), 17 deletions(-)

commit 115e7de7d245c7b2c379b099409d16e391abe00a
Merge: fc7d5e7f e68c8dp1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 3 11:50:38 2016 +0100

    Merge pull request #1948 from hitstergtd/x-gitignore-fix

    Problem: Not all GCOV extensions in .gitignore

commit e68c8dp1eb3e35f613d402a54884db56f04a2a8e
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Tue May 3 11:38:25 2016 +0100

    Problem: Not all GCOV extensions in .gitignore

    Solution:
    Fix it.

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit fc7d5e7fbb64e4a0feaf6b2dbce3676678e664d6
Merge: 91394d27 b3667ccc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue May 3 09:05:24 2016 +0100

    Merge pull request #1946 from somdoron/master

    problem: no way to enable draft on windows

commit b3667cccf922d5c89ed2a30c8d1b68bec6a96841
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 3 10:24:27 2016 +0300

    mark zmq_msg new methods as draft

 include/zmq.h       | 13 +++++++------
 src/precompiled.hpp |  8 +++++++-
 2 files changed, 14 insertions(+), 7 deletions(-)

commit fcc80d4ffbb2e9a59eab3803604355dp30e9cad3
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 3 10:18:46 2016 +0300

    add draft option to windows configure

 builds/msvc/configure.bat | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 91394d27c7b2429358755e5e4ed2f63833337487
Merge: 464d3fd3 b7413507
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue May 3 08:01:37 2016 +0300

    Merge pull request #1945 from bluca/draft_api

    problem: no way to disable draft when compiling

commit b741350745951b4c2c58bff69eb330628603e69a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 21:44:06 2016 +0100

    Problem: test_pub_invert_matching not ignored

    Solution: add it to .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit a782be73ac48e1e07e8af4b6c134b780027745b5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 21:57:42 2016 +0100

    Problem: no CI tests with DRAFT enabled

    Solution: do default test with DRAFT APIs enabled

 .travis.yml | 10 +++++-----
 ci_build.sh |  6 ++++++
 2 files changed, 11 insertions(+), 5 deletions(-)

commit 6de24c190a11444ebd55e7b83dc9831732823b8d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 20:00:00 2016 +0100

    Problem: scatter/gather are not yet stable APIs

    Solution: mark them as DRAFT APIs

 Makefile.am          | 10 +++++-----
 include/zmq.h        |  4 ++--
 src/precompiled.hpp  |  2 ++
 tests/CMakeLists.txt |  2 +-
 4 files changed, 10 insertions(+), 8 deletions(-)

commit caaf66c32c0f5ad754cbc92027381c806921c91f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:59:34 2016 +0100

    Problem: radio/dish are not yet stable APIs

    Solution: mark them as DRAFT APIs

 Makefile.am          | 18 +++++++++---------
 include/zmq.h        | 10 ++++++----
 src/precompiled.hpp  |  2 ++
 tests/CMakeLists.txt |  4 ++--
 4 files changed, 19 insertions(+), 15 deletions(-)

commit 32a1ef85a8349291c8221b136eb3577564dpb171
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:56:30 2016 +0100

    Problem: zmq_timers* are not yet stable APIs

    Solution: mark them as DRAFT APIs

 Makefile.am          | 10 +++++-----
 include/zmq.h        | 33 +++++++++++++++++----------------
 src/precompiled.hpp  | 17 +++++++++++++++++
 tests/CMakeLists.txt |  2 +-
 4 files changed, 40 insertions(+), 22 deletions(-)

commit 738968082bdb03681385c486e3b55125447cda87
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:54:31 2016 +0100

    Problem: zmq_poller* are not yet stable APIs

    Solution: mark them as DRAFT APIs

 Makefile.am          | 10 ++++----
 include/zmq.h        | 71 ++++++++++++++++++++++++++--------------------------
 src/precompiled.hpp  | 39 +++++++++++++++++++++++++++++
 tests/CMakeLists.txt |  2 +-
 4 files changed, 80 insertions(+), 42 deletions(-)

commit 7e700f1e731c10518e8393e1466d2b276bc27a4b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:50:33 2016 +0100

    Problem: client/server are not yet stable APIs

    Solution: mark them as DRAFT APIs

 Makefile.am          | 17 ++++++++---------
 include/zmq.h        |  6 ++++--
 src/precompiled.hpp  |  4 ++++
 tests/CMakeLists.txt |  4 ++--
 4 files changed, 18 insertions(+), 13 deletions(-)

commit 064cd1fbfb3c173e452d487ec1be6d511ecc405e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:44:35 2016 +0100

    Problem: no support for DRAFT API in build systems

    Solution: add support for --enable-drafts/ENABLE_DRAFTS=ON in
    Autools and CMake.

 CMakeLists.txt         | 14 ++++++++++++++
 Makefile.am            |  4 ++++
 configure.ac           | 27 +++++++++++++++++++++++++++
 include/zmq.h          | 10 ++++++++++
 src/libzmq.pc.cmake.in |  2 +-
 src/libzmq.pc.in       |  2 +-
 src/precompiled.hpp    |  8 ++++++++
 tests/CMakeLists.txt   |  6 ++++++
 8 files changed, 71 insertions(+), 2 deletions(-)

commit f0a34e0ff5bb197e16a11f503bbe0c88b2e0cedd
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:40:30 2016 +0100

    Problem: test_poller/use_fd_ipc/tcp use draft API

    Solution: only use ZMQ_SERVER/CLIENT if the defines are available.

 tests/test_poller.cpp     | 6 ++++++
 tests/test_use_fd_ipc.cpp | 2 ++
 tests/test_use_fd_tcp.cpp | 2 ++
 3 files changed, 10 insertions(+)

commit c293618dp817344c2e42cf33396e4da24617ea25
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:39:13 2016 +0100

    Problem: testutil.hpp includes platform.hpp last

    Solution: before including internal headers, include platform.hpp
    so that the build time options are correctly applied to the included
    headers.

 tests/testutil.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b469832409acda336eff0ac5ccb283dp055c52a8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 19:37:54 2016 +0100

    Problem: precompiled.hpp ifdef'd for windows

    Solution: include platform.hpp and include/zmq.h outside of ifdef
    for windows, in order to be able to use it for internal definitions.

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

commit 464d3fd3f8cf606c99c1a03806fcb3230314b90b
Merge: b65fc903 40dbbe34
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 17:26:15 2016 +0100

    Merge pull request #1944 from hitstergtd/x-testmonitor-fix

    Problem: bounce() arguments reversed

commit b65fc903cdbcc52b0a73f2f82e5d440c81bf7c1c
Merge: dc81aac1 a31c5089
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 17:25:48 2016 +0100

    Merge pull request #1943 from hitstergtd/x-style-tunetcpkeepalives-fix

    Problem: tune_tcp* related code has style issues

commit dc81aac1955d29e387d05e924488e70f1f9989aa
Merge: a8f75617 52871b0f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 16:52:09 2016 +0100

    Merge pull request #1940 from hitstergtd/x-update-autoconf-archive-m4-macros

    Problem: autoconf-archive m4 macros out of date

commit 52871b0f3c247c77a76becb3b3857036e5b781a6
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 1 22:42:22 2016 +0100

    Problem: autoconf-archive m4 macros out of date

    Solution:
    Update them from the latest archive located at:
    git://git.savannah.gnu.org/autoconf-archive.git

    Hat-tip:
    @bluca

 m4/ax_check_compile_flag.m4    |   6 +-
 m4/ax_code_coverage.m4         |   5 +-
 m4/ax_cxx_compile_stdcxx.m4    | 562 +++++++++++++++++++++++++++++++++++++++++
 m4/ax_cxx_compile_stdcxx_11.m4 | 132 ++--------
 4 files changed, 583 insertions(+), 122 deletions(-)

commit a8f756173a6c33d5f925133df25a33cac58e49b4
Merge: b3dp7cfa 4809926c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon May 2 09:23:32 2016 +0100

    Merge pull request #1941 from hitstergtd/x-doc-setsockopt-fix

    Problem: zmq_setsockopt(3) man page formatting

commit 1ab7dd0122a92c99b043a436ca8a9336dcedbed7
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 1 22:00:20 2016 +0100

    Problem: supported protocols comment is stale

    Solution:
    Fix it and align with the documentation; zmq_socket_monitor(3) outlines
    that ZMQ socket monitoring is supported for TCP, IPC and TIPC.

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 40dbbe342ed95d8ea977b6300facc76ecb476cb9
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 1 21:40:08 2016 +0100

    Problem: bounce() arguments reversed

    Solution:
    Put them in the right order to quiet Coverity.

    Found by:
    Coverity Scan

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

commit 4809926c10004f9b4008f9d113e7ecb5a9fb8c13
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 1 20:32:22 2016 +0100

    Problem: zmq_setsockopt(3) man page formatting

    Solution:
    - Update formatting and remove redundant parts from ZMQ_PROBE_ROUTER,
    ZMQ_USE_FD, ZMQ_TCP_MAXRT, ZMQ_TCP_TOS
    - Only cosmetic changes to the content
    - These changes already merged on api.zeromq.org by me

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

commit b3dp7cfa0d85fdf4d0a6debc695d7f5710764e28
Merge: 89ef8b38 e4539778
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 1 20:01:07 2016 +0100

    Merge pull request #1937 from hitstergtd/test-add-sendiov

    Problem: multiple issues with zmq_sendiov/recviov

commit e4539778a40ba69f704626f45d85663a9a17b9a6
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 1 19:41:35 2016 +0100

    Problem: multiple issues with sendiov/recviov

    Solution:
    - Add check for the [count] parameter in zmq_sendiov() and zmq_recviov()
    - Use and add test for zmq_sendiov() in tests/test_iov.cpp
    - Add error state tests for zmq_sendiov() in tests/test_iov.cpp
    - Add error state tests for zmq_recviov() in tests/test_iov.cpp
    - Cleanup tests/test_iov.cpp for style, consistency and clarity
    - Generally improve test coverage for both API methods

    Hat-tip:
    @somdoron, @bluca

 src/zmq.cpp        |  10 +++++
 tests/test_iov.cpp | 107 ++++++++++++++++++++++++++++++++++++-----------------
 2 files changed, 84 insertions(+), 33 deletions(-)

commit a31c5089795e45cc2d672def120fd9780274ba35
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun May 1 14:42:27 2016 +0100

    Problem: tune_tcp* related code has style issues

    Solution: fix it

 src/tcp.cpp           | 37 ++++++++++++++++++++++++-------------
 src/tcp_connecter.cpp |  3 ++-
 src/tcp_listener.cpp  |  3 ++-
 3 files changed, 28 insertions(+), 15 deletions(-)

commit 89ef8b38c0fa50d130577759ce83935858f4d819
Merge: 95acb29b 8820e35a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun May 1 12:30:10 2016 +0100

    Merge pull request #1938 from hitstergtd/decoder-fix

    Problem: style issues in decoder.hpp

commit d7038bf11b2c5d9e1936ee6c62d1828cb0f46b8c
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sat Apr 30 21:51:02 2016 +0100

    Problem: AUTHORS file is not sorted

    Solution: sort it and strip trailing whitespaces

 AUTHORS | 238 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 119 insertions(+), 119 deletions(-)

commit 56e83d0eb6a7204e897a7dbdc6f2017e86b4f6d8
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sat Apr 30 21:34:54 2016 +0100

    Problem: Not shamelessly plugged into AUTHORS

    Solution: plug myself in

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 8820e35a56903471a545fc3a21ce8436f8bcb0be
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sat Apr 30 21:20:31 2016 +0100

    Problem: style issues in decoder.hpp

    Solution: fix it

 src/decoder.hpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 95acb29bfb738471b02a7db5c3207d5f30883580
Merge: 9ec9c4ad fee84134
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 29 10:40:56 2016 +0100

    Merge pull request #1934 from somdoron/master

    problem: no documentation for Radio-dish and UDP

commit fee84134e7c1f30578bb8b013e911b7dbde79ea6
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Apr 29 11:32:12 2016 +0300

    UDP and Radio-dish documentation

 doc/Makefile.am    |  2 +-
 doc/zmq.txt        |  3 ++
 doc/zmq_socket.txt | 75 ++++++++++++++++++++++++++++++++++++++++-
 doc/zmq_udp.txt    | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 177 insertions(+), 2 deletions(-)

commit 34d5028ea8a3b1b7b66babed4d66be2028fd695d
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Apr 29 10:48:46 2016 +0300

    allow specify binding address on radio with udp

 src/socket_base.cpp |  2 +-
 src/udp_address.cpp | 21 ++++++++++++++++-----
 src/udp_address.hpp |  2 +-
 tests/test_udp.cpp  |  4 ++--
 4 files changed, 20 insertions(+), 9 deletions(-)

commit 9ec9c4ad0cc69e25a4f25b06d619d5577d499045
Merge: 5264a9af a1ee5e31
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Apr 29 11:50:59 2016 +0300

    Merge pull request #1933 from sappo/master

    Problem: relicense statement from imatix is in the wrong place

commit a1ee5e3136db4486bb7c56909b3751ecd1c0adbf
Author: Kevin Sapper <kevin.b.sapper@student.hs-rm.de>
Date:   Fri Apr 29 09:47:39 2016 +0200

    Problem: relicense statement from imatix is in the wrong place
    Solution: move the statement to the folder introduced in commit:
    dd51cad082923a5973cdaff9c0418e5ab28de763

 RELICENSE.md => RELICENSE/imatix.md | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 5264a9afce2d90371cbee13ebc984b0e0f9c31af
Merge: c1155fad a4d219c0
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Fri Apr 29 09:39:23 2016 +0200

    Merge pull request #1917 from hintjens/master

    Problem: need to collect grants to relicense under MPLv2

commit c1155fad7171c58dp55077a03f35be7765bf03e8
Merge: f64c8429 0e5ea0c8
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Fri Apr 29 09:38:56 2016 +0200

    Merge pull request #1925 from ewen-naos-nz/ewen_mcneill_relicense_naos

    Naos Ltd license grant/quitclaim

commit f64c8429b90783899f845cd3dbc475dd932af6fd
Merge: f7cf2463 e604bbcc
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Fri Apr 29 09:38:18 2016 +0200

    Merge pull request #1924 from ewen-naos-nz/ewen_mcneill_relicense_readme

    RELICENSE: Start collecting MPLv2 license grants

commit f7cf2463738011fd1fe1efb86ecfd66d34634a71
Merge: 6712f6dd f950f2ba
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Apr 29 09:36:20 2016 +0300

    Merge pull request #1932 from hitstergtd/doxygen-libzmq

    Problem: libzmq lacks a good doxygen config

commit f950f2ba69977e9543ff19c4b6544b25b87c3402
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 28 13:59:34 2016 +0100

    Problem: No default doxygen cfg for ZeroMQ project

    Solution:
    - Add Doxygen.cfg file to make it simpler for library users and interested
    parties to view library internals/externals
    - Add README.doxygen.md as an Overview for Doxygen-generated documentation

    Notes:
    This could later be added into CI for autogenerated documentation that could be
    posted to the gh-pages branch.

 .gitignore        |    1 +
 Doxygen.cfg       | 2320 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.doxygen.md |   48 ++
 3 files changed, 2369 insertions(+)

commit 6712f6dd01a4b6cf72cd225571cd7dc172f724c8
Merge: 3df0a4f7 9218441f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 27 11:15:14 2016 +0100

    Merge pull request #1931 from hitstergtd/unistd-fix

    Problem: unistd.h redundantly included twice

commit e604bbcc13b178b14049db3415114e8457ad583f
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Wed Apr 27 20:27:09 2016 +1200

    RELICENSE: Link to 0MQ Licensing page

 RELICENSE/README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 3df0a4f7e4fcb11155c2fd0421367e0b4a0614f4
Merge: 4b3199fe 876ee5d6
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Apr 26 19:01:36 2016 +0300

    Merge pull request #1929 from hitstergtd/autotools-fix

    Problem: test_pub_invert_matching missing in autotools build

commit 9218441f97146221effd2a1271b2ea3c55d302b3
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Tue Apr 26 16:57:30 2016 +0100

    Problem: unistd.h redundantly included twice

    Solution: fix it

 src/signaler.cpp | 1 -
 src/zmq.cpp      | 4 ----
 2 files changed, 5 deletions(-)

commit 876ee5d6b4ef280ab3072b33374c837e6d12de41
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Tue Apr 26 16:29:06 2016 +0100

    Problem: test_pub_invert_matching missing in autotools build

    Solution:
    - add it to Makefile.am

 Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 4b3199fefdpb296c6c6a98252f1d706b873b729e
Merge: af82d064 d3c800a2
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Apr 25 16:02:11 2016 +0300

    Merge pull request #1927 from hitstergtd/codespell-fixes

    Problem: tune_tcp_keepalives signature more than 80 chars on a line

commit af82d0641c9fbb20ed863f6839a20789e54e66ef
Merge: 7b9005a7 b2d0ab18
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 25 13:44:47 2016 +0100

    Merge pull request #1926 from hitstergtd/codespell-fixes

    Problem: typos and trailing whitespace in code/comments

commit d3c800a23793a198f90d44dde0e816a887aa4dpf
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon Apr 25 13:43:10 2016 +0100

    Problem: tune_tcp_keepalives signature >80 chars

    Solution: fix it

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

commit b2d0ab18f2d514156960dpa85e417d10487c44bd
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon Apr 25 12:18:46 2016 +0100

    Problem: trailing whitespace in code

    Solution: fix them

 src/client.hpp        |   6 +--
 src/dist.cpp          |   2 +-
 src/encoder.hpp       |   2 +-
 src/err.cpp           | 102 +++++++++++++++++++++++++-------------------------
 src/err.hpp           |   2 +-
 src/i_poll_events.hpp |  18 ++++-----
 src/ipc_connecter.cpp |   6 +--
 src/lb.cpp            |   2 +-
 src/mailbox_safe.cpp  |   4 +-
 src/mailbox_safe.hpp  |   4 +-
 src/object.cpp        |   4 +-
 src/own.cpp           |   2 +-
 src/pgm_receiver.cpp  |   2 +-
 src/pgm_receiver.hpp  |   2 +-
 src/pgm_sender.hpp    |   2 +-
 src/pgm_socket.hpp    |  12 +++---
 src/pipe.hpp          |   2 +-
 src/router.cpp        |   2 +-
 src/router.hpp        |   2 +-
 src/select.cpp        |   6 +--
 src/server.hpp        |   8 ++--
 src/socket_poller.hpp |  12 +++---
 src/stream.hpp        |   2 +-
 src/tcp.hpp           |   2 +-
 src/thread.hpp        |   2 +-
 src/tweetnacl.c       |   8 ++--
 src/xsub.cpp          |   6 +--
 src/zmq_utils.cpp     |  26 ++++++-------
 28 files changed, 125 insertions(+), 125 deletions(-)

commit 11311f97769746d8c013722abe255b6f4b6b1db8
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon Apr 25 11:18:49 2016 +0100

    Problem: trailing spaces in code comments

    Solution: fix them

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

commit a4b426b18e831e0abfd842e0e524327d1566c514
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon Apr 25 11:16:26 2016 +0100

    Problem: typos/trailing spaces in code comments

    Solution: fix them

 include/zmq.h  | 2 +-
 src/select.cpp | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 0e5ea0c8f0dp097818d33e1dfa560560e8f088fb
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Mon Apr 25 11:19:05 2016 +1200

    RELICENSE: Naos Ltd MPLv2 grant

 RELICENSE/naos_ltd.md | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit dd51cad082923a5973cdaff9c0418e5ab28de763
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Mon Apr 25 11:03:03 2016 +1200

    RELICENSE: Start collecting MPLv2 license grants

 RELICENSE/README.md | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 7b9005a7a1f0a4c8e0b42f809ab22b0128b75181
Merge: fb015569 88728093
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 24 17:04:40 2016 +0100

    Merge pull request #1923 from hitstergtd/testxpubmanual-msvc-fix

    Problem: XPUB test broken since #1566 on Windows

commit 88728093373cad0c658457e45d088b92f461a008
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sun Apr 24 16:56:06 2016 +0100

    Problem: XPUB test broken since #1566 on Windows

    Solution:
    - Adjust test_xpub_proxy_unsubscribe_disconnect() to support different
      protocol types
    - Exclude the IPC tests on Windows and OpenVMS

    H/T: @somdoron

 tests/test_xpub_manual.cpp | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

commit fb015569a2ba33b2be84501b1eb250af2338344d
Merge: 230df282 9798f74d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Apr 24 11:32:53 2016 +0200

    Merge pull request #1921 from somdoron/master

    problem: no way to detect in czmq if timers class available

commit 9798f74d1779d425ddaf0b14b9143912d313364e
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Apr 24 12:30:35 2016 +0300

    add have timers define to detect if timers class available

 include/zmq.h | 2 ++
 1 file changed, 2 insertions(+)

commit a4d219c07a6251479829c8054926f86558cba67c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 23 10:36:41 2016 +0200

    Problem: need to collect grants to relicense under MPLv2

    Solution: kick off process with grant from iMatix

 RELICENSE.md | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 230df282bd312398f3fe53651ced9dpd9da8bef1
Merge: 6f1dc64f 0655ed2e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 23 20:42:27 2016 +0100

    Merge pull request #1920 from somdoron/master

    problem: Tests are failing on windows

commit 0655ed2e0e82c9ea03278b031ab198e84f151387
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 23 22:18:00 2016 +0300

    fix test unbind wildcard

 tests/test_unbind_wildcard.cpp | 44 +++++++++++++++++++++++++++++-------------
 1 file changed, 31 insertions(+), 13 deletions(-)

commit 0934bc784dc42db1accd5db8e422387117ebfd7b
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 23 22:01:34 2016 +0300

    fix test term endpoint

 tests/test_term_endpoint.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 6f1dc64ff326c896dddp66f2c32db75013b76c92
Merge: dd038dp3 a9360030
Author: Hitster GTD <hitstergtd@users.noreply.github.com>
Date:   Sat Apr 23 18:29:48 2016 +0100

    Merge pull request #1919 from bluca/xpub_test_logic

    Problem: assertion in test_xpub_manual is swapped

commit a93600309ffc243bb4211418ba58b0d0abb13968
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 23 18:16:49 2016 +0100

    Problem: assertion in test_xpub_manual is swapped

    Solution: check that both pointers passed as arguments to
    test_missing_subscription are non-NULL, instead of the opposite.

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

commit dd038dp38e4755b04604110c5094911baf63055f
Merge: 4dp62dfc ff028621
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 23 18:46:15 2016 +0300

    Merge pull request #1918 from hitstergtd/hitstergtd-testxpubmanual-win

    Problem: XPUB test broken on Windows since #1569

commit ff02862171d7de518ef4e432b4defcf1c68169aa
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Sat Apr 23 16:18:38 2016 +0100

    Problem: XPUB test broken on Windows since #1569

    Solution:
    - Adjust test_subscriptions() to support different protocol types
    - Run TCP and IPC tests everywhere but on Windows and OpenVMS

 tests/test_xpub_manual.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 4dp62dfc294d3eec9d5b3ed1fe137c0801b56b21
Merge: ad4e091a a57fd708
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Apr 23 00:43:41 2016 +0100

    Merge pull request #1916 from linville/master

    Fix unresolved external symbols for gather and scatter classes on MSVC 2010-2015.

commit a57fd70844f5ddd699d9e54c5e8a76735a8dpc9a
Author: Aaron Linville <aaron@linville.org>
Date:   Fri Apr 22 19:26:55 2016 -0400

    Fix issue with unresolved external symbols for the gather and scatter classes by adding them to the MSVC 2010, 2012, 2013 and 2015 projects.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 42 ++++++++++++++++++++++++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 12 +++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 42 ++++++++++++++++++++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 12 +++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 42 ++++++++++++++++++++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 12 +++++++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         | 42 ++++++++++++++++++++++++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj.filters | 12 +++++++
 8 files changed, 216 insertions(+)

commit ad4e091a5a375edb7f902a90f5de31bc3c7d6a15
Merge: 0ece425d 7feb1e49
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Apr 22 21:24:07 2016 +0200

    Merge pull request #1915 from hitstergtd/checkproto-windows-fix

    Problem: Windows IPC check broken (check_protocol)

commit 7feb1e49fc416a887443a57d43cb6ca184f0938c
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Fri Apr 22 19:55:08 2016 +0100

    Problem: Windows IPC check broken (check_protocol)

    Solution: Fix the preprocessor check from || to &&

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

commit 0ece425dcada16777fa9f3204aa3762a3ccc6d20
Merge: 23e42526 7f0e380c
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Apr 22 15:37:48 2016 +0300

    Merge pull request #1914 from hitstergtd/clang-testfiles-fix

    Problem: LD search path warnings if using Clang

commit 7f0e380c05f784e8ec67d6062180b1ddc4378932
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 21 22:32:15 2016 +0100

    Problem: LD search path warnings if using Clang

    Solution: PR #1906 did not solve this problem properly; subsequent Travis CI
    indicated that the issue happens with Clang/LLVM, so make sure to fix the
    issue by detecting if Cmake CMake is using Clang for building the tests.

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 23e42526ebb41639d7bb842f749445077db80595
Merge: d6a57ad5 51782515
Author: Hitster GTD <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 21 14:39:13 2016 +0100

    Merge pull request #1913 from bluca/ipc_windows

    Problem: test_ipc_wildcard is ran on Windows

commit 5178251587bf0d947fa18cc3ea079d6ce1610d61
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 21 13:39:21 2016 +0100

    Problem: test_ipc_wildcard is ran on Windows

    Solution: move it to the unix-only section of Makefile.am and
    tests/CMakeLists.txt since it uses Unix IPC sockets.

 Makefile.am          | 8 ++++----
 tests/CMakeLists.txt | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit d6a57ad589e73267940c79e095b8b2cfd3a8f8d7
Merge: 99763cce e8dpb368
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Apr 21 15:38:05 2016 +0300

    Merge pull request #1912 from hitstergtd/hitstergtd-testsrcfd-win-fix

    Problem: ZMQ_SRCFD test does not work on Windows

commit e8dpb3686d1d8af1c3fe091d1d42ce4cee10f3d3
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 21 13:08:50 2016 +0100

    Problem: ZMQ_SRCFD test does not work on Windows

    Solution: add Winsock specific assertions, since getpeername() should will
    return SOCKET_ERROR (-1) and WSAGetLastError() will be set to WSdpNOTSOCK

 tests/test_srcfd.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 99763cce41e9806e2c2a6ba75c067fcaf66dcbc8
Merge: fdp3a4e0 e6ddp56c
Author: Hitster GTD <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 21 12:54:04 2016 +0100

    Merge pull request #1909 from somdoron/master

    problem: push-pull socket types are not thread safe

commit e6ddp56c6e774259b2f960cf2dc02ffaa5419588
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Apr 21 13:23:44 2016 +0300

    Scatter-Gather socket types

 .gitignore                    |  2 +
 CMakeLists.txt                |  4 +-
 Makefile.am                   | 10 ++++-
 include/zmq.h                 |  2 +
 src/gather.cpp                | 94 +++++++++++++++++++++++++++++++++++++++++++
 src/gather.hpp                | 75 ++++++++++++++++++++++++++++++++++
 src/mechanism.cpp             |  9 ++++-
 src/scatter.cpp               | 83 ++++++++++++++++++++++++++++++++++++++
 src/scatter.hpp               | 73 +++++++++++++++++++++++++++++++++
 src/session_base.cpp          |  2 +
 src/socket_base.cpp           |  8 ++++
 tests/CMakeLists.txt          |  2 +-
 tests/test_scatter_gather.cpp | 84 ++++++++++++++++++++++++++++++++++++++
 13 files changed, 443 insertions(+), 5 deletions(-)

commit fdp3a4e02abb3dc96dfc08321f0f4ccc092f914f
Merge: bf50f9fe 87e455f5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Apr 21 13:18:57 2016 +0200

    Merge pull request #1911 from somdoron/FixUDPWindows

commit bf50f9fe75d640f52dd1e40a2e583b828c70a86b
Merge: 317499ed a117c1f4
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Apr 21 14:05:46 2016 +0300

    Merge pull request #1910 from bluca/tipc

    Problem: CMake CI does not run make test, and there is no checking for TIPC

commit 87e455f59bf8a9c5f4debb65a3a2b5144486222d
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Apr 21 14:00:02 2016 +0300

    Fix UDP failing on windows

 src/select.cpp | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

commit a117c1f48d127a6f6de11bf9fb780481c5e2ef94
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 21 11:35:43 2016 +0100

    Problem: Travis CI CMake build does not run tests

    Solution: add make test to the cmake/ci_build.sh script

 builds/cmake/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ea294afd8bf29424239ef05c4d77a943ca0beedc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 21 11:33:20 2016 +0100

    Problem: CMake does not check for TIPC support

    Solution: add macro in ZMQSourceRunChecks.cmake and optionally
    include the TIPC sources if the support is available.
    More importantly, only run the TIPC tests if the support is there.

 CMakeLists.txt                                |  6 +++++
 builds/cmake/Modules/ZMQSourceRunChecks.cmake | 34 +++++++++++++++++++++++++++
 tests/CMakeLists.txt                          | 20 +++++++++-------
 3 files changed, 52 insertions(+), 8 deletions(-)

commit 317499eddp3fb15b4209247635e34f7e98ed0a13
Merge: 136870f2 846b2ba1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 19 13:00:32 2016 +0100

    Merge pull request #1906 from hitstergtd/hitstergtd-cmake-tests-os-fix

    Problem: Linker search path warnings on OS X

commit 846b2ba174da69a5e3f4d11ee0f18c606ad50368
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Tue Apr 19 12:20:59 2016 +0100

    Problem: Linker search path warnings on OS X

    Problem:
    A per-test Linker search path was added in commit a911fa4 to CMakeLists.txt as
    part of fixing Windows builds. Whilst this is silently ignored by ld(1) on
    Linux, it doesn't settle well with OS X. Spurious warnings are generated about
    missing directories leading to convoluted build logs.

    Solution:
    Make per-Test LINK_DIRECTORIES() conditional for non-Apple platforms.

 tests/CMakeLists.txt | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 136870f298fc92ecd8bcb30ee806730a9e0cdbda
Merge: 8d49650a c8211bf3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Apr 18 20:21:02 2016 +0200

    Merge pull request #1902 from bluca/zmq_unbind_api_breakage

commit c8211bf320e64eefbebe783b3c821a80f3dpce9c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 18 00:02:36 2016 +0100

    Problem: can't unbind with bound addr with IPv6

    Solution: try to resolve the TCP endpoint passed by the user in the
    zmq_unbind call before giving up, if it doesn't match.
    This fixes a breakage in the API, where after a call to
    zmq_bind(s, "tcp://127.0.0.1:9999") with IPv6 enabled on s would
    result in the call to zmq_unbind(s, "tcp://127.0.0.1:9999") failing.
    Add more test cases to increase coverage on all combinations of TCP
    endpoints.

 src/socket_base.cpp            |  32 +++++-
 tests/test_unbind_wildcard.cpp | 228 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 259 insertions(+), 1 deletion(-)

commit 58c4e7e6b678c89196f29f9a2fd9075c48e0527d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 18 16:22:49 2016 +0100

    Problem: IPv6 is disabled on Travis Precise/Trusty

    Solution: add one test run in a docket container environment, which
    is currently the only environment where it's possibile to bind a
    socket to ::1.

 .travis.yml | 5 +++++
 1 file changed, 5 insertions(+)

commit ac0e97e5dc6d84d2c9844ec6b0e527f06921957a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 18 16:20:58 2016 +0100

    Problem: can't test if IPv6 is available in tests

    Solution: add helper function is_ipv6_available to testutil.hpp to
    test if IPv6 is available on the building platform.
    This function will try to open and bind a socket to ::1:*, as it's
    the ultimate way of knowing if, at least on the loopback, IPv6 is
    enabled.

 tests/testutil.hpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit 8d49650ac82416b414de333224553c123a57b4f3
Merge: 1d083a33 e09eb0db
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 18 16:44:03 2016 +0100

    Merge pull request #1901 from hitstergtd/hitstergtd-testcmake-fix

    Problem: comment not well formed in CMakeLists.txt

commit e09eb0db6f05cd70a06098f509aa73710ad71328
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon Apr 18 16:33:34 2016 +0100

    Problem: comment not well formed in CMakeLists.txt

    Solution: fix comment

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1d083a33fd7ecb28ed506adp0b81bc4ba24de9cb
Merge: c354e0b3 9a9bfb64
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Apr 18 15:21:35 2016 +0100

    Merge pull request #1900 from hitstergtd/hitstergtd-testudp-fix

    Problem: test_udp does not release resources properly

commit 9a9bfb6443b16316ff124456cdb6d1e2d0281c53
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Mon Apr 18 14:44:54 2016 +0100

    Problem: test_udp does not release resources properly

    Solution:
    - call zmq_msg_close() if there is an error
    - call free() to release resources if there is an error (CWE-404)

 tests/test_udp.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c354e0b37113cbca078bccc1808bcd320c0b0c02
Merge: a670e81e 8cb27316
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Apr 15 19:48:59 2016 +0200

    Merge pull request #1898 from hitstergtd/checkprotocol-fixes-1

    Problem: check_protocol() logic duplicated twice and needs cleanup

commit 8cb27316faa16fcfecf221a40da19320edb42407
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Fri Apr 15 15:39:46 2016 +0100

    Problem: check_protocol() logic duplicated twice

    Problem:
    Conditional logic in check_protocol() that checks if a protocol is supported,
    is duplicated twice. Moreover, the first set of checks to ascertain if a
    protocol is supported is done regardless of whether the particular protocol
    will be built into the library or not.

    Solution:
    * Simplify/collapse all supported protocol checks into one in check_protocol()
    * Enclose pgm/epgm/norm socket+protocol match checks with requisite macros

 src/socket_base.cpp | 53 ++++++++++++++---------------------------------------
 1 file changed, 14 insertions(+), 39 deletions(-)

commit a670e81e73f138ddf2e0677e467764842aa3697e
Merge: c2a1be5c 36237794
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Apr 14 17:29:18 2016 -0700

    Merge pull request #1897 from hitstergtd/udp-errno-fix

    Problem: errno not set if UDP is NOT used with ZMQ_RADIO or ZMQ_DISH

commit 362377948ee2fc410817a9e0e4385185a0deec33
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Fri Apr 15 01:17:17 2016 +0100

    Problem: errno not set if UDP is NOT used with ZMQ_RADIO or ZMQ_DISH

    Solution: set errno to ENOCOMPATPROTO in check_protocol()

 src/socket_base.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c2a1be5c158cc81f6072cb626f4b8a72064e4932
Merge: 8c88297e 307bd952
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Apr 15 00:33:31 2016 +0100

    Merge pull request #1896 from hitstergtd/macosx-testfixes-1

    Problem: Running Linux-only tests results in 10% of tests failing on non-Linux systems (OSX, et. al.)

commit 307bd952bc8f96618a99602208c847bdc539cf7a
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 14 23:44:17 2016 +0100

    Make all Linux-specific tests conditional

    Move tests specific to Linux under a platform conditional thereby eliminating
    unnecessary builds and fixing "make test" on Mac OS X and possibly other
    non-Linux systems.

    Tests specific to Linux:
        - abstract namespace support for AF_UNIX sockets
        - TIPC support (AF_TIPC)

    Test success rate jumps from 90% to 100% on Mac OS X after this change.

 tests/CMakeLists.txt | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

commit 8c88297e6362057299968961b7a65126a70f3d03
Merge: 6a7eb2fb a17389ee
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Apr 14 22:16:27 2016 +0200

    Merge pull request #1895 from hitstergtd/libzmq-docfixes-2

    Fix typos similar to #1894

commit a17389eeb09edb4a4098ddb70a663f0b9217092b
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 14 21:10:12 2016 +0100

    Fix typos similar to #1894

 src/array.hpp          | 2 +-
 src/ypipe_conflate.hpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 6a7eb2fbc11c7dbc89dp22a99e4ffbb13603938d
Merge: 3f77cf5a 6c312928
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Apr 14 22:05:24 2016 +0200

    Merge pull request #1894 from hitstergtd/libzmq-docfixes-1

    Fix typo

commit 6c3129286d6b4f816a8d77044c9507b464ebab5d
Author: hitstergtd <hitstergtd@users.noreply.github.com>
Date:   Thu Apr 14 21:02:53 2016 +0100

    Fix typo

 src/ypipe.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3f77cf5a2fe9edef1d92d817472af0283eba6774
Merge: f6f89a84 b1232a0f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Apr 13 05:18:12 2016 +0200

    Merge pull request #1892 from bluca/solaris_fixes

commit f6f89a84d904ea41e7a6fda268b2e400f9bf1b79
Merge: c54589da ba9a559f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Apr 13 05:16:07 2016 +0200

    Merge pull request #1893 from paddor/master

commit ba9a559fe57c0edd5dce5ee2830651b6a7842e85
Author: Patrik Wenger <paddor@gmail.com>
Date:   Wed Apr 13 02:59:59 2016 +0200

    Problem: PR #1891 wasn't complete

    Solution: make the same change for the ZMQ_POLL_BASED_ON_SELECT case

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

commit 1afed1d32e20dc004cdb35cdd785b499279ebedb
Author: Patrik Wenger <paddor@gmail.com>
Date:   Wed Apr 13 02:59:15 2016 +0200

    Problem: tabs instead of spaces used for indentation

    Solution: correct it to spaces

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

commit b1232a0fd8e8dd2dd2982a7f07366de170bdp271
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 13 00:30:23 2016 +0100

    Problem: Solaris build fails with libsodium

    Solution: disable pedantic and Werror, as libsodium headers use
    pragma diagnostic which are not available in gcc 3.4.

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

commit a01baba38b9ffed9358666afe96c936542b7d83e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 12 00:29:19 2016 +0100

    Problem: test_use_fd_tcp does not work on Solaris

    Solution: pass a struct addrinfo hint to getaddrinfo with a hint
    about the address family to avoid a failure.

 tests/test_use_fd_tcp.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit edda1657facab4d5905c3307441de55d91e31fc1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 12 00:10:29 2016 +0100

    Problem: pragma diagnostic is new in GCC 4.2

    Solution: check for GCC version before using pragma diagnostic
    in src/tweetnacl.c to avoid an additional warning.

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

commit abe44500de46e670c4dc0ac4dd338f5d2f2e13b2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 12 00:09:08 2016 +0100

    Problem: tweetnacl does not build on Solaris 10

    Solution: add Wnosign-compare to CPPFLAGS. GCC version is too old on
    Solaris 10 to use pragma diagnostic (min 4.2 needed, but 3.4 is
    available)

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

commit c54589ddpf8eb9c03a09cbbadf91f5469ba6ac5e
Merge: 32f2b784 621c965f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 12 20:35:31 2016 +0200

    Merge pull request #1891 from paddor/master

    Fix return value of zmq_poller_wait when used on empty poller

commit 621c965fdp5869732a30a203e6e2bb7c6e647a14
Author: Patrik Wenger <paddor@gmail.com>
Date:   Tue Apr 12 20:11:50 2016 +0200

    Problem: tricky return value from zmq::socket_poller_t::wait when poller is empty

    Solution: return -1 (no event) instead of 0 (event)

    For some reason, this just returns 0 if there are no sockets registered
    on the poller. Usually this would mean there has been an event. So the
    caller would have to check the return value AND the event, or write code
    that takes the number of registered sockets into consideration.

    By returning -1 and setting errno = ETIMEDOUT like in the usual timeout
    cases, it's more consistent and convenient.

    Test case included.

 src/socket_poller.cpp | 14 ++++++++++----
 tests/test_poller.cpp |  9 ++++++++-
 2 files changed, 18 insertions(+), 5 deletions(-)

commit b5dc794202b2027824f464d1b36ccc8becb94548
Author: Patrik Wenger <paddor@gmail.com>
Date:   Tue Apr 12 20:10:54 2016 +0200

    Problem: zmq_poller_wait doesn't check *event arg

    Solution: use zmq_assert to ensure it's not a nullpointer

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

commit d570f57b6ed6ce6a591ad2f0e9f16b8d070d016e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 10 23:58:33 2016 +0100

    Problem: ipc://* random dir created with USE_FD

    Solution: if options.use_fd do not create temporary random
    directory for ipc://*, since the socket is already created and
    passed to the library by the user.

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

commit f18463f32334e2f6ff2589e88c3d087854cd3a1f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 10 22:45:35 2016 +0100

    Problem: mkdtemp not available on all platforms

    Solution: check for availability in autoconf and cmake, and if not
    available fall back to random file name rather than random directory.

 CMakeLists.txt               |  4 ++++
 builds/cmake/platform.hpp.in |  1 +
 configure.ac                 |  2 +-
 src/ipc_listener.cpp         | 24 ++++++++++++++++--------
 src/ipc_listener.hpp         |  3 ++-
 5 files changed, 24 insertions(+), 10 deletions(-)

commit 8028817f6b68cca913e3ca0cb2c9adda5028506f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Apr 10 20:16:57 2016 +0100

    Problem: 1E9 is double but assigned to an int var

    Solution: use the less nice but correct int constant 1000000000
    instead of the shorter 1E9 to avoid a compiler warning when assigning
    to timespec.tv_nsec, which is a long int.

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

commit 32f2b784b9874cd3670d5a406af41c3e554dcd24
Merge: 23d08c20 e3016b66
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Apr 8 06:09:27 2016 +0200

    Merge pull request #1889 from spadalkar/master

commit e3016b66bd040d6c44d6ff794fb9e2a6cfc949e8
Author: Satyajit Padalkar <simplecode.snippet@gmail.com>
Date:   Thu Apr 7 23:41:09 2016 -0400

    Fix tests/test_many_sockets.cpp

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

commit 23d08c20244033525dp61215a2a1619ef575d577
Merge: 82513060 9cf6f85a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 7 17:53:48 2016 +0200

    Merge pull request #1888 from bluca/ipv6_downgrade

    Problem: zmq_bind IPv4 fallback still tries IPv6

commit 9cf6f85a252b83807f3da6cfeeca75dpd60b415b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 7 13:17:08 2016 +0100

    Problem: redundant Windows errno conversion

    Solution: in the Windows-specific ifdef in tcp_listener set_address,
    check for error and set errno only after the IPv4 fallback has failed
    too, to avoid setting errno when the socket creation succeeds through
    the fallback.

 src/tcp_listener.cpp | 4 ----
 1 file changed, 4 deletions(-)

commit 99a8795dfe101782d6ac828208b435b863dp4adp
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Apr 7 13:15:41 2016 +0100

    Problem: zmq_connect (TCP) has no IPv4 fallback

    Solution: if opening an IPv6 TCP socket fails because IPv6 is not
    available, try to open an IPv4 socket instead when creating and
    connecting a TCP endpoint.

 src/tcp_connecter.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit d169281a00acec1ca88d247401fee482d45446e7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Apr 6 17:15:39 2016 +0100

    Problem: zmq_bind IPv4 fallback still tries IPv6

    Solution: if opening an IPv6 TCP socket fails because IPv6 is not
    available, try to open an IPv4 socket instead when creating and
    binding a TCP endpoint.

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

commit 8251306012886f2155ef56e50a53584f07f91c96
Merge: fb4c2263 d7d91713
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Apr 5 16:32:42 2016 +0100

    Merge pull request #1885 from jimklimov/zmq_utils_header

    Problem: including recent "zmq_utils.h" crashes gcc -pedantic jobs

commit d7d917139b23d33193d88813523511669841ecf5
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Apr 5 17:03:17 2016 +0200

    Problem: including recent "zmq_utils.h" crashes gcc -pedantic jobs

    Problem: Recent deprecation of the "zmq_utils.h" header file caused pedantic compilations (including czmq) to fail because non-portable #warning is used.
    Solution: Limit the deprecation warnings to compilers known or assumed to support the "#pragma message" (GCC, MSVC, CLANG) and wrap with GCC directives to not treat these warnings as errors on paranoid builds.

 include/zmq_utils.h | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

commit fb4c2263657868deeb4e802ea0dcdd7537c5d5a0
Merge: aa13a49b 9eb74d4d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Apr 4 13:18:43 2016 +0200

    Merge pull request #1884 from hintjens/master

commit 9eb74d4df49242b3c72bbf2ef3ad6a53c76b54df
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 4 13:13:27 2016 +0200

    Problem: ZMQ_SERVER man page is wrong

    It says that ZMQ_SERVER never blocks; whereas it does block on
    sending to a client whose pipe is full.

    Solution: fix it.

 doc/zmq_socket.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit aa13a49bc805e33c2e495f8395bb2118f68797b9
Merge: 7a563ebb 37a4a407
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Apr 3 10:50:11 2016 +0200

    Merge pull request #1883 from yuvallanger/master

    Fix NetBSD thread scheduling problem.

commit 37a4a4075ebea976ccd2d36dba0ea295d049ea39
Author: Yuval Langer <yuval.langer@gmail.com>
Date:   Sun Apr 3 02:20:07 2016 +0300

    Fix NetBSD thread scheduling problem.

    Defining thread priority for SCHED_OTHER is implementation defined.
    Some platforms like NetBSD cannot reassign it as they are dynamic.

    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_getschedparam.html>

    Credit goes to <kamil@netbsd.org> and <riastradh@netbsd.org> for finding this
    solution.

 src/thread.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 7a563ebb2ccb575ba2f43b8c8f2b30f3c6f59d7b
Merge: 0feec7a7 625b6187
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Apr 2 21:57:22 2016 +0200

    Merge pull request #1882 from FredTreg/master

    Fixed ZMQ_REQ_CORRELATE (see pull request #1730)

commit 625b6187767451444fb68035883f442393b87f9f
Author: Frederic Tregon <frederic.tregon@gmail.com>
Date:   Sat Apr 2 18:30:35 2016 +0200

    Fixed ZMQ_REQ_CORRELATE (see pull request #1730)

    Problem: Since pull request #1730 was merged, protocol for REQ socket is
    checked at the session level and this check does not take into account
    the possibility of a request_id being part of the message. Thus the option
    ZMQ_REQ_CORRELATE would no longer work.
    This is now fixed: the possiblity of a 4 bytes integer being present
    before the delimiter frame is taken into account (whether or not this
    breaks the REQ/REP RFC is another issue).

 Makefile.am                  |  3 +--
 src/req.cpp                  | 15 ++++++++++++
 src/req.hpp                  |  1 +
 tests/test_req_correlate.cpp | 55 ++------------------------------------------
 tests/test_req_relaxed.cpp   | 24 +++++++------------
 5 files changed, 27 insertions(+), 71 deletions(-)

commit 0feec7a72e865acc6707c6e064078dp1c30aab62
Merge: a7922e5f 023b34a1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Apr 2 18:30:09 2016 +0200

    Merge pull request #1881 from camachat/master

    Fixes #1419 segfault when using a XSUB/XPUB proxy.

commit 023b34a14493f21f2c25994b4370d7fb19694400
Author: Eric Camachat <eric@camachat.org>
Date:   Sat Apr 2 09:08:40 2016 -0700

    Fix issue #1419 segfault when using a XSUB/XPUB proxy.
    Ref. https://github.com/zeromq/libzmq/issues/1419

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

commit a7922e5fdd54e74abc4f1bd1d70536c9eddb4663
Merge: dac5b45d f2018ab3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Mar 31 21:09:28 2016 +0200

    Merge pull request #1880 from MatthewPowley/fix-windows-xp-compatability

    Windows XP compatability fixes

commit f2018ab317c06cc81207288c0e9a1e2d7bb2fce6
Author: Matt Powley <matt.powley@renishaw.com>
Date:   Thu Mar 31 15:45:00 2016 +0100

    Fixes for Windows XP compatibility

    A Visual Studio build from master (commit id: dac5b45dfb224ff184a7dpd39c5859dp5bac3803) using the v140_xp toolset yields a binary that is not XP compatible.

    Two libraries contain exports that cannot be found:
     -  IPHLPAPI.DLL : if_nametoindex
     - KERNEL32.DLL : InitializeConditionVariable

    The latter export is already dealt with in the file './src/condition_variable.hpp'; however this requires setting the _WIN32_WINNT pre-processor definition.
    I am not experienced enough to figure a work around for the 'if_nametoindex' method, so I have created a new pre-processor definition 'ZMQ_HAVE_WINDOWS_TARGET_XP' and removed the calling of the function with the limitation that these builds cannot handle a IPv6 address with an adapter name.

    To make it easier for people targeting XP with an MSVC build I have modified the MSBuild property file to add/modify the pre-processor definitions if they are building using a XP targeting tool set; such as v140_xp.

 builds/msvc/properties/Common.props |  7 +++++++
 src/tcp_address.cpp                 | 10 ++++++++++
 2 files changed, 17 insertions(+)

commit dac5b45dfb224ff184a7dpd39c5859dp5bac3803
Merge: cddfda2a 260860de
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Mar 31 16:11:24 2016 +0200

    Merge pull request #1879 from MatthewPowley/improve-msvc-builds

    Improve MSVC builds

commit 260860dea13eaa0fb5e8d433339176c44cff6489
Author: Matt Powley <matt.powley@renishaw.com>
Date:   Thu Mar 31 14:50:04 2016 +0100

    Add .gitignore for Visual Studio builds in the 'builds/msvc' folder

    * Added a new .gitignore file for excluding Visual Studio build output any popular plug-in generated content. (This was copied from the GitHub project https://github.com/github/gitignore).
    * Removed the basic ignore settings from the root folder in favour of more precision within the subfolder's .gitignore file
    * Added the new VC compiler's experimental Intellisense database file

 .gitignore             |   6 --
 builds/msvc/.gitignore | 256 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 256 insertions(+), 6 deletions(-)

commit 0e405a5a7798231078e56f286baa501f6b2b1f45
Author: Matt Powley <matt.powley@renishaw.com>
Date:   Thu Mar 31 14:43:47 2016 +0100

    Use vs2015 MSBuild property sheets in older projects

    All the older (vs2010 -> vs2013) projects had copies of the Visual Studio 2015 MSBuild applied to them when running the 'configure.bat' batch file. Any modifications to a property sheet was not applied to the other Visual Studio versions' projects unless the batch file was re-executed.

    * Modified the older projects to reference the Visual Studio 2015 property sheets so changes are immediately applied
    * Removed the batch file copy steps (which left the repository very dirty after execution)

 builds/msvc/configure.bat                        | 28 ------------------------
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj |  2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj |  2 +-
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj |  2 +-
 22 files changed, 21 insertions(+), 49 deletions(-)

commit cddfda2dpd95e68c66817ef2eab2e8e5c85c2868
Merge: d6354c64 e70e39be
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 30 13:44:00 2016 +0100

    Merge pull request #1875 from hintjens/master

    Tweaks to building libzmq

commit e70e39be49667202ce6f81232331806c99df079e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 30 14:39:34 2016 +0200

    Problem: ctx.cpp still uses old HAVE_LIBSODIUM

    I changed this to ZMQ_USE_SODIUM to be consistent with other
    configuration options (especially ZMQ_USE_TWEETNACL).

    Solution: fix it.

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

commit d6354c64eaa6fab59a0a5017d1cdb02bba28b698
Merge: 6630a7ce 396237f8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 30 13:34:40 2016 +0100

    Merge pull request #1874 from hintjens/master

    Tweaks to building libzmq

commit 396237f871446be0506d6e18c3712aa477b0adc8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 30 14:18:07 2016 +0200

    Problem: MSVC builds instructions aren't entirely clear

    Solution: update them.

 builds/msvc/readme.txt       | 13 ++++++++-----
 builds/msvc/vs2015/build.bat |  2 --
 2 files changed, 8 insertions(+), 7 deletions(-)

commit 6a78b3ec19427a042e1a624bdpbd23a612256b8f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Mar 12 15:25:41 2016 +0100

    Problem: HAVE_LIBSODIUM macro is inconsistent

    Solution: use ZMQ_USE_LIBSODIUM to match ZMQ_USE_TWEETNACL

 CMakeLists.txt       | 2 +-
 configure.ac         | 2 +-
 src/ctx.cpp          | 2 +-
 src/curve_client.hpp | 2 +-
 src/curve_server.hpp | 2 +-
 src/zmq_utils.cpp    | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

commit 6630a7ceaf2284172f0ee720cee103d11e009694
Merge: c71bb5fd 8673fa7b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 30 00:36:18 2016 +0100

    Merge pull request #1873 from edigaryev/fix-urandom-chroot

    Problem: build fails when CURVE security is disabled

commit 8673fa7b0346db81ce81f3b49bb07933c5b19060
Author: Nikolay Edigaryev <edigaryev@gmail.com>
Date:   Wed Mar 30 04:23:59 2016 +0500

    Problem: build fails when CURVE security is disabled

    Solution: use proper preprocessor macro

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

commit c71bb5fd1f95abaf481a601224ec7d452045c58b
Merge: c39741dd 884e00cb
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Tue Mar 29 15:49:19 2016 -0700

    Merge pull request #1872 from edigaryev/fix-urandom-chroot

    Problem: CURVE mechanism is unusable with chroot()

commit 884e00cb4a7bb1f69c16b1d26ac3dp8286144e14
Author: Nikolay Edigaryev <edigaryev@gmail.com>
Date:   Wed Mar 30 02:23:56 2016 +0500

    Problem: CURVE mechanism is unusable with chroot()

    libsodium calls abort() when /dev/urandom can't be found
    even if one creates ZeroMQ context before calling chroot()[1].

    This happens because crypto gets initialized on handshake,
    and at that moment the process is already chroot'ed.

    Solution: initialize cryptographic libraries in ctx

    randombytes_close() is already there in the destructor.

    [1] https://download.libsodium.org/doc/usage/index.html

 src/ctx.cpp          | 11 +++++++++++
 src/ctx.hpp          |  2 ++
 src/curve_client.cpp | 12 +-----------
 src/curve_client.hpp |  2 --
 src/curve_server.cpp | 12 +-----------
 src/curve_server.hpp |  1 -
 6 files changed, 15 insertions(+), 25 deletions(-)

commit c39741dd33fa5171e489b4be4631cbe712293dc1
Merge: 05c8de79 8c7b19b1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Mar 29 23:07:38 2016 +0200

    Merge pull request #1871 from gnieboer/gnieboer-patch-1

    Update zmq_utils.h

commit 8c7b19b1b7a788111b50e1694cf5e437d89801b7
Author: Geof Nieboer <gnieboer@gcndevelopment.com>
Date:   Wed Mar 30 00:00:49 2016 +0300

    Update zmq_utils.h

    Previous change broke MSVC b/c MSVC doesn't support #warning

 include/zmq_utils.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 05c8de792876c2df71d688da42b3c18e8da91f0c
Merge: b8dp850d e9c8557e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 29 18:01:10 2016 +0100

    Merge pull request #1869 from jimklimov/fix-tcp_address

    zeromq-4.1.4/src/tcp_address.cpp : fix relaxed use of sizeof() without parenthesis

commit e9c8557e92261b11ed928ad3e458eabe79efd2db
Author: Jim Klimov <jim@jimklimov.com>
Date:   Tue Mar 29 18:43:26 2016 +0200

    zeromq-4.1.4/src/tcp_address.cpp : fix relaxed use of sizeof() without parenthesis

 src/tcp_address.cpp | 52 ++++++++++++++++++++++++++--------------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

commit b8dp850d78d700623878cf53907ec32b7a5d3620
Merge: 98ab7f41 e45dfe3b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 24 11:45:56 2016 +0100

    Merge pull request #1862 from FredTreg/master

    Fixed issue #1695 (ZMQ_REQ_CORRELATE)

commit e45dfe3bc7e19233c7d0e1244c62c48cba227b4e
Author: Frederic Tregon <frederic.tregon@gmail.com>
Date:   Sun Mar 20 16:30:44 2016 +0100

    Fixed issue #1695 (ZMQ_REQ_CORRELATE)

    Problem: when using ZMQ_REQ_RELAXED + ZMQ_REQ_CORRELATE and two 'send' are
    executed in a row and no server is available at the time of the sends,
    then the internal request_id used to identify messages gets corrupted and
    the two messages end up with the same request_id. The correlation no
    longer works in that case and you may end up with the wrong message.

    Solution: make a copy of the request_id instance member before sending it
    down the pipe.

 doc/zmq_setsockopt.txt     |  8 ++---
 src/req.cpp                | 20 +++++++++--
 tests/test_req_relaxed.cpp | 89 +++++++++++++++++++++++++++++++++++++++++-----
 3 files changed, 100 insertions(+), 17 deletions(-)

commit 98ab7f4164012a8b338f0adp60260fc932fbef54
Merge: d5aadpb8 dc27ad41
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Mar 19 23:03:38 2016 +0100

    Merge pull request #1860 from bluca/valgrind

    Add Valgrind make target and CI run

commit dc27ad41d28217fefecbdc77841d86c5a5a43db8
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 19 21:35:40 2016 +0000

    Problem: coveralls uses wrong path on Trusty

    Solution: pass built-root when calling coveralls, to help it find the
    right path to the source code.

 builds/coverage/ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0eca822b8fc0c8ef3b452d1a07a8c7dp32a3596c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 19 16:30:59 2016 +0000

    Problem: Valgrind in Ubuntu Precise is too old

    Solution: run Travis CI in newer Trusty (14.04 LTS) release.

 .travis.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 9d94eb11b38dbd7e3c74de2ed01c22a17229e166
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 19 16:28:35 2016 +0000

    Problem: test_fork causes valgrind false positive

    Solution: do not run test_fork if --enable-valgrind is set. Note that
    later versions of Valgrind (3.11) not yet available in all
    distributions fix this problem, so we might revert in the future.

 Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 00e0957640466152b016be3ac570c056eb9192d4
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 18 20:55:39 2016 +0000

    Problem: false positive on valgrind 3.10

    Solution: update builds/valgrind/valgrind.supp to ignore glibc's
    __libc_freeres calls. This code runs after the program exits, and
    tries to de-allocate memory allocated internally by glibc, so it has
    nothing to do with libzmq code. This suppression is added by default
    in newer versions of Valgrind, not yet available on older
    distributions.

 Makefile.am                   | 2 ++
 builds/valgrind/valgrind.supp | 8 ++++++++
 2 files changed, 10 insertions(+)

commit ebc73160694fdc4d024f5b5d156efa489208e3d6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 21:05:11 2016 +0000

    Problem: CI doesn't run Valgrind

    Solution: run Valgrind only on the default Linux build to avoid
    increasing the runtime.

 .travis.yml                 |  4 ++++
 builds/valgrind/ci_build.sh | 27 +++++++++++++++++++++++++++
 2 files changed, 31 insertions(+)

commit 2b2f9046d4e1f915cdcea9cd80b7fb304a36f030
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 15:31:14 2016 +0000

    Problem: no Makefile target for Valgrind

    Solution: import ax_valgrind_check.m4 macro file to provide a
    conveniente automake hook to run Valgrind on all tests.
    Add --enable-valgrind to ./configure call and then run make
    check-valgrind to run memcheck, helgrind, drd and sgcheck on all
    tests. Run check-valgrind-memcheck to run only memcheck.

 Makefile.am             |   2 +
 configure.ac            |   2 +
 m4/ax_valgrind_check.m4 | 233 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 237 insertions(+)

commit d5aadpb888426122de6b9335b275a15b20c7efd2
Merge: 3777309b 75579fe7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Mar 19 14:15:34 2016 +0000

    Merge pull request #1859 from soulik/master

    Fix usage of IPv6 addresses

commit 75579fe7d961f506896b3e7a6443bff4da3cfebe
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sat Mar 19 14:49:22 2016 +0100

    Added comment to sockaddr_storage

 src/select.cpp | 1 +
 1 file changed, 1 insertion(+)

commit e38166cc1b7422a2cbf2bab59f13a7b44a7fec74
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sat Mar 19 14:37:10 2016 +0100

    Use sockaddr_storage instead of sockaddr to support IPv6 addresses

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

commit 3777309b67f0a313591424183a924e264ef78a48
Merge: 340eb521 516efa46
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Mar 18 14:18:59 2016 +0100

    Merge pull request #1858 from zoobab/master

commit 516efa46c0db8b46fd60c14d0378d6131a3f500f
Author: Benjamin Henrion <zoobab@gmail.com>
Date:   Fri Mar 18 13:54:20 2016 +0100

    add some doc for docker android compilation

 builds/android/README.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

commit 340eb52165d29d51d3db465235101811cda192e3
Merge: 9a3c9ff8 15fd419f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 18 09:41:42 2016 +0100

    Merge pull request #1847 from bluca/test_large_msg

    Problem: test_large_msg requires 2GB of free RAM

commit 9a3c9ff86482cd9fda16bab67af5cd40f808372d
Merge: de56bc27 075de03d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Mar 17 23:30:15 2016 +0100

    Merge pull request #1857 from Suudy/master

    Use FILENAME_MAX to determine BUFSIZE when getting socket path.

commit 075de03d1cb7badd4c5bb7835f6a8632b2fd4710
Author: Pete LaDow <pete_ladow@selinc.com>
Date:   Thu Mar 17 15:12:57 2016 -0700

    Use FILENAME_MAX to determine BUFSIZE when getting socket path.

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

commit 15fd419f228ac7e784689ad21768370ba544eeca
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Mar 9 20:14:51 2016 +0000

    Problem: test_large_msg requires 2GB of free RAM

    Solution: remove temporarily until proper message limits have been
    implemented, then a more granular test case can be added without
    such high requirements which are problematic in embedded environment,
    build systems, VMs and CI systems

 .gitignore                    |  1 -
 Makefile.am                   |  4 --
 builds/gyp/project-tests.gypi | 11 ------
 builds/gyp/project-tests.xml  |  1 -
 tests/CMakeLists.txt          |  1 -
 tests/test_large_msg.cpp      | 87 -------------------------------------------
 6 files changed, 105 deletions(-)

commit de56bc272995c6584d68d78996aa2d92d5b9133b
Merge: 5ce6bc5f 11917f85
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Mon Mar 14 17:02:39 2016 -0700

    Merge pull request #1853 from bluca/osx_ipc_wildcard

    Problem: IPC wildcard test broken on OSX

commit 11917f850a3e69e15d94d607e8210b480008458c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 14 22:38:22 2016 +0000

    Problem: IPC wildcard test broken on OSX

    Solution: increase path buffer length to 73

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

commit 5ce6bc5f6dcf6947142fd373c0fb5e870ce98d39
Merge: 96c9e4aa b6080a79
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Mar 14 19:58:01 2016 +0000

    Merge pull request #1852 from Suudy/master

    Update Unix Domain Socket creation/handling

commit b6080a798c64364d85a57f1384ba5a3f8bd38622
Author: Suudy <pladow@gmail.com>
Date:   Mon Mar 14 08:49:11 2016 -0700

    Updated handling of Unix Domain Sockets, make use of temporary directories, and cleanup afterward.  Fix test_term_endpoint handling of optvallen

 src/ipc_listener.cpp         | 102 ++++++++++++++++++++++++++++++++++++++-----
 src/ipc_listener.hpp         |  12 ++++-
 tests/test_term_endpoint.cpp |  15 ++++---
 3 files changed, 113 insertions(+), 16 deletions(-)

commit 96c9e4aabda5c040b29761638706a51f878a8bf0
Merge: 22cb66d8 1ac71c3c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 13 23:36:11 2016 +0100

    Merge pull request #1851 from bluca/gcov

    Add code coverage to build system and CI

commit 1ac71c3c2441d62eec499c687d1c6e08504c636d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 13 20:45:49 2016 +0000

    Problem: no coveralls.io badge in README.md

    Solution: add it

 README.md | 1 +
 1 file changed, 1 insertion(+)

commit 0cd7c0f8079bf1a280473dp8d8b2b2f8b1b61f5b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 13 19:52:31 2016 +0000

    Problem: no code coverage in CI

    Solution: add new coverage build, and upload results to coveralls.io

 .travis.yml                 |  7 +++++++
 builds/coverage/ci_build.sh | 29 +++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)

commit 6df753c55ab093af1d8c23b65e8fdcb891043f14
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 4 23:07:13 2016 +0000

    Problem: no code coverage integration

    Solution: import ax_code_coverage.m4 from autoconf-archive and use it
    in configure.ac and Makefile.am in order to provide a make
    check-code-coverage target behind a --enable-code-coverage configure
    flag, that can be used to generate a gcov/lcov code coverage report.
    Depends on having gcov and lcov installed.

 Makefile.am            |   9 +-
 configure.ac           |   2 +
 m4/ax_code_coverage.m4 | 273 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 281 insertions(+), 3 deletions(-)

commit 22cb66d83289f5a61ab463efdf9033db1de3a745
Merge: dbb6b019 a6392b9e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 11 22:40:11 2016 +0000

    Merge pull request #1849 from opedroso/WINPDB

    Problem: Windows PDB not created for RELEASE targets

commit a6392b9e74c6f971e976594bb1d7a566c63df94c
Author: Osiris <opedroso@gmail.com>
Date:   Fri Mar 11 14:48:30 2016 -0600

    Problem: Windows PDB not created for RELEASE targets

    Solution: Modified projects to create PDB file for RELEASE targets
            - also spread precompiled settings to all DevStudio solution versions

    This change affects Windows builds only

 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 1486 +++++++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 1486 +++++++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 4028 +++++++++++++++---------------
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 1486 +++++++++++
 4 files changed, 6477 insertions(+), 2009 deletions(-)

commit dbb6b019e67ec0b920a50f961b8319a8a5a98e28
Merge: 24d12dc3 7cc50d00
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 11 11:49:54 2016 +0100

    Merge pull request #1848 from benjamg/benjamg-patch-1

    parameter naming consistency [dpsthetic]

commit 7cc50d0005037bc043d60b7860f9cb9a039b0987
Author: Ben Gray <ben@benjamg.com>
Date:   Fri Mar 11 09:15:58 2016 +0000

    parameter naming consistency [dpsthetic]

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 24d12dc30a016d9311990fc873639e8757d46a76
Merge: 6aa58198 6024dd5d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 9 10:40:37 2016 +0100

    Merge pull request #1827 from bluca/make_dist_missing_files

    Problem: make dist does not tar up macros.hpp

commit 6aa581980dpd9e87e30126a6188bf83122a8a7ca
Merge: 8a0a18a5 cb1b6bc9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 8 11:27:37 2016 +0100

    Merge pull request #1845 from claudioscordino/master

    Better comments for understanding the classes array_t<> and array_ite…

commit cb1b6bc9dpb3246210311289927e7345385abd28
Author: Claudio Scordino <c.scordino@list-group.com>
Date:   Tue Mar 8 11:24:58 2016 +0100

    Better comments for understanding the classes array_t<> and array_item_t<>

 src/array.hpp | 12 ++++++++----
 src/pipe.hpp  |  2 +-
 2 files changed, 9 insertions(+), 5 deletions(-)

commit 6024dd5dfa981e667bb150e9bcdcab58cdf0bcd0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 6 18:05:28 2016 +0000

    Problem: ci_build does not fully test build system

    Solution: run make dist-check, which will run additional tests,
    including making sure that the library is installable and the
    distributable tarball is buildable, along with the usual make and
    make check.

 ci_build.sh | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit ff1ebf6ff00abcddp1894499a574146fc84de0e1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 6 18:04:12 2016 +0000

    Problem: ci_build.sh make check is overly complex

    Solution: simply run make VERBOSE=1 check instead of manually
    checking for return value and cat'ing the log file. With VERBOSE, on
    error the log file will be automatically printed.

 ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4366d7edf9f2ab88fdb59ec0668dd6c13cbc483f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 6 18:32:30 2016 +0000

    Problem: doc/Makefile.am ignores --without-docs

    Solution: add the document files to the MAN_DOC and MAN_HTML targets
    in doc/Makefile.am only if BUILD_DOC and INSTALL_MAN are set,
    otherwise leave the targets empty to avoid errors in make distcheck.

 doc/Makefile.am | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 2d9e7b57f978b1b20a4be76abc22d7cfbd778851
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 22 13:44:46 2016 +0000

    Problem: make dist does not tar up macros.hpp

    Solution: add it to Makefile.am file list

 Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 8a0a18a527fd08b60984135e18046c4f7d797f83
Merge: 2cd4c38b cd1dfb40
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Mar 6 12:45:48 2016 +0000

    Merge pull request #1844 from opedroso/CMAKELIST_PRECOMP

    Problem: CMakelist missing support for Windows Precompiled headers

commit cd1dfb40929df93f57afd643aaddf761869219d4
Author: Osiris <opedroso@gmail.com>
Date:   Sun Mar 6 06:23:26 2016 -0600

    Problem: CMakelist missing support for Windows Precompiled headers

    Solution: Add precompiled flags to CMakeList.txt for faster compiles
    + bonus - removed compilation warning on Windows by adding
             add_definitions (-D_WINSOCK_DEPRECATED_NO_WARNINGS)

 CMakeLists.txt       | 25 +++++++++++++++++++++++--
 tests/CMakeLists.txt |  1 +
 2 files changed, 24 insertions(+), 2 deletions(-)

commit 2cd4c38b80bd75ff5b7c2a4b6452b5f1fd9adf1b
Merge: 0916c17b 1c9cec22
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Mar 5 22:12:26 2016 +0200

    Merge pull request #1843 from opedroso/WINDOWS_MAKE_TEST

    Problem: Tests do no build in Windows environment

commit 1c9cec227d7f24bdd67c8a0fc38df1da0cdp064d
Author: Osiris <opedroso@gmail.com>
Date:   Sat Mar 5 14:01:21 2016 -0600

    Problem: Tests do no build in Windows environment

    Solution: Modified CMakelist.txt to build correctly for Windows
    - corrected CMake required version to make sure it builds in
      Ubuntu 14.04 LTS with no warnings.

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a911fa41b85254387a5085009648e620000390cf
Author: Osiris <opedroso@gmail.com>
Date:   Sat Mar 5 11:23:23 2016 -0600

    Problem: Tests do no build in Windows environment

    Solution: Modified CMakelist.txt to build correctly for Windows

 tests/CMakeLists.txt | 25 +++++++++++++++++++++++--
 tests/README.md      | 10 +++++++++-
 2 files changed, 32 insertions(+), 3 deletions(-)

commit 0916c17b3a642216f2a8904f4358c4f2523e5172
Merge: 72898a0e 224c0670
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Mar 5 12:59:51 2016 +0200

    Merge pull request #1842 from opedroso/PRECOMPILED

    Problem: Windows Build not using precompiled headers for all targets

commit 72898a0ecc184c187a9ce2ca0585ccd05c9a7b53
Merge: d315eea7 09d003aa
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Mar 5 11:51:06 2016 +0100

    Merge pull request #1841 from opedroso/MAKE_CLEAN

    Problem: Added "make clean" to Windows build scripts

commit 224c0670ee8d9f8c17b27c88e32fedea4690fe85
Author: Osiris <opedroso@gmail.com>
Date:   Sat Mar 5 04:47:08 2016 -0600

    Problem: Windows Build not using precompiled headers for all targets

    Solution: Enabled precompiled header settings in all targets
    Before build time: ~6min 49 secs
    Stop  Time: Fri 03/04/2016  8:29:50.13
    Start Time: Fri 03/04/2016  8:23:00.28

    After build time: ~4min 19 secs
    Stop  Time: Fri 03/04/2016 12:12:10.24
    Start Time: Fri 03/04/2016 12:07:51.78

 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 1476 ++++++++++++++++++++++++++++++
 1 file changed, 1476 insertions(+)

commit 09d003aac0826f88e1ed4b5defca37741c4b90a7
Author: Osiris <opedroso@gmail.com>
Date:   Sat Mar 5 04:37:01 2016 -0600

    Problem: Added "make clean" to Windows build scripts

    Solution: Added ability to do equivalent of a "make clean" by executing:

    O:\git\libzmq\builds\msvc\build>buildall.bat clean
    Start Time: Fri 03/04/2016 14:33:56.50
    Cleaning without libsodium
    Cleaning ..\vs2013\libzmq.sln... ()
    Platform=x86
    Configuration=DynDebug
    Configuration=DynRelease
    Configuration=LtcgDebug
    Configuration=LtcgRelease
    Configuration=StaticDebug
    Configuration=StaticRelease
    Platform=x64
    Configuration=DynDebug
    Configuration=DynRelease
    Configuration=LtcgDebug
    Configuration=LtcgRelease
    Configuration=StaticDebug
    Configuration=StaticRelease
    Cleaning complete: ..\vs2013\libzmq.sln

    Stop  Time: Fri 03/04/2016 14:34:01.84
    Start Time: Fri 03/04/2016 14:33:56.50

    A clean takes ~5 secs to complete.

 builds/msvc/build/buildall.bat  | 31 +++++++++++++++++----
 builds/msvc/build/buildbase.bat | 60 +++++++++++++++++++----------------------
 2 files changed, 54 insertions(+), 37 deletions(-)

commit d315eea7070ac8027613b3cc914ca3ac34314d8c
Merge: ee31ea13 4fca95a5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Mar 4 21:18:30 2016 +0100

    Merge pull request #1839 from opedroso/master

    Problem: Visual Studio Toolset was incorrectly set in VCXPROJ files

commit ee31ea1348bc8d5afb8acdpa2bc0bceac449c0c0
Merge: 693d6384 8c7c8ece
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 4 09:41:29 2016 +0000

    Merge pull request #1838 from obache/neatsrc/fix-c-comment-style

    Problem: Fix C++ style comment usage in C source

commit 693d6384b6939b8324721234b6276149bb2bb94f
Merge: 3c4377b1 55dad06c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 4 09:41:15 2016 +0000

    Merge pull request #1837 from obache/neatsrc/fix-test-portability

    Problem: Fix unportable `==` operator for `test`

commit 3c4377b11d4fb80ed1fa3dc8f68cf277cbb68f8e
Merge: 36abdf7b 09e868b7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Mar 4 09:40:44 2016 +0000

    Merge pull request #1836 from obache/neatsrc/heimdal

    Problem: Fix build with Heimdal krb5

commit 8c7c8ece2dad0dbe0f0c1c50e6d02201b484acba
Author: OBATA Akio <obache@users.noreply.github.com>
Date:   Fri Mar 4 17:26:02 2016 +0900

    Problem: Fix C++ style comment usage in C source

 src/tweetnacl.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 55dad06ccecc889dc65c50861848ac4215bcfd2c
Author: OBATA Akio <obache@users.noreply.github.com>
Date:   Fri Mar 4 17:17:04 2016 +0900

    Problem: Fix unportable `==` operator for `test`

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

commit 09e868b74379f9c4b0e3a487b246a41d44606d96
Author: OBATA Akio <obache@users.noreply.github.com>
Date:   Fri Mar 4 16:38:57 2016 +0900

    Problem: Fix build with Heimdal krb5

    Solution:
    * Check gssapi/gssapi_generic.h header file, it is not in Heimdal.
    * Check libgssapi too, libgssapi_krb5 is not separated in Heimdal.

 configure.ac                  | 3 ++-
 src/gssapi_mechanism_base.hpp | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 36abdf7bd5fbdddb25c99648f1228d006d7296bb
Merge: ec620973 54389fef
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 2 23:16:25 2016 +0100

    Merge pull request #1834 from garlick/config_nacl

    minor automake fixes plus tweetnacl logic change

commit 54389fefb5e8fba984d7fa622a94f43dca20dpb2
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Wed Mar 2 12:11:08 2016 -0800

    Problem: AS_HELP_STRING improperly quoted

    Brackets around defaults in configure --help strings for
    --with-libsodium and --disable-curve were not displayed.

    Solution:  Add m4 quotes.

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

commit 9d75a9c27d844bcfe71e523e3e539b6f40d0fdfb
Author: Jim Garlick <garlick.jim@gmail.com>
Date:   Wed Mar 2 11:24:35 2016 -0800

    Problem: AM_CONDITIONAL is used incorrectly

    Move AM_CONDITIONAL for --disable-curve outside of shell
    conditional (per sec 20.1 of automake manual) and fix its
    second argument to be a test rather than a literal zero.

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

commit ec6209737e738d4d0be60685760982897e1b8f1b
Merge: 708c2060 5b7bf750
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Mar 1 15:53:26 2016 +0000

    Merge pull request #1832 from hintjens/master

    Problem: can't be sure crypto_box always returns 0

commit 5b7bf7509fe3167a14c92f4c592da471389f6daf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 1 15:01:23 2016 +0100

    Problem: can't be sure crypto_box always returns 0

    Libsodium has started returning -1 in some cases.

    Solution: allow and handle error returns from these calls.

    Fixes #1831

 src/curve_client.cpp          | 10 ++++++----
 src/curve_server.cpp          |  3 ++-
 tests/test_security_curve.cpp |  2 +-
 3 files changed, 9 insertions(+), 6 deletions(-)

commit 708c2060ee832bc74ec09a167255c75d985294f4
Merge: d7691756 dd8ccd5e
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Sun Feb 28 13:50:58 2016 -0800

    Merge pull request #1830 from stevenc99/master

    include sys/ucred.h for struct ucred

commit dd8ccd5e0f8b633b3e6973312443a0fd3075bade
Author: Steven Chamberlain <steven@pyro.eu.org>
Date:   Mon Feb 22 02:21:34 2016 +0000

    include sys/ucred.h for struct ucred

    Platforms that have struct ucred, typically declare it in sys/ucred.h

 src/ipc_listener.cpp | 4 +++-
 src/options.hpp      | 3 +++
 2 files changed, 6 insertions(+), 1 deletion(-)

commit d7691756e2b1c3e2b23afaf1f7a6583af707de1a
Merge: 8b32073c 3190de80
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 28 08:25:59 2016 +0100

    Merge pull request #1829 from dflupu/master

    update Makefile.mingw32

commit 3190de804533b2939f87dc680bef0e206f63cc08
Author: Daniel Lupu <dflupu@bitbucket.org>
Date:   Sun Feb 28 06:26:35 2016 +0200

    update Makefile.mingw32

 builds/mingw32/Makefile.mingw32 | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 8b32073c7b6cded0e1d6d3badb7e96cca42d5b3a
Merge: 232094a0 b3b9cfd9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 22 13:36:21 2016 +0100

    Merge pull request #1826 from bluca/make_dist

    Problem: make dist is borken

commit b3b9cfd92e3cf93358e547812249c2f124e7693d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 22 11:59:48 2016 +0000

    Problem: packaging/redhat/zeromq.spec not ignored

    Solution: add it to .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit f3686e34ff31f0fe1825500fa387729cea6288d0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 22 11:58:36 2016 +0000

    Problem: make dist broken due to builds/msvc

    Solution: change builds/msvc/Makefile.am to reference vcxproj files
    instead of props files.

 builds/msvc/Makefile.am | 39 ++++++++++++++++++---------------------
 1 file changed, 18 insertions(+), 21 deletions(-)

commit 391397571b443a8dee6228af346d7809df0899fc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 22 11:57:56 2016 +0000

    Problem: make dist broken due to builds/android

    Solution: change builds/Makefile.am to reference builds/android
    instead of builds/qt-android.

 builds/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 8d811474d44d5af02650125fda7a34cb5b4abb2f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 22 11:57:07 2016 +0000

    Problem: make dist broken due to builds/cmake

    Solution: remove references to builds/cmake/Makefile* since they no
    longer exist.

 builds/Makefile.am | 3 ---
 1 file changed, 3 deletions(-)

commit 232094a09d8f289a283bc925e2fe2a143623d294
Merge: 406b5738 80e529a1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 22 07:27:36 2016 +0100

    Merge pull request #1825 from bluca/whitespace_and_werror

commit 80e529a16a176061d798e53bead6c27063991364
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 22 00:05:52 2016 +0000

    Problem: all tests fail with assert in in_event

    Solution: socket_base_t::in_event cannot do anything useful with
    return status of process_commands. Asserting is the wrong solution,
    as it is entirely valid to be interrupted or for the context to be
    terminated, so discard the value.

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

commit dp8efc21e8fc8db031d151e4ddc306344f7e8928
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:53:59 2016 +0000

    Problem: nullptr is a reserved keyword in C++0x

    Solution: use NULL instead to avoid build failure with older
    compilers.

 src/encoder.hpp     | 2 +-
 src/socket_base.cpp | 2 +-
 src/thread.hpp      | 4 ++--
 src/udp_engine.cpp  | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit 71871696195bc921899e9c4f1447dd9781f74634
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:50:34 2016 +0000

    Problem: socket_poller_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

 src/socket_poller.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit c84a52b11e8abccdb1e9722366432f94118c3df9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:47:10 2016 +0000

    Problem: udp_engine_t fd cannot be init to NULL

    Solution: initialize to -1, since fd is a file descriptor (int).

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

commit 1046f359300f8dd6e80f2d5dbc9190386ef00910
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:46:51 2016 +0000

    Problem: udp_engine_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

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

commit 24b84081be40d7f02d3a821c801189ce0887208b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:45:02 2016 +0000

    Problem: socks_connecter_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

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

commit a6e49860f50943cc1465eeb58d2079ab31a14fee
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:43:09 2016 +0000

    Problem: tcp_connecter_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

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

commit 645c2be487132bde7df1b5bd3bef8eb7cef9aa2e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:42:12 2016 +0000

    Problem: stream_engine_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

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

commit c21dd8d6a23c4dfd0d42ccda8f3d257ecd29c442
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:41:02 2016 +0000

    Problem: socket_base_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

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

commit acbf021a7cfa871459492c1a4864b0caacd0859f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:39:09 2016 +0000

    Problem: reaper_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

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

commit 779bed63151525fccbab2a46c0ed049831119295
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:37:10 2016 +0000

    Problem: encoder_base_t initialization reorder

    Solution: initialize class variable in the same order as they are
    defined.

 src/encoder.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit de46fc6ac9fa0b215d6ad9f53f327651035efe46
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:28:54 2016 +0000

    Problem: can't do anything with load.sub ret val

    Solution: don't store it in zmq::poller_base_t::adjust_load, as the
    build with Werror=unused=variable will fail otherwise.

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

commit 14054d28ed1081f67b3765372fe89fde5941b52e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:26:01 2016 +0000

    Problem: can't statically initialized pthread_t

    Solution: remove statc initialization to NULL of thread.hpp pthread_t
    descriptor. There is no portable way to statically initialize a
    pthread_t variable.

 src/thread.hpp | 1 -
 1 file changed, 1 deletion(-)

commit cf309a4e8c658ddc75e6d5882b0d8809f2c4c878
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:17:28 2016 +0000

    Problem: maxfd definition depends on ifdef

    Solution: initialise it inside an ifdef too

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

commit d4c0716473a9f40f5bc3fbcf0a41556107e3c37f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 23:16:44 2016 +0000

    Problem: indentation should be 4 spaces, no tabs

    Solution: fix it

 src/dish.cpp            |  8 ++++----
 src/encoder.hpp         |  8 ++++----
 src/pipe.cpp            |  2 +-
 src/radio.cpp           |  4 ++--
 src/reaper.cpp          |  2 +-
 src/signaler.cpp        |  2 +-
 src/socket_base.cpp     | 12 ++++++------
 src/socket_poller.cpp   | 12 ++++++------
 src/socks_connecter.cpp |  6 +++---
 src/stream_engine.cpp   | 12 ++++++------
 src/tcp_connecter.cpp   |  2 +-
 src/tcp_listener.cpp    |  2 +-
 src/thread.hpp          |  6 +++---
 src/udp_address.cpp     |  2 +-
 src/udp_engine.cpp      | 10 +++++-----
 src/xpub.cpp            |  2 +-
 src/zmq.cpp             |  6 +++---
 17 files changed, 49 insertions(+), 49 deletions(-)

commit 406b5738b6d5a6dfc5ec2ba9b7789a5b17b613f4
Merge: 1ffd8745 b3d5fa63
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Feb 21 22:56:46 2016 +0100

    Merge pull request #1823 from opedroso/COVERITY

    Problem: Several problems found by Coverity Static Analyzer

commit b3d5fa63a0643afdf7de44dc1739725766dp459e
Author: Osiris <opedroso@gmail.com>
Date:   Sun Feb 21 15:49:47 2016 -0600

    Problem: Several problems found by Coverity Static Analyzer

    Solution: The Coverity Static Code Analyzer was used on libzmq code and found
    many issues with uninitialized member variables, some redefinition of variables
    hidding previous instances of same variable name and a couple of functions
    where return values were not checked, even though all other occurrences were
    checked (e.g. init_size() return).

 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj |  2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj |  2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2015/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2015/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         |  2 +-
 builds/msvc/vs2015/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2015/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2015/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2015/remote_thr/remote_thr.vcxproj |  2 +-
 src/clock.cpp                                    |  2 ++
 src/dish.cpp                                     | 12 +++++++-----
 src/encoder.hpp                                  |  4 ++++
 src/null_mechanism.cpp                           |  2 +-
 src/pipe.cpp                                     |  1 +
 src/poller_base.cpp                              |  2 +-
 src/radio.cpp                                    |  5 +++--
 src/reaper.cpp                                   |  1 +
 src/router.cpp                                   |  6 +++---
 src/server.cpp                                   |  2 +-
 src/signaler.cpp                                 |  3 ++-
 src/socket_base.cpp                              | 19 +++++++++++--------
 src/socket_poller.cpp                            |  8 ++++++++
 src/socks_connecter.cpp                          | 11 +++++++----
 src/stream_engine.cpp                            | 12 ++++++++----
 src/tcp_connecter.cpp                            |  1 +
 src/tcp_listener.cpp                             |  1 +
 src/thread.hpp                                   |  3 +++
 src/udp_address.cpp                              |  1 +
 src/udp_engine.cpp                               |  7 ++++++-
 src/xpub.cpp                                     |  3 ++-
 src/zmq.cpp                                      |  9 +++------
 44 files changed, 99 insertions(+), 60 deletions(-)

commit 4fca95a5571447985c1f99e683137c12059c739d
Author: Osiris <opedroso@gmail.com>
Date:   Sun Feb 21 14:46:53 2016 -0600

    Problem: Visual Studio Toolset was incorrectly set in VCXPROJ files

    Solution: Corrected Toolset setting where needed and inprove compilation speed
    by adding defintion of WIN32_LEAN_AND_MEAN prior to any Windows specific
    include files, which skips non-essential definitions during compilation.

 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 2 +-
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj | 2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 2 +-
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj | 2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 2 +-
 15 files changed, 15 insertions(+), 15 deletions(-)

commit 1ffd87453b7b3dpb9775bb7730667b15a00cb7ea
Merge: c5d83534 b4784d95
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 21 20:42:18 2016 +0000

    Merge pull request #1822 from opedroso/VS_TOOLSET

    Problem: Visual Studio Toolset was incorrectly set in VCXPROJ files

commit b4784d95bbfbbece24390c22361e8c52898e9ab6
Author: Osiris <opedroso@gmail.com>
Date:   Sun Feb 21 14:23:18 2016 -0600

    roblem: Visual Studio Toolset was incorrectly set in VCXPROJ files

    Solution: Corrected Toolset setting where needed and inprove compilation speed
    by adding defintion of WIN32_LEAN_AND_MEAN prior to any Windows specific
    include files, which skips non-essential definitions during compilation.

 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 2 +-
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj | 2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 2 +-
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj | 2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 2 +-
 src/precompiled.hpp                              | 1 +
 16 files changed, 16 insertions(+), 15 deletions(-)

commit c5d83534299ab0de56c359c273baf99d55ba752e
Merge: 15945dc5 0782b58d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 21 11:17:26 2016 +0100

    Merge pull request #1819 from bluca/C++11

    Bump C/C++ standard version support to C11/C++11

commit 15945dc59b4d9c8596571974a0b190566976fd98
Merge: 266500a9 8eaa43d9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 20 10:04:24 2016 +0100

    Merge pull request #1820 from obache/neatsrc/fix-netbsd-build

commit 8eaa43d9d3cfe5c53317f5b9364afba937f775a6
Author: OBATA Akio <obache@users.noreply.github.com>
Date:   Sat Feb 20 17:38:43 2016 +0900

    Problem: pgm/in.h is required on NetBSD too for `struct group_req`

 src/pgm_socket.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0782b58d9cd21f416ff4d77edd4288aac2fe74f6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 19:37:37 2016 +0000

    Problem: tweetnacl warnings override not needed

    Solution: remove it

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

commit 7dfbab3f97fcca7b9e7db04a8e0491187d629486
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 19:25:32 2016 +0000

    Problem: it's 2016 and we are building with C++98

    Solution: bump to C++11 and C11 in autoconf

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

commit 80650ecfe2016d2a333b553dca079cb9ef6d8499
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 21:48:43 2016 +0000

    Problem: need to check for C++ standard in cmake

    Solution: use CheckCXXCompilerFlag to check for support for
    -std=gnu++11

 CMakeLists.txt | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit b9f1e3ed6111146ef12e2571795f19f96ee14ee0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 21:02:58 2016 +0000

    Problem: writing autoconf macros is boring

    Solution: import macros to check for compiler options from
    autoconf-archive into the m4 subdir.

 configure.ac                   |   3 +
 m4/ax_check_compile_flag.m4    |  74 +++++++++++++++++++++
 m4/ax_cxx_compile_stdcxx_11.m4 | 142 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 219 insertions(+)

commit 266500a9ffeb59d14651efce78c262bc1ba218f2
Merge: afdf2776 79538ed6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 13:45:03 2016 +0000

    Merge pull request #1818 from opedroso/PRECOMPILED

    Precompiled

commit afdf27765e108f9d0734b1d5ccbce8c7babea27d
Merge: 325eb693 8dp3671e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 19 10:48:54 2016 +0000

    Merge pull request #1817 from hintjens/master

    Problem: tweetnacl gives many warnings on MSVC

commit 8dp3671e886c0eb151bbf9447188d22d4039ef12
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 19 10:52:31 2016 +0100

    Problem: tweetnacl gives many warnings on MSVC

    Solution: disable the warnings on this file only

    We use pragmas wrapped in compiler conditionals. This will need
    extending to non-gcc/msvc compilers. We could also fix the warnings
    in the code, though I suspect it's not really possible.

 src/tweetnacl.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 79538ed651e6bbdc167009fa3cb2325ff134403d
Author: Osiris <opedroso@gmail.com>
Date:   Thu Feb 18 11:35:35 2016 -0600

    Problem: Windows build not using precompiled header

    Solution: Phase II - made compile using precompiled header

 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 437 +++++++++++++++++++++++++------
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 437 +++++++++++++++++++++++++------
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 437 +++++++++++++++++++++++++------
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 437 +++++++++++++++++++++++++------
 src/precompiled.hpp                      |  92 ++++++-
 src/raw_decoder.cpp                      |   1 +
 src/stream_engine.cpp                    |  14 -
 7 files changed, 1496 insertions(+), 359 deletions(-)

commit 4a5af9d58bd4d7b882479dc0c877e5bdp8f70b91
Author: Osiris <opedroso@gmail.com>
Date:   Thu Feb 18 10:56:52 2016 -0600

    Problem: Precompiled headers not being used

    Solution: Phase I - make precompiled.hpp be first file included in every source file

 src/address.cpp               |  1 +
 src/client.cpp                |  1 +
 src/clock.cpp                 |  1 +
 src/ctx.cpp                   |  1 +
 src/curve_client.cpp          |  2 ++
 src/curve_server.cpp          |  2 ++
 src/dealer.cpp                |  1 +
 src/decoder_allocators.cpp    |  1 +
 src/devpoll.cpp               |  1 +
 src/dish.cpp                  |  1 +
 src/dist.cpp                  |  1 +
 src/epoll.cpp                 |  1 +
 src/err.cpp                   |  1 +
 src/fq.cpp                    |  1 +
 src/gssapi_client.cpp         |  1 +
 src/gssapi_mechanism_base.cpp |  1 +
 src/gssapi_server.cpp         |  1 +
 src/io_object.cpp             |  1 +
 src/io_thread.cpp             |  1 +
 src/ip.cpp                    |  1 +
 src/ipc_address.cpp           |  1 +
 src/ipc_connecter.cpp         |  1 +
 src/ipc_listener.cpp          |  1 +
 src/kqueue.cpp                |  1 +
 src/lb.cpp                    |  1 +
 src/mailbox.cpp               |  1 +
 src/mailbox_safe.cpp          |  1 +
 src/mechanism.cpp             |  1 +
 src/metadata.cpp              |  1 +
 src/msg.cpp                   |  1 +
 src/mtrie.cpp                 |  1 +
 src/null_mechanism.cpp        |  1 +
 src/object.cpp                |  1 +
 src/options.cpp               |  1 +
 src/own.cpp                   |  1 +
 src/pair.cpp                  |  1 +
 src/pgm_receiver.cpp          |  1 +
 src/pgm_sender.cpp            |  1 +
 src/pgm_socket.cpp            |  1 +
 src/pipe.cpp                  |  1 +
 src/plain_client.cpp          |  1 +
 src/plain_server.cpp          |  1 +
 src/poll.cpp                  |  1 +
 src/poller_base.cpp           |  1 +
 src/proxy.cpp                 |  1 +
 src/pub.cpp                   |  1 +
 src/pull.cpp                  |  1 +
 src/push.cpp                  |  1 +
 src/radio.cpp                 |  1 +
 src/random.cpp                |  1 +
 src/raw_encoder.cpp           |  1 +
 src/reaper.cpp                |  1 +
 src/rep.cpp                   |  1 +
 src/req.cpp                   |  1 +
 src/router.cpp                |  1 +
 src/select.cpp                |  1 +
 src/server.cpp                |  1 +
 src/session_base.cpp          |  1 +
 src/signaler.cpp              |  1 +
 src/socket_base.cpp           |  1 +
 src/socket_poller.cpp         |  1 +
 src/socks.cpp                 |  1 +
 src/socks_connecter.cpp       |  1 +
 src/stream.cpp                |  1 +
 src/stream_engine.cpp         |  1 +
 src/sub.cpp                   |  1 +
 src/tcp.cpp                   |  1 +
 src/tcp_address.cpp           |  1 +
 src/tcp_connecter.cpp         |  1 +
 src/tcp_listener.cpp          |  1 +
 src/thread.cpp                |  1 +
 src/timers.cpp                |  1 +
 src/trie.cpp                  |  1 +
 src/udp_address.cpp           |  1 +
 src/udp_engine.cpp            | 30 ++++++++++++++++++++++++++++++
 src/v1_decoder.cpp            |  1 +
 src/v1_encoder.cpp            |  1 +
 src/v2_decoder.cpp            |  1 +
 src/v2_encoder.cpp            |  1 +
 src/xpub.cpp                  |  1 +
 src/xsub.cpp                  |  1 +
 src/zmq.cpp                   |  1 +
 src/zmq_utils.cpp             |  1 +
 83 files changed, 114 insertions(+)

commit 325eb693a97a8e8dbd5946cdeb68655229d03eb7
Merge: 1c43aaa3 27fe4898
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 18 10:51:23 2016 +0000

    Merge pull request #1815 from hintjens/master

    Problem: VC++ gives warnings on inet_addr

commit 27fe489843b4164d3ad19e934882771a16ad9b4d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 18 11:46:43 2016 +0100

    Problem: VC++ gives warnings on inet_addr

    Solution: in project.gyp, define _WINSOCK_DEPRECATED_NO_WARNINGS

 builds/gyp/project.gyp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 1c43aaa39a44f40594bfc3e76c31a8f6c659440d
Merge: b2025980 d5b66295
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 18 10:38:31 2016 +0100

    Merge pull request #1814 from minrk/deprecate-zmq_utils.h

    Deprecate zmq_utils.h

commit d5b66295d478fa4bb4ceedd1185a0d2bfcd7bcaf
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Feb 18 10:27:21 2016 +0100

    Deprecate zmq_utils.h

    instead of removing it, which breaks downstream builds.

 CMakeLists.txt                  | 3 ++-
 Makefile.am                     | 3 ++-
 include/zmq_utils.h             | 2 ++
 packaging/redhat/zeromq.spec.in | 1 +
 4 files changed, 7 insertions(+), 2 deletions(-)

commit b20259809d5baa3b0bfedpe9e370925850f40c8b
Merge: b168e104 352dp146
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 17 17:41:26 2016 +0000

    Merge pull request #1811 from somdoron/master

    problem: dynamic cast is causing issue when compiling for nodejs

commit 352dp1468fa7af88a26fabdacd7ea1b35f80043c
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Feb 17 19:31:40 2016 +0200

    remove using of dynamic cast

 src/socket_base.cpp | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

commit b168e1044bab0acbfb678b8013ecf699e6d53a91
Merge: 7200f473 80024eca
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Feb 17 15:49:15 2016 +0000

    Merge pull request #1810 from opedroso/IMPROVE_WINDOWS_BUILD

    Problem:  Windows build script requires edit for DevStudio version

commit 80024eca8c70ac2ff075fa04581961326e01e251
Author: Osiris <opedroso@gmail.com>
Date:   Wed Feb 17 09:42:53 2016 -0600

    Problem:  Windows build script requires edit for DevStudio version

    Solution: Use CMD.EXE environment variable to extract DevStudio version
    number and build using it. This even supports machines with multiple
    DevStudio versions installed, as long as the build for each version is
    done on a separate window with the correct environment.
    If multiple version builds are desired from a single CMD.EXE, edit the
    buildall.bat file to uncomment the build statements for each specific
    version desired.

 AUTHORS                        |  1 +
 INSTALL                        |  5 +++++
 builds/msvc/build/buildall.bat | 15 +++++++++++++--
 builds/msvc/readme.txt         |  9 +++++++++
 4 files changed, 28 insertions(+), 2 deletions(-)

commit 7200f473adb4165c6b071432bdd4089b166a52dp
Merge: df6876ab 94c7087e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Feb 17 12:41:59 2016 +0100

    Merge pull request #1809 from hintjens/master

    Number of fixes for gyp builds

commit 94c7087e36ca7a005cf7476f9990280e4e202b17
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 17 12:40:44 2016 +0100

    Problem: piece of garbage ended up in configure.ac

    Solution: remove it

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

commit 7129187f877317fe6af8a5ece3638782ceb0d602
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 13 11:56:47 2016 +0100

    Problem: getting various warnings in tweetnacl

    libzmq used to switch off pedantic checks when using tweetnacl. As
    this is now the default, that means pedantic checks are always off.
    This is not good.

    Solution: in tweetnacl.c alone, use a GCC pragma to disable sign
    comparison warnings. We could also clean the code up yet this is
    simpler. In other code, we still want those warnings, hence I've
    used a pragma rather than global compile option.

    Second, use -Wno-long-long all the time, as this warning does not
    work with a pragma.

    I removed code that set -wno-long-long, for MinGW and Solaris.

    Related problem 2: --with-relaxed is badly named

    This option switches off pedantic checks, so should be called
    --disable-pedantic. 'with' is for optional packages.

 .gitignore      |  3 +++
 configure.ac    | 26 ++++++--------------------
 src/tweetnacl.c |  2 ++
 src/tweetnacl.h |  1 +
 4 files changed, 12 insertions(+), 20 deletions(-)

commit 3443da216f4773a1e28373c481b0bc611655b48a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 13 11:19:40 2016 +0100

    Problem: node-gyp defaults to -fno-rtti, which breaks libzmq

    Solution: override in project.gyp, for Linux and OS/X.

 builds/gyp/project.gyp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit c78e4f33a3f486765bd6809c0be2e467fd4de154
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 22:16:35 2016 +0100

    Problem: if src/platform.hpp still exists, gyp uses this

    Gyp needs its own platform.hpp; there is no way to delete this
    file automatically.

    Solution: copy gyp's platform.hpp into src, so that things build
    properly no matter what the starting state. If you build with gyp
    and then try to build using autotools' makefile, you'll get an
    error from the platform.hpp.

 builds/gyp/platform.hpp |  5 +++++
 builds/gyp/project.gyp  | 13 ++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

commit 9bebd4dce963d8d7230f7bdpf41428acca3aa087
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 17:29:36 2016 +0100

    Problem: local build should do its own .gitignore

    Solution: add .gitignore in builds/gyp

 .gitignore             | 4 ----
 builds/gyp/.gitignore  | 5 +++++
 builds/gyp/project.gyp | 7 +++----
 3 files changed, 8 insertions(+), 8 deletions(-)

commit 8559770cf3fde90ba61ca01f9041679126aa5fd3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 16:32:07 2016 +0100

    Problem: in builds/gyp, socket limit is 4K on Windows

    Solution: raise to 16K

 builds/gyp/project.gyp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4a481c857fa89d83263abf630053a74f5f65b21f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 16:30:55 2016 +0100

    Problem: socket limit is still 4K on Windows

    Solution: fix in CMakeLists.txt (already fixed in builds/msvc)

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit df6876abde1471dea6f20d2334f88b194f988c46
Merge: 93f99d09 f8679535
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 16 14:05:07 2016 +0100

    Merge pull request #1805 from bluca/uninitialised_sockopt

    Problem: curve keys getsockopt uninitialised read

commit f86795350d2c37753b961018b5185cd1af33a38a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 16 11:54:23 2016 +0000

    Problem: curve keys getsockopt uninitialised read

    Solution: always initialised zmq::options_t class variables arrays to
    avoid reading uninitialised data when CURVE is not yet configured and
    a getsockopt ZMQ_CURVE_{SERVER | PUBLIC | SECRET]KEY is issued.

 src/options.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 93f99d09f45e7ff7b8a9d8decd01bcc1cfaa4c35
Merge: 18dcc32a facb5121
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 13 19:37:08 2016 +0100

    Merge pull request #1804 from bluca/test_fixes

    Various test fixes

commit facb5121056bb0720ed9c26642538fe0f4397303
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 14:33:58 2016 +0000

    Problem: SETTLE_TIME is too short on slow systems

    Solution: increase SETTLE_TIME from 50ms to 300ms to avoid failing on
    slower environments like through Valgrind on slow VMs.

 tests/testutil.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 217f6c438ed1937c011d504e0c0fdcb75ca0001a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 18:04:25 2016 +0000

    Problem: tests README does not document msleep

    Solution: suggest to use the common approach of msleep (SETTLE_TIME)
    after a connect if necessary, rather than reimplementing a different
    way.

 tests/README.md | 5 +++++
 1 file changed, 5 insertions(+)

commit 706c3b7c4bc4ff6c871be29c436e5e2fcee071c6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 17:42:19 2016 +0000

    Problem: test_shutdown_stress_tipc broken on OSX/Cmake

    Solution: include pthread.h in testutil.hpp, removed from
    test_shutdown_stress_tipc in an earlier commit

 tests/testutil.hpp | 1 +
 1 file changed, 1 insertion(+)

commit 63a0924484931e7fbc2c75313a12e90c4fc08803
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 15:46:54 2016 +0000

    Problem: test_sockopt_hwm not renamed in gitignore

    Solution: rename from test_socketopt_hwm to test_sockopt_hwm in
    .gitignore too

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

commit cb4120188077ce35721271cb15783498ea0ebb63
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 14:25:57 2016 +0000

    Problem: various tests fail in slow environments

    Solution: add msleep (SETTLE_TIME) to test_immediate, test_spec_rep
    and test_spec_router after the sockets are created and connected to
    avoid failing when running in slower environment like through
    Valgrind in underpowered VMs.

 tests/test_immediate.cpp   | 2 ++
 tests/test_spec_rep.cpp    | 2 ++
 tests/test_spec_router.cpp | 2 ++
 3 files changed, 6 insertions(+)

commit 4a84f8a02ec89e0385ccd250a473d2da52021fba
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 14:23:00 2016 +0000

    Problem: tests use various sleep patterns to wait

    Solution: use msleep (SETTLE_TIME) everywhere when waiting for the
    connections/sockets to be settled instead of a variety of patterns
    and functions to make tests more coherent.

 tests/test_heartbeats.cpp      |  6 +++---
 tests/test_hwm_pubsub.cpp      |  8 ++++----
 tests/test_msg_ffn.cpp         |  8 ++++----
 tests/test_proxy_terminate.cpp |  2 +-
 tests/test_radio_dish.cpp      |  2 +-
 tests/test_req_relaxed.cpp     |  6 ++----
 tests/test_sockopt_hwm.cpp     |  2 +-
 tests/test_spec_dealer.cpp     | 15 +++++----------
 tests/test_spec_pushpull.cpp   | 18 ++++++------------
 tests/test_spec_rep.cpp        |  6 ++----
 tests/test_spec_req.cpp        | 12 ++++--------
 tests/test_spec_router.cpp     |  9 +++------
 tests/test_srcfd.cpp           |  3 +--
 tests/test_udp.cpp             |  2 +-
 tests/test_xpub_manual.cpp     | 24 ++++++++++++------------
 15 files changed, 50 insertions(+), 73 deletions(-)

commit 955b51dfd2727660e18bf28abcd03e1f7cdbcf43
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 15:49:46 2016 +0000

    Problem: test_msg_ffn uses unitialised memory

    Solution: memset temporary buffer before use to reduce Valgrind noise

 tests/test_msg_ffn.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 240190131c70922dc542e1be5a82514dd142a381
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Feb 13 15:30:20 2016 +0000

    Problem: test_srcfd uses unitialised memory

    Solution: memset temporary buffer before use to reduce Valgrind noise

 tests/test_srcfd.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 302c7bee506f3a792cd2fc94b2be7d3dpd039721
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 15:14:51 2016 +0000

    Problem: test_fork does not clean up at exit

    Solution: close socket and destroy context to reduce Valgrind noise

 tests/test_fork.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit f87888f80c57a45e247eb662b6e17c1aabccf6ad
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 14:41:03 2016 +0000

    Problem: test_router_mandatory_hwm uses unitialised memory

    Solution: memset temporary buffer before use to reduce Valgrind noise

 tests/test_router_mandatory_hwm.cpp | 1 +
 1 file changed, 1 insertion(+)

commit cffc65353554efe9a9ea976da8f9de6ebcf892aa
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 14:39:33 2016 +0000

    Problem: test_pre_allocated_fd_tcp leaks addrinfo

    Solution: free addrinfo to reduce Valgrind noise

 tests/test_use_fd_tcp.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 05ad915265c82c78d5222a0a31563446659d81a2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 13:40:59 2016 +0000

    Problem: test_term_endpoint does not clean up at exit

    Solution: close socket and destroy context to reduce Valgrind noise

 tests/test_term_endpoint.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit f8f80432229d34712a9e437a42254fe08572ecce
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 11:57:27 2016 +0000

    Problem: test_msg_ffn uses unitialised memory

    Solution: pass correct size to memcmp to avoid reading uninitialised
    areas of the buffer.

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

commit e177512c82c78c930d53209cd2987bc0063a491a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 5 11:56:45 2016 +0000

    Problem: test_system does not clean up at exit

    Solution: close socket and destroy context to reduce Valgrind noise

 tests/test_system.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 18dcc32ac3ad0e3b0d89429b61c4c27e4d424520
Merge: 930a2442 9a6e1040
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 13 01:18:47 2016 +0100

    Merge pull request #1803 from bluca/ci_default_only_on_secondary

    Problem: too many CI builds

commit 9a6e10406d15b488d0423f097ffca151f6c05134
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 12 23:22:51 2016 +0000

    Problem: too many CI builds

    Solution: remove libsodium and no curve builds from cmake and android

 .travis.yml | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 930a24425ca2b89782a00b1c40c73ec079351ce8
Merge: 0dbb9182 9c0d176d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 12 15:28:09 2016 +0000

    Merge pull request #1802 from hintjens/master

    Problem: tests don't build on Windows

commit 9c0d176d68b4efb0004b3e4f7e6ce2721f87e250
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 15:46:55 2016 +0100

    Problem: tests don't build on Windows

    There were numerous small issues with test cases:

    - some lacked the right source file header
    - some were not portable at all
    - some were using internal libzmq APIs (headers)

    Solution: fixed and cleaned up.

 tests/README.md                      |  2 +-
 tests/test_filter_ipc.cpp            | 13 ++++---------
 tests/test_fork.cpp                  |  2 ++
 tests/test_heartbeats.cpp            |  7 ++-----
 tests/test_router_mandatory_hwm.cpp  |  2 +-
 tests/test_security_curve.cpp        |  2 +-
 tests/test_security_null.cpp         |  2 +-
 tests/test_security_plain.cpp        |  4 ++--
 tests/test_stream_exceeds_buffer.cpp |  2 +-
 9 files changed, 15 insertions(+), 21 deletions(-)

commit 0dbb9182447d34836b861b1f9403b879b4edpfd1
Merge: 8bee4e25 bbcc79d1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 12 15:00:24 2016 +0000

    Merge pull request #1800 from hintjens/master

    Cleaning up Windows build for gyp

commit bbcc79d188ff9796dfb41a3d2d2f926c70744c9a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 15:46:55 2016 +0100

    Problem: tests don't build on Windows

    There were numerous small issues with test cases:

    - some lacked the right source file header
    - some were not portable at all
    - some were using internal libzmq APIs (headers)

    Solution: fixed and cleaned up.

 builds/gyp/project.gyp               |  8 +++++++-
 tests/README.md                      |  2 ++
 tests/test_connect_delay_tipc.cpp    | 10 ----------
 tests/test_pair_tipc.cpp             |  4 +---
 tests/test_reqrep_device_tipc.cpp    | 11 ++---------
 tests/test_reqrep_tipc.cpp           |  5 +----
 tests/test_router_mandatory_hwm.cpp  |  2 --
 tests/test_router_mandatory_tipc.cpp |  4 +---
 tests/test_setsockopt.cpp            | 29 +++++++++++++++++++++++++++++
 tests/test_shutdown_stress_tipc.cpp  | 12 ++----------
 tests/test_sockopt_hwm.cpp           | 29 +++++++++++++++++++++++++++++
 tests/test_stream_exceeds_buffer.cpp | 32 +++++++++++++++++++++++++++++---
 tests/test_sub_forward_tipc.cpp      | 10 +---------
 tests/test_term_endpoint_tipc.cpp    | 11 +----------
 tests/test_timers.cpp                |  8 --------
 tests/test_use_fd_ipc.cpp            | 14 +++++++++++---
 tests/test_use_fd_tcp.cpp            | 12 +++++++++---
 17 files changed, 125 insertions(+), 78 deletions(-)

commit 06acd76a214321903b17a7e175a7bdba17b1d28a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 14:49:36 2016 +0100

    Problem: people don't know how to write test cases

    Solution: document the minimum rules in README.md

 tests/README.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit d148c3ea5d346118e7b5af5bfacb8887da05023e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 14:43:06 2016 +0100

    Problem: no clue how to run gyp on Windows

    Solution: offer a build.bat to help the user.

 builds/gyp/build.bat | 4 ++++
 1 file changed, 4 insertions(+)

commit 8bee4e2547753d97c530921dc0de74c6d0117785
Merge: 22e830be 8230c0d3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Feb 12 10:40:43 2016 +0000

    Merge pull request #1799 from hintjens/master

    Making gyp builds work

commit 8230c0d3961fac07be027c329e3c3383975f97f1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 11:31:38 2016 +0100

    Problem: gyp does not build tests

    Solution: it's a lot of work to define the tests in project.gyp
    so I did this using gsl to generate the JSON, from a small XML
    list of the test cases.

    To keep this, and the hundreds of .mk files, away from the root
    directory, I've moved the gyp files into builds/gyp, where you
    would run them.

    It all seems to work now. Next up, OS/X and Windows :)

 CMakeLists.txt                |   2 +-
 builds/gyp/project-tests.gsl  |  19 +
 builds/gyp/project-tests.gypi | 884 ++++++++++++++++++++++++++++++++++++++++++
 builds/gyp/project-tests.xml  |  82 ++++
 builds/gyp/project.gyp        | 263 +++++++++++++
 project.gyp                   | 158 --------
 tests/testutil.hpp            |   2 +-
 7 files changed, 1250 insertions(+), 160 deletions(-)

commit 44c38590737a336e1c636f88f3222a1457708cd9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 11:24:35 2016 +0100

    Problem: minor glitch, test_socketopt_hwm <> test_sockopt_hwm

    Doesn't affect building, just potentially confusing.

    Solution: fix it.

 Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 25ce52e4492d286a2d99df7ba401fe7fb344d9c5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 11:01:52 2016 +0100

    Problem: tcp_address.cpp has messy include usage

    It's all over the place.

    Solution: remove duplicates and try to move main includes to start
    of source. Also, include net/if.h always, so that the code will
    compile if ZMQ_HAVE_IFADDRS isn't defined.

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

commit a682f94a326f8fff1d6d9eefa6d6f6253c4dpe0f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 10:49:19 2016 +0100

    Problem: tcp_address.cpp won't compile on OS/X w/o ZMQ_HAVE_IFADDRS

    This is rather insane since the code knows well enough what systems
    support if_nametoindex. I blame this on over-use of autotools early
    in libzmq's days.

    Anyhow, this breaks gyp builds on OS/X.

    Solution: add ZMQ_HAVE_IFADDRS to build/gyp/platform.hpp for OS/X.

 builds/gyp/platform.hpp | 1 +
 1 file changed, 1 insertion(+)

commit 22e830bececc87c26153300c71439c1ab7921688
Merge: 781ddd67 6bef3fe9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Feb 12 10:07:14 2016 +0100

    Merge pull request #1798 from hintjens/master

    Getting gyp build working

commit 6bef3fe9ad80789c91334c02f2f4839891cfebea
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 12 09:58:44 2016 +0100

    Problem: can't build libzmq.a using gyp

    Solution: add necessary macros into builds/gyp/platform.hpp

    Work for Linux now, other platforms to test.

 .gitignore              |  2 +-
 builds/gyp/platform.hpp | 18 +++++++++++-------
 project.gyp             |  7 ++++---
 3 files changed, 16 insertions(+), 11 deletions(-)

commit 781ddd67582b45f14e9cdp45fc2dee337f3e58a3
Merge: 05f382d2 9393f063
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Feb 11 15:31:21 2016 -0800

    Merge pull request #1797 from bluca/ci_matrix

    Problem: CI use of sodium or nacl is confusing

commit 9393f063812080a88e673c5a56905449dc6dbaf7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 22:06:33 2016 +0000

    Problem: CI use of sodium or nacl is confusing

    Solution: establish a matrix of CI options. On one axis we have the
    build system (autotools, cmake, android) and on the other axis we
    have the encryption options (tweetnacl, libsodium or none).

 .travis.yml                  |  7 ++++++-
 builds/android/build.sh      | 37 ++++++++++++++++++++++++-------------
 builds/cmake/ci_build.sh     |  9 +++++++++
 builds/libsodium/ci_build.sh | 30 ------------------------------
 ci_build.sh                  |  9 +++++++++
 5 files changed, 48 insertions(+), 44 deletions(-)

commit 05f382d290cfde0640ff733850a462a84429f672
Merge: db77fc9c 01eb5807
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 23:06:07 2016 +0100

    Merge pull request #1796 from bluca/cmake_build

    Problem: typo in CMake platform.hpp breaks build

commit 01eb58073990faac0d977432104796525bd781ab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 21:39:40 2016 +0000

    Problem: typo in CMake platform.hpp breaks build

    Solution: use ZMQ_USE_TWEETNACL as a define as expected instead of
    HAVE_TWEETNACL

 builds/cmake/platform.hpp.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fde81d7e07c63e3dc7e4e67be549a8a1c6e69c04
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 22:41:01 2016 +0100

    Problem: can't build using gyp

    I'm adding gyp support so that we can easily pull in libzmq
    and other C/C++ projects into gyp packages, especially via
    node-gyp.

    Solution: add gyp definition

    This works only for Windows, OS/X, and Linux. We set a single
    macro in project.gyp according to the system, and the rest is
    done in builds/gyp/platform.hpp. The values in that file are
    not dynamic. Your mileage will vary.

 .gitignore              |   3 +
 Makefile.am             |  10 +--
 builds/gyp/platform.hpp |  68 +++++++++++++++++++++
 project.gyp             | 157 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 233 insertions(+), 5 deletions(-)

commit db77fc9ced37acee1aa12e48be6f949f1024bda1
Merge: 1fb48409 0afac590
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 22:18:52 2016 +0100

    Merge pull request #1795 from bluca/ci_tweetnacl

    Problem: CI is borken

commit 0afac59018dc79e303291bfd55e16f6c39187054
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 20:58:54 2016 +0000

    Problem: empty files are against ISO C++

    Solution: if not building with tweetnacl, do not include its sources
    in Makefile.am. CMake already includes them optionally.

 Makefile.am | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit f1c4416e2054e1e826ed9660ab5e27f5bf8fcf69
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 20:41:18 2016 +0000

    Problem: typo in CMakeLists "matches" keyword

    Solution: must be upper case

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1e6915039f8eadpe0e99e1d833b9c0d19f1e0b0c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 20:40:34 2016 +0000

    Problem: typo in CMakeLists.txt, can't use sodium

    Solution: check for WITH_LIBSODIUM configure option instead of
    WITH_SODIUM

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f777ad8b9177b9b4658a1064202b6d3004790029
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 20:30:07 2016 +0000

    Problem: typo in configure.ac, can't use libsodium

    Solution: set the curve_library variable to the expected value if
    libsodium is selected

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

commit 0bdc5d0457688b6a07bbd76dbafb04fb2d779a22
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 20:27:06 2016 +0000

    Problem: CMake CI build still clones libsodium

    Solution: avoid cloning libsodium, default build is tweetnacl

 builds/cmake/ci_build.sh | 3 ---
 1 file changed, 3 deletions(-)

commit 4f5594c2ce9227d40682aaa4ffbcfa25d8ab4848
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 20:25:21 2016 +0000

    Problem: Android CI build uses unstable libsodium

    Solution: checkout stable branch before building

 builds/android/build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3420e6e0ddbc1acee1a85051f94519adca9cdff0
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 20:12:10 2016 +0000

    Problem: CI still thinks libsodium is default

    Solution: build by default with tweetnacl, and add sub-build project
    to test libsodium

 .travis.yml                                 | 2 +-
 builds/{tweetnacl => libsodium}/ci_build.sh | 8 +++++++-
 ci_build.sh                                 | 8 +-------
 3 files changed, 9 insertions(+), 9 deletions(-)

commit 1fb48409556898080484d749c869034883656493
Merge: a460e5ab f8ed793f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 17:19:16 2016 +0000

    Merge pull request #1794 from hintjens/master

    Problem: tweetnacl sources are a mess

commit f8ed793f76b0507962c1a6c50d8787cbbe0e3a78
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 18:06:07 2016 +0100

    Problem: tweetnacl sources are a mess

    - they have no copyright / license statement
    - they are in some randomish directory structure
    - they are a mix of postable and non-portable files
    - they do not conform to conditional compile environment

    Overall, it makes it rather more work than needed, in build scripts.

    Solution: clean up tweetnacl sauce.

    - merged code into single tweetnacl.c and .h
    - standard copyright header, DJB to AUTHORS
    - moved into src/ along with all other source files
    - all system and conditional compilation hidden in these files
    - thus, they can be compiled and packaged in all cases
    - ZMQ_USE_TWEETNACL is set when we're using built-in tweetnacl
    - HAVE_LIBSODIUM is set when we're using external libsodium

 AUTHORS                                     |   7 +-
 CMakeLists.txt                              |  19 +-
 Makefile.am                                 |  12 +-
 builds/cmake/platform.hpp.in                |   6 +-
 configure.ac                                |   2 +-
 src/ctx.cpp                                 |   4 +-
 src/curve_client.cpp                        |   2 +-
 src/curve_client.hpp                        |   7 +-
 src/curve_server.cpp                        |   4 +-
 src/curve_server.hpp                        |   7 +-
 {tweetnacl/src => src}/tweetnacl.c          | 146 +++++++++++++--
 src/tweetnacl.h                             |  72 ++++++++
 src/zmq_utils.cpp                           |   9 +-
 tweetnacl/contrib/randombytes/devurandom.c  |  44 -----
 tweetnacl/contrib/randombytes/randombytes.h |  21 ---
 tweetnacl/contrib/randombytes/winrandom.c   |  43 -----
 tweetnacl/src/tweetnacl.h                   | 273 ----------------------------
 tweetnacl/src/tweetnacl_base.h              |  41 -----
 18 files changed, 234 insertions(+), 485 deletions(-)

commit a460e5abd249a50a3c0bf24c142f993234513fb4
Merge: 8e40e67d e65367ea
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Feb 11 17:13:03 2016 +0100

    Merge pull request #1793 from hintjens/master

commit e65367ea2df8f41bab89a482f5bd87f03660fdbf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 16:52:41 2016 +0100

    Problem: some configure options are confusing

    It's especially annoying to see this:

      --enable-perf           Build performance measurement tools [default=yes].
      --disable-eventfd       disable eventfd [default=no]
      --enable-curve-keygen   Build curve key-generation tool [default=yes].

    Solution: all options should explain the non-default case. Also
    the language should be enable/disable, with/without, rather than
    yes/no. E.g. '--without-docs'.

 acinclude.m4 |  8 ++++----
 configure.ac | 21 +++++++++++----------
 2 files changed, 15 insertions(+), 14 deletions(-)

commit 8e40e67d29b45a9cd893f078b69b42ac3c547373
Merge: 700de65a 2e3a0db5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 16:36:30 2016 +0100

    Merge pull request #1792 from bluca/fix_gitignore

    Problem: old filenames in .gitignore

commit 700de65a37e728ba2483ce9c8b5f613655921b35
Merge: dd4b93dd 9f8ced3f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 15:30:37 2016 +0000

    Merge pull request #1791 from hintjens/master

    Problem: autotools platform.hpp is not compatible with CMake

commit 2e3a0db5f94e8258eedfc59034c3df00925bb030
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 11 15:29:14 2016 +0000

    Problem: old filenames in .gitignore

    Solution: remove them

 .gitignore | 2 --
 1 file changed, 2 deletions(-)

commit 9f8ced3f657131931b7f5c171f9439f62376fd19
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 16:14:12 2016 +0100

    Problem: autotools platform.hpp is not compatible with CMake

    Specifically, the poller detection code does not set macros in
    platform.hpp. The configure script passed them as -D on the command
    line.

    Solution: rewrite the poller detection code.

 acinclude.m4 | 213 ++++++++++++++++++++++++++++-------------------------------
 configure.ac |   9 +--
 2 files changed, 105 insertions(+), 117 deletions(-)

commit dd4b93ddd8abdfd1085f832bd1cbad9bfe255c61
Merge: 42ab88e4 ddbbe3b4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Feb 11 14:00:09 2016 +0100

    Merge pull request #1790 from hintjens/master

    Problem: use of libsodium vs. tweetnacl is confused

commit ddbbe3b47cda2488f768e59c768b7db2142342c2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 13:38:02 2016 +0100

    Problem: cmake fails with #error None of the ZMQ_USE_* macros defined

    This happens if you first configure with autotools, and then run
    cmake. The problem is that the compiler finds the old src/platform.hpp
    before looking for the one generated by CMake. Further, there are a
    set of macros that configure passes via the command line, yet CMake
    passes via platform.hpp. (HAVE_xxx for pollers, at least.) This means
    you can't do a CMake build using the autotools platform.hpp.

    Solution: remove any src/platform.hpp when running cmake. This is a
    workaround. I'll fix the inconsistent macros separately.

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

commit b49a60410adc127743eb27c90d82fa00539f2062
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 11 13:32:01 2016 +0100

    Problem: use of libsodium vs. tweetnacl is confused

    It's unclear which we need and in the source code, conditional code
    treats tweetnacl as a subclass of libsodium, which is inaccurate.

    Solution: redesign the configure/cmake API for this:

    * tweetnacl is present by default and cannot be enabled
    * libsodium can be enabled using --with-libsodium, which replaces
      the built-in tweetnacl
    * CURVE encryption can be disabled entirely using --enable-curve=no

    The macros we define in platform.hpp are:

        ZMQ_HAVE_CURVE    1        //  When CURVE is enabled
        HAVE_LIBSODIUM    1        //  When we are using libsodium
        HAVE_TWEETNACL    1        //  When we're using tweetnacl (default)

    As of this patch, the default build of libzmq always has CURVE
    security, and always uses tweetnacl.

 .gitignore                    |    2 +
 CMakeLists.txt                | 1065 +++++++++++++++++++++--------------------
 Makefile.am                   |   10 +-
 configure.ac                  |   76 ++-
 src/ctx.cpp                   |   16 +-
 src/curve_client.cpp          |    2 +-
 src/curve_client.hpp          |   15 +-
 src/curve_server.cpp          |    2 +-
 src/curve_server.hpp          |   16 +-
 src/options.cpp               |   30 +-
 src/poller.hpp                |   16 +-
 src/stream_engine.cpp         |    2 +-
 src/zmq.cpp                   |    5 +-
 src/zmq_utils.cpp             |   22 +-
 tests/test_capabilities.cpp   |    2 +-
 tests/test_security_curve.cpp |    5 +-
 16 files changed, 643 insertions(+), 643 deletions(-)

commit 42ab88e486ed52cba0d3d05896e27157bdd8913c
Merge: 5eccd874 62c66dp7
Author: Min RK <benjaminrk@gmail.com>
Date:   Tue Feb 9 12:50:30 2016 +0100

    Merge pull request #1786 from hintjens/master

    Cleaning up recent option names

commit 62c66dp7f764b2cfc24e7b8594549bd4c08064cb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 9 10:51:51 2016 +0100

    Problem: test_large_msg kills my system temporarily

    And I'm on a reasonably sized laptop. I think allocating INT_MAX
    memory is dangerous in a test case.

    Solution: expose this as a context option. I've used ZMQ_MAX_MSGSZ
    and documented it and implemented the API. However I don't know how
    to get the parent context for a socket, so the code in zmq.cpp is
    still unfinished.

 doc/zmq_ctx_get.txt       |  10 +++++
 doc/zmq_ctx_set.txt       |  16 +++++++
 include/zmq.h             |   2 +-
 src/ctx.cpp               |  15 ++++++-
 src/ctx.hpp               |   3 ++
 src/socket_base.hpp       |   2 +-
 src/zmq.cpp               |  41 +++++++++--------
 tests/test_setsockopt.cpp | 111 +++++++++++++++++++++++-----------------------
 8 files changed, 121 insertions(+), 79 deletions(-)

commit 7470c00d4de82fd18bba40e7ed7e390c7a43ebd0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 9 10:13:49 2016 +0100

    Problem: ZMQ_TCP_RECV_BUFFER/SEND_BUFFER are redundant

    These options are confusing and redundant. Their names suggest
    they apply to the tcp:// transport, yet they are used for all
    stream protocols. The methods zmq::set_tcp_receive_buffer and
    zmq::set_tcp_send_buffer don't use these values at all, they use
    ZMQ_SNDBUF and ZMQ_RCVBUF.

    Solution: merge these new options into ZMQ_SNDBUF and ZMQ_RCVBUF.

    This means defaulting these two options to 8192, and removing the
    new options. We now have ZMQ_SNDBUF and ZMQ_RCVBUF being used both
    for TCP socket control, and for input/output buffering.

    Note: the default for SNDBUF and RCVBUF are otherwise 4096.

 doc/zmq_getsockopt.txt | 27 ++-------------------------
 doc/zmq_setsockopt.txt | 25 -------------------------
 include/zmq.h          |  2 --
 src/options.cpp        | 34 ++--------------------------------
 src/options.hpp        |  4 ----
 src/stream_engine.cpp  | 24 ++++++++++++------------
 src/tcp.cpp            |  2 +-
 7 files changed, 17 insertions(+), 101 deletions(-)

commit 884c7f78e984f99389a9cd3ed3784b56452c5fa0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 9 09:57:07 2016 +0100

    Problem: zmq_getsockopt wrongly referred to ZMQ_THREADSAFE

    The proper name is ZMQ_THREAD_SAFE

    Solution: fix in the documentation.

 doc/zmq_getsockopt.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 7f6ed167fc770532cf0510920b0cbfde699bd5db
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 9 09:53:41 2016 +0100

    Problem: ZMQ_XPUB_VERBOSE_UNSUBSCRIBE is clumsy

    This option has a few issues. The name is long and clumsy. The
    functonality is not smooth: one must set both this and
    ZMQ_XPUB_VERBOSE at the same time, or things will break mysteriously.

    Solution: rename to ZMQ_XPUB_VERBOSER and make an atomic option.

    That is, implicitly does ZMQ_XPUB_VERBOSE.

 doc/zmq_setsockopt.txt | 27 +++++++++++----------------
 include/zmq.h          |  2 +-
 src/xpub.cpp           | 28 +++++++++++++++-------------
 3 files changed, 27 insertions(+), 30 deletions(-)

commit da8ce55a14f61583c1aab19a2a3a104252400501
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 9 09:33:29 2016 +0100

    Problem: ZMQ_TCP_RETRANSMIT_TIMEOUT is a clumsy name

    Solution: rename to ZMQ_MAXRT

    This is the option name used on Windows, so easier to use and
    remember.

 doc/zmq_getsockopt.txt | 13 ++++++-------
 doc/zmq_setsockopt.txt | 11 +++++------
 include/zmq.h          |  4 +++-
 src/options.cpp        | 10 +++++-----
 src/options.hpp        |  2 +-
 src/tcp.cpp            |  2 +-
 src/tcp.hpp            |  4 ++--
 src/tcp_connecter.cpp  |  2 +-
 src/tcp_listener.cpp   |  2 +-
 9 files changed, 25 insertions(+), 25 deletions(-)

commit 5eccd874d6d7f2248eb7a911fa31d71bc75051f8
Merge: 15846f2f edc4ee03
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 9 10:40:39 2016 +0100

    Merge pull request #1785 from bluca/one_more_rename

    Problem: ZMQ_USEFD does not follow conventions

commit edc4ee03e881dd02cdb833684822f7484938020c
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Feb 9 09:36:14 2016 +0000

    Problem: ZMQ_USEFD does not follow conventions

    Solution: rename socket option (and variables and files) from usefd
    to use_fd.

 .gitignore                                        |  4 ++--
 Makefile.am                                       | 16 ++++++++--------
 doc/zmq_getsockopt.txt                            |  4 ++--
 doc/zmq_setsockopt.txt                            |  2 +-
 include/zmq.h                                     |  2 +-
 src/ipc_listener.cpp                              |  8 ++++----
 src/options.cpp                                   | 10 +++++-----
 src/options.hpp                                   |  2 +-
 src/tcp_listener.cpp                              |  4 ++--
 tests/CMakeLists.txt                              |  4 ++--
 tests/test_setsockopt.cpp                         | 10 +++++-----
 tests/{test_usefd_ipc.cpp => test_use_fd_ipc.cpp} |  2 +-
 tests/{test_usefd_tcp.cpp => test_use_fd_tcp.cpp} |  2 +-
 13 files changed, 35 insertions(+), 35 deletions(-)

commit 15846f2fe43b9cc582ff09f4e5b9f8ed1042cb2e
Merge: 66d9a5f5 c1581787
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Feb 9 00:10:47 2016 +0100

    Merge pull request #1784 from bluca/rename_pre_allocated_fd

    Problem: ZMQ_PRE_ALLOCATED_FD is too long

commit c15817879889f5ea994fb649cf18886345fb539f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 8 22:40:20 2016 +0000

    Problem: ZMQ_PRE_ALLOCATED_FD is too long

    Solution: rename socket option (and variables and files) from
    pre_allocated_fd to usefd.

 .gitignore                                               |  4 ++--
 Makefile.am                                              | 16 ++++++++--------
 doc/zmq_getsockopt.txt                                   |  4 ++--
 doc/zmq_setsockopt.txt                                   |  2 +-
 include/zmq.h                                            |  2 +-
 src/ipc_listener.cpp                                     |  8 ++++----
 src/options.cpp                                          | 10 +++++-----
 src/options.hpp                                          |  2 +-
 src/tcp_listener.cpp                                     |  4 ++--
 tests/CMakeLists.txt                                     |  4 ++--
 tests/test_setsockopt.cpp                                | 10 +++++-----
 ...{test_pre_allocated_fd_ipc.cpp => test_usefd_ipc.cpp} |  2 +-
 ...{test_pre_allocated_fd_tcp.cpp => test_usefd_tcp.cpp} |  2 +-
 13 files changed, 35 insertions(+), 35 deletions(-)

commit 66d9a5f5dp230ed57f2208a847da4855e385ff78
Merge: c59670db c23cc657
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 8 14:46:02 2016 +0100

    Merge pull request #1783 from bluca/travis_tweetnacl

    CMake and tweetnacl CI

commit c23cc65735eeece3eb2facfa1dda7df09dp1974e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 8 12:46:49 2016 +0000

    Problem: no CMake Travis CI build

    Solution: add builds/cmake/ci_build.sh and call it from travis.yml

 .travis.yml              |  8 ++++++++
 builds/cmake/ci_build.sh | 25 +++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

commit 918c1ec620bd484eb6facbd1a0123816169f60ad
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 8 13:12:00 2016 +0000

    Problem: CMake uses command added in 2.8.12

    Solution: bump CMake required version to 2.8.12 to avoid:

    CMake Error at tests/CMakeLists.txt:110 (target_include_directories):
      Unknown CMake command "target_include_directories".

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 84544ca6e28ecb5409bc991a42ed2c4c36327367
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 8 11:15:25 2016 +0000

    Problem: no CI build with tweetnacl

    Solution: add builds/tweetnacl/ci_build.sh and add it in travis.yml

 .travis.yml                  |  1 +
 builds/tweetnacl/ci_build.sh | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)

commit 6681bcf08cbac37a24fc9592c849ef34a3434a89
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 8 12:29:44 2016 +0000

    Problem: tweetnacl/contrib/randombytes need C++0x

    Solution: disable -pedantic when building with tweetnacl to avoid
    warning about "long long" not existing in ISO C++ 98

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit c59670dbc26757d370cfa4bd973e40aab0aacec5
Merge: 135c4112 e8665079
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 8 12:00:40 2016 +0100

    Merge pull request #1782 from minrk/configure-with-tweetnacl

    fallback on tweetnacl if libsodium is not found and not explicitly requested

commit e86650794f860dc1590c46ff13bf407af5a59047
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon Feb 8 11:58:30 2016 +0100

    fallback on tweetnacl if libsodium is not found and not explicitly requested

 configure.ac | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

commit 2902fd60b90594dbb57b9292ac1bfe9a2e02edp6
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon Feb 8 11:40:50 2016 +0100

    add --with-tweetnacl to configure

    allows building with tweetnacl without cmake

 Makefile.am  |  9 +++++++++
 configure.ac | 12 +++++++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

commit 135c4112c88105116740e46658d113c71b72bce5
Merge: 07cba230 58059939
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Feb 7 11:33:43 2016 +0000

    Merge pull request #1780 from hintjens/master

    Fixes to Windows builds

commit 58059939fc1b1e11a3b08b176532f4f76247035e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 7 12:10:17 2016 +0100

    Problem: compile warnings on Windows in new radio/dish code

    Solution: fix these.

 src/dish.cpp        |  2 +-
 src/radio.cpp       |  6 +++---
 src/udp_address.hpp |  2 --
 src/udp_engine.cpp  | 36 +++++++++++++++++-------------------
 4 files changed, 21 insertions(+), 25 deletions(-)

commit e0f02bdfb89a588c55dc29f82e6fb9f86dbd246c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 7 10:34:33 2016 +0100

    Problem: libzmq uses different build.bat style than zproject

    Solution: at least for vs2015, add vs2015/build.bat to work the
    same was as zproject.

 builds/msvc/vs2015/build.bat | 2 ++
 1 file changed, 2 insertions(+)

commit 07cba2307d14d33d2fd2d048bb86fe0be5e2e8dc
Merge: 8a1dcca8 99495bba
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 7 10:31:33 2016 +0100

    Merge pull request #1779 from obache/neatsrc/fix-a-typo-for-ZMTP-heartbeats

    Fix a typo in "Add ZMTP heartbeats" changes

commit 8a1dcca8c27d5f6a3c35a5098ba6a31020aac071
Merge: 4c675334 7cd60fdp
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 7 10:31:19 2016 +0100

    Merge pull request #1778 from obache/neatsrc/fix1768

    Change to detect POSIX Thread priority support properly

commit 4c6753346befc1b2204e1bf8837871ea1ecd5690
Merge: ffe4a1c6 273b5471
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 7 10:31:06 2016 +0100

    Merge pull request #1777 from brian-peloton/master

    Use memcpy instead of assuming option values are aligned

commit 99495bbab87cc53e909a66a0cd179e78e7dfa2dc
Author: OBATA Akio <obache@users.noreply.github.com>
Date:   Sun Feb 7 17:09:19 2016 +0900

    Fix a typo in "Add ZMTP heartbeats" changes

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

commit 7cd60fdp593fbd73af53a61d10f09d8b1dff7a4b
Author: OBATA Akio <obache@users.noreply.github.com>
Date:   Sun Feb 7 16:43:46 2016 +0900

    Change to detect POSIX Thread priority support properly

 src/thread.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 273b54715e3b0ed0da67df6d863ac44293239640
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Sat Feb 6 22:20:42 2016 -0500

    Use memcpy instead of assuming option values are aligned

    Otherwise, it's undefined behavior. ubsan catches alignment issues in
    the libzmq test suite without this.

 src/dealer.cpp  | 3 ++-
 src/options.cpp | 3 ++-
 src/req.cpp     | 3 ++-
 src/router.cpp  | 3 ++-
 src/stream.cpp  | 3 ++-
 5 files changed, 10 insertions(+), 5 deletions(-)

commit ffe4a1c615cafe89848987b9e818f352a2494173
Merge: 39563d70 a1f51b69
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 6 14:26:03 2016 +0100

    Merge pull request #1776 from hintjens/master

    Refinement of #f4fe375

commit a1f51b695f85e747ac26818f37d419c20ce8b0a6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 6 14:11:21 2016 +0100

    Problem: unclear rules for passing null arguments

    Solution: be more explicit in the code, and in the zmq_recv man
    page (which is the most unobvious case). Assert if length is not
    zero and buffer is nonetheless null.

 doc/zmq_recv.txt      |  3 ++-
 src/sub.cpp           |  6 ++++--
 src/xsub.cpp          |  8 ++++++--
 src/zmq.cpp           | 22 +++++++++++++---------
 tests/test_timers.cpp |  4 ++--
 5 files changed, 27 insertions(+), 16 deletions(-)

commit 27a8961c37704f73480b6105ac0128d6ab41641b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 6 13:32:23 2016 +0100

    Problem: resolution of int optval_ was made more verbose

    There's no value in this as the same pattern is repeated in several
    places and it's fair to expect people to understand it.

    Solution: revert to the old, one-liner style.

 src/dealer.cpp  | 3 +--
 src/options.cpp | 3 +--
 src/req.cpp     | 4 ++--
 src/router.cpp  | 3 +--
 src/stream.cpp  | 4 ++--
 5 files changed, 7 insertions(+), 10 deletions(-)

commit c8318912f5c12cf76a426d75dp073fa26cddpac8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 6 13:30:44 2016 +0100

    Problem: test case is using internal API

    It is poor style for test cases to use the internal API (i.e.
    libzmq classes or header files), as this code serves the purpose
    of teaching developers how to use the library (it doesn't do this
    very well, it's an ambition).

    Also, including headers in src/ creates problems when compiling.

    Solution: remove use of src/macros.hpp.

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

commit 0d7e7bfac04a9d7777e8ea348e23f24f4aa8ab32
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 5 12:18:31 2016 +0100

    Problem: MSVC project filters were out of date

    Solution: update (with correct one from VS2015)

 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 32 +++++++++++++++++++++++-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 32 +++++++++++++++++++++++-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 30 ++++++++++++++++++++++
 3 files changed, 92 insertions(+), 2 deletions(-)

commit 39563d70c5ef86bceaa9a462620d2a43d710c70c
Merge: a9666d7f 7270d4de
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 6 13:56:45 2016 +0100

    Merge pull request #1775 from CommanderBubble/patch-2

    updates for bumped _WIN32_WINNT version with mingw builds

commit 7270d4de653e3cbd8486c1f74be2e8d5a33103d3
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 23:31:56 2016 +1100

    windows.hpp needs to be included before zmq.h

    windows.hpp must be included first due to increases _WIN32_WINNT version

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

commit a9666d7f0cfc47133715df63f0d078f21607d5e8
Merge: c9c9a777 f4fe375b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 6 13:19:31 2016 +0100

    Merge pull request #1774 from brian-peloton/master

    Don't call memcpy with 0 size and NULL pointer(s)

commit d06314df840eb671a502bf7a9a89fbd10cdpc776
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 23:19:10 2016 +1100

    added windows includes as well as unix includes

    added conditional includes for unix / windows

 tests/test_stream_exceeds_buffer.cpp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 75bea4bc13586dd59cf92d448228e949d6fad1df
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 23:03:12 2016 +1100

    update for mingw's default _WIN32_WINNT

    mingw defaults with _WIN32_WINNT as 0x0502 which doesn't define inet_pton(), so add a conditional check

 tests/test_heartbeats.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 05b5633b8dbac0fdf6625f63a414a020403364fc
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 23:01:26 2016 +1100

    update for mingw's default _WIN32_WINNT

    mingw defaults with _WIN32_WINNT as 0x0502 which doesn't define inet_pton(), so add a conditional check

 tests/test_heartbeats.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 596fd2408a672edd50fb00481d03f43187433065
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:59:58 2016 +1100

    added ZMQ_HAVE_WINDOWS check to _WIN32_WINNT usage

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

commit b98b1495af10f2d3df63a863d7a1035fdaf01b61
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:59:13 2016 +1100

    added ZMQ_HAVE_WINDOWS check to _WIN32_WINNT usage

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

commit 595181d301b19f9e70d87340cadb15b5c9371c40
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:58:38 2016 +1100

    added ZMQ_HAVE_WINDOWS check to _WIN32_WINNT usage

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

commit 56efddd1828fa261d551af3ca1fb89215ab115ac
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:55:24 2016 +1100

    remove c++11 requirement and -Werror=sign-compare

    used static_cast<signed int> around WSA_WAIT_FAILED as it is an unsigned implicitly defined as (0xFFFFFFFF ion winbase.h) and causes a comparison error.

    removed use of c++11 style initialiser list for 'sockaddr addr { 0 }' and changed it to 'sockaddr addr = { 0 }'

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

commit 988d33bcf8771e56c26109a6fd651f60865affa9
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:39:53 2016 +1100

    added windows.hpp with include check

    includes windows.hpp if on windows build for mingw build errors from including zmq.h before windows.h

 src/dish.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit f472893da14c4bc21f80dc472a0bb3022e1e2ec9
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:37:45 2016 +1100

    changed order of includes

 src/err.hpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit 3cdc9218c2714e89b2b680ff508fe2040c7c2434
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:36:37 2016 +1100

    remove include that is already in header

 src/err.cpp | 1 -
 1 file changed, 1 deletion(-)

commit def0336e9ab1c11d45092b7614be4f8e794480b3
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat Feb 6 22:26:50 2016 +1100

    increase mingw's minimum _WIN32_WINNT version

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

commit f4fe375bd1a650209c37ab3c4de09830dbe6d3f7
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Fri Feb 5 14:04:22 2016 -0500

    Don't call memcpy with 0 size and NULL pointer(s)

    It's undefined behavior, and ubsan flags it.

 src/dealer.cpp  | 3 ++-
 src/options.cpp | 3 ++-
 src/req.cpp     | 3 ++-
 src/router.cpp  | 3 ++-
 src/stream.cpp  | 3 ++-
 src/sub.cpp     | 3 ++-
 src/xsub.cpp    | 3 ++-
 src/zmq.cpp     | 6 ++++--
 8 files changed, 18 insertions(+), 9 deletions(-)

commit c9c9a777d6aaaa81db877b31b4c89785509dbd88
Merge: b9e4fa82 3641f705
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Feb 4 16:45:27 2016 -0800

    Merge pull request #1773 from bluca/libsodium_stable

    Problem: CI builds libsodium from dev branch

commit 3641f705e17b537241604c8654952d8fb5ef6020
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 4 23:47:16 2016 +0000

    Problem: CI builds libsodium from dev branch

    Solution: checkout stable branch instead.
    Several warnings are printed when building from the master branch,
    and developers recommend using the stable branch instead.

 ci_build.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9e4fa82a212c8e0374db27dabdbbefc6c7c70ea
Merge: 02120203 86aa7bb1
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Feb 4 15:40:39 2016 -0800

    Merge pull request #1772 from hintjens/master

    Problem: commit a464eec7 really broke VS2015 builds

commit 86aa7bb1bcced8dd82ed81a71231527443e65e96
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 5 00:25:59 2016 +0100

    Problem: commit a464eec7 really broke VS2015 builds

    Took me over 8 hours to track down the cause of bizarre link
    errors when building with libsodium. The VS project files are
    not simple things.

    Note to self and other maintainers: when someone is obviously
    out of their depth, do not merge their changes to build scripts
    without cynical appraisal.

    Solution: undo the damage.

 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 8 --------
 1 file changed, 8 deletions(-)

commit 02120203b20b1f8340ebc440a5927c9179028cbf
Merge: c5bf0dc0 a9dpb492
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Feb 4 14:36:59 2016 -0800

    Merge pull request #1771 from bluca/valgrind_iterator

    Problem: Valgrind reports read of freed memory

commit a9dpb492dc1ca7524d3546e875e331dadd92ab89
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Feb 4 22:21:29 2016 +0000

    Problem: Valgrind reports read of freed memory

    Solution: when iterating over a map and conditionally deleting
    elements, an erased iterator gets invalidated. Call erase using postfix
    increment on iterator to avoid using an invalid element in the next
    iteration.

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

commit c5bf0dc0a4e7d0ea848fbad81a0bf4ab7067abc4
Merge: 8b0fdd94 84ad4bf0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 4 18:51:28 2016 +0100

    Merge pull request #1770 from bluca/systemd

    Problem: no support for pre-allocated file descriptors [systemd | upstart socket-based activation]

commit 84ad4bf0ff108d53e7c6bc52d508059924b2dp67
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 1 17:03:55 2016 +0000

    Problem: cannot use new pre-allocated FD with TCP

    Solution: parse the value set by the ZMQ_PRE_ALLOCATED_FD sockopt
    when creating a new TCP socket and use it if valid.
    Add new tests/test_pre_allocated_fd_tcp.cpp unit test.

 .gitignore                          |   1 +
 Makefile.am                         |   6 ++
 src/tcp_listener.cpp                |  10 +-
 tests/CMakeLists.txt                |   1 +
 tests/test_pre_allocated_fd_tcp.cpp | 206 ++++++++++++++++++++++++++++++++++++
 5 files changed, 222 insertions(+), 2 deletions(-)

commit 9b885b7c006ee2114a83e07d2e84552b11565581
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 1 12:33:17 2016 +0000

    Problem: cannot use new pre-allocated FD with IPC

    Solution: parse the value set by the ZMQ_PRE_ALLOCATED_FD sockopt
    when creating a new IPC socket and use it if valid.
    Add new tests/test_pre_allocated_fd_ipc.cpp unit test.

 .gitignore                          |   1 +
 Makefile.am                         |   6 +
 src/ipc_listener.cpp                |  44 +++++---
 tests/CMakeLists.txt                |   1 +
 tests/test_pre_allocated_fd_ipc.cpp | 213 ++++++++++++++++++++++++++++++++++++
 5 files changed, 249 insertions(+), 16 deletions(-)

commit 4bcbb3055ebf6753a2135fb3132311603d6ea930
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 1 12:00:45 2016 +0000

    Problem: cannot use pre-allocated FDs. Fixes #777

    Solution: add new [set|get]sockopt ZMQ_PRE_ALLOCATED_FD to allow
    users to let ZMQ use a pre-allocated file descriptor instead of
    allocating a new one. Update [set|get]sockopt documentation and
    test accordingly.

    The main use case for this feature is a socket-activated systemd
    service. For more information about this feature see:
    http://0pointer.de/blog/projects/socket-activation.html

 doc/zmq_getsockopt.txt    | 13 +++++++++++++
 doc/zmq_setsockopt.txt    | 22 ++++++++++++++++++++++
 include/zmq.h             |  1 +
 src/options.cpp           | 17 ++++++++++++++++-
 src/options.hpp           |  5 +++++
 tests/test_setsockopt.cpp | 28 ++++++++++++++++++++++++++++
 6 files changed, 85 insertions(+), 1 deletion(-)

commit 8b0fdd94d339686647a62a6a7c58c0e9ee7b5796
Merge: 08cfbdef a3d9b46a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Feb 4 11:59:12 2016 +0100

    Merge pull request #1767 from hintjens/master

    Problem: Android build is slow and noisy

commit a3d9b46a60083dcf7732eaaf17b03e8d7e0774a8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 4 11:24:25 2016 +0100

    Problem: Android build is slow and noisy

    Solution: use --without-docs (changed from --without-documentation)
    and also --quiet.

 builds/android/build.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 08cfbdef7d6490a37ca17eead8a216c56027a48b
Merge: 8fad51c2 31d181ef
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Feb 3 15:12:02 2016 -0800

    Merge pull request #1766 from hintjens/master

    Problem: MSVC build does not detect libsodium

commit 31d181effb99dadpce8e7b572455e7f067286828
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 3 23:40:32 2016 +0100

    Problem: MSVC build does not detect libsodium

    Caused by error in last commit which used HAVE_LIBSODIUM instead
    of HAVE_SODIUM.

    Solution: use HAVE_LIBSODIUM as we do in other configure scripts.

    The project is called 'libsodium' and not 'sodium'.

 builds/msvc/vs2015/inproc_lat/inproc_lat.props | 10 +++++-----
 builds/msvc/vs2015/inproc_thr/inproc_thr.props | 10 +++++-----
 builds/msvc/vs2015/libzmq/libzmq.props         | 10 +++++-----
 builds/msvc/vs2015/local_lat/local_lat.props   | 10 +++++-----
 builds/msvc/vs2015/local_thr/local_thr.props   | 10 +++++-----
 builds/msvc/vs2015/remote_lat/remote_lat.props | 10 +++++-----
 builds/msvc/vs2015/remote_thr/remote_thr.props | 10 +++++-----
 7 files changed, 35 insertions(+), 35 deletions(-)

commit 8fad51c2707802dfefc369fe9dbc75bcb0cc4436
Merge: 3d9984ef 6a9af8ed
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Feb 3 22:52:02 2016 +0100

    Merge pull request #1765 from hintjens/master

    Windows command-line build is now configurable

commit 6a9af8ed628adpea9b2d5420d91b5dp3865ec679
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 3 21:12:29 2016 +0100

    Problem: can't build without libsodium from command line (MSVC)

    There is an option to enable/disable libsodium via the Visual Studio
    UI. This is not practical for command-line usage (via msbuild).

    Solution: add configure.bat that searches for libsodium in sibling
    directory to libzmq; if it finds it, defines HAVE_LIBSODIUM 1.

    This is consistent with zproject, which has the same problem and
    is getting the same solution for all dependency resolution on
    Windows.

    Note that this approach also provides a way to support tweetnacl
    via a configure option.

    Also, removed duplicate props files and re-copy in configure.bat
    as it was an insane nightmare to update these by hand. (and not
    clear that they were identical. Now it's forced.)

 builds/msvc/build/buildall.bat                 | 14 +++---
 builds/msvc/build/buildbase.bat                | 35 ++++++++-----
 builds/msvc/configure.bat                      | 57 +++++++++++++++++++++
 builds/msvc/platform.hpp                       | 42 +---------------
 builds/msvc/vs2010/inproc_lat/inproc_lat.props | 48 ------------------
 builds/msvc/vs2010/inproc_thr/inproc_thr.props | 48 ------------------
 builds/msvc/vs2010/libzmq.import.props         |  7 +--
 builds/msvc/vs2010/libzmq.import.xml           |  7 +--
 builds/msvc/vs2010/libzmq/libzmq.props         | 69 --------------------------
 builds/msvc/vs2010/libzmq/libzmq.xml           |  7 +--
 builds/msvc/vs2010/local_lat/local_lat.props   | 48 ------------------
 builds/msvc/vs2010/local_thr/local_thr.props   | 48 ------------------
 builds/msvc/vs2010/remote_lat/remote_lat.props | 48 ------------------
 builds/msvc/vs2010/remote_thr/remote_thr.props | 48 ------------------
 builds/msvc/vs2012/inproc_lat/inproc_lat.props | 48 ------------------
 builds/msvc/vs2012/inproc_thr/inproc_thr.props | 48 ------------------
 builds/msvc/vs2012/libzmq.import.props         |  9 +---
 builds/msvc/vs2012/libzmq.import.xml           |  7 +--
 builds/msvc/vs2012/libzmq/libzmq.props         | 69 --------------------------
 builds/msvc/vs2012/libzmq/libzmq.xml           |  7 +--
 builds/msvc/vs2012/local_lat/local_lat.props   | 48 ------------------
 builds/msvc/vs2012/local_thr/local_thr.props   | 48 ------------------
 builds/msvc/vs2012/remote_lat/remote_lat.props | 48 ------------------
 builds/msvc/vs2012/remote_thr/remote_thr.props | 48 ------------------
 builds/msvc/vs2013/inproc_lat/inproc_lat.props | 48 ------------------
 builds/msvc/vs2013/inproc_thr/inproc_thr.props | 48 ------------------
 builds/msvc/vs2013/libzmq.import.props         |  7 +--
 builds/msvc/vs2013/libzmq.import.xml           |  7 +--
 builds/msvc/vs2013/libzmq/libzmq.props         | 69 --------------------------
 builds/msvc/vs2013/libzmq/libzmq.xml           |  7 +--
 builds/msvc/vs2013/local_lat/local_lat.props   | 48 ------------------
 builds/msvc/vs2013/local_thr/local_thr.props   | 48 ------------------
 builds/msvc/vs2013/remote_lat/remote_lat.props | 48 ------------------
 builds/msvc/vs2013/remote_thr/remote_thr.props | 48 ------------------
 builds/msvc/vs2015/inproc_lat/inproc_lat.props | 10 ++--
 builds/msvc/vs2015/inproc_thr/inproc_thr.props | 10 ++--
 builds/msvc/vs2015/libzmq.import.props         |  7 +--
 builds/msvc/vs2015/libzmq.import.xml           |  7 +--
 builds/msvc/vs2015/libzmq/libzmq.props         | 16 ++----
 builds/msvc/vs2015/libzmq/libzmq.xml           |  7 +--
 builds/msvc/vs2015/local_lat/local_lat.props   | 10 ++--
 builds/msvc/vs2015/local_thr/local_thr.props   | 10 ++--
 builds/msvc/vs2015/remote_lat/remote_lat.props | 10 ++--
 builds/msvc/vs2015/remote_thr/remote_thr.props | 10 ++--
 44 files changed, 136 insertions(+), 1245 deletions(-)

commit 984699c4279c32749969c79fa506e82dc0d1b430
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 3 17:04:04 2016 +0100

    Problem: was ignoring directories with build files

    Solution: fix .gitignore

 .gitignore | 6 ++++++
 1 file changed, 6 insertions(+)

commit d7a7f48918ccad3834c7548e8f8f1842e985a81b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Feb 1 12:44:30 2016 +0000

    Problem: my name is not in the AUTHORS file

    Solution: add myself to the list

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 3d9984efe27f02e5f03af4a0cf758c9ab95bfb2a
Merge: ad286d94 538e5d47
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 3 16:21:53 2016 +0100

    Merge pull request #1764 from GreatFruitOmsk/master

    Make VMCI work on Windows

commit ad286d94422cdbc1e25b2511d1f5dp73b25d287e
Merge: 0329402d f38062e6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Feb 3 15:05:09 2016 +0100

    Merge pull request #1763 from CommanderBubble/patch-1

    configure doesn't correctly determine mingw64

commit bfc42d47ec85734c964be19764f988722e06c2f4
Merge: 1bfff06b 0329402d
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Thu Feb 4 00:21:02 2016 +1100

    Merge pull request #4 from zeromq/master

    update fork to master

commit 538e5d47421f45d88a8b3b005ed9ee4026623a7b
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Wed Feb 3 19:12:11 2016 +0600

    Make VMCI to work on Windows.

    select was improved to support multiple service providers on Windows.
    it should be slightly faster because of optimized iteration
    over selected sockets.

 src/select.cpp         | 404 +++++++++++++++++++++++++++++++++++++++----------
 src/select.hpp         |  71 ++++++---
 src/vmci.cpp           |   8 +-
 src/vmci_connecter.cpp |  65 ++++++--
 src/vmci_connecter.hpp |   4 +-
 src/vmci_listener.cpp  |  47 +++++-
 6 files changed, 477 insertions(+), 122 deletions(-)

commit d7e59d6188b88dc3efa978f9d27e9d26d13049ef
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Wed Feb 3 19:00:51 2016 +0600

    Fix integer overflow error when calculating throughput.

 perf/local_thr.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f38062e6e3be6687ca851a9806ed1db3ce2c4159
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Wed Feb 3 23:54:22 2016 +1100

    fix configure errors for 64bit mingw

    changes the search pattern for host_os from *mingw32* to *mingw* so that mingw64 can be used, and any mingw32 variable name change to mingw.

 acinclude.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0463926db8e3ef57abaf75a1d8dpa317a7053f4f
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Wed Feb 3 23:51:52 2016 +1100

    change references from mingw32 to mingw

    conformity update for mingw32 variables to mingw

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

commit bdda5189f087568f51473edf30bf67bf6a965d33
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Wed Feb 3 23:38:33 2016 +1100

    fix configure errors for 64bit mingw

    changes the search pattern for host_os from *mingw32* to *mingw* so that mingw64 can be used

 acinclude.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0329402d0abe4bde6b6932701d8b79404b6c5751
Merge: 963dffb5 d218e038
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Feb 2 23:19:53 2016 +0100

    Merge pull request #1762 from hintjens/master

    Fixed VS2015 build

commit d218e038847edc70b4156347e842eab970d0df8e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 2 22:49:15 2016 +0100

    Problem: project files have tool version in two places

    Leading to extra work when copying between versions of VS.

    Solution: remove second unnecessary definition.

 builds/msvc/vs2010/local_thr/local_thr.vcxproj   | 4 ----
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj | 4 ----
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   | 4 ----
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj | 4 ----
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   | 4 ----
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj | 4 ----
 builds/msvc/vs2015/local_thr/local_thr.vcxproj   | 4 ----
 builds/msvc/vs2015/remote_lat/remote_lat.vcxproj | 4 ----
 8 files changed, 32 deletions(-)

commit 4ce9c7c7426e06d403515739f5a768d8deb78aa1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 2 22:31:18 2016 +0100

    Problem: does not build on VS2015

    Solution: add missing project files

    (Also, updated FD_SETSIZE to 16K as a bonus.)

 builds/msvc/vs2010/libzmq/libzmq.props           |  2 +-
 builds/msvc/vs2012/libzmq/libzmq.props           |  2 +-
 builds/msvc/vs2013/libzmq/libzmq.props           |  2 +-
 builds/msvc/vs2015/inproc_lat/inproc_lat.props   | 48 ++++++++++++++
 builds/msvc/vs2015/inproc_lat/inproc_lat.vcxproj | 79 ++++++++++++++++++++++
 builds/msvc/vs2015/inproc_thr/inproc_thr.props   | 48 ++++++++++++++
 builds/msvc/vs2015/inproc_thr/inproc_thr.vcxproj | 79 ++++++++++++++++++++++
 builds/msvc/vs2015/libzmq/libzmq.props           |  2 +-
 builds/msvc/vs2015/local_lat/local_lat.props     | 48 ++++++++++++++
 builds/msvc/vs2015/local_lat/local_lat.vcxproj   | 79 ++++++++++++++++++++++
 builds/msvc/vs2015/local_thr/local_thr.props     | 48 ++++++++++++++
 builds/msvc/vs2015/local_thr/local_thr.vcxproj   | 83 ++++++++++++++++++++++++
 builds/msvc/vs2015/remote_lat/remote_lat.props   | 48 ++++++++++++++
 builds/msvc/vs2015/remote_lat/remote_lat.vcxproj | 83 ++++++++++++++++++++++++
 builds/msvc/vs2015/remote_thr/remote_thr.props   | 48 ++++++++++++++
 builds/msvc/vs2015/remote_thr/remote_thr.vcxproj | 79 ++++++++++++++++++++++
 16 files changed, 774 insertions(+), 4 deletions(-)

commit 963dffb54a1a32a9cc0aa01e4399d925f6e78565
Merge: c6b11dp4 b92055fa
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Feb 2 22:30:18 2016 +0100

    Merge pull request #1760 from hintjens/master

    Problem: not building on VS2015

commit b92055fa567ee3d8659dfa6a2b2131310584bd2e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 2 22:05:13 2016 +0100

    Problem: not building on VS2015

    Solution: fixed project files, and warning in timers.cpp

 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 8 ++++----
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 8 ++++----
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 8 ++++----
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 6 ++----
 src/timers.cpp                           | 4 ++--
 5 files changed, 16 insertions(+), 18 deletions(-)

commit c6b11dp4a7113a9e42aa4056ea724a63e5a87c45
Merge: c143a7d3 44c6b048
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 23:02:32 2016 +0100

    Merge pull request #1758 from zeromq/revert-1757-revert-1756-replace-zmq-term

    Revert "Revert "Problem: deprecated use and reference of `zmq_term`""

commit 44c6b0484ea62e5815b98d491f592267a6f0639c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 1 23:00:06 2016 +0100

    Revert "Revert "Problem: deprecated use and reference of `zmq_term`""

 builds/zos/test_fork.cpp             |  2 +-
 doc/zmq_close.txt                    |  6 +++---
 doc/zmq_ctx_set.txt                  |  2 +-
 doc/zmq_disconnect.txt               |  4 ++--
 doc/zmq_getsockopt.txt               |  6 +++---
 doc/zmq_init.txt                     |  2 +-
 doc/zmq_setsockopt.txt               |  8 ++++----
 perf/inproc_lat.cpp                  |  4 ++--
 perf/inproc_thr.cpp                  |  4 ++--
 perf/local_lat.cpp                   |  4 ++--
 perf/local_thr.cpp                   |  4 ++--
 perf/remote_lat.cpp                  |  4 ++--
 perf/remote_thr.cpp                  |  4 ++--
 src/ctx.cpp                          | 10 +++++-----
 src/ctx.hpp                          | 10 +++++-----
 src/socket_base.cpp                  |  6 +++---
 tests/test_conflate.cpp              |  2 +-
 tests/test_connect_delay_tipc.cpp    |  6 +++---
 tests/test_fork.cpp                  |  2 +-
 tests/test_pair_tipc.cpp             |  2 +-
 tests/test_reqrep_device_tipc.cpp    |  2 +-
 tests/test_reqrep_tipc.cpp           |  2 +-
 tests/test_router_mandatory_tipc.cpp |  2 +-
 tests/test_shutdown_stress_tipc.cpp  |  2 +-
 tests/test_sub_forward_tipc.cpp      |  2 +-
 tests/test_term_endpoint_tipc.cpp    |  4 ++--
 26 files changed, 53 insertions(+), 53 deletions(-)

commit c143a7d3977d8700c37093c8cb3d4b55851d8c39
Merge: d44a8ccd 1708bfef
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 22:46:54 2016 +0100

    Merge pull request #1757 from zeromq/revert-1756-replace-zmq-term

    Revert "Problem: deprecated use and reference of `zmq_term`"

commit 1708bfefb7064d428f425dc96770ad3002779a5a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 1 22:41:51 2016 +0100

    Revert "Problem: deprecated use and reference of `zmq_term`"

 builds/zos/test_fork.cpp             |  2 +-
 doc/zmq_close.txt                    |  6 +++---
 doc/zmq_ctx_set.txt                  |  2 +-
 doc/zmq_disconnect.txt               |  4 ++--
 doc/zmq_getsockopt.txt               |  6 +++---
 doc/zmq_init.txt                     |  2 +-
 doc/zmq_setsockopt.txt               |  8 ++++----
 perf/inproc_lat.cpp                  |  4 ++--
 perf/inproc_thr.cpp                  |  4 ++--
 perf/local_lat.cpp                   |  4 ++--
 perf/local_thr.cpp                   |  4 ++--
 perf/remote_lat.cpp                  |  4 ++--
 perf/remote_thr.cpp                  |  4 ++--
 src/ctx.cpp                          | 10 +++++-----
 src/ctx.hpp                          | 10 +++++-----
 src/socket_base.cpp                  |  6 +++---
 tests/test_conflate.cpp              |  2 +-
 tests/test_connect_delay_tipc.cpp    |  6 +++---
 tests/test_fork.cpp                  |  2 +-
 tests/test_pair_tipc.cpp             |  2 +-
 tests/test_reqrep_device_tipc.cpp    |  2 +-
 tests/test_reqrep_tipc.cpp           |  2 +-
 tests/test_router_mandatory_tipc.cpp |  2 +-
 tests/test_shutdown_stress_tipc.cpp  |  2 +-
 tests/test_sub_forward_tipc.cpp      |  2 +-
 tests/test_term_endpoint_tipc.cpp    |  4 ++--
 26 files changed, 53 insertions(+), 53 deletions(-)

commit d44a8ccddbe1098590dd1ad6cdd303f7b4f7fd7e
Merge: d92e4090 a26bb743
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Mon Feb 1 13:35:33 2016 -0800

    Merge pull request #1756 from c-rack/replace-zmq-term

    Problem: deprecated use and reference of `zmq_term`

commit a26bb743d48d14dc17408fde2b26ceb65989fe99
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 22:00:35 2016 +0100

    Problem: docs are still referring to deprecated `zmq_term`

    Solution: Replace with `zmq_ctx_term`

 builds/zos/test_fork.cpp | 2 +-
 doc/zmq_close.txt        | 6 +++---
 doc/zmq_ctx_set.txt      | 2 +-
 doc/zmq_disconnect.txt   | 4 ++--
 doc/zmq_getsockopt.txt   | 6 +++---
 doc/zmq_init.txt         | 2 +-
 doc/zmq_setsockopt.txt   | 8 ++++----
 7 files changed, 15 insertions(+), 15 deletions(-)

commit 589464ced9035b58053942e6b547b2966f3dc05e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 21:51:54 2016 +0100

    Problem: comments still refer to deprecated `zmq_term`.

    Solution: replace with `zmq_ctx_term`

    Also fix whitespace (tabs instead of spaces)

 src/ctx.cpp         | 10 +++++-----
 src/ctx.hpp         | 10 +++++-----
 src/socket_base.cpp |  6 +++---
 3 files changed, 13 insertions(+), 13 deletions(-)

commit 10d9ef8a5f4dfba792dc73e9c532e97a27b8f084
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 21:44:01 2016 +0100

    Problem: perf use deprecated `zmq_term`

    Solution: replace all occurrences with `zmq_ctx_term`

 perf/inproc_lat.cpp | 4 ++--
 perf/inproc_thr.cpp | 4 ++--
 perf/local_lat.cpp  | 4 ++--
 perf/local_thr.cpp  | 4 ++--
 perf/remote_lat.cpp | 4 ++--
 perf/remote_thr.cpp | 4 ++--
 6 files changed, 12 insertions(+), 12 deletions(-)

commit 0d171563d0b6a0bbb3062610b460f2e92acc5795
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 21:40:24 2016 +0100

    Problem: tests use deprecated `zmq_term` function

    Solution: replace all occurrences with `zmq_ctx_term`

 tests/test_conflate.cpp              | 2 +-
 tests/test_connect_delay_tipc.cpp    | 6 +++---
 tests/test_fork.cpp                  | 2 +-
 tests/test_pair_tipc.cpp             | 2 +-
 tests/test_reqrep_device_tipc.cpp    | 2 +-
 tests/test_reqrep_tipc.cpp           | 2 +-
 tests/test_router_mandatory_tipc.cpp | 2 +-
 tests/test_shutdown_stress_tipc.cpp  | 2 +-
 tests/test_sub_forward_tipc.cpp      | 2 +-
 tests/test_term_endpoint_tipc.cpp    | 4 ++--
 10 files changed, 13 insertions(+), 13 deletions(-)

commit d92e40901de893a8a03d33323f93ab877944b02e
Merge: e1254e10 a72cb5d4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 21:30:08 2016 +0100

    Merge pull request #1755 from UsamaMehboob/master

    fixed issue #1754

commit a72cb5d43d6eb140d494a9e6f0dc5a5800b4b950
Author: Usama Mehboob <10beeumehboob@seecs.edu.pk>
Date:   Tue Feb 2 01:17:12 2016 +0500

    added #include<unistd.h> in udp_engine.cpp to solve error 'close was not declared in scope'

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

commit e1254e100e0409e336fbcdb417247a2e3c90fd47
Merge: 435535ce 7da3ee13
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 1 12:05:01 2016 +0100

    Merge pull request #1751 from c-rack/remove-zmq-utils-includes

    Problem: deprecated `zmq_utils.h` is still included

commit 7da3ee138ea48bcdf9ee06fb0efe81612ceba5f7
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 11:34:36 2016 +0100

    Problem: deprecated `zmq_utils.h` is still included

    Solution: remove all remaining references to `zmq_utils.h`

 CMakeLists.txt                     | 3 +--
 include/zmq.h                      | 4 ++--
 packaging/redhat/zeromq.spec.in    | 1 -
 perf/inproc_lat.cpp                | 1 -
 perf/inproc_thr.cpp                | 1 -
 perf/local_lat.cpp                 | 1 -
 perf/local_thr.cpp                 | 1 -
 perf/remote_lat.cpp                | 1 -
 perf/remote_thr.cpp                | 1 -
 src/zmq_utils.cpp                  | 1 -
 tests/test_poller.cpp              | 1 -
 tests/test_proxy.cpp               | 1 -
 tests/test_proxy_single_socket.cpp | 1 -
 tests/test_proxy_terminate.cpp     | 1 -
 tests/test_sub_forward_tipc.cpp    | 1 -
 tests/test_term_endpoint_tipc.cpp  | 1 -
 tests/test_timers.cpp              | 1 -
 17 files changed, 3 insertions(+), 19 deletions(-)

commit 435535ce92d6b0b05b2ee1f0917a6a25411706aa
Merge: 3cf6c331 6f94af8c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 11:22:13 2016 +0100

    Merge pull request #1750 from hintjens/master

    Problem: various errors in build scripts

commit 6f94af8ccabb32cac2d232f40b8d7dbf80a7f391
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 1 11:18:08 2016 +0100

    Problem: various errors in build scripts

    - zmq_utils.h was removed
    - udp_address.cpp and udp_engine.cpp were added

    Solution: patch all affected build scripts

 Makefile.am                                      |  4 +---
 builds/cygwin/Makefile.cygwin                    |  1 +
 builds/mingw32/Makefile.mingw32                  |  1 +
 builds/msvc/vs2008/libzmq/libzmq.vcproj          |  8 ++++++--
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  9 ++++++---
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters |  5 +----
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         |  9 ++++++---
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters |  5 +----
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  9 ++++++---
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters |  5 +----
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         | 13 +++++++------
 builds/msvc/vs2015/libzmq/libzmq.vcxproj.filters |  5 +----
 src/options.cpp                                  |  1 -
 13 files changed, 38 insertions(+), 37 deletions(-)

commit 3cf6c33132726494c4cc98b0269ea31cddd8dabb
Merge: d7ef68d6 9b01dp82
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 1 10:25:17 2016 +0100

    Merge pull request #1748 from sunkin351/master

    Added "udp_address" and "udp_engine" to VS2015 project

commit 9b01dp826e682d32134a5931ccfe2eda1af19351
Author: sunkin351 <17joshuanewcomb@gmail.com>
Date:   Sun Jan 31 20:19:04 2016 -0800

    Restoring zmq_utils.h from previous version

    I hope restoring this from a previous version doesn't do any damage, it
    is missing in the current version of this repository and is vital for
    the lib to compile anywhere.

 builds/msvc/vs2015/libzmq/libzmq.vcxproj.filters | 24 ++++++++++++++-----
 include/zmq_utils.h                              | 30 ++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 6 deletions(-)

commit a464eec7df7749cdecaa5bcb64e3c1cbb11366ba
Author: sunkin351 <17joshuanewcomb@gmail.com>
Date:   Sun Jan 31 17:54:31 2016 -0800

    Added "udp_address" and "udp_engine" to enable windows build

    Altered VS2015 files to enable building of the library.

 builds/msvc/vs2015/libzmq/libzmq.vcxproj         | 14 +++++++++++++-
 builds/msvc/vs2015/libzmq/libzmq.vcxproj.filters | 18 ++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

commit d7ef68d6b73b17bc3348353b671cf5a9a049d648
Merge: 8dbda15e af775c0c
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Sun Jan 31 17:31:47 2016 -0800

    Merge pull request #1747 from c-rack/remove-zmq-utils-h

    Problem: `zmq_utils.h` is deprecated since 2014-07-09

commit af775c0c8b705d34cb92c1041a441307a23ee5f5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Feb 1 00:54:53 2016 +0100

    Problem: `zmq_utils.h` is deprecated since 2014-07-09

    Solution: remove this file

 include/zmq_utils.h | 30 ------------------------------
 1 file changed, 30 deletions(-)

commit 8dbda15e21d048d163b1da7e7e3c8321d6e6b06d
Merge: 4f4e4753 389e853c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jan 30 22:23:35 2016 +0100

    Merge pull request #1745 from somdoron/master

commit 4f4e4753317ccd738ba22171bd85800f550f1856
Merge: add4e767 cdec4dc9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jan 30 22:23:09 2016 +0100

    Merge pull request #1746 from minrk/allow-underscore-dns

commit cdec4dc9ee51458f991ad6778dp3244accef621a
Author: Min RK <benjaminrk@gmail.com>
Date:   Sat Jan 30 21:29:20 2016 +0100

    allow underscores in domain names

    Since they are allowed

    (They are not, however, allowed in hostnames)

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

commit 389e853c6d5061d47903ce4ab4847cf40dab9bf9
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jan 30 13:21:08 2016 +0200

    Fix compilation errors on windows

 src/udp_address.cpp       |  6 +---
 src/udp_engine.cpp        | 88 ++++++++++++++++++++++++++++++-----------------
 tests/test_radio_dish.cpp |  1 +
 tests/test_udp.cpp        |  5 +--
 4 files changed, 61 insertions(+), 39 deletions(-)

commit add4e7675f3ea4568f46b317f3ea6badefcddb41
Merge: 318dd7c7 2cb8da3b
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jan 30 09:08:09 2016 +0100

    Merge pull request #1744 from jcfr/fix-gcc-warnings

    Fix unused-parameter/unused-but-set-variable/missing-field-initializers warnings

commit 318dd7c7174c334ba9025a55e2d08a72caa1a08f
Merge: 73f73dda 05e48cc6
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jan 30 09:06:57 2016 +0100

    Merge pull request #1743 from jcfr/add-missing-ctest-tests

    ctest: Add missing test_udp and test_large_msg

commit 73f73ddaa9b3bc5fdf79065655c1ab7a8fcedbd4
Merge: b784943f cf5c288d
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Jan 30 09:06:40 2016 +0100

    Merge pull request #1742 from jemc/master

    Problem: `udp_address::interface` conflicts with VS2015 build.

commit 2cb8da3bfd0865242f0ddbb876333851b206e02d
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date:   Sat Jan 30 02:54:43 2016 -0500

    Style: Fix -Wmissing-field-initializers in socket_poller.cpp

    This commit addresses the following warnings reported on gcc 5.2.1. In
    the future, this will help reduce the "noise" and help catch warnings
    revealing a serious problem.

    It was originally introduce in the refactoring associated with
    zeromq/libzmq@da2bc60 (Removing zmq_pollfd as it is replaced by zmq_poller).

    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
    /path/to/libzmq/src/socket_poller.cpp: In member function ‘int zmq::socket_poller_t::add(zmq::socket_base_t*, void*, short int)’:
    /path/to/libzmq/src/socket_poller.cpp:92:51: warning: missing initializer for member ‘zmq::socket_poller_t::item_t::pollfd_index’ [-Wmissing-field-initializers]
         item_t item = {socket_, 0, user_data_, events_};
                                                       ^
    /path/to/libzmq/src/socket_poller.cpp: In member function ‘int zmq::socket_poller_t::add_fd(zmq::fd_t, void*, short int)’:
    /path/to/libzmq/src/socket_poller.cpp:108:50: warning: missing initializer for member ‘zmq::socket_poller_t::item_t::pollfd_index’ [-Wmissing-field-initializers]
         item_t item = {NULL, fd_, user_data_, events_};
                                                      ^
    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---

 src/socket_poller.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 46b02338e38ac79d6dp4e41b7c3acf5fe34fd16a
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date:   Sat Jan 30 02:44:09 2016 -0500

    Style: Fix -Wunused-but-set-variable in test_stream_exceeds_buffer.cpp

    This commit addresses the following warnings reported on gcc 5.2.1. In
    the future, this will help reduce the "noise" and help catch warnings
    revealing a serious problem.

    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
    /path/to/libzmq/tests/test_stream_exceeds_buffer.cpp: In function ‘int main()’:
    /path/to/libzmq/tests/test_stream_exceeds_buffer.cpp:19:9: warning: variable ‘rc’ set but not used [-Wunused-but-set-variable]
         int rc = setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(enable));
             ^
    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---

 tests/test_stream_exceeds_buffer.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit f329252dcbc146b53d818df13fed5605718eb413
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date:   Sat Jan 30 02:31:23 2016 -0500

    Style: Fix unused parameter compilation warnings

    This commit addresses the following warnings reported on gcc 5.2.1. In
    the future, this will help reduce the "noise" and help catch warnings
    revealing a serious problem.

    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
    /path/to/libzmq/src/options.cpp:1048:36: warning: unused parameter ‘option_’ [-Wunused-parameter]
     bool zmq::options_t::is_valid (int option_) const
                                        ^

    /path/to/libzmq/src/plain_client.cpp:146:30: warning: unused parameter ‘cmd_data’ [-Wunused-parameter]
             const unsigned char *cmd_data, size_t data_size)
                                  ^

    /path/to/libzmq/src/plain_client.cpp:146:30: warning: unused parameter ‘cmd_data’ [-Wunused-parameter]
             const unsigned char *cmd_data, size_t data_size)
                                  ^

    /path/to/libzmq/src/socket_base.cpp:1445:44: warning: unused parameter ‘group_’ [-Wunused-parameter]
     int zmq::socket_base_t::xjoin (const char *group_)
                                                ^
    /path/to/libzmq/src/socket_base.cpp:1451:45: warning: unused parameter ‘group_’ [-Wunused-parameter]
     int zmq::socket_base_t::xleave (const char *group_)
                                                 ^

    /path/to/libzmq/src/radio.cpp:145:33: warning: unused parameter ‘msg_’ [-Wunused-parameter]
     int zmq::radio_t::xrecv (msg_t *msg_)
                                     ^
    /path/to/libzmq/src/dish.cpp:164:32: warning: unused parameter ‘msg_’ [-Wunused-parameter]
     int zmq::dish_t::xsend (msg_t *msg_)
                                    ^

    /path/to/libzmq/tests/test_msg_ffn.cpp:32:16: warning: unused parameter ‘data’ [-Wunused-parameter]
     void ffn(void *data, void *hint) {
                    ^

    /path/to/libzmq/tests/test_timers.cpp:50:19: warning: unused parameter ‘timer_id’ [-Wunused-parameter]
     void handler (int timer_id, void* arg)
                       ^
    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---

 src/dish.cpp           | 1 +
 src/options.cpp        | 2 ++
 src/plain_client.cpp   | 3 +++
 src/radio.cpp          | 1 +
 src/socket_base.cpp    | 2 ++
 tests/test_msg_ffn.cpp | 2 ++
 tests/test_timers.cpp  | 2 ++
 7 files changed, 13 insertions(+)

commit 05e48cc6a9a4c0249ad61e8de69ac0a850b71c62
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date:   Sat Jan 30 02:10:01 2016 -0500

    ctest: Add missing test_udp and test_large_msg

    This commit fixes the author warnings reported below. These tests
    have originally been introduced in zeromq/libzmq@5ebfd17 and
    zeromq/libzmq@5fe75f0.

    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
    CMake Warning (dev) at tests/CMakeLists.txt:133 (message):
      Test 'test_udp' is not known to CTest.
    This warning is for project developers.  Use -Wno-dev to suppress it.

    CMake Warning (dev) at tests/CMakeLists.txt:133 (message):
      Test 'test_large_msg' is not known to CTest.
    This warning is for project developers.  Use -Wno-dev to suppress it.
    8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---

 tests/CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit cf5c288dda778a2d1ab1a6a55cc74d635530bd4d
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri Jan 29 19:50:04 2016 -0800

    Rename `udp_address::interface` to `iface` for VS2015 build.
    Resolves #1739.

 src/udp_address.cpp | 6 +++---
 src/udp_address.hpp | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit b784943f90d8457b76f6bb45594f953743dcc30e
Merge: a2b9d826 5ebfd172
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 29 20:23:10 2016 +0100

    Merge pull request #1737 from somdoron/radio-dish

    Problem: no udp/multicast support in zeromq

commit 5ebfd1728f2276b9aa4f3c1bac6b489d7edp20dp
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Jan 29 21:17:11 2016 +0200

    make udp support for radio-dish

 .gitignore           |   1 +
 CMakeLists.txt       |   4 +-
 Makefile.am          |   9 ++-
 src/address.cpp      |  10 +++
 src/address.hpp      |   2 +
 src/radio.cpp        |  13 ++-
 src/radio.hpp        |   5 ++
 src/session_base.cpp |  29 ++++++-
 src/socket_base.cpp  |  24 +++++-
 src/udp_address.cpp  | 166 ++++++++++++++++++++++++++++++++++++++
 src/udp_address.hpp  |  84 +++++++++++++++++++
 src/udp_engine.cpp   | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/udp_engine.hpp   |  62 ++++++++++++++
 tests/test_udp.cpp   | 121 ++++++++++++++++++++++++++++
 14 files changed, 744 insertions(+), 8 deletions(-)

commit a2b9d826e4eb537196d4015a3fd06b9990e155ac
Merge: 1bcb0a73 2dp4c55b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 29 11:24:33 2016 +0100

    Merge pull request #1735 from hintjens/master

    Problem: radio/dish class broke Windows builds

commit 2dp4c55bf533f2ea1df6bd5c304f1d132eefb7e3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 29 11:07:21 2016 +0100

    Problem: radio/dish class broke Windows builds

    Solution: add these new classes to MSVC project files

 builds/msvc/vs2008/libzmq/libzmq.vcproj  | 4 ++++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 4 ++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 4 ++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 4 ++++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 4 ++++
 5 files changed, 20 insertions(+)

commit 1bcb0a737eb12fc6de593f62c650686c27c5df74
Merge: e4243886 1960b4e8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 29 10:17:54 2016 +0100

    Merge pull request #1734 from somdoron/radio-dish

    problem: radio-dish is still hacky

commit 1960b4e8a9ec151b924d8189fea415c3e35ec550
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jan 28 19:29:06 2016 +0200

    Filtering messages on dish side

 src/dish.cpp              | 51 ++++++++++++++++++++++++++++-------------------
 src/dish.hpp              |  2 +-
 tests/test_radio_dish.cpp |  2 +-
 3 files changed, 33 insertions(+), 22 deletions(-)

commit c7d52ec260e0168c53e795e389501d55f25aa708
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jan 28 18:20:01 2016 +0200

    radio-dish join/leave are ZMTP commands

 src/dish.cpp  | 90 +++++++++++++++++++++++++++++++++++++++++------------------
 src/dish.hpp  |  1 +
 src/msg.cpp   | 32 +++++++++++++++++++++
 src/msg.hpp   | 13 +++++++--
 src/radio.cpp | 60 +++++++++++++++++++++++++++++++++------
 src/radio.hpp |  1 +
 6 files changed, 160 insertions(+), 37 deletions(-)

commit 5054f2eb6163dd448d475b539ee75df781da972e
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jan 28 15:26:07 2016 +0200

    radio-dish is sending the group as first frame

 src/dish.cpp              | 64 +++++++++++++++++++++++++++++++++++++++++++++++
 src/dish.hpp              | 28 ++++++++++++++++++++-
 src/msg.cpp               | 10 ++++++--
 src/msg.hpp               |  1 +
 src/radio.cpp             | 47 ++++++++++++++++++++++++++++++++--
 src/radio.hpp             | 24 ++++++++++++++++++
 src/session_base.cpp      | 12 +++++++--
 tests/test_radio_dish.cpp |  4 +--
 8 files changed, 181 insertions(+), 9 deletions(-)

commit 68675e23d987b013a70a15c35bf6d9f5235361aa
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jan 28 13:43:23 2016 +0200

    adds group to zmq_msg

 include/zmq.h             |   4 +-
 src/msg.cpp               |  25 +++++++++++
 src/msg.hpp               |  16 ++++++-
 src/radio.cpp             |  25 +----------
 src/zmq.cpp               |  10 +++++
 tests/test_radio_dish.cpp | 111 +++++++++++++++++++++++++++++++++-------------
 6 files changed, 134 insertions(+), 57 deletions(-)

commit b2718149e07e4f31dpefca38fe577ab94b9bbecd
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Jan 29 10:45:44 2016 +0200

    msg external storage is using content_t

 src/decoder_allocators.cpp | 10 +++++-----
 src/decoder_allocators.hpp | 11 ++++++-----
 src/msg.cpp                | 47 ++++++++++++++++++++++-----------------------
 src/msg.hpp                | 48 +++++++++++++++++++---------------------------
 src/raw_decoder.cpp        |  8 ++++----
 src/v2_decoder.cpp         |  4 ++--
 6 files changed, 60 insertions(+), 68 deletions(-)

commit e424388608b63ac2b73dfdc51b0437b1a4e87772
Merge: 16f1be9d dc945998
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 28 19:11:27 2016 +0100

    Merge pull request #1730 from somdoron/master

    problem: request socket state machine check is not running

commit 15ad6f805143d1faf1229da7913e30f0ab54f458
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jan 28 11:25:26 2016 +0200

    save some bytes in msg class

 src/msg.cpp | 20 +++++++++++---------
 src/msg.hpp | 63 ++++++++++++++++++++++++++++++++++++++++---------------------
 2 files changed, 52 insertions(+), 31 deletions(-)

commit dc945998a4fe48798e0d2415f8b5b6c5fd3d8899
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Jan 28 18:31:05 2016 +0200

    missing virtual modifier or session_base

 Makefile.am                | 3 ++-
 src/session_base.hpp       | 4 ++--
 tests/test_req_relaxed.cpp | 4 ++++
 3 files changed, 8 insertions(+), 3 deletions(-)

commit 16f1be9de3d6e040912a060e7a77265e78f301ee
Merge: a7b7f3e6 a539b0c6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 28 15:26:45 2016 +0100

    Merge pull request #1729 from c-rack/update-copyright-year

    Problem: copyright year is still 2015

commit a539b0c6e81b7006ee71929a8fbab5beebe89491
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 28 15:07:31 2016 +0100

    Problem: copyright year is still 2015

    Solution: update to 2016

 builds/mingw32/platform.hpp         | 2 +-
 builds/msvc/platform.hpp            | 2 +-
 builds/zos/test_fork.cpp            | 2 +-
 include/zmq.h                       | 2 +-
 include/zmq_utils.h                 | 2 +-
 perf/inproc_lat.cpp                 | 2 +-
 perf/local_lat.cpp                  | 2 +-
 perf/local_thr.cpp                  | 2 +-
 perf/remote_lat.cpp                 | 2 +-
 perf/remote_thr.cpp                 | 2 +-
 src/address.cpp                     | 2 +-
 src/address.hpp                     | 2 +-
 src/array.hpp                       | 2 +-
 src/atomic_counter.hpp              | 2 +-
 src/atomic_ptr.hpp                  | 2 +-
 src/blob.hpp                        | 2 +-
 src/client.cpp                      | 2 +-
 src/client.hpp                      | 2 +-
 src/clock.cpp                       | 2 +-
 src/clock.hpp                       | 2 +-
 src/command.hpp                     | 2 +-
 src/condition_variable.hpp          | 2 +-
 src/config.hpp                      | 2 +-
 src/ctx.cpp                         | 2 +-
 src/ctx.hpp                         | 2 +-
 src/curve_client.cpp                | 2 +-
 src/curve_client.hpp                | 2 +-
 src/curve_server.cpp                | 2 +-
 src/curve_server.hpp                | 2 +-
 src/dbuffer.hpp                     | 2 +-
 src/dealer.cpp                      | 2 +-
 src/dealer.hpp                      | 2 +-
 src/decoder.hpp                     | 2 +-
 src/decoder_allocators.cpp          | 2 +-
 src/decoder_allocators.hpp          | 2 +-
 src/devpoll.cpp                     | 2 +-
 src/devpoll.hpp                     | 2 +-
 src/dish.cpp                        | 2 +-
 src/dish.hpp                        | 2 +-
 src/dist.cpp                        | 2 +-
 src/dist.hpp                        | 2 +-
 src/encoder.hpp                     | 2 +-
 src/epoll.cpp                       | 2 +-
 src/epoll.hpp                       | 2 +-
 src/err.cpp                         | 2 +-
 src/err.hpp                         | 2 +-
 src/fd.hpp                          | 2 +-
 src/fq.cpp                          | 2 +-
 src/fq.hpp                          | 2 +-
 src/gssapi_client.cpp               | 2 +-
 src/gssapi_client.hpp               | 2 +-
 src/gssapi_mechanism_base.cpp       | 2 +-
 src/gssapi_mechanism_base.hpp       | 2 +-
 src/gssapi_server.cpp               | 2 +-
 src/gssapi_server.hpp               | 2 +-
 src/i_decoder.hpp                   | 2 +-
 src/i_encoder.hpp                   | 2 +-
 src/i_engine.hpp                    | 2 +-
 src/i_mailbox.hpp                   | 2 +-
 src/i_poll_events.hpp               | 2 +-
 src/io_object.cpp                   | 2 +-
 src/io_object.hpp                   | 2 +-
 src/io_thread.cpp                   | 2 +-
 src/io_thread.hpp                   | 2 +-
 src/ip.cpp                          | 2 +-
 src/ip.hpp                          | 2 +-
 src/ipc_address.cpp                 | 2 +-
 src/ipc_address.hpp                 | 2 +-
 src/ipc_connecter.cpp               | 2 +-
 src/ipc_connecter.hpp               | 2 +-
 src/ipc_listener.cpp                | 2 +-
 src/ipc_listener.hpp                | 2 +-
 src/kqueue.cpp                      | 2 +-
 src/kqueue.hpp                      | 2 +-
 src/lb.cpp                          | 2 +-
 src/lb.hpp                          | 2 +-
 src/likely.hpp                      | 2 +-
 src/mailbox.cpp                     | 2 +-
 src/mailbox.hpp                     | 2 +-
 src/mailbox_safe.cpp                | 2 +-
 src/mailbox_safe.hpp                | 2 +-
 src/mechanism.cpp                   | 2 +-
 src/mechanism.hpp                   | 2 +-
 src/metadata.cpp                    | 2 +-
 src/metadata.hpp                    | 2 +-
 src/msg.cpp                         | 2 +-
 src/msg.hpp                         | 2 +-
 src/mtrie.cpp                       | 2 +-
 src/mtrie.hpp                       | 2 +-
 src/mutex.hpp                       | 2 +-
 src/null_mechanism.cpp              | 2 +-
 src/null_mechanism.hpp              | 2 +-
 src/object.cpp                      | 2 +-
 src/object.hpp                      | 2 +-
 src/options.cpp                     | 2 +-
 src/options.hpp                     | 2 +-
 src/own.cpp                         | 2 +-
 src/own.hpp                         | 2 +-
 src/pair.cpp                        | 2 +-
 src/pair.hpp                        | 2 +-
 src/pgm_receiver.cpp                | 2 +-
 src/pgm_receiver.hpp                | 2 +-
 src/pgm_sender.cpp                  | 2 +-
 src/pgm_sender.hpp                  | 2 +-
 src/pgm_socket.cpp                  | 2 +-
 src/pgm_socket.hpp                  | 2 +-
 src/pipe.cpp                        | 2 +-
 src/pipe.hpp                        | 2 +-
 src/plain_client.cpp                | 2 +-
 src/plain_client.hpp                | 2 +-
 src/plain_server.cpp                | 2 +-
 src/plain_server.hpp                | 2 +-
 src/poll.cpp                        | 2 +-
 src/poll.hpp                        | 2 +-
 src/poller.hpp                      | 2 +-
 src/poller_base.cpp                 | 2 +-
 src/poller_base.hpp                 | 2 +-
 src/precompiled.cpp                 | 2 +-
 src/precompiled.hpp                 | 2 +-
 src/proxy.cpp                       | 2 +-
 src/proxy.hpp                       | 2 +-
 src/pub.cpp                         | 2 +-
 src/pub.hpp                         | 2 +-
 src/pull.cpp                        | 2 +-
 src/pull.hpp                        | 2 +-
 src/push.cpp                        | 2 +-
 src/push.hpp                        | 2 +-
 src/radio.cpp                       | 2 +-
 src/radio.hpp                       | 2 +-
 src/random.cpp                      | 2 +-
 src/random.hpp                      | 2 +-
 src/raw_decoder.cpp                 | 2 +-
 src/raw_decoder.hpp                 | 2 +-
 src/raw_encoder.cpp                 | 2 +-
 src/raw_encoder.hpp                 | 2 +-
 src/reaper.cpp                      | 2 +-
 src/reaper.hpp                      | 2 +-
 src/rep.cpp                         | 2 +-
 src/rep.hpp                         | 2 +-
 src/req.cpp                         | 2 +-
 src/req.hpp                         | 2 +-
 src/router.cpp                      | 2 +-
 src/router.hpp                      | 2 +-
 src/select.cpp                      | 2 +-
 src/select.hpp                      | 2 +-
 src/server.cpp                      | 2 +-
 src/server.hpp                      | 2 +-
 src/session_base.cpp                | 2 +-
 src/session_base.hpp                | 2 +-
 src/signaler.cpp                    | 2 +-
 src/signaler.hpp                    | 2 +-
 src/socket_base.cpp                 | 2 +-
 src/socket_base.hpp                 | 2 +-
 src/socket_poller.cpp               | 2 +-
 src/socket_poller.hpp               | 2 +-
 src/socks.cpp                       | 2 +-
 src/socks.hpp                       | 2 +-
 src/socks_connecter.cpp             | 2 +-
 src/socks_connecter.hpp             | 2 +-
 src/stdint.hpp                      | 2 +-
 src/stream.cpp                      | 2 +-
 src/stream.hpp                      | 2 +-
 src/stream_engine.cpp               | 2 +-
 src/stream_engine.hpp               | 2 +-
 src/sub.cpp                         | 2 +-
 src/sub.hpp                         | 2 +-
 src/tcp.cpp                         | 2 +-
 src/tcp.hpp                         | 2 +-
 src/tcp_address.cpp                 | 2 +-
 src/tcp_address.hpp                 | 2 +-
 src/tcp_connecter.cpp               | 2 +-
 src/tcp_connecter.hpp               | 2 +-
 src/tcp_listener.cpp                | 2 +-
 src/tcp_listener.hpp                | 2 +-
 src/thread.cpp                      | 2 +-
 src/thread.hpp                      | 2 +-
 src/timers.cpp                      | 2 +-
 src/timers.hpp                      | 2 +-
 src/tipc_address.cpp                | 2 +-
 src/tipc_address.hpp                | 2 +-
 src/tipc_connecter.cpp              | 2 +-
 src/tipc_connecter.hpp              | 2 +-
 src/tipc_listener.cpp               | 2 +-
 src/tipc_listener.hpp               | 2 +-
 src/trie.cpp                        | 2 +-
 src/trie.hpp                        | 2 +-
 src/v1_decoder.cpp                  | 2 +-
 src/v1_decoder.hpp                  | 2 +-
 src/v1_encoder.cpp                  | 2 +-
 src/v1_encoder.hpp                  | 2 +-
 src/v2_decoder.cpp                  | 2 +-
 src/v2_decoder.hpp                  | 2 +-
 src/v2_encoder.cpp                  | 2 +-
 src/v2_encoder.hpp                  | 2 +-
 src/v2_protocol.hpp                 | 2 +-
 src/vmci.cpp                        | 2 +-
 src/vmci.hpp                        | 2 +-
 src/vmci_address.cpp                | 2 +-
 src/vmci_address.hpp                | 2 +-
 src/vmci_connecter.cpp              | 2 +-
 src/vmci_connecter.hpp              | 2 +-
 src/vmci_listener.cpp               | 2 +-
 src/vmci_listener.hpp               | 2 +-
 src/windows.hpp                     | 2 +-
 src/wire.hpp                        | 2 +-
 src/xpub.cpp                        | 2 +-
 src/xpub.hpp                        | 2 +-
 src/xsub.cpp                        | 2 +-
 src/xsub.hpp                        | 2 +-
 src/ypipe.hpp                       | 2 +-
 src/ypipe_base.hpp                  | 2 +-
 src/ypipe_conflate.hpp              | 2 +-
 src/yqueue.hpp                      | 2 +-
 src/zmq.cpp                         | 2 +-
 src/zmq_utils.cpp                   | 2 +-
 tests/test_abstract_ipc.cpp         | 2 +-
 tests/test_atomics.cpp              | 2 +-
 tests/test_bind_src_address.cpp     | 2 +-
 tests/test_capabilities.cpp         | 2 +-
 tests/test_client_server.cpp        | 2 +-
 tests/test_conflate.cpp             | 2 +-
 tests/test_connect_delay_tipc.cpp   | 2 +-
 tests/test_connect_resolve.cpp      | 2 +-
 tests/test_connect_rid.cpp          | 2 +-
 tests/test_ctx_destroy.cpp          | 2 +-
 tests/test_ctx_options.cpp          | 2 +-
 tests/test_diffserv.cpp             | 2 +-
 tests/test_disconnect_inproc.cpp    | 2 +-
 tests/test_filter_ipc.cpp           | 2 +-
 tests/test_fork.cpp                 | 2 +-
 tests/test_getsockopt_memset.cpp    | 2 +-
 tests/test_heartbeats.cpp           | 2 +-
 tests/test_hwm.cpp                  | 2 +-
 tests/test_hwm_pubsub.cpp           | 2 +-
 tests/test_immediate.cpp            | 2 +-
 tests/test_inproc_connect.cpp       | 2 +-
 tests/test_invalid_rep.cpp          | 2 +-
 tests/test_iov.cpp                  | 2 +-
 tests/test_ipc_wildcard.cpp         | 2 +-
 tests/test_issue_566.cpp            | 2 +-
 tests/test_large_msg.cpp            | 2 +-
 tests/test_last_endpoint.cpp        | 2 +-
 tests/test_many_sockets.cpp         | 2 +-
 tests/test_metadata.cpp             | 2 +-
 tests/test_monitor.cpp              | 2 +-
 tests/test_msg_ffn.cpp              | 2 +-
 tests/test_msg_flags.cpp            | 2 +-
 tests/test_pair_inproc.cpp          | 2 +-
 tests/test_pair_ipc.cpp             | 2 +-
 tests/test_pair_tcp.cpp             | 2 +-
 tests/test_pair_vmci.cpp            | 2 +-
 tests/test_poller.cpp               | 2 +-
 tests/test_probe_router.cpp         | 2 +-
 tests/test_proxy.cpp                | 2 +-
 tests/test_proxy_single_socket.cpp  | 2 +-
 tests/test_proxy_terminate.cpp      | 2 +-
 tests/test_pub_invert_matching.cpp  | 2 +-
 tests/test_radio_dish.cpp           | 2 +-
 tests/test_req_correlate.cpp        | 2 +-
 tests/test_req_relaxed.cpp          | 2 +-
 tests/test_reqrep_device.cpp        | 2 +-
 tests/test_reqrep_inproc.cpp        | 2 +-
 tests/test_reqrep_ipc.cpp           | 2 +-
 tests/test_reqrep_tcp.cpp           | 2 +-
 tests/test_reqrep_vmci.cpp          | 2 +-
 tests/test_router_handover.cpp      | 2 +-
 tests/test_router_mandatory.cpp     | 2 +-
 tests/test_router_mandatory_hwm.cpp | 2 +-
 tests/test_security_curve.cpp       | 2 +-
 tests/test_security_null.cpp        | 2 +-
 tests/test_security_plain.cpp       | 2 +-
 tests/test_shutdown_stress.cpp      | 2 +-
 tests/test_spec_dealer.cpp          | 2 +-
 tests/test_spec_pushpull.cpp        | 2 +-
 tests/test_spec_rep.cpp             | 2 +-
 tests/test_spec_req.cpp             | 2 +-
 tests/test_spec_router.cpp          | 2 +-
 tests/test_srcfd.cpp                | 2 +-
 tests/test_stream.cpp               | 2 +-
 tests/test_stream_disconnect.cpp    | 2 +-
 tests/test_stream_empty.cpp         | 2 +-
 tests/test_stream_timeout.cpp       | 2 +-
 tests/test_sub_forward.cpp          | 2 +-
 tests/test_system.cpp               | 2 +-
 tests/test_term_endpoint.cpp        | 2 +-
 tests/test_thread_safe.cpp          | 2 +-
 tests/test_timeo.cpp                | 2 +-
 tests/test_timers.cpp               | 2 +-
 tests/test_unbind_inproc.cpp        | 2 +-
 tests/test_unbind_wildcard.cpp      | 2 +-
 tests/test_xpub_manual.cpp          | 2 +-
 tests/test_xpub_nodrop.cpp          | 2 +-
 tests/test_xpub_welcome_msg.cpp     | 2 +-
 tests/testutil.hpp                  | 2 +-
 tools/curve_keygen.cpp              | 2 +-
 295 files changed, 295 insertions(+), 295 deletions(-)

commit a7b7f3e6c2072e45555485bcbbb223565924011b
Merge: 511d701d b8425a25
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 27 17:28:59 2016 +0100

    Merge pull request #1727 from somdoron/master

    problem: pub/sub pattern in zeromq is complicated and not thread safe

commit b8425a25cf31f4415ed291f19ca6cf68bce559cb
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jan 27 18:19:14 2016 +0200

    radio-dish pattern

 .gitignore                |   2 +
 CMakeLists.txt            |   4 +-
 Makefile.am               |  10 +-
 include/zmq.h             |   8 ++
 src/dish.cpp              | 246 ++++++++++++++++++++++++++++++++++++++++++++++
 src/dish.hpp              |  98 ++++++++++++++++++
 src/mechanism.cpp         |  11 ++-
 src/radio.cpp             | 170 ++++++++++++++++++++++++++++++++
 src/radio.hpp             |  82 ++++++++++++++++
 src/session_base.cpp      |   3 +-
 src/socket_base.cpp       |  42 ++++++++
 src/socket_base.hpp       |  13 ++-
 src/zmq.cpp               |  22 +++++
 tests/CMakeLists.txt      |   1 +
 tests/test_large_msg      | 210 ---------------------------------------
 tests/test_radio_dish.cpp | 128 ++++++++++++++++++++++++
 16 files changed, 831 insertions(+), 219 deletions(-)

commit 511d701de35377ff64d2fde9b594afc8800589ca
Merge: 1c7d59a5 77f5344f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 22 16:00:33 2016 +0100

    Merge pull request #1725 from GreatFruitOmsk/master

commit 77f5344ff75d71475a6dc10c4e07b965dc03fe7a
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Fri Jan 22 20:34:23 2016 +0600

    Fix VMCI compilation errors on Windows.

 src/vmci_connecter.cpp | 16 ++++++++++------
 src/vmci_connecter.hpp |  2 +-
 src/vmci_listener.cpp  | 16 +++++++++++-----
 src/vmci_listener.hpp  |  2 +-
 4 files changed, 23 insertions(+), 13 deletions(-)

commit 1c7d59a58ac4685ce51244a25326b1cee4bc0c7b
Merge: f25a9c83 f0dce000
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 22 13:50:06 2016 +0100

    Merge pull request #1724 from minrk/multi-monitor

    stop previous monitor socket before starting new one

commit f0dce000b2184b87318016022efe14a9618e74a9
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Jan 21 16:21:07 2016 +0100

    stop previous monitor socket before starting new one

    avoids leaking sockets due to multiple monitor calls on one socket

    Alternative: raise error (not sure what errno; EADDRINUSE?) if collision detected; force manual stop.

 src/socket_base.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit f25a9c83f5add1ca16be4d8a5a7475bc670aff28
Merge: cfbeac6a 6c997477
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 21 15:56:26 2016 +0100

    Merge pull request #1723 from GreatFruitOmsk/master

    Family is not set when resolving NIC on android.

commit 6c9974770b1697582b56ccb0780f1602ba82a369
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Thu Jan 21 19:53:35 2016 +0600

    Family is not set when resolving NIC on android.

    Make it ready to enable ipv6 for AIX or HP/UX

 src/tcp_address.cpp | 35 +++++++++++++++++++++++++++--------
 1 file changed, 27 insertions(+), 8 deletions(-)

commit cfbeac6ad14b6f5060d6ca2978a6e6ee918565e8
Merge: 55e8191a e7850410
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 21 08:46:14 2016 +0100

    Merge pull request #1722 from GreatFruitOmsk/master

    Fix missing headers.

commit e7850410f886b2f75d25ee44a7413abcc709a58f
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Thu Jan 21 13:44:15 2016 +0600

    Fix trailing spaces.

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

commit e5894d519725fe2c3c2575ba88230b8fcdfdfbc4
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Thu Jan 21 13:44:01 2016 +0600

    Fix missing headers which makes compilation fail on Android.

 src/socket_base.cpp | 1 +
 src/tcp_address.cpp | 1 +
 2 files changed, 2 insertions(+)

commit 55e8191ac5e54e203048d736d7c08423fa49a384
Merge: a40dd50d 5c9bd5f0
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Jan 20 14:56:20 2016 -0600

    Merge pull request #1721 from c-rack/fix-issue-1720

    Problem: build fails due to undefined INT_MAX

commit 5c9bd5f0cb7d984ecd807ba22d2fc9ffd26f2ed5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 20 19:30:21 2016 +0100

    Problem: SIZE_MAX is not defined in all stdint.h includes

    Solution: remove debug printf line completely

 tests/test_large_msg.cpp | 2 --
 1 file changed, 2 deletions(-)

commit b7d42a4c4bd24e3e0674373a1340a0a62d530626
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 20 19:18:00 2016 +0100

    Problem: SIZE_MAX is not defined

    Solution: include stdint.h

 tests/test_large_msg.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 924bce6478d19140a9d3e908dc0be4660ea64b8e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 20 18:38:52 2016 +0100

    Problem: build fails due to undefined INT_MAX

    Solution: include climits

    Fixes #1720

 src/zmq.cpp | 1 +
 1 file changed, 1 insertion(+)

commit a40dd50da1083a061858597ee99a1e36044c6212
Merge: 90f9f5ff 5fe75f0e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 20 13:53:33 2016 +0100

    Merge pull request #1719 from minrk/rc-int-max

    truncate rc to INT_MAX for send/recv

commit 5fe75f0e4320890058bbcde447121c11fc32ee78
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Jan 20 13:43:51 2016 +0100

    truncate rc to INT_MAX

    to avoid overflow for large messages

    send/recv still succeed for large messages,
    but `zmq_msg_size` must be used to get the true size.

 Makefile.am              |   4 +
 src/zmq.cpp              |   9 +-
 tests/test_large_msg     | 210 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_large_msg.cpp |  88 ++++++++++++++++++++
 4 files changed, 308 insertions(+), 3 deletions(-)

commit 90f9f5ff91264b03563d4c7cb24609f55f43699f
Merge: c42bf873 be387d5e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jan 20 11:28:18 2016 +0100

    Merge pull request #1718 from gcsideal/master

    Last bits of Hurd support

commit be387d5e56df277e3136cdcb7d8c7cca7e1251d5
Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
Date:   Wed Jan 20 07:18:22 2016 +0100

    Last bits of Hurd support

 Makefile.am    |  5 +++++
 configure.ac   | 16 ----------------
 src/poller.hpp |  4 ----
 src/thread.cpp |  2 +-
 4 files changed, 6 insertions(+), 21 deletions(-)

commit c42bf873bb789dd94f82aa4572227832b26a21a3
Merge: cc295780 e6edc472
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Tue Jan 19 14:27:15 2016 -0600

    Merge pull request #1717 from c-rack/fix-typo

    Problem: typo

commit e6edc4729e300353bf75a36bdb1a8d769cf877b8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jan 19 21:23:42 2016 +0100

    Problem: typo

    Solution: fix it

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

commit cc295780884e55b2009cfeb5a57c1c9a4e15447d
Merge: e0fc5841 669c5697
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jan 19 19:30:38 2016 +0100

    Merge pull request #1716 from somdoron/master

    Problem: client over inproc receives the msg with routing id set

commit 669c5697c2e45b1dddacdpdf86f653e32898d07b
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Jan 19 20:05:22 2016 +0200

    fixing a bug: client over inproc receives msg with routing id set

 src/msg.cpp                  | 6 ++++++
 src/msg.hpp                  | 1 +
 src/server.cpp               | 7 ++++++-
 tests/test_client_server.cpp | 9 +++++----
 4 files changed, 18 insertions(+), 5 deletions(-)

commit e0fc5841cd20a3de45a5f4dp3eec610bb1bd73db
Merge: 9ebb5cc9 88949694
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Jan 18 22:55:22 2016 +0100

    Merge pull request #1715 from hintjens/master

    Problem: configure --without-documentation is clumsy

commit 88949694db78dfe50ce11dfade7301d66e890b0a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 18 21:25:22 2016 +0100

    Problem: configure --without-documentation is clumsy

    It's inconsistent, and should be --with-something=yes/no. Also the
    term 'documentation' is long and clumy.

    Solution: use --with-docs instead.

 acinclude.m4 | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 9ebb5cc911d0e08a75c391ab7ed9a7986dpc0c46
Merge: d906e815 4bfe2ec6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 18 14:45:05 2016 +0100

    Merge pull request #1714 from somdoron/master

    problem: condition variable setting invalid timeout

commit 4bfe2ec686ffd04f6df62ab4bafc83e48f2d4d33
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Jan 18 15:30:07 2016 +0200

    fix bug in condition variable using invalid timeout

 src/condition_variable.hpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit d906e815bcea170c7c76a119f09b4a0399092bb0
Merge: 1a502cc1 6ee78707
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 18 12:47:45 2016 +0100

    Merge pull request #1713 from minrk/stdint

    restore check for MSC 1600 before including stdint.h

commit 6ee78707c6597a594bf05aa41383b0bdfa124466
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon Jan 18 12:33:51 2016 +0100

    restore check for MSC 1600 before including stdint.h

 include/zmq.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 1a502cc190228dpf226aadb16808def222c4e09f
Merge: 6d491a42 be5ab6d5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jan 16 08:05:46 2016 +0100

    Merge pull request #1709 from gcsideal/master

    GNU/Hurd support

commit be5ab6d5c949f85dd39431e2db24c0d21f796835
Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
Date:   Sat Jan 16 02:26:20 2016 +0100

    GNU/Hurd support

 configure.ac           | 27 +++++++++++++++++++++++++++
 src/atomic_counter.hpp |  2 +-
 src/atomic_ptr.hpp     |  2 +-
 src/ipc_connecter.cpp  |  5 ++++-
 src/poller.hpp         |  7 +++++++
 src/tcp_address.cpp    |  2 +-
 6 files changed, 41 insertions(+), 4 deletions(-)

commit 6d491a42892925c9f634ed9810522d2520034d84
Merge: 93bb7562 cf57a88d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 15 16:04:30 2016 +0100

    Merge pull request #1707 from minrk/tweetnacl

    include tweetnacl in dists

commit cf57a88d498855f2fa68628195a6435aa929f6cf
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Jan 15 16:01:48 2016 +0100

    include tweetnacl in dists

 Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 93bb756298b5282b1f778dfaf585f1a3736c1769
Merge: d8941f59 e19454e3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 15 11:40:48 2016 +0100

    Merge pull request #1706 from zoobab/master

    Problem: OpenWRT Makefile still uses tarballs, now using GIT HEAD master

commit e19454e38890e3552c49d81bf5efd4654a692e9f
Author: Benjamin Henrion <zoobab@gmail.com>
Date:   Fri Jan 15 11:19:24 2016 +0100

    Problem: OpenWRT Makefile still uses tarballs, now using GIT HEAD master

 builds/openwrt/Makefile | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

commit d8941f599affe280123ea0e9117a398da0c5c4ea
Merge: b9167df9 055995e5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 15 10:54:02 2016 +0100

    Merge pull request #1705 from hintjens/master

    Problem: no support for OpenWRT

commit 055995e5357787f0a999ceaa4a02238626b0d166
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 15 10:25:38 2016 +0100

    Problem: builds directory contains packaging scripts

    Specifically, the RedHat tools.

    Solution: move this into packaging/

 Makefile.am                                 | 2 +-
 builds/README                               | 4 ++++
 configure.ac                                | 2 +-
 packaging/README                            | 4 ++++
 {builds => packaging}/redhat/zeromq.spec.in | 0
 5 files changed, 10 insertions(+), 2 deletions(-)

commit d8d9ee3243829183e4e9324a790077eb6f443de2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 15 10:10:06 2016 +0100

    Problem: no support for OpenWRT

    Solution: copy ZeroMQ packaging script from
    https://github.com/vperron/openwrt-zmq-packages

    Note: this is not usable as-such, needs fixing.

 .gitignore              |  6 ++++-
 builds/openwrt/Makefile | 61 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 1 deletion(-)

commit b9167df916fad712815eddb7bdf78dfc17c4faf0
Merge: 47d9caa4 bfbb6554
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 14 15:16:14 2016 +0100

    Merge pull request #1702 from GreatFruitOmsk/greatfruit-master

    Add support for the RelWithDebInfo CMake configuration.

commit bfbb655491ba63fc2968de248047f747a15940ec
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Thu Jan 14 18:10:36 2016 +0600

    Add support for the RelWithDebInfo CMake configuration.

    It's now possible to build Release version with pdb file.

 CMakeLists.txt | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 47d9caa49af16eb7db21a6cf41d4973a3fe3a2fa
Merge: 8f4574f8 be36423b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 14 10:04:12 2016 +0100

    Merge pull request #1701 from madebr/cmake_test_include_source_dir

    Problem: On Windows CI, in tests/test_timers.c, "Windows.hpp" could not be found.

commit be36423bc22d5b5a8a2e22d470d5ca8570140f2a
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Thu Jan 14 01:35:41 2016 +0100

    Problem: On Windows CI, the included file Windows.hpp could not be
    found.
    Solution: Include the source directory

    Problem: _sleep is a library function of Windows.
    Solution: use sleep_

 tests/CMakeLists.txt  |  1 +
 tests/test_timers.cpp | 16 ++++++++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

commit 8f4574f8d073eb90a70d6e572647743a3fafd89c
Merge: b9d83169 e7afed06
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 14 01:02:46 2016 +0100

    Merge pull request #1700 from madebr/stable_sodium

    Problem: Windows CI fails due to libsodium build failure

commit e7afed065507459889267a92bb063f4ad8123801
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Thu Jan 14 00:45:26 2016 +0100

    Problem: Windows CI fails due to libsodium build failure
    Solution: Use stable branch of libsodium

 appveyor.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9d831695f0dfdb7392c16744aa6fd17f119f49a
Merge: 714988e6 6bbca7cf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 13 14:27:22 2016 +0100

    Merge pull request #1699 from somdoron/master

    problem: when socket is destroyed before zmq_poller is the zmq_poller is accessing a dead socket

commit 6bbca7cf4afe901236f8fbb4943fe09d4dd4190b
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jan 13 15:12:47 2016 +0200

    fix case when zmq_poller access a dead socket

 src/socket_poller.cpp | 74 +++++++++++++++++++++++++--------------------------
 1 file changed, 36 insertions(+), 38 deletions(-)

commit 714988e6c5275288173de1bc26c8583703148f81
Merge: f64c3858 c49eef46
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Tue Jan 5 17:34:32 2016 +0100

    Merge pull request #1694 from hintjens/master

    Problem: Android build is too slow

commit c49eef46ec18a86a9471bb172845ef2c21219b1a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 5 17:31:17 2016 +0100

    Problem: Android build is too slow

    Solution: use parallel make (-j 4) and don't build man pages.

 builds/android/build.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f64c38583fa57fbc13acc5c6f7f146c8b1762db0
Merge: c30676fe 9bdb6057
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Jan 3 15:37:06 2016 +0100

    Merge pull request #1692 from FredTreg/master

    Test for issue #1690 (ZMQ_REQ_RELAXED)

commit 9bdb60577c5f294e19ebd9fb3a5b88100e8d6b4a
Author: Frederic Tregon <frederic.tregon@gmail.com>
Date:   Sun Jan 3 15:28:07 2016 +0100

    Test for issue #1690 (ZMQ_REQ_RELAXED)

    Current ZMQ_REQ_RELAXED test improvement to check that pipes are not closed
    after executing two send() in a row with no recv() in between.

 tests/test_req_relaxed.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit c30676fe5242bd9a652c0dd802900a10b8884572
Merge: 06402f4f 89417ddb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 1 20:04:34 2016 +0100

    Merge pull request #1691 from FredTreg/master

    Fixed issue #1690 (ZMQ_REQ_RELAXED)

commit 89417ddb9f9609a9d719d288391e03c531d365b7
Author: Frederic Tregon <frederic.tregon@gmail.com>
Date:   Fri Jan 1 19:19:33 2016 +0100

    Fixed issue #1690 (ZMQ_REQ_RELAXED)

    When using ZMQ_REQ_RELAXED and a 'send' is executed after another 'send' the
    previous code would terminate the 'reply_pipe' if any.
    This is incorrect as terminating the reply pipe also terminates the send pipe
    as they are the same (a pipe associated with a socket is bidirectional).
    Doing a terminate on the pipe sets an internal flag called out_active to false
    and the pipe can no longer send messages.
    Removing the 'terminate' solves the problem. Removing this call is not an issue
    as the incorrect ordering of messages that could be incurred is taken care of
    by the ZMQ_REQ_CORRELATE option if needed.

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

commit 06402f4f28f8d5950d0c4dcd893ee7ccd58152bf
Merge: dp3b2734 2566c02a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Dec 29 18:03:12 2015 +0100

    Merge pull request #1687 from hintjens/master

commit 2566c02a9e84194978fb6d058a6eb83aacc11a9e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 29 17:00:06 2015 +0100

    Problem: CLIENT and SERVER don't check SNDMORE

    These sockets don't handle multipart data, so if callers send it,
    they drop frames, and things break silently.

    Solution: if the caller tries to use ZMQ_SNDMORE, return -1 and
    set errno to EINVAL.

 doc/zmq_msg_send.txt         |   2 +
 doc/zmq_send.txt             |   2 +
 doc/zmq_sendmsg.txt          |   2 +
 src/client.cpp               |   5 ++
 src/server.cpp               |   7 +-
 src/socket_base.cpp          | 191 +++++++++++++++++++++----------------------
 src/zmq.cpp                  |   4 +-
 tests/test_client_server.cpp |  29 ++++---
 8 files changed, 131 insertions(+), 111 deletions(-)

commit dp3b2734dfc185315aab3554cf7ce23cdc208458
Merge: 6164e3d9 6bb0cc1f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 21 19:13:27 2015 +0100

    Merge pull request #1684 from hintjens/master

    Problem: still one error in vcxproj files

commit 6bb0cc1fd50794c04f567e231d7f9020dc08d803
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 21 18:57:31 2015 +0100

    Problem: still one error in vcxproj files

    Solution: fix and try again.

    (We could start to think of using zproject to generate these build
    scripts as the only difference is C/C++)

 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 2 +-
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 6164e3d9138b8c3d01bd2e7521a52596a262b1d1
Merge: 1c874876 137afd56
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 21 18:42:32 2015 +0100

    Merge pull request #1683 from hintjens/master

    Problem: includes timer.cpp/hpp instead of timers.cpp/hpp

commit 137afd5610a0096d3b8acde9398fa95c941663d7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 21 18:36:49 2015 +0100

    Problem: includes timer.cpp/hpp instead of timers.cpp/hpp

    Solution: fix it.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 4 ++--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 4 ++--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 4 ++--
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

commit 1c874876ff7552ff612b0594bdp694fbc596657f
Merge: 114f2b46 065fbcdc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 21 13:24:00 2015 +0100

    Merge pull request #1682 from hintjens/master

    Problem: performance tests don't link on Windows/MSVC

commit 065fbcdc8fdb28aa26b88c1c6b1c9fbab75c1a9c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 21 13:07:13 2015 +0100

    Problem: performance tests don't link on Windows/MSVC

    Solution: add Iphlpapi.lib to libraries to link against

 builds/msvc/vs2010/inproc_lat/inproc_lat.props | 2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.props | 2 +-
 builds/msvc/vs2010/local_lat/local_lat.props   | 2 +-
 builds/msvc/vs2010/local_thr/local_thr.props   | 2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.props | 2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.props | 2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.props | 2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.props | 2 +-
 builds/msvc/vs2012/local_lat/local_lat.props   | 2 +-
 builds/msvc/vs2012/local_thr/local_thr.props   | 2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.props | 2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.props | 2 +-
 builds/msvc/vs2013/inproc_lat/inproc_lat.props | 2 +-
 builds/msvc/vs2013/inproc_thr/inproc_thr.props | 2 +-
 builds/msvc/vs2013/local_lat/local_lat.props   | 2 +-
 builds/msvc/vs2013/local_thr/local_thr.props   | 2 +-
 builds/msvc/vs2013/remote_lat/remote_lat.props | 2 +-
 builds/msvc/vs2013/remote_thr/remote_thr.props | 2 +-
 18 files changed, 18 insertions(+), 18 deletions(-)

commit 114f2b464f00c1740e6c65d93d9b21c46f733323
Merge: bf14b1f9 6665bffe
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 21 11:17:37 2015 +0100

    Merge pull request #1681 from hintjens/master

    Problem: MSVC projects don't include timers.cpp/hpp

commit bf14b1f9066c719866b73d4d217e7f7e26929a77
Merge: 78c3ba0d 7893a6ac
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 21 11:09:28 2015 +0100

    Merge pull request #1680 from hintjens/master

    Fixes for Windows, and poller API

commit 6665bffe112d9ca6902a5b71689131d783b8afdb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 21 11:09:11 2015 +0100

    Problem: MSVC projects don't include timers.cpp/hpp

    Solution: add these

 builds/msvc/vs2008/libzmq/libzmq.vcproj  | 2 ++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 4 +++-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 4 +++-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 4 +++-
 builds/msvc/vs2015/libzmq/libzmq.vcxproj | 4 +++-
 src/zmq.cpp                              | 2 +-
 6 files changed, 15 insertions(+), 5 deletions(-)

commit 7893a6ac26c9a7fe5482dpc31f955f712c85d239
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 21 11:01:16 2015 +0100

    Problem: zmq poller API is not CLASS conformant

    Solution: change zmq_poller_close(p) to zmq_poller_destroy(&p)

 include/zmq.h         |  6 +++---
 src/zmq.cpp           | 10 ++++++----
 tests/test_poller.cpp |  2 +-
 3 files changed, 10 insertions(+), 8 deletions(-)

commit f8b9ca5f420a4d8a46aa8fd789f51fe5594cccf4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 21 10:56:37 2015 +0100

    Problem: zmq timers API is not CLASS conformant

    If we're going to add CLASS-like APIs we should use the proper
    syntax; specifically 'destroy' instead of 'close', which is a
    hangover from the 'ZeroMQ is like sockets' model we're slowly
    moving away from.

    Solution: change zmq_timers_close(p) to zmq_timers_destroy(&p)

 include/zmq.h         | 4 ++--
 src/zmq.cpp           | 9 +++++----
 tests/test_timers.cpp | 2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)

commit 627809568b9f1c08dfd3b9c0f55796ea96f3135d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 21 10:51:15 2015 +0100

    Problem: on Windows, link fails on missing Iphlpapi.lib

    Solution: add to project dependencies

 builds/msvc/vs2008/libzmq/libzmq.vcproj | 10 +++++-----
 builds/msvc/vs2010/libzmq/libzmq.props  |  2 +-
 builds/msvc/vs2012/libzmq/libzmq.props  |  2 +-
 builds/msvc/vs2013/libzmq/libzmq.props  |  2 +-
 builds/msvc/vs2015/libzmq/libzmq.props  |  2 +-
 5 files changed, 9 insertions(+), 9 deletions(-)

commit 78c3ba0dc56c529fdc5f675c5ca4563965deb395
Merge: d32cb1dp 33c5985e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 20 19:36:07 2015 +0100

    Merge pull request #1677 from c-rack/faster-git-clone

    Problem: build scripts don't need full git history

commit d32cb1dp6ff60780a98efbe5a0a01fc0d6658be8
Merge: 4705feb2 97092d99
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Dec 20 19:30:11 2015 +0100

    Merge pull request #1679 from hintjens/master

    Problem: Windows build gives warning on v2_decoder.cpp:130

commit 97092d994d44f60e9add1e7188e4127b9c0bc9be
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 20 19:13:49 2015 +0100

    Problem: Windows build gives warning on v2_decoder.cpp:130

    Solution: add explicit cast

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

commit 33c5985eb208806c176157b67a5c0de77deb1de6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Dec 19 13:17:22 2015 +0100

    Problem: build scripts don't need full git history

    Solution: add `--depth 1` parameter to `git clone` commands

 builds/android/Dockerfile | 2 +-
 builds/android/build.sh   | 2 +-
 ci_build.sh               | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 4705feb2f4488f88e3353d1d4c220154b583b54f
Merge: c19470ec 0475c6df
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 18 16:07:11 2015 +0100

    Merge pull request #1676 from GreatFruitOmsk/master

    CMAKE_VS_PLATFORM_TOOLSET may not be set.

commit 0475c6dfd8ebf213a58fe59513d8658ce1ec7eff
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Fri Dec 18 20:50:41 2015 +0600

    CMAKE_VS_PLATFORM_TOOLSET may not be set.

    E.g. for nmake.

 CMakeLists.txt | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit c19470ece15dp41a58402dda524e4d063509b79a
Merge: 9ce8fe8f aadaf990
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 18 11:34:39 2015 +0100

    Merge pull request #1675 from somdoron/Timers

    Problem: no way to schedule timers with zmq_poll or zmq_poller

commit aadaf99011c9fb4ce7b04ec22a776fa7a9b93515
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Dec 18 12:12:18 2015 +0200

    add timers API to libzmq

 .gitignore            |   1 +
 CMakeLists.txt        |   1 +
 Makefile.am           |   9 ++-
 include/zmq.h         |  16 ++++-
 src/timers.cpp        | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/timers.hpp        | 108 ++++++++++++++++++++++++++++++++
 src/zmq.cpp           |  89 ++++++++++++++++++++++++--
 tests/CMakeLists.txt  |   1 +
 tests/test_timers.cpp | 126 +++++++++++++++++++++++++++++++++++++
 9 files changed, 513 insertions(+), 7 deletions(-)

commit 9ce8fe8f667a629159be030d0539325ce9598fe4
Merge: 066ff133 b76ccb8b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 18 10:57:46 2015 +0100

    Merge pull request #1674 from GreatFruitOmsk/master

    Add missing header for the if_nametoindex on Windows.

commit b76ccb8b1a488cf2d72fb6bda664cc21c4f01d61
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Fri Dec 18 15:54:18 2015 +0600

    Add missing header for the if_nametoindex on Windows.

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

commit 066ff133f0f54f90e01e85f81103791142e743d6
Merge: b67cdcfd 92364506
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 18 09:58:32 2015 +0100

    Merge pull request #1672 from GreatFruitOmsk/master

    Fix redirecting location of pdb via CMAKE_PDB_OUTPUT_DIRECTORY.

commit 923645060a2a6d50996e42786002f9d1ab5fb8c3
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Fri Dec 18 14:52:17 2015 +0600

    Fix redirecting location of pdb via CMAKE_PDB_OUTPUT_DIRECTORY.

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

commit b67cdcfd0bcd847b1eec2540befdef5c372d96f8
Merge: 987eb6dd f3bcb73f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 18 09:06:12 2015 +0100

    Merge pull request #1670 from hintjens/master

    CI was broken by #54799c (reverted)

commit 987eb6ddc312f9b9d31b8b6e60277bade53d8d84
Merge: 768fc769 700b91d1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 17 21:10:35 2015 +0100

    Merge pull request #1671 from brian-peloton/master

    Fix alignment of initial chunk in yqueue

commit 700b91d102a88272c00a63b2297600ac5cb21fd6
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Thu Dec 17 14:28:15 2015 -0500

    Fix alignment of initial chunk in yqueue

    Clang's UndefinedBehaviorSanitizer catches this in the tests.

 src/yqueue.hpp | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

commit f3bcb73f02ed965bf9fa58e64bf49559fc732551
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 17 16:24:35 2015 +0100

    Fixed old path to qt-android

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

commit 31c35498af31549e17d63aac0406bde88d55f78b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 17 16:20:48 2015 +0100

    Revert "fixes #1565: Allow session to flush commands on an engine error"

    This reverts commit 54799c8c6fa605f7272e966912f6e93161f9d11d.

    This change broke the tests/test_shutdown_stress testcase.

 src/session_base.cpp | 3 ---
 src/socket_base.cpp  | 7 -------
 src/socket_base.hpp  | 2 --
 3 files changed, 12 deletions(-)

commit 768fc7699ec8ed96bcdff7fd941868bf7a919ca2
Merge: 819a879f 8f1810d1
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Thu Dec 17 14:12:26 2015 +0100

    Merge pull request #1668 from zoobab/master

    Build success message + Build zmq for android with a Dockerfile

commit 8f1810d1e2a1c69ec8b7f48236dp21dcd2611ec6
Author: Benjamin Henrion <zoobab@gmail.com>
Date:   Wed Dec 16 11:58:44 2015 +0100

    Add a Dockerfile to build libzmq for android

 builds/android/Dockerfile | 22 ++++++++++++++++++++++
 builds/android/build.sh   |  2 +-
 2 files changed, 23 insertions(+), 1 deletion(-)

commit 819a879ff2c1a23208690483d769ac91ea1011bb
Merge: a9bad3bc bd222d92
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Dec 16 14:20:47 2015 +0100

    Merge pull request #1669 from bluca/travis_android

    Problem: travis CI tries to build "qt-android"

commit bd222d9206831bf848022be2305b3307e2d26032
Author: Luca Boccassi <lboccass@brocade.com>
Date:   Wed Dec 16 13:07:39 2015 +0000

    Problem: travis CI tries to build "qt-android"

    Solution: change .travis.yml to build "android" instead of "qt-android"

 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a9bad3bc13887c07759318751738d5a2d14ee9d0
Merge: f00eb5aa 9b45ba70
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 14 19:59:51 2015 +0100

    Merge pull request #1665 from hintjens/master

    Problem: builds/qt-android name is inaccurate

commit 9b45ba706754cab82a9c4cf392f88bbca210a3dd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 14 19:01:13 2015 +0100

    Problem: builds/qt-android name is inaccurate

    Solution: rename to simple builds/android.

 builds/{qt-android => android}/android_build_helper.sh | 0
 builds/{qt-android => android}/build.sh                | 0
 builds/{qt-android => android}/ci_build.sh             | 0
 3 files changed, 0 insertions(+), 0 deletions(-)

commit f00eb5adp69365c73347e39a9cc89fd1e3849528
Merge: 30198961 3caa637e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Dec 14 14:31:05 2015 +0100

    Merge pull request #1664 from Kentzo/vmci

    Add special interface to represent local VMCI context.

commit 3caa637e1b43f0665dp77fd25c5a66c08638f201
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Mon Dec 14 19:18:43 2015 +0600

    Add special interface to represent local VMCI context.

 doc/zmq_vmci.txt     | 2 +-
 src/vmci_address.cpp | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 301989614f995ad8d7067587d975c9e1a858cdd7
Merge: 7eeb7d5e 3dp5c55e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Dec 11 15:36:12 2015 +0100

    Merge pull request #1663 from hurtonm/master

commit 3dp5c55e46df1bdp0d206ce3690a6b754528303a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Dec 11 15:26:42 2015 +0100

    Fix mailmap entry for Max Skaller

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

commit 86efa67d97cc20c806c55737982c19d1052b7b04
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Dec 11 15:26:19 2015 +0100

    Add mailmap entry for Chuck Remes

 .mailmap | 2 ++
 1 file changed, 2 insertions(+)

commit 7eeb7d5e74b70c8db40072144d09079f0d78ab4b
Merge: c18904cb d8af708a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 10 17:08:01 2015 +0100

    Merge pull request #1662 from hurtonm/master

    Add mailmap file

commit d8af708ad9e0e009a03a12d5a860b0ca44070b6a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Dec 10 15:44:22 2015 +0100

    Add mailmap file

 .mailmap | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

commit c18904cbd25f0c95616052b99c9353057811748d
Merge: 6eeef5eb 7cfa9335
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Dec 9 14:37:22 2015 -0800

    Merge pull request #1659 from syenna/master

    Add missing support for IPv6 link local addresses

commit 7cfa93352ebe5b92a5c3ff7ccce5ddff6c3e0e00
Author: Sathish Yenna <Sathish_Yenna@dell.com>
Date:   Wed Dec 9 16:26:34 2015 -0600

    Add missing support for IPv6 link local addresses (which include % followed by the interface name)

 src/socket_base.cpp |  6 ++++--
 src/tcp_address.cpp | 26 ++++++++++++++++++++++++--
 2 files changed, 28 insertions(+), 4 deletions(-)

commit 6eeef5eb7cb1a4f6c7a63506e7bd4364e3603e2f
Merge: 3cc7cfc0 4dcfb23e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Dec 9 10:47:36 2015 +0100

    Merge pull request #1658 from hintjens/master

    Problem: zmq_vmci man page claims to be zmq_ipc man page

commit 3cc7cfc015a9f253c70cf71a0da89dcbff23c79a
Merge: 765fd209 6dp70a94
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Dec 9 10:47:19 2015 +0100

    Merge pull request #1657 from Kentzo/vmci

    Don't build VMCI by default.

commit 6dp70a94289bd8ee5dc7fb9a60542aa2be74125f
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Wed Dec 9 15:40:50 2015 +0600

    Remove unnecessray comment and unnecessary include.

 src/vmci_address.cpp | 1 -
 src/vmci_address.hpp | 1 -
 2 files changed, 2 deletions(-)

commit 141de87085f30f6c313004545c8d7f692b7885f9
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Wed Dec 9 15:39:50 2015 +0600

    Fix a typo in reference to with_norm_ext.

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

commit 4dcfb23e2e7734ceaf17123267395d604858a9f9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Dec 9 10:45:12 2015 +0100

    Problem: zmq_vmci man page claims to be zmq_ipc man page

    Solution: fix this.

 doc/zmq_vmci.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 765fd209372946f9dddp17c4f655c926ead6e887
Merge: fc7e3bc3 64ce6ca7
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Dec 8 19:21:10 2015 +0100

    Merge pull request #1656 from bluca/vmci_include

commit 64ce6ca7727fe2c81ebc4682b298fca696385dpb
Author: Luca Boccassi <lboccass@brocade.com>
Date:   Tue Dec 8 17:58:31 2015 +0000

    Problem: build fails, vmci enabled by default

    Solution: disable vmci by default
    Fixes issue #1655

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

commit a556b500daa31de04468a5df1dp66c5c31c9eef5
Author: Luca Boccassi <lboccass@brocade.com>
Date:   Tue Dec 8 17:49:23 2015 +0000

    Problem: build failure, vmci include out of IFDEF

    Solution: do not include vmci header outside of vmci IFDEF
    Fixes issue #1655

 src/socket_base.cpp | 1 -
 1 file changed, 1 deletion(-)

commit fc7e3bc3a49a0b5e8d257bc1b415743772ccb4e6
Merge: 61f74e2d 68b13fbd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 8 08:50:24 2015 +0100

    Merge pull request #1654 from Kentzo/vmci

    Add the VMCI transport.

commit 68b13fbddb909e6b75a72475f19dad98cc737764
Author: Ilya Kulakov <kulakov.ilya@gmail.com>
Date:   Mon Dec 7 18:19:45 2015 +0600

    Add the VMCI transport.

    VMCI transport allows fast communication between the Host
    and a virtual machine, between virtual machines on the same host,
    and within a virtual machine (like IPC).

    It requires VMware to be installed on the host and Guest Additions
    to be installed on a guest.

 AUTHORS                      |   1 +
 CMakeLists.txt               |   7 ++
 Makefile.am                  |  23 ++++
 configure.ac                 |  25 ++++
 doc/Makefile.am              |   2 +-
 doc/zmq.txt                  |   3 +
 doc/zmq_bind.txt             |   5 +-
 doc/zmq_connect.txt          |   1 +
 doc/zmq_getsockopt.txt       |  48 ++++++++
 doc/zmq_inproc.txt           |   1 +
 doc/zmq_ipc.txt              |   1 +
 doc/zmq_pgm.txt              |   1 +
 doc/zmq_setsockopt.txt       |  48 ++++++++
 doc/zmq_tcp.txt              |   1 +
 doc/zmq_tipc.txt             |   1 +
 doc/zmq_unbind.txt           |   8 +-
 doc/zmq_vmci.txt             |  97 +++++++++++++++
 include/zmq.h                |   4 +
 src/address.cpp              |  25 +++-
 src/address.hpp              |  10 +-
 src/ctx.cpp                  |  42 +++++++
 src/ctx.hpp                  |  11 ++
 src/options.cpp              |  36 ++++++
 src/options.hpp              |   6 +
 src/session_base.cpp         |  13 +-
 src/socket_base.cpp          |  53 +++++++-
 src/vmci.cpp                 |  87 +++++++++++++
 src/vmci.hpp                 |  61 +++++++++
 src/vmci_address.cpp         | 161 ++++++++++++++++++++++++
 src/vmci_address.hpp         |  72 +++++++++++
 src/vmci_connecter.cpp       | 287 +++++++++++++++++++++++++++++++++++++++++++
 src/vmci_connecter.hpp       | 136 ++++++++++++++++++++
 src/vmci_listener.cpp        | 213 ++++++++++++++++++++++++++++++++
 src/vmci_listener.hpp        | 102 +++++++++++++++
 src/zmq.cpp                  |   4 +
 tests/CMakeLists.txt         |   7 ++
 tests/test_capabilities.cpp  |   6 +
 tests/test_pair_vmci.cpp     |  68 ++++++++++
 tests/test_reqrep_vmci.cpp   |  68 ++++++++++
 tests/test_term_endpoint.cpp |  25 ++++
 40 files changed, 1757 insertions(+), 13 deletions(-)

commit 61f74e2dfcbcb2528e81b11959fa6d07fbe0cb7f
Merge: f6018e81 ba3cf3c0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 30 21:32:37 2015 +0100

    Merge pull request #1652 from chrisstaite/master

    Adjust start of heartbeat timer

commit ba3cf3c006d05ed622bf726a3722ce3bd941cadp
Author: Chris Staite <chris@yourdreamnet.co.uk>
Date:   Mon Nov 30 20:18:25 2015 +0000

    Only start the heartbeat timer when the underlying mechanism is ready to stop cipher streams from trying to encrypt a heartbeat before the handshake has completed. Addresses issue #1601.

 src/stream_engine.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit f6018e81d80143987b6a6992755673079281917b
Merge: e56b4867 54799c8c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 30 16:14:30 2015 +0100

    Merge pull request #1651 from wcs1only/master

    fixes #1565: Allow session to flush commands on an engine error

commit 54799c8c6fa605f7272e966912f6e93161f9d11d
Author: Charles Stanley <charles.stanley@highwinds.com>
Date:   Mon Nov 30 10:05:25 2015 -0500

    fixes #1565: Allow session to flush commands on an engine error

 src/session_base.cpp | 3 +++
 src/socket_base.cpp  | 7 +++++++
 src/socket_base.hpp  | 2 ++
 3 files changed, 12 insertions(+)

commit e56b486735908ac5b1fd740dc17a832317f9cade
Merge: 782fbe5b dfaa92cd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 27 08:47:53 2015 +0100

    Merge pull request #1650 from c-rack/show-log-on-build-error

    Solution: print test-suite.log if "make check" fails

commit dfaa92cd1e1c54cc41a136575df2711fed464348
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Nov 25 09:17:53 2015 +0100

    Problem: test-suite.log is not accessible on failing CI build

    Currently, a test fails on Travis-CI but that can not be reproduced locally.
    Without the contents of the test-suite.log, this is difficult to analyze.

    Solution: print test-suite.log if "make check" fails

    This is based on the following answer on SO:
    http://stackoverflow.com/a/32597140

 ci_build.sh | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 782fbe5befd6d3168cbe8d787de02b942eff47bb
Merge: 6e064f9f bad93c53
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Nov 24 19:02:36 2015 +0100

    Merge pull request #1649 from sheremetyev/fix-pipe-activation-race

    Fix pipe activation race

commit bad93c536dp1de1c0dd7c7a12f272ce1af4278b7
Author: Fedor Sheremetyev <sheremetyev@gmail.com>
Date:   Tue Nov 24 17:33:38 2015 +0000

    Set LWM to half of HWL.

    This reduces chances of race between writer deactivation and activation.

    Reader sends activation command to writer when number or messages is
    multiple of LWM. In situation with high throughput (millions of messages
    per second) and correspondingly large HWM (e.g. 10M) the difference
    between HWM needs to be large enough - so that activation command is
    received before pipe becomes full.

 src/pipe.cpp | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

commit 234018d749959bb62366d9ca5625250464d8b407
Author: Fedor Sheremetyev <sheremetyev@gmail.com>
Date:   Tue Nov 24 17:30:27 2015 +0000

    Add test demostrating that HWM applies to messages that have been already consumed.

 tests/test_hwm_pubsub.cpp | 77 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

commit 6e064f9f757af466b007b59c4ea4e19de0568548
Merge: b407b54b f9b8a94c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 24 10:13:52 2015 +0200

    Merge pull request #1648 from c-rack/remove-out-batch-size

    Solution: remove `out_batch_size` from src/config.hpp

commit f9b8a94c90c9cb267c2a1dp8ac7cdcf08d81b8e5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Nov 24 09:04:07 2015 +0100

    Problem: out_batch_size has been replaced by ZMQ_TCP_SEND_BUFFER option in cdeec4c1

    Solution: remove `out_batch_size` from src/config.hpp

 src/config.hpp | 6 ------
 1 file changed, 6 deletions(-)

commit b407b54b4429a38b01f510a5a3ba1036bd12ba40
Merge: 5d04dc35 e71471b2
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Nov 23 21:31:42 2015 +0100

    Merge pull request #1647 from banburybill/master

    Add new option ZMQ_MULTICAST_MAXTPDU to set PGM_MTU.

commit e71471b2e84afa9e111c2b52d67aaf3e0fafb572
Author: Jim Hague <jim.hague@acm.org>
Date:   Mon Nov 23 19:35:02 2015 +0000

    Add new option ZMQ_MULTICAST_MAXTPDU to set PGM_MTU.

    Fixes #1646

 doc/zmq_getsockopt.txt | 15 +++++++++++++++
 doc/zmq_setsockopt.txt | 15 +++++++++++++++
 include/zmq.h          |  1 +
 src/config.hpp         |  3 ---
 src/options.cpp        | 15 +++++++++++++++
 src/options.hpp        |  4 ++++
 src/pgm_socket.cpp     |  6 +++---
 7 files changed, 53 insertions(+), 6 deletions(-)

commit 5d04dc354e19648e51698a5ef8946078f4520cc3
Merge: 4f7dc496 804bce82
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 21 18:12:42 2015 +0100

    Merge pull request #1645 from somdoron/master

    Problem: router socket can do pipe handover while reading multipart message

commit 804bce8294daf243d14ac15f426243c568c574a6
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Nov 20 21:21:35 2015 +0200

    Fix pipe terimation in router while reading message

 src/router.cpp | 28 ++++++++++++++++++++++++++--
 src/router.hpp |  6 ++++++
 2 files changed, 32 insertions(+), 2 deletions(-)

commit 4f7dc496421dfd1bba36773a15c3d3e46a2469d9
Merge: afc7c5c7 21057220
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 19 13:47:28 2015 +0200

    Merge pull request #1643 from somdoron/master

    Problem: when STREAM socket HWM is reached an assert will happen as metadata is trying to set twice

commit 210572201d2b7c7ab249ce2741ad69b287d2d28b
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Nov 18 15:02:19 2015 +0200

    Fix a bug when stream_engine try to set alreadt set metadata

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

commit afc7c5c7456f54da629bf9d112a75a31960a7630
Merge: f80fdpca fc1099ff
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 13 12:29:09 2015 +0100

    Merge pull request #1641 from c-rack/fix-recv-send-buffer

    Solution: change behaviour of tcp_send/recv_buffer_size option

commit fc1099ffd1c6b60d8346db74e2cdd2c79cc62a33
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 13 11:08:23 2015 +0100

    Problem: documentation shows wrong default value

    Solution: fix documentation

 doc/zmq_getsockopt.txt | 8 ++++----
 doc/zmq_setsockopt.txt | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit ec41f6540f6dfc7bdp2eff2581a692db304bc41c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 13 10:44:53 2015 +0100

    Problem: tcp_recv/send_buffer should be byte value instead of scale factor

    Solution: change option behaviour and adopt documentation

 doc/zmq_getsockopt.txt | 14 ++++++--------
 doc/zmq_setsockopt.txt | 14 ++++++--------
 src/options.cpp        | 15 ++++++++-------
 3 files changed, 20 insertions(+), 23 deletions(-)

commit 5ba328d7f3279636f2348a3fc705d798902c970d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 13 10:41:00 2015 +0100

    Problem: there is no test for setsockopt ZMQ_TCP_SEND/RECV_BUFFER

    Solution: add test case

 .gitignore                |  1 +
 Makefile.am               |  4 +++
 tests/CMakeLists.txt      |  1 +
 tests/test_setsockopt.cpp | 78 +++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 84 insertions(+)

commit f80fdpca292c0c3a60c60fde554fcaa40e3bba9c
Merge: 18c51702 a992d9ac
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 13 10:27:31 2015 +0100

    Merge pull request #1640 from c-rack/fix-setsockopt

    Solution: fix compilation errors

commit a992d9aca0ef604bd85314622c644fadd98ebbff
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 13 10:08:30 2015 +0100

    Problem: comparison between signed and unsigned integer expressions

    Solution: make tcp_recv_buffer_size and tcp_send_buffer_size unsigned

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

commit 98d5d4d7f041778293844cefac18435dd5950437
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 13 09:47:03 2015 +0100

    Problem: call of overloaded ‘pow()’ is ambiguous

    Solution: make base a double value

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

commit 86714959da8a9642ab686ad019856e76ad0e1d31
Merge: 44443615 18c51702
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Fri Nov 13 03:53:37 2015 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 18c517020bd14ac9af7f2a5e07e3e9ada54c5737
Merge: c41fe88d 908d6b67
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Nov 12 23:17:14 2015 +0100

    Merge pull request #1638 from jens-auer/tcp_buffer_options

    Tcp buffer options to set RECV/SEND buffer

commit 908d6b67401509de724c509f1c4b09187596e177
Author: Jens Auer <jens.auer@cgi.com>
Date:   Sun Nov 8 21:48:36 2015 +0100

    Update options.cpp

    Fixed ZMQ_TCP_RECV_BUFFER set case.

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

commit d2516a9c42d1e718ddf360cbd0ebb127ab17e226
Merge: cdeec4c1 ea26e68b
Author: Jens Auer <jens.auer@cgi.com>
Date:   Sun Nov 8 19:01:04 2015 +0100

    Merge branch 'tcp_buffer_options' of github.com:jens-auer/libzmq into tcp_buffer_options

commit cdeec4c115b3d2f62417dp57c2cd5f5dcdf348f4
Author: Jens Auer <jens.auer@cgi.com>
Date:   Thu Oct 8 22:06:33 2015 +0200

    New options to set send/recv buffer size for TCP sockets.

 doc/zmq_getsockopt.txt | 27 +++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt | 27 +++++++++++++++++++++++++++
 include/zmq.h          |  2 ++
 src/options.cpp        | 29 +++++++++++++++++++++++++++++
 src/options.hpp        |  4 ++++
 src/stream_engine.cpp  | 24 ++++++++++++------------
 6 files changed, 101 insertions(+), 12 deletions(-)

commit c41fe88df63a6d331a7d86c06ba161c3e818f62f
Merge: c775c509 5f5fb5e5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Nov 5 17:22:17 2015 +0100

    Merge pull request #1636 from roalz/feature-add-msvc2015-build

    Added solution and project files to build with Microsoft VS2015

commit 5f5fb5e5ad42151ef2073a4d1cd9123c9229a6d1
Author: roalz <roal.zanazzi@gmail.com>
Date:   Thu Nov 5 16:08:33 2015 +0100

    Added solution and project files to build with Microsoft Visual Studio 2015

 builds/msvc/readme.txt                           |   5 +-
 builds/msvc/vs2015/libsodium.import.props        |  52 +++
 builds/msvc/vs2015/libsodium.import.xml          |  17 +
 builds/msvc/vs2015/libzmq.import.props           |  66 +++
 builds/msvc/vs2015/libzmq.import.xml             |  38 ++
 builds/msvc/vs2015/libzmq.sln                    | 208 +++++++++
 builds/msvc/vs2015/libzmq/libzmq.props           |  69 +++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj         | 260 +++++++++++
 builds/msvc/vs2015/libzmq/libzmq.vcxproj.filters | 570 +++++++++++++++++++++++
 builds/msvc/vs2015/libzmq/libzmq.xml             |  25 +
 10 files changed, 1308 insertions(+), 2 deletions(-)

commit 4444361503c86e27de0bdd5d7f464ada3ca3081e
Merge: 9a8c822a c775c509
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Thu Nov 5 05:27:52 2015 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit c775c509daf3d5349a6fac7a649165e302083a73
Merge: 22179afa b2010432
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 3 00:08:00 2015 +0100

    Merge pull request #1631 from swansontec/master

    Do not crash on unusual connection-failure cases

commit b2010432c726fb8e092c2c5aacca5adb560aa1dd
Author: William Swanson <swansontec@gmail.com>
Date:   Mon Nov 2 14:59:15 2015 -0800

    Do not crash on unusual connection-failure cases

    Only assert on errors we know are our fault,
    instead of trying to whitelist every possible network-related failure.
    This makes ZeroMQ more portable to other platforms
    where the possible errors are different.

    In particular, the previous code would often die under iOS.

 src/tcp_connecter.cpp | 26 ++++++++------------------
 1 file changed, 8 insertions(+), 18 deletions(-)

commit 9a8c822aa2973f17801c9e9ce30a15ab11becef9
Merge: c22f9f36 22179afa
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sun Nov 1 20:59:03 2015 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

    # Conflicts:
    #       CMakeLists.txt

commit 22179afaba8603ef2fc1815ef5599453e32553cb
Merge: ac46e6da 54e2e2a7
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Nov 1 13:16:55 2015 +0100

    Merge pull request #1629 from hintjens/master

    Problem: Windows 7 TCP slow start

commit 54e2e2a7ad12363e70bd13557322a2f7dd224841
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 1 12:57:32 2015 +0100

    Problem: Windows 7 TCP slow start

    See issue #1608.

    This is an old issue with Windows 7. The effect is that we see a latency
    ramp on the first 500 messages.

    * The ramp is unaffected by message size.
    * Sleeping up to 100msec between sends has no effect except to switch
        off ZeroMQ batching so making the ramp more visible.
    * After 500 messages, latency falls back down to ~10-40 usec.
    * Over inproc:// the ramp happens when we use the signaler class.
    * Client-server over inproc:// does not show the ramp.
    * Client-server over tcp:// shows a similar ramp.

    We know that the signaller is using TCP on Windows. We can 'prime' the
    connection by doing 500 dummy sends. This potentially causes new sockets
    to be delayed on creation, which is not a good solution.

    Note that the signaller sends zero-byte messages. This may also be
    confusing TCP.

    Solution: flood the receive buffer when creating a new FD pair; send a
    1M buffer and discard it.

    Fixes #1608

 src/signaler.cpp | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit ac46e6da966c7056704c7d9e7bbedbdped38db1a
Merge: ab2c009d ba1515fe
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Nov 1 10:47:33 2015 +0100

    Merge pull request #1628 from hintjens/master

    Fix for #1399

commit ba1515fe07a143719a894376adfbdpb8d86486b1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 1 08:56:50 2015 +0100

    Problem: asserts if EINVAL recieved on read/write

    This causes assertion failures after network reconnects.

    Solution: allow EINVAL as a possible condition after read/write.

    Fixes #829
    Fixes #1399

    Patch provided by Michele Dionisio @mdionisio, thanks :)

 src/tcp.cpp | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

commit f38c11c06399ab6493750725e70ec22df2268a96
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 30 10:19:46 2015 +0100

    Whitespace fixes

 src/signaler.cpp | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

commit ab2c009d0de8b8ad160b00b6c7e80537417d3dp7
Merge: 182688d4 7c8e65e2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 27 12:23:03 2015 +0100

    Merge pull request #1626 from ahmetkakici/master

    Added missing socket_poller.cpp file to msvc solutions.

commit 7c8e65e2cd4ce6cf0bbc55661cd34da179cf993b
Author: Ahmet Kakici <ahmet.kakici@pro-line.com.tr>
Date:   Tue Oct 27 14:16:36 2015 +0200

    Added missing socket_poller.cpp file to msvc solutions.
    also fixes issue https://github.com/zeromq/libzmq/issues/1624

 builds/msvc/vs2008/libzmq/libzmq.vcproj          | 1 +
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 1 +
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 3 +++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 1 +
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 3 +++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 1 +
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 3 +++
 7 files changed, 13 insertions(+)

commit 182688d4311e46869a97690f2604e9afaca72b9a
Merge: 9b143225 a4baa36b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 26 23:02:05 2015 +0100

    Merge pull request #1625 from lytboris/master

    Acutally allow specifying interfaces as source address

commit a4baa36ba408e436ef97710f317414cd51f004be
Author: Boris Lytochkin <lytboris@yandex-team.ru>
Date:   Tue Oct 27 00:37:53 2015 +0300

    acutally allow specifying interfaces as source address

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

commit 9b1432256d7dddbc6757f9a46fab2a12dc6fffb2
Merge: dc04c5bb 64ffb3fc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Oct 26 09:28:35 2015 +0100

    Merge pull request #1623 from zeromq/sappo-patch-1

    Problem: libzmq appveyor build status is not visible

commit 64ffb3fc92d86df4dca9a9002d529d9ddpe8117e
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Mon Oct 26 08:59:22 2015 +0100

    Problem: libzmq appveyor build status is not visible

    Solution: Add a travis like badge to the README

    fixes #1622

 README.md | 1 +
 1 file changed, 1 insertion(+)

commit dc04c5bbd68b019ace870feb4c05d73e07fd6861
Merge: c5572211 0a0b9fd7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Oct 25 09:54:00 2015 +0100

    Merge pull request #1621 from madebr/cmake_winci_fixes

    Cmake winci fixes

commit 0a0b9fd760556d2bad852b1213f710f486d13196
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Sun Oct 25 03:43:24 2015 +0100

    tweetNaCL: fix winrandom

    problem: random byte generation on windows got stuck in an infinite loop
    solution: the failure test is incorrect. Change it

 tweetnacl/contrib/randombytes/winrandom.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 571ee21eefacc493c8f2b99e2ccda920b6b9f547
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Sun Oct 25 01:12:31 2015 +0200

    appveyor: build all relevant combinations

    problem: not all configurations were built (and some were duplicated) in
    Windows CI
    solution: add all correct combinations to appveyor.yml

 appveyor.yml | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit 89338f43d56fed063e6fbd97128f152b6f88b11a
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Sun Oct 25 01:11:26 2015 +0200

    CMake: fix library name on linux

    problem: cmake added a prefix of lib to libzmq, resulting in
    liblibzmq.so
    solution: set an empty prefix

 CMakeLists.txt | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit c5572211e7f3552f65dbc791061298dd1c92c3c8
Merge: 7fe03218 9930f1fc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 24 12:19:10 2015 +0200

    Merge pull request #1620 from madebr/ctest_missing_tests

    CTest: add all sources in tests folder to CTest

commit 9930f1fc20bb24ef657c84335cd82c7b7d40adp8
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Fri Oct 23 16:14:30 2015 +0200

    CTest: add missing tests + check for unknown tests

 tests/CMakeLists.txt | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 2f632318600ceed454c023bda5887a75b01f9d12
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Sat Oct 24 00:16:01 2015 +0200

    cmake: libzmq can now be built with both sodium and TweetNaCL

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7fe032180ad52b68568ad55970be039f45c2d153
Merge: e182438a b2c87b9a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Oct 24 00:01:55 2015 +0200

    Merge pull request #1619 from madebr/winrandombytes

    TweetNaCL: add windows randombytes implementation

commit b2c87b9a70fc11d7406037e0ff9a236e53396438
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Fri Oct 23 16:13:53 2015 +0200

    TweetNaCL: add windows randombytes implementation

 CMakeLists.txt                              | 24 ++++++++++------
 appveyor.yml                                | 41 ++++++++++++++++++---------
 tweetnacl/contrib/randombytes/devurandom.h  | 25 -----------------
 tweetnacl/contrib/randombytes/randombytes.h | 18 +++++++++++-
 tweetnacl/contrib/randombytes/winrandom.c   | 43 +++++++++++++++++++++++++++++
 5 files changed, 104 insertions(+), 47 deletions(-)

commit e182438ad681375e1b71055781c7cf3451072633
Merge: 5d98e602 35d723ce
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 23 09:20:18 2015 +0200

    Merge pull request #1618 from madebr/cmake_sodium

    CMake: use libsodium + add Windows CI

commit 35d723ce5b9c17b60b750f6e8aba5e0bb06474e4
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date:   Fri Oct 23 01:32:00 2015 +0200

    Add Windows Continuous Integration (appveyor)

 appveyor.yml | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

commit 55ca9c56549e52bea1a024f7d70b6c81c88edfce
Author: Anonymous Maarten <maarten@localhost.localdomain>
Date:   Fri Oct 23 00:33:27 2015 +0200

    CMake: use libsodium if available, else use tweet_nacl

 CMakeLists.txt       | 41 +++++++++++++++++++++++------------------
 FindSodium.cmake     | 40 ++++++++++++++++++++++++++++++++++++++++
 tests/CMakeLists.txt |  3 ++-
 3 files changed, 65 insertions(+), 19 deletions(-)

commit 5d98e602c90f38b56b02732775e86e05e3daa1e3
Merge: 0650b59b da2bc60a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Oct 22 11:21:16 2015 +0200

    Merge pull request #1617 from somdoron/removing_pollfd

    problem: zmq_pollfd is not needed anymore when zmq_poller in place.

commit da2bc60abed9d7d31f6402f5365a52b4c116f945
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Oct 22 11:12:04 2015 +0300

    Removing zmq_pollfd as it is replaced by zmq_poller

 Makefile.am                        |   4 -
 include/zmq.h                      |  18 --
 src/socket_poller.cpp              | 569 ++++++++++++++++++++++++++++++-------
 src/socket_poller.hpp              |  86 +++---
 src/zmq.cpp                        | 545 ++---------------------------------
 tests/CMakeLists.txt               |   1 -
 tests/test_poller.cpp              |  13 +-
 tests/test_thread_safe_polling.cpp | 164 -----------
 8 files changed, 555 insertions(+), 845 deletions(-)

commit 0650b59b10c4425efbeadp166bcd1fc5b3d04f88
Merge: a7ea57fb 24fc0d4e
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Oct 21 12:42:44 2015 +0100

    Merge pull request #1616 from somdoron/ZMQ_POLLER

    problem: ZMQ_POLLER doesn't support polling on out

commit 24fc0d4e892947195dde3b930aadb98f7389f1c2
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Oct 21 14:04:33 2015 +0300

    drop the socket postfix from poller methods

 include/zmq.h         |  8 ++++----
 src/socket_poller.cpp |  6 +++---
 src/socket_poller.hpp |  6 +++---
 src/zmq.cpp           | 12 ++++++------
 tests/test_poller.cpp |  8 ++++----
 5 files changed, 20 insertions(+), 20 deletions(-)

commit 5c71fe65380660182e36453124dfe9751144385f
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Oct 21 10:34:00 2015 +0300

    Fix socket_poller windows compiling issue

 src/socket_poller.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 024819b4911185dp057c137d33bc356e892e8dde
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Oct 21 10:17:33 2015 +0300

    add ZMQ_HAVE_POLLER define to check if ZMQ_POLLER exist

 include/zmq.h | 2 ++
 1 file changed, 2 insertions(+)

commit 476ba22e0a73613ecdpe0fe3dfc3b8cff855e717
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Oct 21 10:14:36 2015 +0300

    ZMQ_Poller support more event types

 include/zmq.h         | 10 +++++---
 src/socket_poller.cpp | 63 ++++++++++++++++++++++++++++++++++++++++++++-------
 src/socket_poller.hpp | 10 +++++---
 src/zmq.cpp           | 38 +++++++++++++++++++++++++++----
 tests/test_poller.cpp | 18 +++++++++++----
 5 files changed, 116 insertions(+), 23 deletions(-)

commit 544d1e34999d21a736c90181700612c3f57c3248
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Oct 21 09:37:52 2015 +0300

    Change the error of zmq_poller from EAGAIN to ETIMEDOUT

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

commit c22f9f3633aa180684ef2d38153777c2752fcac0
Merge: 7604e1f7 a7ea57fb
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Tue Oct 20 15:16:07 2015 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit a7ea57fb68d5ce3c653c98b88d159d6f89d3d862
Merge: 979e6bb4 9114d395
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 20 13:50:07 2015 +0200

    Merge pull request #1615 from jeroenooms/master

    enable static libraries on mingw

commit 9114d3957725acd34aa8b8d011585812f3369411
Author: Jeroen Ooms <jeroenooms@gmail.com>
Date:   Tue Oct 20 13:10:38 2015 +0200

    enable static libraries on mingw

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

commit 979e6bb45c8ac5e9ff95c412ed4850fab89febf7
Merge: f1e6cb8b 06e882f8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 19 23:08:11 2015 +0200

    Merge pull request #1613 from maxkozlovsky/master

    honor buffer reference count in zmq::shared_message_memory_allocator:…

commit 06e882f8ea7628e45970a8d64687944f33709044
Author: Max Kozlovsky <max@portworx.com>
Date:   Mon Oct 19 13:29:26 2015 -0700

    honor buffer reference count in zmq::shared_message_memory_allocator::deallocate

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

commit f1e6cb8ba9b636a62cb501e64793329244e860f4
Merge: 50026995 e387ce15
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Oct 18 21:13:31 2015 +0200

    Merge pull request #1611 from somdoron/zpoller-port

    problem: polling on multiple sockets is complicated

commit e387ce1571e9fbd1c7a4b9fa86385c4af741625a
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Oct 18 21:50:24 2015 +0300

    remove pollfd from sockets when destroying poller

 src/socket_poller.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 6501b8089fb7f2d45e03581361ac35a753dfdf7e
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Oct 18 21:07:23 2015 +0300

    port zpoller to libzmq as zmq_poller

 .gitignore            |   1 +
 CMakeLists.txt        |   1 +
 Makefile.am           |  10 ++-
 include/zmq.h         |  29 +++++++
 src/socket_poller.cpp | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/socket_poller.hpp | 104 +++++++++++++++++++++++
 src/zmq.cpp           |  88 ++++++++++++++++++++
 tests/CMakeLists.txt  |   1 +
 tests/test_poller.cpp | 138 +++++++++++++++++++++++++++++++
 9 files changed, 594 insertions(+), 2 deletions(-)

commit 500269955df78b4e013224adfcef2ff63c1de5c9
Merge: a28398a4 516b440e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 9 15:56:27 2015 +0200

    Merge pull request #1604 from wcs1only/master

    Fixed for issue  #1315

commit 516b440e0d215cac59b771453ffeac0e5825b41d
Author: Charles Stanley <charles.stanley@highwinds.com>
Date:   Fri Oct 9 08:47:11 2015 -0400

    fixes #1315 socket monitor hangs if zmq_bind fails

 src/socket_base.cpp | 8 ++++----
 src/socket_base.hpp | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit a28398a4e8c0fa5814303b3082e4c2e1ac74b48a
Merge: ca525209 9a785824
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Oct 9 05:48:39 2015 +0200

    Merge pull request #1603 from jizhilong/fix/typo

    fix a typo in ypipe.hpp

commit 9a7858245c6c3caf5a6c67e05fd429a194777e9d
Author: Zhilong.JI <zlji@Ctrip.com>
Date:   Fri Oct 9 10:52:36 2015 +0800

    fix a typo in ypipe.hpp

 src/ypipe.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ea26e68b9d4c3625e80b959e9db02fcdff14a7b1
Author: Jens Auer <jens.auer@cgi.com>
Date:   Thu Oct 8 22:06:33 2015 +0200

    New options to set send/recv buffer size for TCP sockets.

 doc/zmq_getsockopt.txt | 27 +++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt | 27 +++++++++++++++++++++++++++
 include/zmq.h          |  2 ++
 src/options.cpp        | 29 +++++++++++++++++++++++++++++
 src/options.hpp        |  4 ++++
 src/stream_engine.cpp  | 24 ++++++++++++------------
 6 files changed, 101 insertions(+), 12 deletions(-)

commit ca52520944937686b68906d55162c30b1130d716
Merge: 96014ee7 dpfc5d12
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Oct 7 22:30:53 2015 +0200

    Merge pull request #1602 from scemama/master

    Fixes issue #1556

commit dpfc5d120b9ab01b6a3bb0ecfc0a5d309e949fde
Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
Date:   Wed Oct 7 22:10:23 2015 +0200

    Default behavior is --with-libsodium=yes

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

commit 73a0eed75d65a2f44ee0a433bac547213e410fdp
Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
Date:   Wed Oct 7 21:45:49 2015 +0200

    Fixes issue #1556

 configure.ac | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 96014ee7ed9f5e4417121cfa7f528f675591d3f8
Merge: cca67fdd 8ec747e1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 5 20:57:51 2015 +0200

    Merge pull request #1600 from lsniks/master

    Issue 1588 : Rollback in case send fails for multipart msg

commit 8ec747e14af2f6b069c83942754346ed07f72eeb
Author: Nikhil Mishra <nikhil@cinarra.com>
Date:   Mon Oct 5 11:46:48 2015 -0700

    Issue 1588 : Rollback in case send fails for multipart msg

 src/lb.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit cca67fdd1b3030ce4ddpccc653c71b0671e5ed36
Merge: 52ee7241 596d6e5b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Sep 29 06:01:51 2015 +0200

    Merge pull request #1595 from pijyoi/signaler_failable

    create signaler::recv_failable()

commit 596d6e5b1c2d060b2b5b09d01f7ebd207041791d
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Sep 29 09:14:02 2015 +0800

    create signaler::recv_failable()

    In real world usage, there have been reported signaler failures where the
    eventfd read() or socket recv() system call in signaler::recv() fails,
    despite having made a prior successful signaler::wait() call.

    this patch creates a signaler::recv_failable() method that allows
    unreadable eventfd / socket to return an error without asserting.

 src/mailbox.cpp  |  8 ++++++--
 src/signaler.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 src/signaler.hpp |  1 +
 3 files changed, 57 insertions(+), 5 deletions(-)

commit 52ee724144c15034ea3c75f45e00b817a898ca30
Merge: 79daac11 992ac3ba
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Sep 27 13:34:48 2015 +0100

    Merge pull request #1593 from meox/master

    fix error with gcc 5.2

commit 992ac3baa86cb03b4284c35b5a72154e9303f08f
Author: Gian Lorenzo Meocci <glmeocci@gmail.com>
Date:   Sun Sep 27 14:24:08 2015 +0200

    fix error with gcc 5.2

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

commit 79daac119a34c9c238c4beee93b7bfe1cd016188
Merge: a8605f57 e4c06bef
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 25 12:26:33 2015 +0200

    Merge pull request #1592 from c-rack/fix-test

    Solution: full is if number of msg is greater than hwm, not greater than hwm - 1

commit e4c06bef18d7c47eaa3dd1641febb5fd882ec6e9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Sep 25 11:56:54 2015 +0200

    Problem: check_hwm() has different semantic of 'full'

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

commit a8605f576e8b92a53dd1bebde30860b42a27c24e
Merge: dd6bb9dp f1358c12
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 25 11:36:41 2015 +0200

    Merge pull request #1591 from c-rack/check-hwm

    Solution: use existing check_hwm() method

commit f1358c12437898895ef3cebb91407d18719fe89d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Sep 25 11:24:48 2015 +0200

    Problem: duplicate code for hwm check

 AUTHORS      | 1 +
 src/pipe.cpp | 2 +-
 src/pipe.hpp | 8 ++++----
 3 files changed, 6 insertions(+), 5 deletions(-)

commit dd6bb9dp0c1716567cb6b1a664bd8c0d183b837d
Merge: d89753cb 05d0451e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Sep 19 15:51:47 2015 +0200

    Merge pull request #1586 from ricnewton/master

    Update cmake to support Visual Studio 2015

commit 05d0451e29efdcf2d8b018fbf4ce724df008db3d
Author: Richard Newton <richard_newton@waters.com>
Date:   Sat Sep 19 14:39:18 2015 +0100

    Update cmake to support Visual Studio 2015

 CMakeLists.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit d89753cbf004c0b7b09dpd95a9920068e4042b49
Merge: ed1009b3 b12b8ca2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 18 20:28:50 2015 +0200

    Merge pull request #1585 from msb-at-yahoo/fix-send-doc-typo

    Fix typo on send documentation re: nullification

commit b12b8ca23b2c508c596f8b2425ec7d53c770b156
Author: Maurice Barnum <msb@yahoo-inc.com>
Date:   Fri Sep 18 11:22:12 2015 -0700

    Fix typo on send documentation re: nullification

 doc/zmq_msg_send.txt | 2 +-
 doc/zmq_sendmsg.txt  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit ed1009b3a5a8fd6af00983ce1be3d99c3461bfda
Merge: 2452c598 e9e03f5a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Sep 18 16:57:19 2015 +0200

    Merge pull request #1584 from ymax/master

    fixed zmq assertion in signaler.cpp under ubuntu

commit e9e03f5ade3808f41ce5e53079bcecfd724b4610
Author: Maxim Yakhontov <ymaax@mail.ru>
Date:   Fri Sep 18 20:48:08 2015 +0600

    fixed zmq assertion in signaler.cpp under ubuntu

 src/signaler.cpp | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

commit 2452c598b7365d6e7d6b79bdf83f7b7be8c7cfbf
Merge: 0f51190c 5dc8b51c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Sep 17 11:31:10 2015 +0200

    Merge pull request #1582 from pengweichu/master

    Fixed the bug which cause the application crashed when use TCP connec…
    Fixes #1581

commit 5dc8b51ceb88f14fff1f8b1fccdp749c7c087506
Author: PP <pp@pp.com>
Date:   Thu Sep 17 16:59:25 2015 +0800

    Fixed the bug which cause the application crashed when use TCP connect to an invalid address(such as 192.168.1.255).

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

commit 0f51190c272dp0a07111db7de95ab062191c808f
Merge: ee7f2a27 3f4f3c11
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 14 14:24:37 2015 +0200

    Merge pull request #1580 from ricnewton/master

    Fix windows cmake build

commit 3f4f3c113737d2513e012825c79a34afd618d88d
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Sep 14 13:21:20 2015 +0100

    Fix windows cmake build

 CMakeLists.txt     | 2 +-
 tests/testutil.hpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit ee7f2a278a961a54e768144b4d27ce068c54371f
Merge: 2c94bb42 1fbc67a4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Sep 14 07:59:12 2015 +0200

    Merge pull request #1579 from staticfloat/patch-2

commit 1fbc67a40a816e4e8a6f8d6bcf2f6e500dd09471
Author: Elliot Saba <staticfloat@gmail.com>
Date:   Sun Sep 13 20:46:14 2015 -0700

    Fix pointer indirection precedence issue in docs

    Without this change, a segmentation fault is likely to occur when using the proposed snippet of code, as `*address[size]` is equivalent to `*(address[size])`, not `(*address)[size]` as clearly intended.

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

commit 2c94bb42c5a236c4fbd7ba13cd25f86a9ebd924b
Merge: fb57110b 3f925501
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Sep 13 14:18:49 2015 +0200

    Merge pull request #1578 from hintjens/master

    Problem: drop tests on CLIENT/SERVER are misleading

commit 3f9255019be1c5f89500c95f21d0534a189283a0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 13 12:24:15 2015 +0200

    Problem: description of ZMQ_CLIENT/SERVER has inaccuracies

    - both are thread safe
    - they do not accept ZMQ_SNDMORE nor ZMQ_RCVMORE

 doc/zmq_getsockopt.txt |  4 ++--
 doc/zmq_socket.txt     | 15 +++++++++++++--
 2 files changed, 15 insertions(+), 4 deletions(-)

commit 50859e40b99096f19163c536c29f44e4bb0a01ba
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 13 12:17:53 2015 +0200

    Problem: drop tests on CLIENT/SERVER are misleading

    These sockets deal only with single part data (at present), so the
    drop tests are misleading / inappropriate.

    Solution: remove them.

 Makefile.am                     |   8 ---
 tests/test_client_drop_more.cpp | 114 ----------------------------------------
 tests/test_server_drop_more.cpp | 114 ----------------------------------------
 3 files changed, 236 deletions(-)

commit fb57110b9487884a3fa257528e2c60d5da971e91
Merge: d0ffb913 f3ee8c69
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri Sep 11 14:24:51 2015 -0700

    Merge pull request #1577 from hintjens/master

    Various cleanups for CLIENT-SERVER sockets

commit f3ee8c69dbb50322a931534a55940fef85ad71dd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 17:22:37 2015 -0400

    Problem: request-reply pattern is lousy

    REQ-REP barely work, and DEALER-ROUTER are misnamed. As we move to
    formalizing CLIENT-SERVER, we can deprecate request-reply.

    Solution: move this section to the end of the man page, and mark as
    "will be deprecated".

 doc/zmq_socket.txt | 218 +++++++++++++++++++++++++++--------------------------
 1 file changed, 110 insertions(+), 108 deletions(-)

commit e7da0ea07baa44b8c81edc1cab7cd35ca21219dd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 17:12:58 2015 -0400

    Problem: client/server pattern is not documented

    Solution: add man pages/sections for:

     * ZMQ_SERVER
     * ZMQ_CLIENT
     * ZMQ_THREADSAFE
     * zmq_msg_routing_id
     * zmq_msg_set_routing_id

 doc/Makefile.am                |  1 +
 doc/zmq_getsockopt.txt         | 11 +++++
 doc/zmq_msg_routing_id.txt     | 61 +++++++++++++++++++++++++++
 doc/zmq_msg_set_routing_id.txt | 46 +++++++++++++++++++++
 doc/zmq_socket.txt             | 94 +++++++++++++++++++++++++++++++++++++-----
 5 files changed, 202 insertions(+), 11 deletions(-)

commit 4db73fc18bef4096100de9b04eca961d3fb996ac
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 17:09:24 2015 -0400

    Problem: msg.cpp:set_routing_id accepts a zero routing ID

    Solution: check/reject a zero routing ID with EINVAL.

 src/msg.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 6b00f40f747fa3158f5d5d2eb7eef817c339a653
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 17:07:50 2015 -0400

    Problem: test_client/server_drop_more are invalid

    These tests connected CLIENT and SERVER to DEALER... this isn't
    allowed. I changed to CLIENT-to-SERVER in both cases. The result
    was aborts in client.cpp and server.cpp which cannot handle
    invalid multipart data.

    I removed the asserts in each of these in xsend.

    Solution: fix the test cases and remove the (unwanted?) asserts
    in client.cpp:xsend and server.cpp:xsend.

 src/client.cpp                  | 16 ++++++--------
 src/server.cpp                  |  2 --
 tests/test_client_drop_more.cpp | 48 ++++++++++++++++++++---------------------
 tests/test_server_drop_more.cpp | 28 +++++++++++-------------
 4 files changed, 43 insertions(+), 51 deletions(-)

commit c2dffb9908252d60815cf7e0c3883bab845438d6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 17:01:27 2015 -0400

    Problem: threadsafe test uses CLIENT-to-CLIENT

    Solution: fix to use CLIENT-to-SERVER and increase number of messages
    sent to 100K per thread, to better stress thread safety.

 tests/test_thread_safe.cpp | 136 ++++++++++-----------------------------------
 1 file changed, 30 insertions(+), 106 deletions(-)

commit d416ffcec5b20f8df4135b2f1186ab193250a4b8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 16:42:26 2015 -0400

    Problem: cannot build single test case in tests

    This is due to the mangled include of platform.h, which was to make
    CMake happy.

    Solution: in CMakeLists.txt, define USING_CMAKE and then look for
    platform.h in current directory if that is defined, else look in
    ../src/ as one would expect.

 CMakeLists.txt     |  7 ++++---
 tests/testutil.hpp | 29 ++++++++++++++++++++---------
 2 files changed, 24 insertions(+), 12 deletions(-)

commit 5e936fe955ef2e8a448b3f5bec10ff3aff1073b8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 14:30:27 2015 -0400

    Problem: routing ID cycles back to zero

    It should never be zero.

    Solution: if rid cycles back to zero, bump to 1.

 src/server.cpp | 54 +++++++++++++++++++++++++++++-------------------------
 1 file changed, 29 insertions(+), 25 deletions(-)

commit 60fdfd9a1b2a41b5dpe89a50477a597ff838512a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 14:30:20 2015 -0400

    Problem: whitespace at end of lines, removed

 src/router.cpp | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit c5b1de368a2425e5e94e3d2dp36abff06ac6c63c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 13:46:02 2015 -0400

    Problem: code lets CLIENT connect to CLIENT

    This has no sense IMO; people who need this can still use DEALER-DEALER.

    Solution: let CLIENT talk only to SERVER.

 src/mechanism.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 87f2dff38c0890d1f7efe5514b57cb03b29b740f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 13:15:00 2015 -0400

    Problem: zmq_msg_get_routing_id () is not consistent with API

    We do not use 'get' for getters.

    Solution: rename to zmq_msg_routing_id () for public API.

 include/zmq.h                |  4 ++--
 src/msg.cpp                  |  6 +++---
 src/msg.hpp                  |  4 ++--
 src/pipe.hpp                 |  4 ++--
 src/server.cpp               |  6 +++---
 src/zmq.cpp                  |  8 ++++----
 tests/test_client_server.cpp | 18 ++++++++----------
 7 files changed, 24 insertions(+), 26 deletions(-)

commit 7be6ad050412ac396d4b9dp3cdbc1969e264c0cf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 11 13:03:31 2015 -0400

    Replaced tabs in some files, with spaces

 src/client.cpp      |  2 +-
 src/dealer.cpp      |  2 +-
 src/pair.cpp        |  2 +-
 src/pull.cpp        |  2 +-
 src/push.cpp        |  2 +-
 src/router.cpp      |  2 +-
 src/server.cpp      |  2 +-
 src/tcp.cpp         | 10 +++++-----
 src/tcp_address.cpp |  8 ++++----
 src/xsub.cpp        |  2 +-
 10 files changed, 17 insertions(+), 17 deletions(-)

commit d0ffb9132378d4ff9fb5d2f8da762c52fba00f28
Merge: 734a73c6 25a50ca0
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Sep 8 11:40:04 2015 +0200

    Merge pull request #1574 from pijyoi/master

    avoid dereferencing uint32_t on unaligned address

commit 25a50ca0d5d3ea076c63c23692e4cb9868bfb55d
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Sep 8 17:26:31 2015 +0800

    avoid dereferencing uint32_t on unaligned address

 src/socket_base.cpp | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

commit 734a73c63d77450a587c5cfb1f48f019c8bbd719
Merge: 3e432587 bd923f0f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 6 19:00:56 2015 +0200

    Merge pull request #1571 from c-rack/fix-typos

    Solution: fix typos

commit bd923f0fbb7488f6b072ad3e856ff60f50d01cdp
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Sep 6 18:46:32 2015 +0200

    Problem: some comments contain typos

 src/curve_client.hpp       |  2 +-
 src/decoder.hpp            |  6 +++---
 src/decoder_allocators.hpp |  4 ++--
 src/dist.cpp               |  2 +-
 src/fq.hpp                 |  2 +-
 src/i_decoder.hpp          |  2 +-
 src/io_thread.hpp          |  4 ++--
 src/ipc_connecter.cpp      |  4 ++--
 src/ipc_connecter.hpp      |  4 ++--
 src/ipc_listener.hpp       |  4 ++--
 src/mechanism.hpp          |  2 +-
 src/mtrie.cpp              |  2 +-
 src/norm_engine.hpp        |  2 +-
 src/object.hpp             |  2 +-
 src/options.hpp            |  2 +-
 src/own.cpp                |  2 +-
 src/own.hpp                |  6 +++---
 src/pgm_receiver.cpp       |  2 +-
 src/pgm_sender.cpp         | 12 ++++++------
 src/pipe.cpp               |  4 ++--
 src/req.cpp                |  2 +-
 src/req.hpp                |  2 +-
 src/router.cpp             |  2 +-
 src/select.hpp             |  2 +-
 src/server.cpp             |  2 +-
 src/signaler.cpp           |  4 ++--
 src/signaler.hpp           |  2 +-
 src/socket_base.cpp        |  8 ++++----
 src/socket_base.hpp        |  4 ++--
 src/socks_connecter.cpp    |  2 +-
 src/socks_connecter.hpp    |  4 ++--
 src/stream.cpp             |  2 +-
 src/tcp_address.cpp        |  2 +-
 src/tcp_address.hpp        |  2 +-
 src/tcp_connecter.cpp      |  2 +-
 src/tcp_connecter.hpp      |  4 ++--
 src/tcp_listener.hpp       |  2 +-
 src/tipc_connecter.cpp     |  4 ++--
 src/tipc_connecter.hpp     |  4 ++--
 src/tipc_listener.cpp      |  2 +-
 src/tipc_listener.hpp      |  2 +-
 src/trie.cpp               |  2 +-
 src/v2_decoder.cpp         |  2 +-
 src/xpub.cpp               |  4 ++--
 src/xpub.hpp               |  2 +-
 src/zmq.cpp                |  8 ++++----
 46 files changed, 74 insertions(+), 74 deletions(-)

commit 3e43258769fba35262147bbd47f7cb228c6b50c3
Merge: 39a0d339 64ffda90
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 6 02:01:02 2015 +0200

    Merge pull request #1570 from djelenc/deque_bug

    Problem: Tests in Travis are failing randomly

commit 64ffda90d2e3ccc66d0bb9fa2d83d85be21813a2
Author: David Jelenc <david.jelenc@fri.uni-lj.si>
Date:   Sun Sep 6 01:04:27 2015 +0200

    Problem: Tests in Travis are failing randomly

    Tests were failing, because some deque calls were causing undefined
    behavior: calling front() or pop_front() on an empty deque. Such
    calls are now safeguarded.

 src/xpub.cpp               | 13 +++++++++----
 tests/test_xpub_manual.cpp |  2 +-
 2 files changed, 10 insertions(+), 5 deletions(-)

commit 39a0d3391276608194e42ea97d7ea7b3e033287d
Merge: 47e1216e 8fd71d63
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Sep 5 16:30:36 2015 +0200

    Merge pull request #1569 from djelenc/xpub_manual_lost_subscriptions

    Fixed missing subscriptions on XPUB with manual subscriptions

commit 8fd71d631d740a558b56456e08b55574c19ef761
Author: David Jelenc <david.jelenc@fri.uni-lj.si>
Date:   Sat Sep 5 14:59:52 2015 +0200

    Fixed missing subscriptions on XPUB with manual subscriptions

    The patch fixes the issue #1568.

 src/xpub.cpp               |   8 +++-
 src/xpub.hpp               |   5 +-
 tests/test_xpub_manual.cpp | 117 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 128 insertions(+), 2 deletions(-)

commit 47e1216e1e0700595bab0ffb483dbada1b42027c
Merge: 9e8e81cf dd35e1db
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Sep 5 12:14:27 2015 +0200

    Merge pull request #1567 from djelenc/xpub_manual_proxy_disconnect_unsubscribe

    Problem: lingering subscriptions on XPUB sockets (#1566)

commit dd35e1db0f2f28387144cde7c13ea28d55ec0dp9
Author: David Jelenc <david.jelenc@fri.uni-lj.si>
Date:   Sat Sep 5 12:07:50 2015 +0200

    Problem: lingering subscriptions on XPUB sockets (#1566)

    The patch fixes lingering subscriptions that occur upon disconnection
    on XPUB sockets with option XPUB_MANUAL when used in a XPUB-XSUB
    proxies.

 src/xpub.cpp               |  17 +++--
 tests/test_xpub_manual.cpp | 150 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 160 insertions(+), 7 deletions(-)

commit 9e8e81cf9a227511fe027b4970eca19041ca72c0
Merge: 23c55612 5dad00eb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 3 12:41:55 2015 +0200

    Merge pull request #1564 from c-rack/issue-1558-2

    Solution: do not call poller->add_fd() with -1. Fixes #1558

commit 5dad00ebdcf692cf8275c4a7e0d2d194bd1ac280
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Sep 3 12:31:55 2015 +0200

    Problem: do not call poller->add_fd() with -1. Fixes #1558

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

commit 23c55612e46e6da81145d06007666a4b13cf2a23
Merge: 13db11c6 2159618b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 3 12:15:42 2015 +0200

    Merge pull request #1563 from zeromq/revert-1561-issue-1558

    Revert "Solution: check return code of make_fdpair() with zmq_assert"

commit 2159618b56d15b2333dee1dp87bc30dd5b1feff9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Sep 3 10:56:26 2015 +0200

    Revert "Solution: check return code of make_fdpair() with zmq_assert"

 src/signaler.cpp | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit 13db11c6dpfd7a02e8b59643295387c70924b5b0
Merge: 32d7da11 ee984b1f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Sep 3 10:19:42 2015 +0200

    Merge pull request #1562 from markuspf/fix-dragonfly-compile-2

    Make DragonFly a first class citizen in terms of compilation

commit ee984b1fe615d42191b348438f8c66690db230b0
Author: Markus Pfeiffer <markus.pfeiffer@morphism.de>
Date:   Thu Sep 3 08:58:12 2015 +0100

    Make DragonFly a first class citizen in terms of compilation

 configure.ac                  | 4 ++++
 src/gssapi_mechanism_base.hpp | 2 +-
 src/tcp_address.cpp           | 7 ++++---
 3 files changed, 9 insertions(+), 4 deletions(-)

commit 32d7da1103096fe9001d1eefe1d9124bee944b97
Merge: 801f39db bb978886
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 2 23:25:51 2015 +0200

    Merge pull request #1561 from c-rack/issue-1558

    Solution: check return code of make_fdpair() with zmq_assert

commit bb9788867f6d2846331e9a366144bee60c39f24d
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Sep 2 23:18:54 2015 +0200

    Problem: return code of make_fdpair() is not checked. Fixes #1558

 src/signaler.cpp | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 801f39dbeffdcf68718924ed1a0137dp1f8ad60e
Merge: 146be484 1fdf8f78
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Sep 2 10:02:56 2015 +0200

    Merge pull request #1557 from hintjens/master

    Cleaned up test case

commit 1fdf8f78e407bafc0a1ac1ca19baad603842a1ca
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 29 12:09:00 2015 +0200

    Cleaned up test case

 tests/test_stream_exceeds_buffer.cpp | 2 --
 1 file changed, 2 deletions(-)

commit 146be48495af17db8883943a13a145d83901939d
Merge: 0e1448a2 f86264db
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Aug 27 12:50:17 2015 +0200

    Merge pull request #1553 from flub/master

    Update zmq_inproc manpage for bind/connect order

commit f86264db3ea2385783ee044b07ab0323f70788b7
Author: Floris Bruynooghe <flub@devork.be>
Date:   Thu Aug 27 10:40:21 2015 +0100

    Update zmq_inproc manpage for bind/connect order

    The order of zmq_bind() and zmq_connect() is no longer important
    for the inproc transport since libzmq 4.0.  This updates this
    in the zmq_inproc manpage.

 doc/zmq_inproc.txt | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 0e1448a26f951b8bede350fb1c814e4cf073675e
Merge: bc513b63 370b8c9b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Aug 24 22:35:31 2015 +0200

    Merge pull request #1550 from xaqq/master

    Problem: Identity frame from router has no metadata

commit bc513b6381b42ec99b3d2fd2a3c58f9cf1519a5b
Merge: 735c02ed 33419425
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 22 09:09:56 2015 +0200

    Merge pull request #1547 from jemc/master

    Problem: Private/internal macros defined in public header.

commit 33419425eb3588c06fbc2d78bcc6758a0cf17712
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri Aug 21 16:12:22 2015 -0700

    Problem: Private/internal macros defined in public header.
    Solution: Move the macros to a private header.

 include/zmq.h           | 13 -------------
 src/address.cpp         |  1 +
 src/client.cpp          |  1 +
 src/ctx.cpp             |  1 +
 src/dealer.cpp          |  1 +
 src/epoll.cpp           |  1 +
 src/io_thread.cpp       |  1 +
 src/kqueue.cpp          |  1 +
 src/macros.hpp          | 12 ++++++++++++
 src/msg.cpp             |  1 +
 src/mtrie.cpp           |  1 +
 src/pair.cpp            |  1 +
 src/pgm_receiver.cpp    |  1 +
 src/pipe.cpp            |  1 +
 src/pull.cpp            |  1 +
 src/push.cpp            |  1 +
 src/reaper.cpp          |  1 +
 src/router.cpp          |  1 +
 src/server.cpp          |  1 +
 src/session_base.cpp    |  1 +
 src/socket_base.cpp     |  1 +
 src/socks_connecter.cpp |  1 +
 src/stream.cpp          |  1 +
 src/stream_engine.cpp   |  1 +
 src/tcp.cpp             |  1 +
 src/tcp_address.cpp     |  1 +
 src/tcp_connecter.cpp   |  1 +
 src/trie.cpp            |  1 +
 src/xsub.cpp            |  1 +
 src/zmq.cpp             |  1 +
 src/zmq_utils.cpp       |  1 +
 31 files changed, 41 insertions(+), 13 deletions(-)

commit 735c02ed5ed7f96ad001beb14b162b0725e27081
Merge: b07b1e27 63260d87
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Aug 21 23:57:18 2015 +0200

    Merge pull request #1546 from reza-ebrahimi/master

    rename ZMQ_UNUSED macro to LIBZMQ_UNUSED

commit 63260d870159f75adp14e604eab35b3f180718b5
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Sat Aug 22 00:31:25 2015 +0430

    rename ZMQ_UNUSED macro to LIBZMQ_UNUSED

 include/zmq.h       |  7 +++++--
 src/client.cpp      |  2 +-
 src/dealer.cpp      |  2 +-
 src/pair.cpp        |  2 +-
 src/pull.cpp        |  2 +-
 src/push.cpp        |  2 +-
 src/router.cpp      |  2 +-
 src/server.cpp      |  2 +-
 src/stream.cpp      |  2 +-
 src/tcp.cpp         | 10 +++++-----
 src/tcp_address.cpp |  8 ++++----
 src/xsub.cpp        |  2 +-
 12 files changed, 23 insertions(+), 20 deletions(-)

commit b07b1e270ecd5ef5d5afee25176669c28e59346c
Merge: 4e5843b8 096007c5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 21 11:25:45 2015 +0200

    Merge pull request #1545 from ricnewton/master

    Fix zmq crash when calling shutdown with a pending inproc socket connect

commit 096007c574a33ef5ea2b4665e20f68c21b883f61
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Aug 21 10:06:54 2015 +0100

    Fix zmq crash when calling shutdown with a pending inproc socket connect

 src/ctx.cpp                   |  9 +++++++--
 tests/test_inproc_connect.cpp | 22 ++++++++++++++++++++++
 2 files changed, 29 insertions(+), 2 deletions(-)

commit 4e5843b8ff6ff4f32b80ddd17b7ad10c8966480a
Merge: ec98916e 7e09306c
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 21 08:12:09 2015 +0200

    Merge pull request #1543 from csiro-workspace/master

    Set signaler_port to 0 which allows the OS to find a free port

commit 7e09306cb369f4c345850627f3969be153eaa3cf
Author: Matt Bolger <matt.bolger@csiro.au>
Date:   Fri Aug 21 13:45:59 2015 +1000

    -Set signaler_port to 0 which allows the OS to find a free port, rather than crashing if 5905 is in use (https://github.com/zeromq/libzmq/issues/1542)
    -Added config.hpp to the source list so it shows up in generated projects
    -Remove CMAKE_BUILD_TYPE setting for generators that don't use it

 CMakeLists.txt | 7 +++++--
 src/config.hpp | 6 +++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

commit ec98916e82d7f634f881c065382194ccccc8e42a
Merge: 6aa5c20b 61217a26
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Aug 20 16:54:03 2015 +0200

    Merge pull request #1541 from jemc/master

    Problem: Source files contain mixed tabs and spaces.

commit 61217a2686fe0e1b9d4f266a8277d3649821668b
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Aug 20 07:46:34 2015 -0700

    Problem: Source files contain mixed tabs and spaces.
    Solution: Convert to spaces and remove trailing whitespace in these files.

 include/zmq.h                    |   8 +-
 src/blob.hpp                     |   8 +-
 src/clock.cpp                    |  20 ++---
 src/condition_variable.hpp       |  56 ++++++-------
 src/ctx.hpp                      |   6 +-
 src/gssapi_mechanism_base.cpp    |   2 +-
 src/gssapi_server.cpp            |   2 +-
 src/gssapi_server.hpp            |   4 +-
 src/mtrie.cpp                    |  14 ++--
 src/pgm_socket.cpp               |  96 +++++++++++-----------
 src/pipe.cpp                     |  10 +--
 src/socket_base.cpp              |  51 ++++++------
 src/thread.cpp                   |   6 +-
 src/xpub.cpp                     | 166 +++++++++++++++++++--------------------
 src/xpub.hpp                     |  12 +--
 src/zmq.cpp                      |  42 +++++-----
 tests/test_connect_rid.cpp       |  18 ++---
 tests/test_srcfd.cpp             |  20 ++---
 tests/test_stream_disconnect.cpp |  64 +++++++--------
 tests/test_thread_safe.cpp       | 124 ++++++++++++++---------------
 tests/test_xpub_manual.cpp       |  50 ++++++------
 tests/test_xpub_welcome_msg.cpp  |  14 ++--
 22 files changed, 396 insertions(+), 397 deletions(-)

commit 6aa5c20b3d2eef369544d20f7479ff05f906a2d4
Merge: 391bc12d 1240d7ac
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Aug 20 14:44:45 2015 +0100

    Merge pull request #1540 from djelenc/fix_failing_tests

    Fixes failing tests regarding XPUB sockets.

commit 1240d7ac834ea43ea352655ee8ed5cb3cba896e7
Author: David Jelenc <david.jelenc@fri.uni-lj.si>
Date:   Thu Aug 20 15:32:23 2015 +0200

    Fixes failing tests regarding XPUB sockets.

    Fixes tests that were introduced in a previous pull request. See
    https://github.com/zeromq/libzmq/pull/1539#issuecomment-132968987

 src/xpub.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 391bc12d17515ff66d849291d064a487f8a9dpc2
Merge: 3f326b10 b9634e11
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Aug 20 12:34:19 2015 +0200

    Merge pull request #1539 from djelenc/issue1116

    Addresses zeromq/libzmq#1116.

commit b9634e11a34de2ec9a213c5bbcb15a2e9af8a11e
Author: David Jelenc <david.jelenc@fri.uni-lj.si>
Date:   Thu Aug 20 12:09:56 2015 +0200

    Addresses zeromq/libzmq#1116.

    This patch  adds a new member of type deque to the
    xpub class that contains pointers to metadata_t.
    This deque is then used (alongside pending_data
    and pending_flags) to preserve metadata when
    copying messages.

 src/xpub.cpp | 6 ++++++
 src/xpub.hpp | 1 +
 2 files changed, 7 insertions(+)

commit 370b8c9bb1af509e4bc2f1bb24a6858f4521fc79
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Thu Aug 20 01:03:34 2015 +0200

    Problem: Identity frame from router has no metadata

    The routing id (identity) frame return when reading from
    a router doesn't have the same metadata as the "real"
    message that follows.
    For example, The ZAP "User-Id" property is missing.

    This patch attach the "data message"'s metadata
    to the "identity message" when it is read from the router.

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

commit 3f326b10d644c2006810613fa13863cdp7e2571e
Merge: 709a1e9a 0c4032b5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Aug 17 18:17:20 2015 +0200

    Merge pull request #1536 from bluca/ci-osx-missing-dependency

    CI run on OSX needs binutils

commit 709a1e9a2d398bbd6c5b2c2dp55cd78cddbfd9aa
Merge: a96f16e3 4da5ff6a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Aug 17 18:11:52 2015 +0200

    Merge pull request #1535 from somdoron/master

    problem: trying to support polling on thread safe sockets with zmq_poll failed

commit 0c4032b5af1654352347bc10b663e3c36a4fddf5
Author: Luca Boccassi <lboccass@brocade.com>
Date:   Mon Aug 17 17:06:56 2015 +0100

    CI run on OSX needs binutils

    OSX does not ship with binutils, need to install it before the script
    run via brew in order to be able to use greadelf, needed by the
    qt-android CI script.

 .travis.yml | 3 +++
 1 file changed, 3 insertions(+)

commit 4da5ff6a7d12ffcca8041cd35a9dfe1bb475b9a7
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Aug 17 17:57:30 2015 +0300

    revert to original zmq_polland creating zmq_pollfd_poll for polling on pollfd

 include/zmq.h                      |   8 +
 src/zmq.cpp                        | 574 ++++++++++++++++++++++++++++++++-----
 tests/test_thread_safe_polling.cpp |  10 +-
 3 files changed, 511 insertions(+), 81 deletions(-)

commit a96f16e3fa8d30a211f1e0af94d5a763913274c6
Merge: 7d42aac0 d83b0453
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Aug 17 13:40:26 2015 +0200

    Merge pull request #1534 from somdoron/master

    problem: new poller field in zmq_pollitem_t is changing the api

commit d83b04534792e4ff285c0b4c4c22cdd51d15c8f8
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Aug 17 14:20:49 2015 +0300

    rename poller to pollfd

 include/zmq.h                      | 12 ++++++------
 src/zmq.cpp                        | 18 +++++++++---------
 tests/test_thread_safe_polling.cpp | 16 ++++++++--------
 3 files changed, 23 insertions(+), 23 deletions(-)

commit 7d42aac0c5b7b6987441ecc3eaff73db46a3e37a
Merge: 87e7ed05 34fe5eaf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Aug 17 13:17:53 2015 +0200

    Merge pull request #1533 from c-rack/fix-tests

    Problem: tests fail after PR #1531

commit 34fe5eaf262e1281ce6d5a36ac12f1b95f163fdf
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Aug 17 12:41:27 2015 +0200

    Solution: explicitly set u.base.metadata to null

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

commit 5bdp6911afba90de42b9fd21315f6d702e1bb2c6
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Aug 17 11:50:50 2015 +0300

    remove poller field, using fd instead

 include/zmq.h                      |  7 ++++++-
 src/zmq.cpp                        | 15 +++++++++------
 tests/test_thread_safe_polling.cpp | 12 +++---------
 3 files changed, 18 insertions(+), 16 deletions(-)

commit 87e7ed054b5517b16eb8c250917ed9e9514132ee
Merge: 6d9eb184 7058c546
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 16 22:54:01 2015 +0200

    Merge pull request #1531 from reza-ebrahimi/master

    apply a change to LIBZMQ_DELETE macro (related to issue #1524)

commit 7058c5467228cedd2fe7e218b1dp3fb6d28320d7
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Mon Aug 17 01:00:55 2015 +0430

    apply a change to LIBZMQ_DELETE macro (related to issue #1524)

 include/zmq.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 6d9eb184b53238e6cc06ea660a2105d56dc4536c
Merge: 9bf88bcc 1621c25e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 16 22:21:19 2015 +0200

    Merge pull request #1530 from reza-ebrahimi/master

    define a macro for heap object deletion in a unified manner (related …

commit 1621c25ef0e3ee1574075bf1cb81346b6272bb26
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Mon Aug 17 00:35:11 2015 +0430

    define a macro for heap object deletion in a unified manner (related to issue #1524)

 include/zmq.h           |  3 +++
 src/address.cpp         |  9 +++------
 src/ctx.cpp             | 10 ++++++----
 src/epoll.cpp           | 11 ++++++-----
 src/io_thread.cpp       |  2 +-
 src/kqueue.cpp          |  6 +++---
 src/msg.cpp             | 11 ++++++-----
 src/mtrie.cpp           | 28 +++++++++++-----------------
 src/pgm_receiver.cpp    | 14 ++++++--------
 src/pipe.cpp            | 38 ++++++++++++++------------------------
 src/reaper.cpp          |  2 +-
 src/session_base.cpp    |  2 +-
 src/socket_base.cpp     | 21 +++++++++++----------
 src/socks_connecter.cpp |  7 +++----
 src/stream_engine.cpp   | 14 ++++++++------
 src/tcp_connecter.cpp   |  6 ++----
 src/trie.cpp            | 13 ++++++-------
 src/zmq.cpp             |  2 +-
 src/zmq_utils.cpp       |  2 +-
 19 files changed, 93 insertions(+), 108 deletions(-)

commit 9bf88bcc035744f45efe82558e1265cb0d4abebe
Merge: 9ebd54a9 1ab46674
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 16 21:32:39 2015 +0200

    Merge pull request #1529 from bluca/container

    Container-based CI build

commit 1ab46674128a2b7ab864b4c3378a421337f20e23
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 16 18:56:24 2015 +0100

    Set -x in ci_build.sh to show commands in log

 ci_build.sh | 2 ++
 1 file changed, 2 insertions(+)

commit f6b0eaddb5ec3b07ff0015a886f10e7d4a02f136
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 16 18:55:43 2015 +0100

    Set sudo: false to force container build

 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

commit 1afc30a6c4b0b37a7fb7f7547c12ecca4598aad6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 16 18:46:03 2015 +0100

    CI build/install in local directory

 ci_build.sh | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 9ebd54a9e5a9855271c7745ea2206c0ab20a1b51
Merge: eb1d72f8 f4e9e6f0
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 16 17:45:57 2015 +0200

    Merge pull request #1528 from bluca/fix-travis-check

    CI build does not fail when tests fail. Fix #1527

commit f4e9e6f062c83385e38c7c4ad20992be99a4ff15
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 16 16:01:03 2015 +0100

    CI build does not fail when tests fail. Fix #1527

 ci_build.sh | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit eb1d72f81d4988a3e5d1700baa090fa95cb1f906
Merge: e74e36de 9d829f72
Author: Brian Knox <taotetek@gmail.com>
Date:   Sun Aug 16 11:09:28 2015 -0400

    Merge pull request #1526 from somdoron/master

    problem: new field is breaking existing code

commit 9d829f72f48c0fcfbb5cfee574bcc1dd5e2e7972
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 16 17:59:54 2015 +0300

    moving new poller field to the end of the struct

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e74e36def1092635321453b3bc220522da75871a
Merge: de018e87 6eddbd98
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 16 13:10:16 2015 +0200

    Merge pull request #1525 from somdoron/master

    problem: user cannot poll on thread safe sockets

commit 6eddbd98bce3cd089668139f148a30e75c8416eb
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 16 13:55:41 2015 +0300

    polling on thread safe sockets

 src/zmq.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 48 insertions(+), 8 deletions(-)

commit 1653d3c09383bec4c58fbd45754a867e83db83b2
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 16 12:48:32 2015 +0300

    add new tests to gitignore

 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

commit 1aaa893e027247f8aa7dpd6e136e95c5335ab91d
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 16 12:48:03 2015 +0300

    add tests for polling on thread safe sockets

 Makefile.am                        |   7 +-
 tests/CMakeLists.txt               |   1 +
 tests/test_thread_safe_polling.cpp | 170 +++++++++++++++++++++++++++++++++++++
 3 files changed, 177 insertions(+), 1 deletion(-)

commit a63818904dbf980dd458a0c930e048b1b9842c00
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 16 11:41:44 2015 +0300

    add methods to handle poller

 include/zmq.h       |  8 ++++++--
 src/socket_base.cpp | 32 +++++++++++++++++++++++++++++++
 src/socket_base.hpp |  2 ++
 src/zmq.cpp         | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 94 insertions(+), 2 deletions(-)

commit 34968771ca6f9851281912dc4d2341e8064d24d1
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Aug 16 10:42:11 2015 +0300

    add an option to check if the socket is thread safe

 include/zmq.h              |  1 +
 src/socket_base.cpp        | 13 +++++++++++++
 tests/test_thread_safe.cpp |  7 +++++++
 3 files changed, 21 insertions(+)

commit de018e8766cf64fe5ab31c708fa54fd91ccdd088
Merge: eb2eec64 a50834cb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 14 16:13:41 2015 +0200

    Merge pull request #1522 from reza-ebrahimi/master

    fixed issue with ticket #1517 (wrong lib output name in MSVC CMake bu…

commit a50834cbecc27f42d65166464f79c6fe32acb045
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Fri Aug 14 18:04:54 2015 +0430

    fixed issue with ticket #1517 (wrong lib output name in MSVC CMake build) and apply some improvements in CMake build system

 CMakeLists.txt | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit eb2eec646f9ac83276246c3e97d032f5155450f3
Merge: 003dp1bf 8e6ef461
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 14 14:42:54 2015 +0200

    Merge pull request #1521 from reza-ebrahimi/master

    changing some camelCase variable names to snake_case in previous commit

commit 8e6ef4616e9341c44fdfdp224bd11d1c68df086f
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Fri Aug 14 16:56:07 2015 +0430

    changing some camelCase variable names to snake_case in previous commit

 src/err.cpp             |  6 +++---
 src/ip.cpp              | 10 +++++-----
 src/socks_connecter.cpp |  6 +++---
 src/tcp.cpp             | 38 +++++++++++++++++++-------------------
 src/tcp_connecter.cpp   |  6 +++---
 src/tcp_listener.cpp    | 10 +++++-----
 6 files changed, 38 insertions(+), 38 deletions(-)

commit 003dp1bfc6e5a04eb748bbc7d2015bffe498a033
Merge: 6d217aa9 d7b74d1f
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 14 14:14:04 2015 +0200

    Merge pull request #1520 from reza-ebrahimi/master

    remove unnecessary multiple WSAGetLastError() calls

commit d7b74d1f57b64e070c8ab4cfc46a14929bc5a4a2
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Fri Aug 14 16:29:18 2015 +0430

    remove unnecessary multiple WSAGetLastError() calls

 src/err.cpp             |  6 +++---
 src/ip.cpp              |  9 +++++----
 src/socks_connecter.cpp |  6 +++---
 src/tcp.cpp             | 48 ++++++++++++++++++++++++++----------------------
 src/tcp_connecter.cpp   |  6 +++---
 src/tcp_listener.cpp    |  9 +++++----
 6 files changed, 45 insertions(+), 39 deletions(-)

commit 6d217aa919bf3987b5fa8e5f1bf7f6ea87082e84
Merge: bf27d58b bff2284a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 14 13:28:53 2015 +0200

    Merge pull request #1519 from reza-ebrahimi/master

    place a ZMQ_UNUSED macro and replace all unused variables with ZMQ_UNUSED macro

commit bff2284a50fa4a73fd0e52830f7e3e2964bf5d9c
Author: Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
Date:   Fri Aug 14 15:40:39 2015 +0430

    place a ZMQ_UNUSED macro and replace all unused variables with ZMQ_UNUSED macro

 include/zmq.h       |  6 ++++++
 src/client.cpp      |  3 +--
 src/dealer.cpp      |  3 +--
 src/pair.cpp        |  3 +--
 src/pull.cpp        |  3 +--
 src/push.cpp        |  4 ++--
 src/router.cpp      |  3 +--
 src/server.cpp      |  3 +--
 src/stream.cpp      |  3 +--
 src/tcp.cpp         | 10 +++++-----
 src/tcp_address.cpp |  9 ++++-----
 src/xsub.cpp        |  3 +--
 12 files changed, 25 insertions(+), 28 deletions(-)

commit bf27d58b7a5394f3247bbd43e84d74c366ed1e06
Merge: effc26c6 8bf4d1ea
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Aug 13 08:51:45 2015 +0200

    Merge pull request #1518 from sappo/master

    Problem: Missing src/ prefix for libzmq library in Makefile.am ...

commit 8bf4d1eaafb8acc8cfefadp7530c44996de0692b
Author: Kevin Sapper <mail@kevinsapper.de>
Date:   Thu Aug 13 07:13:00 2015 +0200

    Problem: Missing src/ prefix for libzmq library in Makefile.am for test_getsockopt_memset
    Solution: Add prefix to fix test compilation

 Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit effc26c69507109c93af0dp59d3dd5482b135939
Merge: 08c2a927 fd9bd1b2
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Aug 12 10:03:45 2015 +0200

    Merge pull request #1476 from hintjens/master

    Problem: lack test case for large stream messages

commit 08c2a9274e25773cbddf23d2da2c7de63e91871f
Merge: de55e3a3 c68e9a39
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Aug 11 23:30:59 2015 +0200

    Merge pull request #1514 from rikvdh/master

    Merge fix for zeromq/zeromq4-1#52, getsockopt ZMQ_RCVMORE now resets all bits

commit de55e3a35572eb06cd0f3408987e52b7d9630fcf
Merge: b7910314 5485d6e3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Aug 11 23:30:22 2015 +0200

    Merge pull request #1515 from rikvdh/test-proxy-return

    Check proxy return values in tests

commit 5485d6e371a23ef2408b165f1efed187a2af1c5b
Author: Rik van der Heijden <rik.vanderheijden@dualinventive.com>
Date:   Tue Aug 11 21:44:41 2015 +0200

    Check proxy return values in tests

 tests/test_proxy.cpp               | 3 ++-
 tests/test_proxy_single_socket.cpp | 3 ++-
 tests/test_proxy_terminate.cpp     | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

commit c68e9a39bf6b2088be637a8edaffe9c632c41257
Author: Rik van der Heijden <rik.vanderheijden@dualinventive.com>
Date:   Tue Aug 11 21:37:50 2015 +0200

    Merge fix for zeromq/zeromq4-1#52, getsockopt ZMQ_RCVMORE now resets all bits

 Makefile.am                      |  4 +++
 src/socket_base.cpp              |  1 +
 tests/CMakeLists.txt             |  1 +
 tests/test_getsockopt_memset.cpp | 64 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 70 insertions(+)

commit fd9bd1b2a5bbe0e2c95fc69b2e1d63c7affd67af
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 11 19:35:48 2015 +0200

    Problem: broke Cmake build

 tests/testutil.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d5cdac16153509047cc9546197ee869ef825dd4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Aug 10 12:25:19 2015 +0200

    Problem: source packages lack makefiles for all systems except msvc

    Solution: specify the necessary EXTRA_DIST

    I added a Makefile.am in builds that covers all systems except msvc,
    which already has a Makefile.am that does this.

    Fixes #1505

 Makefile.am        |  4 ++--
 builds/Makefile.am | 34 ++++++++++++++++++++++++++++++++++
 configure.ac       |  1 +
 3 files changed, 37 insertions(+), 2 deletions(-)

commit 2b45e38b7ba4d1258cee4c7474701dc1d54d680d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 20 23:05:48 2015 +0200

    Problem: documentation for ZMQ_CTX_BLOCKY is wrong

    Solution: fix it. Default is true, not false.

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

commit 11fba2b8136a43b51240341629a178913e75fc55
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 20 09:04:40 2015 +0200

    Fixed compile errors in test_stream

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

commit 92c4decb6979824b5115c480e35cd1e853d9e00c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 19 16:11:22 2015 +0200

    Problem: lack test case for large stream messages

    Solution: added to test_stream.cpp

 tests/test_stream.cpp | 41 ++++++++++++++++++++++++++++++++++-------
 tests/testutil.hpp    |  6 +++---
 2 files changed, 37 insertions(+), 10 deletions(-)

commit b7910314235d4c2bcc262656b3e6033840fb5930
Merge: 84a93d42 e1296404
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Aug 7 10:02:52 2015 +0200

    Merge pull request #1512 from pijyoi/retransmit_fix

    fix: ZMQ_TCP_RETRANSMIT_TIMEOUT not applied to bind socket

commit e1296404715bdaf94580e79cca6a5d753c8117ad
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Fri Aug 7 06:43:31 2015 +0800

    fix: ZMQ_TCP_RETRANSMIT_TIMEOUT not applied to bind socket

 src/tcp_listener.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 84a93d4251a102661290a9c156a992d4ecc83f41
Merge: ba6e1337 abc845d1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Aug 6 20:45:45 2015 +0200

    Merge pull request #1511 from sorenh/linger_fix

    Avoid terminating connections prematurely

commit abc845d1afec54467fd76725a371f309be11c1ba
Author: Soren Hansen <Soren.Hansen@ril.com>
Date:   Thu Aug 6 20:09:37 2015 +0200

    Avoid terminating connections prematurely

    While sending very large messages (far beyond what fits in a the tcp
    buffer, so it takes multiple sendto system calls for it to finish),
    zmq_close will close the connection regardless of ZMQ_LINGER.

    In case no engine is attached, a pipe->check_read() is needed to look
    for the delimiter in the pipe and ultimately trigger the pipe
    termination.

    However, if there *is* an engine attached, the check_read() looks ahead
    and finds the delimiter and terminates the connection even though the
    engine might actually still be in the middle of sending a message.

    This happens because while the io_thread is still busy sending the data,
    the pipe can get terminated and the io thread ends up being terminated.

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

commit ba6e1337a34099c407ac01b3a26369871db98db6
Merge: 064c2e08 c7f2cdd6
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Aug 6 17:26:13 2015 +0100

    Merge pull request #1510 from pijyoi/retransmit_timeout

    add ZMQ_TCP_RETRANSMIT_TIMEOUT socket option

commit c7f2cdd6995e5dea499d43781cb1c1ac4ac2700b
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Fri Aug 7 00:05:13 2015 +0800

    fix: Windows setsockopt needs char* cast

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

commit ca9215de1e7a69dfaf345daa2011601c1364ecbc
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Thu Aug 6 23:36:27 2015 +0800

    add ZMQ_TCP_RETRANSMIT_TIMEOUT socket option

 doc/zmq_getsockopt.txt | 16 ++++++++++++++++
 doc/zmq_setsockopt.txt | 16 ++++++++++++++++
 include/zmq.h          |  1 +
 src/options.cpp        | 15 +++++++++++++++
 src/options.hpp        |  5 +++++
 src/tcp.cpp            | 18 +++++++++++++++++-
 src/tcp.hpp            |  3 +++
 src/tcp_connecter.cpp  |  1 +
 8 files changed, 74 insertions(+), 1 deletion(-)

commit 064c2e0836585cd95d0631045e1b9e6fea4c7a4a
Merge: 5724b55f c9971e08
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Aug 4 16:54:56 2015 +0200

    Merge pull request #1508 from pijyoi/connect_timeout

    add ZMQ_CONNECT_TIMEOUT option

commit c9971e08a0b611fe1b6b6162a2a430dp53d3a3dd
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Aug 4 22:14:50 2015 +0800

    write man pages

 doc/zmq_getsockopt.txt | 14 ++++++++++++++
 doc/zmq_setsockopt.txt | 14 ++++++++++++++
 2 files changed, 28 insertions(+)

commit eeb697b5acacf89ced182c834a14bade154c1bdd
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Aug 4 20:47:31 2015 +0800

    add connect timeout logic

 src/tcp_connecter.cpp | 40 +++++++++++++++++++++++++++++++++++++---
 src/tcp_connecter.hpp |  6 +++++-
 2 files changed, 42 insertions(+), 4 deletions(-)

commit c0ca2be6425f70bb0b7a04962077a9003ec2252a
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Aug 4 20:47:07 2015 +0800

    add ZMQ_CONNECT_TIMEOUT socket option

 include/zmq.h   |  1 +
 src/options.cpp | 15 +++++++++++++++
 src/options.hpp |  5 +++++
 3 files changed, 21 insertions(+)

commit 4a0bde8130be6f709c4d81c355a99fe2e61e1b14
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Aug 4 20:19:01 2015 +0800

    rename timer_started to reconnect_timer_started

 src/tcp_connecter.cpp | 12 ++++++------
 src/tcp_connecter.hpp |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 5724b55f7bc261ac562d0433073c26f019bcf2dc
Merge: d65dab20 2d9c7f3a
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Tue Aug 4 15:52:53 2015 +0200

    Merge pull request #1507 from pijyoi/fixdoc

    ZMQ_TCP_KEEPALIVE_IDLE doc wrongly mentions TCP_KEEPCNT

commit 2d9c7f3a1f20235d6f528b109e52c03b127bb2a7
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Aug 4 21:43:44 2015 +0800

    ZMQ_TCP_KEEPALIVE_IDLE doc wrongly mentions TCP_KEEPCNT

    was fixed in zmq_setsockopt.txt but not in zmq_getsockopt.txt

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

commit d65dab20392823c89e21b4e3c1288625c99a86fe
Merge: 23655c5c 85da2ea4
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Aug 2 19:22:53 2015 +0100

    Merge pull request #1504 from bluca/travis-file-limit

    Increase file limit in travis config

commit 85da2ea42f38bdefaf60caac89d7da29c52da04d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Aug 2 19:20:34 2015 +0100

    Increase file limit in travis config

    Test cases occasionally fail, especially on OSX, due to socket limit.
    Part of fix for #1502

 .travis.yml | 6 ++++++
 1 file changed, 6 insertions(+)

commit 23655c5c56041ff1e0fd19f26cac7b7006e8a96e
Merge: 57ef5935 270a1ac5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Aug 2 20:08:34 2015 +0200

    Merge pull request #1503 from bluca/travis-ci-osx

    Travis ci osx

commit 270a1ac5779e81f55345646b6dc4694045b73a36
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 1 18:56:11 2015 +0100

    Add OSX build to travis config. Fixes #1502

 .travis.yml | 4 ++++
 1 file changed, 4 insertions(+)

commit 20ba66101970142b171b021c8e14f7237590672d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 1 18:53:11 2015 +0100

    Do not use ldconfig in CI if running on OSX

    ldconfig is not available on OSX, so Travis CI build fails

 ci_build.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 40e2befbbe8297a91832d3a206dc87de9b198169
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Aug 1 18:46:32 2015 +0100

    Update NDK version to r10e, OSX support

 builds/qt-android/ci_build.sh | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

commit 102d1b14d0cb28a4b47e070001a2eb05e2e8a967
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Jul 30 01:04:46 2015 +0100

    Check for [g]readelf availability in qt-android helper

    readelf is not available on OSX, greadelf is available on homebrew

 builds/qt-android/android_build_helper.sh | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 57ef59352b1cdfcb2a150463a50a60d15c86cc48
Merge: 67640557 438b5207
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Aug 2 16:35:10 2015 +0100

    Merge pull request #1501 from jemc/fix/issue-1500

    Remove type-pun in zmq.cpp to resolve issue #1500.

commit 438b5207f6eb2fe7d8d53c603b2c32a25a80db3b
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Sun Aug 2 08:27:07 2015 -0700

    Remove type-pun in zmq.cpp to resolve issue #1500.

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

commit 7604e1f7d55c22a41c09890b83fa6089c70aa7cb
Merge: 41d85f52 67640557
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sun Aug 2 04:56:55 2015 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit 67640557de115c694f916792dc16507c84b8b130
Merge: 7b5bf4dp 6d0cea54
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Aug 1 18:41:44 2015 +0200

    Merge pull request #1499 from jemc/docfix/setsockopt

    Documentation fixes for socket options.

commit 6d0cea54aa629fd94172ddpda7d2aafcecd0cbdb
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri Jul 31 22:37:36 2015 -0700

    Fix alphabetical order of non-deprecated setsockopt docs.

 doc/zmq_setsockopt.txt | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

commit 94c579a6c0bdd9488140ba8d8f76e4ec48378720
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri Jul 31 22:36:57 2015 -0700

    Fix title of docs for `ZMQ_XPUB_WELCOME_MSG` socket option.

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

commit 7b5bf4dpfe021ec890048c17ff166273dpdbfc28
Merge: 2d8b1a78 d9f32611
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Aug 1 00:35:41 2015 +0200

    Merge pull request #1498 from pijyoi/master

    ZMQ_TCP_KEEPALIVE_IDLE doc wrongly says it overrides TCP_KEEPCNT

commit d9f32611adcb2a3c2c46748b16056def10391192
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Aug 1 06:29:06 2015 +0800

    ZMQ_TCP_KEEPALIVE_IDLE doc wrongly says it overrides TCP_KEEPCNT

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

commit 2d8b1a78b31f3c77db08bb019b273156685e41c1
Merge: a656b399 89fa904b
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Jul 30 16:55:35 2015 -0700

    Merge pull request #1497 from bluca/fix-autogen-libtool-detection

    Check for libtoolize instead of libtool on Linux

commit 89fa904b2d753c981710fe6883ecc36ea879cedc
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Jul 31 00:45:50 2015 +0100

    Check for libtoolize instead of libtool on Linux

    autogen.sh has a check for the libtool binary as a mean to
    check if libtool is available. But distributions like Debian and
    Ubuntu are splitting the libtool package, and the libtool binary is now
    in a separate package. What autoconf actually need is not the libtool
    binary, but libtoolize and other macro files. So check for libtoolize
    instead. On the other hand, OSX only ships libtool, not libtoolize,
    and uses a pre-generated libtool script to build. So check for
    libtoolize first and then for libtool, and fail if neither can be
    found.

 autogen.sh | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit a656b399cc82ec3d35d2e3fe2f49bca791e229e9
Merge: 94b6fca4 cb0491ca
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 28 22:57:58 2015 +0200

    Merge pull request #1496 from brian-peloton/macro-to-disable-test-timeout

    Add a way to disable libzmq's internal test timeout.

commit 94b6fca4066707089c62ff8b28f820f90a5786c7
Merge: 5dee4605 f86bded7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 28 22:57:46 2015 +0200

    Merge pull request #1495 from brian-peloton/fix-test-flakiness

    Increase sleep in test to fix flakiness under CPU load.

commit 5dee46052dab0b8db60369926ca5b2a68cb1cacc
Merge: 41520238 c4c5135d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 28 22:57:35 2015 +0200

    Merge pull request #1494 from brian-peloton/fix-partial-recv-in-test

    Retry recv if it only returns part of a message during tests.

commit 41520238543cd7bb66a8f5ec8af50ffef772d996
Merge: 6dfe8f20 e449d7bf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 28 22:57:22 2015 +0200

    Merge pull request #1493 from brian-peloton/fix-other-test-flakiness

    Fix test flakiness.

commit 6dfe8f20e28249645d65cd299d9b1a3d0a7e93cc
Merge: 80adc135 97969808
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 28 22:57:11 2015 +0200

    Merge pull request #1492 from brian-peloton/fix-memory-leak

    Fix a documented memory leak.

commit 80adc135c7b61522b24ac01e33bc2d1a0db401da
Merge: 7b2e37dc 62a0e450
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jul 28 22:56:36 2015 +0200

    Merge pull request #1491 from brian-peloton/fix-eventfd-under-load

    Fix eventfd read handling under heavy load.

commit c4c5135db6e9531860f538edcd066a50602e88cd
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Tue Jul 28 13:35:49 2015 -0700

    Retry recv if it only returns part of a message during tests.

    Under linux 3.16.0-4-amd64, I was getting occasional test failures
    before fixing this.

 tests/test_heartbeats.cpp | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

commit 62a0e450895cb5809d182908255c3110e8036dc0
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Tue Jul 28 13:38:58 2015 -0700

    Fix eventfd read handling under heavy load.

    I had the assertion below fail occasionally when running the libzmq
    tests under heavy CPU load on linux 3.16.0-4-amd64.

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

commit e449d7bfbdd29ede7ead251926fe2219e8ba5e7e
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Tue Jul 28 13:42:46 2015 -0700

    Fix test flakiness.

    I'm pretty sure this is an issue with the test being too picky and not a
    bug, but the behavior in this situation is not well documented.

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

commit 97969808f6d3c5d97850cea477229fde87aab4ad
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Tue Jul 28 13:43:30 2015 -0700

    Fix a documented memory leak.

    Despite the old comments, re-initing the msg_t leaks a refcount to
    metadata in some situations.

    v1_decoder looks like it isn't tested any more, but it seems like a good
    idea to fix it because it has the exact same piece of buggy code
    v2_decoder does.

 src/v1_decoder.cpp | 14 ++++++--------
 src/v2_decoder.cpp |  6 ++----
 2 files changed, 8 insertions(+), 12 deletions(-)

commit f86bded783324aabd6b4330cc125b3c583444417
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Tue Jul 28 13:42:24 2015 -0700

    Increase sleep in test to fix flakiness under CPU load.

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

commit cb0491ca1870eeea78ca7442a29e58233c8cf6ea
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Tue Jul 28 13:37:16 2015 -0700

    Add a way to disable libzmq's internal test timeout.

    It's nice to be able to disable libzmq's internal timeout when there's
    another timeout in the test runner being used which gives nicer error
    messages.

 tests/testutil.hpp | 2 ++
 1 file changed, 2 insertions(+)

commit 7b2e37dc90f47e98c5af59deb3a83581a0adp640
Merge: 0917eceb 81aa6f45
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Sun Jul 26 21:46:44 2015 -0700

    Merge pull request #1490 from evoskuil/master

    Problem: VS builds missing files, have warnings.

commit 81aa6f45a443af2e0dee87b5d507cd7c0d5f42d3
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Jul 26 17:37:38 2015 -0700

    Style and explicitness.

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

commit 6f0efc092caf0dd6792a32560ad5455c9b96cfde
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Jul 26 17:37:28 2015 -0700

    Make lossy cast explicit.

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

commit 342c417f9dfd095701cb033d71e7041406a7f152
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Jul 26 17:37:18 2015 -0700

    Add decoder_allocators to VS builds.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 2 ++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 6 ++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 2 ++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 6 ++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 2 ++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 6 ++++++
 6 files changed, 24 insertions(+)

commit 0917eceb6d800b55241ff74ef0079e060ea87d40
Merge: 7701a8f9 2182bc96
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jul 25 11:53:56 2015 +0200

    Merge pull request #1489 from pijyoi/fix_1488

    fix #1488 Heap buffer overflow in decoder

commit 2182bc963d2e0fc12a94adfdf92c7b31d593074e
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Jul 25 17:46:46 2015 +0800

    check for potential unsigned integer wraparound before adding

 src/msg.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 7701a8f93614fd8b9a05315de784803466df3855
Merge: 588e0d2d fd51b0e5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 24 00:11:23 2015 +0200

    Merge pull request #1487 from pijyoi/stream_notify

    don't break STREAM socket ABI from 4.1.x to 4.2.0

commit fd51b0e508172ec8b99b0785c4d7ab13e9b5f220
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Fri Jul 24 05:39:47 2015 +0800

    update test that relied on connect notifications to be disabled

 tests/test_connect_rid.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 3e7d73736093b5e9608ef74890d5f1772b4631fe
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Fri Jul 24 05:20:31 2015 +0800

    change ZMQ_STREAM_NOTIFY to default to 1

 doc/zmq_setsockopt.txt | 2 +-
 src/options.cpp        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 518b939f316510998cb62271ffe3df219d23725f
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Fri Jul 24 05:12:11 2015 +0800

    make ZMQ_STREAM_NOTIFY also control disconnect notificatons

 doc/zmq_setsockopt.txt | 10 +++++-----
 src/stream_engine.cpp  |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 588e0d2d8604ab7e7b0ee29421213f4115e75be8
Merge: 305c0758 ec5592db
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jul 23 13:07:01 2015 +0200

    Merge pull request #1486 from jimenezrick/fix-1478

    Fix 1478: receive unsubscriptions in XPUB when verbose

commit ec5592db1f87cd18e61545be4a3a3174709736dc
Author: Ricardo Catalinas Jiménez <r@untroubled.be>
Date:   Tue Jul 21 23:35:50 2015 +0100

    Fix 1478: receive unsubscriptions in XPUB when verbose

    Fixes not receiving unsubscription messages in XPUB socket with
    ZMQ_XPUB_VERBOSE and using a XSUB-XPUB proxy in front.

    This adds two modifications:

    - It adds a new flag, ZMQ_XPUB_VERBOSE_UNSUBSCRIBE, to enable verbose
      unsubscription messages, necessary when using a XSUB/XPUB proxy.

    - It adds a boolean switch to zmq::mtrie_t::rm () to control if the
      callback is invoked every time or only in the last removal. Necessary
      when a pipe is terminated and the verbose mode for unsubscriptions is
      enabled.

 doc/zmq_setsockopt.txt | 24 ++++++++++++++++++++++--
 include/zmq.h          |  1 +
 src/mtrie.cpp          | 23 ++++++++++++++---------
 src/mtrie.hpp          |  9 +++++----
 src/xpub.cpp           | 21 ++++++++++++++-------
 src/xpub.hpp           |  6 +++++-
 6 files changed, 61 insertions(+), 23 deletions(-)

commit 305c07583d5f7c7d7279d78e995ce93e9f0979f8
Merge: a4509d8f 91877a22
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Thu Jul 23 10:14:57 2015 +0200

    Merge pull request #1485 from ricnewton/master

    Fix windows build

commit 91877a22d7bad83ace3dc3246ef1693db92819df
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Jul 23 08:49:03 2015 +0100

    Fix windows build

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

commit a4509d8f882fb1dbd454fa935c9276c2b43fdbf0
Merge: 93218a60 708353a1
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Jul 23 08:26:15 2015 +0100

    Merge pull request #1484 from pijyoi/fixsmash

    fix #1447 Segfault or Abort after PR #1441

commit 93218a60dpfc88f7ad5c24c1474e2c31dd9b922a
Merge: 5fead473 e2be0d25
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Jul 22 12:58:35 2015 -0700

    Merge pull request #1483 from ktf/master

    Fix compilation on mac.

commit e2be0d25bd9e826efa051fe8c90db8864f88ebbe
Author: Giulio Eulisse <giulio.eulisse@cern.ch>
Date:   Wed Jul 22 21:31:48 2015 +0200

    Fix compilation on mac.

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

commit 5fead473a4a40719c452e802a9c9d030cb01ece8
Merge: c05a475b 773a06fc
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Jul 22 11:39:39 2015 -0700

    Merge pull request #1482 from brian-peloton/master

    Fix memory leak when creating a socket fails.

commit 773a06fc23526934e386875744ddbbb2413c2051
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Wed Jul 22 11:18:48 2015 -0700

    Fix memory leak when creating a socket fails.

    Previously, AddressSanitizer flagged leaks when running
    tests/test_many_sockets.cpp.

 src/signaler.cpp    | 39 ++++++++++++++++++++++++---------------
 src/socket_base.cpp |  5 ++++-
 2 files changed, 28 insertions(+), 16 deletions(-)

commit 708353a1b9d97c0465d2ba684cf81121676d8633
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Wed Jul 22 21:19:22 2015 +0800

    advance refcnt only if it was used

 src/decoder_allocators.hpp | 9 +++++++--
 src/raw_decoder.cpp        | 3 ++-
 src/v2_decoder.cpp         | 3 ++-
 3 files changed, 11 insertions(+), 4 deletions(-)

commit c05a475bf74ff98167d7f01848c9c3886552cdcb
Merge: 3f70aca7 18791f2b
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Tue Jul 21 20:45:31 2015 -0700

    Merge pull request #1481 from brian-peloton/master

    Fix several missing msg_t::close calls.

commit 18791f2bfbd925ad6689c624dc0e18fdp919c7c8
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Tue Jul 21 19:42:20 2015 -0700

    Fix several missing msg_t::close calls.

    I traced memory leaks found using AddressSanitizer down to these.

 src/stream.cpp                   | 2 ++
 tests/test_client_server.cpp     | 5 +++++
 tests/test_srcfd.cpp             | 3 +++
 tests/test_stream_disconnect.cpp | 8 ++++++++
 4 files changed, 18 insertions(+)

commit 3f70aca749197867e0b5706902500ecfb45e639d
Merge: b71f720c a88524d3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jul 21 08:04:54 2015 +0200

    Merge pull request #1480 from brian-peloton/master

    Fix test_proxy hanging occasionally by setting ZMQ_LINGER to 0.

commit a88524d388bd68574bca002484ebacb2a6ba33af
Author: Brian Silverman <brian@peloton-tech.com>
Date:   Mon Jul 20 19:41:03 2015 -0700

    Fix test_proxy hanging occasionally by setting ZMQ_LINGER to 0.

 tests/test_proxy.cpp | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

commit b71f720cdcadf395deea6c0d4c461745014d2fca
Merge: 15e35c52 6b9b13be
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Mon Jul 20 16:39:53 2015 -0400

    Merge pull request #1479 from jens-auer/issue1477

    Fixed #1477  corruption in "zero-copy" raw_decoder for payloads large…

commit 6b9b13be6c298dd5064b133e2460e862ef4fd2d8
Author: Jens Auer <jens.auer@cgi.com>
Date:   Mon Jul 20 22:34:22 2015 +0200

    Fixed whitespace error.

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

commit 23797120ffff5de35fc1a0572b78ddfcbba17b8d
Author: Jens Auer <jens.auer@cgi.com>
Date:   Mon Jul 20 22:22:13 2015 +0200

    Fixed #1477  corruption in "zero-copy" raw_decoder for payloads larger than 8192 bytes #1477

    Fixed wrong message::init arguments.

 Makefile.am                          |  6 ++-
 src/raw_decoder.cpp                  |  1 +
 tests/test_stream_exceeds_buffer.cpp | 83 ++++++++++++++++++++++++++++++++++++
 3 files changed, 89 insertions(+), 1 deletion(-)

commit 15e35c52e78468003b1274b1f42b047710763072
Merge: 6653775a 7030bc42
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 19 14:19:57 2015 +0200

    Merge pull request #1475 from jimenezrick/fix-doc-setsockopt

    Fix doc formatting issues in zmq_setsockopt page

commit 7030bc429ac98a164501a25d82279f4874015cc1
Author: Ricardo Catalinas Jiménez <r@untroubled.be>
Date:   Sun Jul 19 12:20:45 2015 +0100

    Fix doc formatting issues in zmq_setsockopt page

 doc/zmq_setsockopt.txt | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 6653775a31889309c1ea317d1c9dea875a363b18
Merge: 311f4d00 4a599838
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jul 16 12:51:56 2015 +0200

    Merge pull request #1474 from leonarf/patch-1

    THREAD PRIORITY option documentation

commit 4a5998382c66a6359cfb729afe84025da4b86787
Author: Leonard Michelet <leonard.michelet@openwide.fr>
Date:   Thu Jul 16 08:59:19 2015 +0200

    THREAD PRIORITY option documentation

    Added documentation about context's options ZMQ_THREAD_SCHED_POLICY and ZMQ_THREAD_PRIORITY

 doc/zmq_ctx_set.txt | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 311f4d00e49c1cdd1c093966b4185c2568b5dbf7
Merge: 72a94881 7362f3af
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Jul 8 11:20:45 2015 +0200

    Merge pull request #1472 from reunanen/allow-explicitly-setting-buf-sizes-to-0

    Allow explicitly setting buf sizes to 0

commit 7362f3af0f35d97645cda6ddb33fa8f0d7276246
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Wed Jul 8 11:58:42 2015 +0300

    update documentation regarding the rcvbuf parameter

 doc/zmq_getsockopt.txt | 6 ++----
 doc/zmq_setsockopt.txt | 4 ++--
 2 files changed, 4 insertions(+), 6 deletions(-)

commit 8096990e451b8e76b28c6205748f55bc13d8448f
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Wed Jul 8 11:40:23 2015 +0300

    update documentation regarding the sndbuf and rcvbuf parameters

 doc/zmq_getsockopt.txt | 6 ++----
 doc/zmq_setsockopt.txt | 4 ++--
 2 files changed, 4 insertions(+), 6 deletions(-)

commit f7b933f570545def0d654b9408c92b82ac0e54f4
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Mon Jul 6 18:05:31 2015 +0300

    LIBZMQ-195 allow explicitly setting sndbuf and rcvbuf to 0 (see https://support.microsoft.com/en-us/kb/201213)

 src/options.cpp         | 4 ++--
 src/pgm_socket.cpp      | 4 ++--
 src/socks_connecter.cpp | 4 ++--
 src/tcp_connecter.cpp   | 4 ++--
 src/tcp_listener.cpp    | 4 ++--
 5 files changed, 10 insertions(+), 10 deletions(-)

commit 72a94881def193d714ed0b21445361ea986a7153
Merge: adafdb8f 8339271a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 7 21:51:36 2015 +0200

    Merge pull request #1471 from reunanen/retry-on-WSdpNOBUFS

    on Windows, handle WSdpNOBUFS like WSdpWOULDBLOCK

commit adafdb8f4fe9844d08f2ac92f84176d1352144da
Merge: db898deb ccb13e17
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 7 21:50:35 2015 +0200

    Merge pull request #1470 from reunanen/check-msg-type-in-rm_refs

    add message type sanity check in msg_t::rm_refs

commit ccb13e17325960c088f7ed25a73c91c5565db58c
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Tue Jul 7 19:05:53 2015 +0300

    add sanity check in msg_t::rm_refs in order to avoid invalid memory access with u.zclmsg.refcnt

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

commit 8339271a3ea7a919797d369aa36fd3fd7ee83ac9
Author: Juha Reunanen <juha.reunanen@tomaattinen.com>
Date:   Tue Jul 7 12:16:21 2015 +0300

    LIBZMQ-195 on Windows, handle WSdpNOBUFS like WSdpWOULDBLOCK

 src/tcp.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit db898deb090669bb7780dd2faca08de60b7adc10
Merge: d60040dd 29b45489
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 6 01:23:52 2015 +0200

    Merge pull request #1469 from tkoeppe/master

    [decoder.hpp] Fix misspelled inclusion

commit 29b45489fa7ee97b8c1e12eb0ff8e638c0ea5b09
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Mon Jul 6 00:20:46 2015 +0100

    [decoder.hpp] Fix misspelled inclusion

 src/decoder.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d60040ddea8dp16e28af83ed385e5a1d8810b0b3
Merge: e83bad14 5b4b8a06
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 6 01:12:58 2015 +0200

    Merge pull request #1468 from tkoeppe/master

    [decoder*] Style fixes for consistency

commit 5b4b8a063b951fc5855a6fe1f2a557b67e954963
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Mon Jul 6 00:01:52 2015 +0100

    [decoder*] Style fixes for consistency

 src/decoder.hpp            | 68 +++++++++++++++++-----------------
 src/decoder_allocators.cpp | 92 +++++++++++++++++++++++-----------------------
 src/decoder_allocators.hpp | 66 ++++++++++++++++-----------------
 3 files changed, 111 insertions(+), 115 deletions(-)

commit e83bad14cd53aacf87db19367622f6a37dadfffb
Merge: f541ac96 ef365151
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 6 00:06:54 2015 +0200

    Merge pull request #1467 from jens-auer/upstream

    Addressed comments from T. Köppe

commit ef365151cdpe83c411aa346c745f7581065efdp2
Author: Jens Auer <jens.auer@cgi.com>
Date:   Sun Jul 5 23:19:41 2015 +0200

    - Replaced C-style casts with C++-casts
    - Replaced stdlib.h with cstdlib
    - Made single-argument constructors explicit

 src/decoder_allocators.cpp | 12 +++++-------
 src/decoder_allocators.hpp | 10 +++++-----
 2 files changed, 10 insertions(+), 12 deletions(-)

commit f541ac96124f1d9f3d5497f7a52194f8807147da
Merge: d83220e9 36797936
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 5 16:18:04 2015 +0200

    Merge pull request #1466 from jens-auer/upstream

    "zero-copy" raw_decoder

commit 36797936010f9dd50f12152d2b385361bac7b0c5
Author: Jens Auer <jens.auer@cgi.com>
Date:   Sun Jun 14 19:00:52 2015 +0200

    "zero-copy" raw_decoder

    A memcpy is eliminated when receiving data on a ZMQ_STREAM socket. Instead
    of receiving into a static buffer and then copying the data into the
    buffer malloced in msg_t::init_size, the raw_decoder allocates the memory
    for together with the reference-counter and creates a msg_t object
    on top of that memory. This saves the memcpy operation.

    For small messages, data is still copied and the receive buffer is reused.

 CMakeLists.txt             |   3 +-
 Makefile.am                |   5 +-
 src/decoder.hpp            |  44 +------------
 src/decoder_allocators.cpp | 146 ++++++++++++++++++++++++++++++++++++++++++++
 src/decoder_allocators.hpp | 149 +++++++++++++++++++++++++++++++++++++++++++++
 src/raw_decoder.cpp        |  25 ++++----
 src/raw_decoder.hpp        |   8 +--
 src/v2_decoder.cpp         | 100 ------------------------------
 src/v2_decoder.hpp         |  63 +------------------
 9 files changed, 320 insertions(+), 223 deletions(-)

commit d83220e92e04a564519c70e37ecbb16a950b317b
Merge: 6059e8ee 14d69a31
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu Jul 2 12:59:39 2015 -0400

    Merge pull request #1465 from tkoeppe/master

    Clean-up: Rename internal macros consistently.

commit 14d69a312db3b1b6082b7f31934877ca8e09993d
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Thu Jul 2 17:41:09 2015 +0100

    Clean-up: Rename internal macros consistently.

 src/atomic_counter.hpp |  8 ++++----
 src/atomic_ptr.hpp     | 14 +++++++-------
 2 files changed, 11 insertions(+), 11 deletions(-)

commit 6059e8eea70bbdb5e71f131ef26b4ca64629af48
Merge: 010f93b3 ddb82a54
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 1 18:30:49 2015 +0200

    Merge pull request #1461 from tkoeppe/master

    Add C++11 atomic support also to atomic_counter_t.

commit ddb82a546b8786b23b977087000e296589529cb2
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Wed Jul 1 09:55:43 2015 +0100

    atomic_counter.hpp: clean up the clean-up

 src/atomic_counter.hpp | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

commit 26e3873f708ab30dp0580c0a6b6b81345fc5f7a7
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Wed Jul 1 09:55:25 2015 +0100

    Add C++11 support to atomic_counter_t.

 src/atomic_counter.hpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 010f93b34c5d37cbfe6f59af2d37598ebbd02639
Merge: 80b1e67e 73e6a380
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 1 00:11:07 2015 +0200

    Merge pull request #1460 from tkoeppe/master

    atomic_ptr.h: clean up the clean-up

commit 73e6a3808fd5063c6f09cfaf5a7334cee1c6712e
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Tue Jun 30 22:56:58 2015 +0100

    atomic_ptr.h: clean up the clean-up

 src/atomic_ptr.hpp | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

commit 80b1e67e455dp455d0b2d5336be694ffcbaaca1f
Merge: f448dcde 08f9bf58
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 30 23:35:29 2015 +0200

    Merge pull request #1459 from tkoeppe/master

    Add missing relaxed memory ordering.

commit 08f9bf589e4d5f157bb5072a6242f38aff403d4a
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Tue Jun 30 22:26:35 2015 +0100

    Add missing relaxed memory ordering.

 src/atomic_ptr.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f448dcde35edeb14bfadp8f7495240a5fd7ba9eb
Merge: f3ef027e 68f5926e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 30 22:39:40 2015 +0200

    Merge pull request #1458 from tkoeppe/master

    Add support for <atomic> in C++11

commit 68f5926ec65d33043ba3f1687e49d1e6abe47fa2
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Tue Jun 30 20:48:29 2015 +0100

    Add support for <atomic> in C++11

 src/atomic_ptr.hpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit f3ef027e877e37790d1e12fd9f988dd9f429e012
Merge: 818491e7 ee787664
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Tue Jun 30 10:56:52 2015 +0200

    Merge pull request #1457 from calid/ignore-unbind-tests

    ignore unbind tests

commit ee787664bbc5890360063baf5776cd3b2b01354a
Author: Dylan Cali <calid1984@gmail.com>
Date:   Mon Jun 29 03:19:24 2015 -0500

    ignore unbind tests

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 818491e7ee68a9b3a69e14c763911ca6e527518c
Merge: 9802dd59 34129593
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 29 08:08:57 2015 +0200

    Merge pull request #1455 from calid/update-gitignore

    update gitignore with additional tests

commit 9802dd593326fa0d8d309b5d68d193266661c555
Merge: 6ab66ca5 0f208c12
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 29 08:04:53 2015 +0200

    Merge pull request #1456 from calid/issue-949-tests

    add tests for #949

commit 0f208c122dafb32cab665f7db8444b0af1aa0f77
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Jun 28 22:32:15 2015 -0500

    be pedantic and call zmq_close in tests

 tests/test_unbind_inproc.cpp   | 3 +++
 tests/test_unbind_wildcard.cpp | 3 +++
 2 files changed, 6 insertions(+)

commit d14f419743a3ad8bee03255f6e115488c4ee455a
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Jun 28 21:29:23 2015 -0500

    another errant comment

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

commit 6dac5092ad7cc6b38c049fdc1f0b52fd0ef4a9d8
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Jun 28 21:27:06 2015 -0500

    fix errant comments

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

commit a9fd750e1ca559c2db4ee18b25be42a692c382ed
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Jun 28 21:23:25 2015 -0500

    add tests for #949

 Makefile.am                    |  8 ++++++++
 tests/CMakeLists.txt           |  2 ++
 tests/test_unbind_inproc.cpp   | 40 +++++++++++++++++++++++++++++++++++++
 tests/test_unbind_wildcard.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 95 insertions(+)

commit 34129593f0d9fe2511231ba07f86c58e377ac6e7
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Jun 28 21:13:02 2015 -0500

    update gitignore with additional tests

 .gitignore | 4 ++++
 1 file changed, 4 insertions(+)

commit 6ab66ca51a1851c3c5dc7cf5f3a8fa6ab07d6d05
Merge: 2e5435e3 e9a5bc8d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 26 20:31:46 2015 +0200

    Merge pull request #1451 from jbreams/heartbeat-defaults

    Fix units and default values for heartbeats options

commit e9a5bc8d1e6a78caf2117cdpa2bdc6ab8e8abee1
Author: Jonathan Reams <jbreams@mongodb.com>
Date:   Fri Jun 26 14:08:08 2015 -0400

    Fix units and default values for heartbeats options

    Set the ZMQ_HEARTBEAT_TIMEOUT to default to the value of
    ZMQ_HEARTBEAT_IVL if it's not explicitly set.
    Change the units of ZMQ_HEARTBEAT_TTL to milliseconds in the API
    and round down to the nearest decisecond so that all the options
    are using the same units.
    Make the maximum heartbeat TTL match the spec (6553 seconds)

 doc/zmq_setsockopt.txt    |  8 +++++---
 src/options.cpp           |  9 ++++++---
 src/stream_engine.cpp     | 14 ++++++++++----
 src/stream_engine.hpp     |  1 +
 tests/test_heartbeats.cpp | 48 +++++++++++++++++------------------------------
 5 files changed, 39 insertions(+), 41 deletions(-)

commit 2e5435e38f91a33ed2f9b78c046a3e7b488a453f
Merge: 3a27be3b 85417ba2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 24 21:13:32 2015 +0200

    Merge pull request #1449 from jbreams/heartbeats-docswindows

    Add documentation for ZMTP heartbeats/fix test

commit 85417ba2fcdp69ad3c247ff481965fafc193a63f
Author: Jonathan Reams <jbreams@mongodb.com>
Date:   Wed Jun 24 15:02:53 2015 -0400

    Add documentation for ZMTP heartbeat socket options

 doc/zmq_setsockopt.txt | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit df0c7076bd50641a0e0787f7a707b3a2a9fc3543
Author: Jonathan Reams <jbreams@mongodb.com>
Date:   Wed Jun 24 14:28:36 2015 -0400

    Fix test_heartbeats compile in VS2013

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

commit 3a27be3b6c4dp42c9b2733af55ed60cad22ea518
Merge: 4b4e00bd cbb3b176
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 24 19:42:41 2015 +0200

    Merge pull request #1448 from jbreams/heartbeats

    Add ZMTP connection heartbeats

commit cbb3b176a62dbd6da15d6c1a82e0dd6d01eb9e17
Author: Jonathan Reams <jbreams@gmail.com>
Date:   Mon Mar 16 21:39:16 2015 -0400

    Add ZMTP heartbeats

    This commit adds ZMTP connection heartbeats described in
    http://rfc.zeromq.org/spec:37/ZMTP.

 Makefile.am                   |   6 +-
 include/zmq.h                 |   3 +
 src/curve_client.cpp          |   4 +
 src/curve_server.cpp          |   4 +
 src/gssapi_mechanism_base.cpp |   4 +
 src/options.cpp               |  47 +++++-
 src/options.hpp               |   9 ++
 src/session_base.cpp          |   2 +
 src/stream_engine.cpp         | 124 +++++++++++++++-
 src/stream_engine.hpp         |  14 ++
 tests/CMakeLists.txt          |   1 +
 tests/test_heartbeats.cpp     | 329 ++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 540 insertions(+), 7 deletions(-)

commit 4b4e00bde07f80d765806c531213c135b3d36627
Merge: f9d0dab6 fa3b5d8b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jun 23 10:47:31 2015 +0200

    Merge pull request #1446 from dndpon/typo-fix

    Typo fix

commit fa3b5d8b0356f18089dpcee62becf3f8df5fab5b
Author: Marin Atanasov Nikolov <dndpon@gmail.com>
Date:   Tue Jun 23 14:45:51 2015 +0300

    Typo fix

 src/msg.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f9d0dab630554c185c525325887cf1743d689e37
Merge: d33fb6a2 15f9ee19
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Jun 23 08:10:48 2015 +0100

    Merge pull request #1445 from c-rack/fix-resolve-ipv6

    Problem: zmq::socket_base_t::connect fails on tcp ipv6 address

commit 15f9ee19cb895f7fb7b6d09ec64d4b82717ee1aa
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jun 23 08:54:49 2015 +0200

    Solution: allow brackets in tcp ipv6 address

 src/socket_base.cpp            | 5 +++--
 tests/test_connect_resolve.cpp | 5 ++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

commit d33fb6a2af9e6ecb3de411c03daf75d2badf34b1
Merge: b3f2acf7 e70b5efa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jun 14 14:13:49 2015 +0200

    Merge pull request #1441 from jens-auer/rebase3

    Rebase3

commit e70b5efa0be876255dpe6dc965e2788946c978a0
Author: Jens Auer <jens.auer@cgi.com>
Date:   Sat Jun 13 22:07:54 2015 +0200

    Reuse buffer when no messages depend on it.

 src/v2_decoder.cpp | 54 +++++++++++++++++++++++++++++++-----------------------
 src/v2_decoder.hpp |  2 +-
 2 files changed, 32 insertions(+), 24 deletions(-)

commit 51cb57e2c9d187604e46e8d85f69cc73f01a211f
Author: Jens Auer <jens.auer@cgi.com>
Date:   Sat Jun 13 17:30:36 2015 +0200

    Fixed wrong handling of shared messages

    The shared reference count was not shared but copied. msg_t cannot
    store the refcnt itsef but has to store a pointer to an externally
    allocated (shared) refcnter. The changes to lmsg are reverted to
    use content_t again. Howver, this introduces an allocation in v2_decoder
    when creating the message which can be avoided. When allocating the reception
    buffer, space is allocated for the maximum number of reference counts
    (8192 / max_vsm_size = 8192/64 = 128 zmq:atomic_counter objects). This
    increases the buffer by 128*sizeof(atomic_counter) = 128*4 = 512 bytes only.
    When creating a message, the refcnt member is set to the address of one of the
    pre-allocated atomic_counter_t objects. To do so, a new msg_t type zcmsg
    is introduced because msg::copy must discriminate between the message types
    when releasing memory.

 Makefile.am        |   2 +-
 src/msg.cpp        | 214 +++++++++++++++++++++++++++++++++++++----------------
 src/msg.hpp        |  91 ++++++++++++++---------
 src/v2_decoder.cpp |  29 +++++---
 src/v2_decoder.hpp |   8 +-
 5 files changed, 233 insertions(+), 111 deletions(-)

commit dfe19080089450bf4973a59b387be891fe0ca9ef
Author: Jens Auer <jens.auer@cgi.com>
Date:   Wed Jun 10 22:09:55 2015 +0200

    Fixed wrong buffer end detection in v2_decoder.

    zero-copy msg_t::init cannot be used when the message exceeds either
    the buffer end or the last received byte. To detect this, the buffer
    is now resized to the numnber of received bytes.

 src/decoder.hpp       | 9 +++++++++
 src/i_decoder.hpp     | 3 +++
 src/raw_decoder.hpp   | 2 +-
 src/stream_engine.cpp | 3 +++
 src/v2_decoder.cpp    | 7 ++++++-
 src/v2_decoder.hpp    | 7 +++++++
 6 files changed, 29 insertions(+), 2 deletions(-)

commit b3f2acf7d625ddpf65d37ffa00dfed753cf2387b
Merge: 6d4d7a58 8ffd7232
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jun 13 22:20:23 2015 +0200

    Merge pull request #1440 from xaqq/fix_solaris_build

    Probably fix build issue on Solaris.

commit 8ffd723271fd8d4e44a177d58357d0823803acfa
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Sat Jun 13 22:08:14 2015 +0200

    Probably fix build issue on Solaris.

    See #1220 recent comments. This change is untested yet seems
    safe.

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

commit 6d4d7a582026d01d80f5e23cb6f4faa0db6712cb
Merge: 8fb5590b 6f1d1142
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Fri Jun 12 01:32:22 2015 +0200

    Merge pull request #1439 from hintjens/master

    Problem: 4.1 broke the ABI yet did not bump ABI number

commit 6f1d1142d1a11b51e78eb4408f34b87fe4c7f7e6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 11 23:53:23 2015 +0200

    Problem: 4.1 broke the ABI yet did not bump ABI number

    Solution: bump to ABI version 5

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

commit 8fb5590ba87b9c6ebee458c7e9b8b19e707cd03d
Merge: 52191af6 f696d039
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 10 18:17:56 2015 +0200

    Merge pull request #1437 from ricnewton/master

    Fix windows build

commit f696d0399c46fe570bdpb77e87923a9297d51e01
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jun 10 16:47:23 2015 +0100

    Fix tabbing

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

commit 8484e1606d90ad9139cb34ab4a049f9896f74981
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jun 10 16:43:59 2015 +0100

    Fix windows build

 tests/test_msg_ffn.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 52191af60e393ec9a6c5edbaba0bd07662adp9ad
Merge: 42673346 fdb7d680
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 9 00:26:58 2015 +0200

    Merge pull request #1435 from minrk/test-ffn

    test zmq_msg custom free-function

commit fdb7d68056a2a82b11d54089903fb90b41779601
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon Jun 8 13:16:50 2015 -0700

    test zmq_msg custom free-function

    new allocation caused reference counters to lose track on copy

 Makefile.am            |   6 ++-
 tests/CMakeLists.txt   |   1 +
 tests/test_msg_ffn.cpp | 138 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 144 insertions(+), 1 deletion(-)

commit 426733469d0780581091da39212ca11cef3205f2
Merge: d3bb4508 f34cc24b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jun 7 08:10:17 2015 +0200

    Merge pull request #1433 from minrk/single-socket-proxy

    don't check POLLOUT for single-socket proxies

commit f34cc24bd733f799525f334d11ecf8431f54322f
Author: Min RK <benjaminrk@gmail.com>
Date:   Sat Jun 6 21:05:55 2015 -0700

    test proxy with single REP socket

 Makefile.am                        |   4 ++
 tests/CMakeLists.txt               |   1 +
 tests/test_proxy_single_socket.cpp | 113 +++++++++++++++++++++++++++++++++++++
 3 files changed, 118 insertions(+)

commit 158d77d63e7398bb53f1f0892bd5481981a0b046
Author: Min RK <benjaminrk@gmail.com>
Date:   Sat Jun 6 21:05:32 2015 -0700

    don't check POLLOUT for single-socket proxies

 src/proxy.cpp | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit d3bb450892ce4020eda933b226a01c10cebe22dp
Merge: 5cbd197d c35971a6
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Sat Jun 6 20:06:07 2015 -0500

    Merge pull request #1432 from xaqq/fix_init_order

    Fix initialization order.

commit c35971a6031db8997f34d27e2ce97cbc17c8f7e1
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Sun Jun 7 02:21:32 2015 +0200

    Fix initialization order.

    Fixes #1431.

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

commit 5cbd197d10d7ec79d1ba0e718ded4e5e324eca5f
Merge: f4da5442 45610c35
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Sat Jun 6 04:23:58 2015 +0200

    Merge pull request #1430 from junovitch/fix-man-install-without-doc-build

    Enable install of man pages when BUILD_DOC is not set by shifting INS…

commit 45610c354da7dfbaf75d902ed4172c86cb7c0ef8
Author: Jason Unovitch <jason.unovitch@gmail.com>
Date:   Fri Jun 5 21:43:39 2015 -0400

    Enable install of man pages when BUILD_DOC is not set by shifting INSTALL_MAN outside of BUILD_DOC's if/endif

 doc/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f4da5442ba227a184f340615ba02a6fedd4bfdc7
Merge: c0cda2e6 4ad9a5e5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 5 22:15:44 2015 +0200

    Merge pull request #1427 from xaqq/doc-patch

    Update documentation for zmq_setsockopt.

commit 4ad9a5e5702c5e75f5e816d2263bb646dbeb33b8
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Fri Jun 5 22:10:46 2015 +0200

    Update documentation for zmq_setsockopt.

    Pull request #1426 now allow for changing the watermark
    after and connect() or a bind(). This patch reflect the
    change in the documentation.

    Also closes #1416.

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

commit c0cda2e69932767956fb7cb5f35a261520149694
Merge: a3b8f80f dc949624
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jun 5 20:34:21 2015 +0200

    Merge pull request #1426 from ricnewton/master

    Allow changing of high water marks after connection is established

commit dc949624e1142901b3dab681ee34b478320078dd
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jun 5 19:06:36 2015 +0100

    Handle infinite hwms properly

 src/pipe.cpp       | 14 ++++++++++++--
 tests/test_hwm.cpp |  4 ++--
 2 files changed, 14 insertions(+), 4 deletions(-)

commit 15eecf4cf4a96eb5e3935ce1d2bcb5a1be87eb22
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jun 5 17:14:55 2015 +0100

    Update high water marking to allow changing high water mark after connection established.

 src/ctx.cpp                |  23 +++----
 src/options.cpp            |  15 +---
 src/pipe.cpp               |  12 +++-
 src/pipe.hpp               |   7 ++
 src/socket_base.cpp        |  18 +++++
 src/socket_base.hpp        |   2 +
 tests/test_sockopt_hwm.cpp | 168 +++++++++++++++++++++++++++++++--------------
 7 files changed, 167 insertions(+), 78 deletions(-)

commit a3b8f80fe5f4eb62dd1c8b70d3021044d56ac7e7
Merge: bc2f5f76 b0296bc6
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Fri Jun 5 15:19:03 2015 +0200

    Merge pull request #1425 from mipaaa/master

    Fixed executable name in the usage string

commit b0296bc66f609fb36a415e0b36e90660eabb58ec
Author: Michdpl Hand <mipa@matrix.by>
Date:   Fri Jun 5 16:01:42 2015 +0300

    Fixed executable name in the usage string

 perf/inproc_thr.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bc2f5f76f8a88b3b9e35a8751edcb7f10e8b39a3
Merge: d4b11b0d dc105ffc
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jun 5 13:48:20 2015 +0200

    Merge pull request #1424 from ricnewton/master

    Fix xpub test to set hwm before bind.

commit dc105ffc78f87af5093f95d4c5fede78f1dp2566
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jun 5 12:19:48 2015 +0100

    Fix xpub test to set hwm before bind.

 tests/test_xpub_nodrop.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit d4b11b0d17cde8578e8ebe34dpec7382a6c97ca3
Merge: 383f67a5 32770d2e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 5 12:24:17 2015 +0200

    Merge pull request #1423 from ricnewton/master

    Fail ZMQ_SNDHWM and ZMQ_RCVHWM setsockopt if already connected.

commit 32770d2e60829d2965fe3ca9d842fa4844d7e96e
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jun 5 10:50:02 2015 +0100

    Remove accidentally committed appveyor file.

 appveyor.yml | 19 -------------------
 1 file changed, 19 deletions(-)

commit 9f8b8af92633c2b5ed0fd7b6cfe5bdb9fafd69b8
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jun 5 10:43:40 2015 +0100

    Fail ZMQ_SNDHWM and ZMQ_RCVHWM setsockopt if already connected.

 Makefile.am                |  2 +-
 src/options.cpp            | 23 +++++++++++++++++++++--
 src/options.hpp            |  5 ++++-
 src/socket_base.cpp        | 17 ++++++++++++++++-
 tests/test_sockopt_hwm.cpp | 31 ++++++++++++++++++++++++++++---
 5 files changed, 70 insertions(+), 8 deletions(-)

commit 64e711eb5040ca11b6275fdf02d1fddb50e316f4
Merge: 15407375 383f67a5
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jun 5 08:47:20 2015 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 383f67a5ccef6751b085b77708c118886361f4be
Merge: bfb0ac1c e37d7157
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jun 5 00:00:50 2015 +0200

    Merge pull request #1422 from hintjens/master

    Problem: tests/test_socketopt_hwm fails and breaks CI

commit e37d71570203bc7d59194c52e48bf441ac7979a2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 4 23:57:50 2015 +0200

    Problem: tests/test_socketopt_hwm fails and breaks CI

    Solution: mark this as XFAIL

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

commit 15407375613343211915607489f629a2c3d96c4d
Merge: dfaa55fa bfb0ac1c
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Jun 4 08:24:05 2015 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit bfb0ac1cc4875bf3e9828167d340861c4f872672
Merge: 9e80f07a fb960147
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 4 06:41:35 2015 +0200

    Merge pull request #1418 from xaqq/setsockopt

    Introduce a failing test against zmq_setsockpt().

commit fb960147ca5673ecda34cdb87d963ffd022189b4
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Thu Jun 4 01:38:45 2015 +0200

    Introduce a failing test against zmq_setsockpt().

    Problem: zmq_setsockpt() returns success when changing the
    HWM after a bind or connect() even though the call has no effect.

    Solution: Introduce a failing test a reminder we need to patch it.

 Makefile.am                |  6 +++++-
 tests/CMakeLists.txt       |  1 +
 tests/test_sockopt_hwm.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 58 insertions(+), 1 deletion(-)

commit 9e80f07a8d5efff8e3afeb5371b30db3c4cea5a9
Merge: 03d6a734 e9b403a7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 3 23:09:03 2015 +0200

    Merge pull request #1417 from jens-auer/zero_copy

    Zero copy message receive in v2_decoder

commit e9b403a7b10315428b05479dad76a3b7270bcd25
Author: Jens Auer <jens.auer@cgi.com>
Date:   Fri May 29 23:54:43 2015 +0200

    zero-copy message receive

    Construct messages from a reference-counted buffer allocated once
    per receive instead of copying the data.

 src/atomic_counter.hpp |   2 +-
 src/decoder.hpp        |  84 +++++++++++++++++++------
 src/v1_decoder.cpp     |  11 ++--
 src/v1_decoder.hpp     |  12 ++--
 src/v2_decoder.cpp     | 162 +++++++++++++++++++++++++++++++++++++++----------
 src/v2_decoder.hpp     |  69 +++++++++++++++++++--
 6 files changed, 273 insertions(+), 67 deletions(-)

commit 611e96c70135d4bc519c23028b9d4b170fd5f2c6
Author: Jens Auer <jens.auer@cgi.com>
Date:   Fri May 29 23:47:03 2015 +0200

    Allocation-free msg::init_data

    With a msg_t size of 64 bytes, it becomes possible to embedd the content_t's members
    struct for large messages directly in the msg_t. This saves the dynamic allocation
    of content_t obejcts when using msg_t::init_data.

    content_t contains a zmq::atomic_counter_t object which is not a POD in C++98
    and thus it cannot be used as a member of the union u. To bypass this, C++11
    is used which has relaxed rules for POD and atomic_counter is a C++11-POD. An
    alternative would have been to make atomic_counter a classical POD by removing
    constructors and all private member functions, i.e. have a struct and free functions
    to manipulate it.

    A new msg_t::init function is added which decides to either to copy the data for size<64 bytes
    or use msg_t::init_data to do zero-copy initialization.

 src/msg.cpp | 99 +++++++++++++++++++++++++++++++++++++------------------------
 src/msg.hpp | 50 ++++++++++++++++++-------------
 2 files changed, 91 insertions(+), 58 deletions(-)

commit 03d6a7341b408909ce5ec7b5442531907e823063
Merge: a07244cd 3e330d6e
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Wed Jun 3 00:40:42 2015 +0200

    Merge pull request #1415 from hintjens/master

    Fixes to README

commit 3e330d6e2b9457c2ec8cc1aad420af435b91f089
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 2 23:44:12 2015 +0200

    Fixes to README

 README.md | 34 ++++++++++++++++++++++++++--------
 1 file changed, 26 insertions(+), 8 deletions(-)

commit a07244cda298940e3b1a049c5c9b06617db89df5
Merge: 1e10222b 8620c3e0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 2 23:40:52 2015 +0200

    Merge pull request #1414 from hintjens/master

    Problem: source file headers are somewhat confusing about LGPLv3

commit 8620c3e0323dec66ba72aa8071d1ff6ff129673a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 2 22:33:55 2015 +0200

    Problem: source file headers are somewhat confusing about LGPLv3

    Of course people still "can" distributed the sources under the
    LGPLv3. However we provide COPYING.LESSER with additional grants.

    Solution: specify these grants in the header of each source file.

 builds/mingw32/platform.hpp          | 29 +++++++++++++++++++----------
 builds/msvc/platform.hpp             | 29 +++++++++++++++++++----------
 builds/zos/test_fork.cpp             | 36 +++++++++++++++++++++++-------------
 include/zmq.h                        | 26 ++++++++++++++++++--------
 include/zmq_utils.h                  | 26 ++++++++++++++++++--------
 perf/inproc_lat.cpp                  | 26 ++++++++++++++++++--------
 perf/inproc_thr.cpp                  | 26 ++++++++++++++++++--------
 perf/local_lat.cpp                   | 26 ++++++++++++++++++--------
 perf/local_thr.cpp                   | 26 ++++++++++++++++++--------
 perf/remote_lat.cpp                  | 26 ++++++++++++++++++--------
 perf/remote_thr.cpp                  | 26 ++++++++++++++++++--------
 src/address.cpp                      | 26 ++++++++++++++++++--------
 src/address.hpp                      | 26 ++++++++++++++++++--------
 src/array.hpp                        | 26 ++++++++++++++++++--------
 src/atomic_counter.hpp               | 26 ++++++++++++++++++--------
 src/atomic_ptr.hpp                   | 26 ++++++++++++++++++--------
 src/blob.hpp                         | 26 ++++++++++++++++++--------
 src/client.cpp                       | 26 ++++++++++++++++++--------
 src/client.hpp                       | 26 ++++++++++++++++++--------
 src/clock.cpp                        | 26 ++++++++++++++++++--------
 src/clock.hpp                        | 26 ++++++++++++++++++--------
 src/command.hpp                      | 26 ++++++++++++++++++--------
 src/condition_variable.hpp           | 26 ++++++++++++++++++--------
 src/config.hpp                       | 26 ++++++++++++++++++--------
 src/ctx.cpp                          | 26 ++++++++++++++++++--------
 src/ctx.hpp                          | 26 ++++++++++++++++++--------
 src/curve_client.cpp                 | 26 ++++++++++++++++++--------
 src/curve_client.hpp                 | 26 ++++++++++++++++++--------
 src/curve_server.cpp                 | 26 ++++++++++++++++++--------
 src/curve_server.hpp                 | 26 ++++++++++++++++++--------
 src/dbuffer.hpp                      | 26 ++++++++++++++++++--------
 src/dealer.cpp                       | 26 ++++++++++++++++++--------
 src/dealer.hpp                       | 26 ++++++++++++++++++--------
 src/decoder.hpp                      | 26 ++++++++++++++++++--------
 src/devpoll.cpp                      | 26 ++++++++++++++++++--------
 src/devpoll.hpp                      | 26 ++++++++++++++++++--------
 src/dist.cpp                         | 26 ++++++++++++++++++--------
 src/dist.hpp                         | 26 ++++++++++++++++++--------
 src/encoder.hpp                      | 26 ++++++++++++++++++--------
 src/epoll.cpp                        | 26 ++++++++++++++++++--------
 src/epoll.hpp                        | 26 ++++++++++++++++++--------
 src/err.cpp                          | 26 ++++++++++++++++++--------
 src/err.hpp                          | 26 ++++++++++++++++++--------
 src/fd.hpp                           | 26 ++++++++++++++++++--------
 src/fq.cpp                           | 26 ++++++++++++++++++--------
 src/fq.hpp                           | 26 ++++++++++++++++++--------
 src/gssapi_client.cpp                | 26 ++++++++++++++++++--------
 src/gssapi_client.hpp                | 26 ++++++++++++++++++--------
 src/gssapi_mechanism_base.cpp        | 26 ++++++++++++++++++--------
 src/gssapi_mechanism_base.hpp        | 26 ++++++++++++++++++--------
 src/gssapi_server.cpp                | 26 ++++++++++++++++++--------
 src/gssapi_server.hpp                | 26 ++++++++++++++++++--------
 src/i_decoder.hpp                    | 26 ++++++++++++++++++--------
 src/i_encoder.hpp                    | 26 ++++++++++++++++++--------
 src/i_engine.hpp                     | 26 ++++++++++++++++++--------
 src/i_mailbox.hpp                    | 26 ++++++++++++++++++--------
 src/i_poll_events.hpp                | 28 +++++++++++++++++++---------
 src/io_object.cpp                    | 26 ++++++++++++++++++--------
 src/io_object.hpp                    | 26 ++++++++++++++++++--------
 src/io_thread.cpp                    | 26 ++++++++++++++++++--------
 src/io_thread.hpp                    | 26 ++++++++++++++++++--------
 src/ip.cpp                           | 26 ++++++++++++++++++--------
 src/ip.hpp                           | 26 ++++++++++++++++++--------
 src/ipc_address.cpp                  | 26 ++++++++++++++++++--------
 src/ipc_address.hpp                  | 26 ++++++++++++++++++--------
 src/ipc_connecter.cpp                | 26 ++++++++++++++++++--------
 src/ipc_connecter.hpp                | 26 ++++++++++++++++++--------
 src/ipc_listener.cpp                 | 26 ++++++++++++++++++--------
 src/ipc_listener.hpp                 | 26 ++++++++++++++++++--------
 src/kqueue.cpp                       | 26 ++++++++++++++++++--------
 src/kqueue.hpp                       | 26 ++++++++++++++++++--------
 src/lb.cpp                           | 26 ++++++++++++++++++--------
 src/lb.hpp                           | 26 ++++++++++++++++++--------
 src/likely.hpp                       | 26 ++++++++++++++++++--------
 src/mailbox.cpp                      | 26 ++++++++++++++++++--------
 src/mailbox.hpp                      | 26 ++++++++++++++++++--------
 src/mailbox_safe.cpp                 | 26 ++++++++++++++++++--------
 src/mailbox_safe.hpp                 | 27 +++++++++++++++++----------
 src/mechanism.cpp                    | 26 ++++++++++++++++++--------
 src/mechanism.hpp                    | 26 ++++++++++++++++++--------
 src/metadata.cpp                     | 26 ++++++++++++++++++--------
 src/metadata.hpp                     | 26 ++++++++++++++++++--------
 src/msg.cpp                          | 26 ++++++++++++++++++--------
 src/msg.hpp                          | 26 ++++++++++++++++++--------
 src/mtrie.cpp                        | 26 ++++++++++++++++++--------
 src/mtrie.hpp                        | 26 ++++++++++++++++++--------
 src/mutex.hpp                        | 26 ++++++++++++++++++--------
 src/null_mechanism.cpp               | 26 ++++++++++++++++++--------
 src/null_mechanism.hpp               | 26 ++++++++++++++++++--------
 src/object.cpp                       | 26 ++++++++++++++++++--------
 src/object.hpp                       | 26 ++++++++++++++++++--------
 src/options.cpp                      | 26 ++++++++++++++++++--------
 src/options.hpp                      | 26 ++++++++++++++++++--------
 src/own.cpp                          | 26 ++++++++++++++++++--------
 src/own.hpp                          | 26 ++++++++++++++++++--------
 src/pair.cpp                         | 26 ++++++++++++++++++--------
 src/pair.hpp                         | 26 ++++++++++++++++++--------
 src/pgm_receiver.cpp                 | 26 ++++++++++++++++++--------
 src/pgm_receiver.hpp                 | 26 ++++++++++++++++++--------
 src/pgm_sender.cpp                   | 26 ++++++++++++++++++--------
 src/pgm_sender.hpp                   | 26 ++++++++++++++++++--------
 src/pgm_socket.cpp                   | 26 ++++++++++++++++++--------
 src/pgm_socket.hpp                   | 26 ++++++++++++++++++--------
 src/pipe.cpp                         | 26 ++++++++++++++++++--------
 src/pipe.hpp                         | 26 ++++++++++++++++++--------
 src/plain_client.cpp                 | 26 ++++++++++++++++++--------
 src/plain_client.hpp                 | 26 ++++++++++++++++++--------
 src/plain_server.cpp                 | 26 ++++++++++++++++++--------
 src/plain_server.hpp                 | 26 ++++++++++++++++++--------
 src/poll.cpp                         | 26 ++++++++++++++++++--------
 src/poll.hpp                         | 26 ++++++++++++++++++--------
 src/poller.hpp                       | 26 ++++++++++++++++++--------
 src/poller_base.cpp                  | 26 ++++++++++++++++++--------
 src/poller_base.hpp                  | 26 ++++++++++++++++++--------
 src/precompiled.cpp                  | 26 ++++++++++++++++++--------
 src/precompiled.hpp                  | 26 ++++++++++++++++++--------
 src/proxy.cpp                        | 26 ++++++++++++++++++--------
 src/proxy.hpp                        | 26 ++++++++++++++++++--------
 src/pub.cpp                          | 26 ++++++++++++++++++--------
 src/pub.hpp                          | 26 ++++++++++++++++++--------
 src/pull.cpp                         | 26 ++++++++++++++++++--------
 src/pull.hpp                         | 26 ++++++++++++++++++--------
 src/push.cpp                         | 26 ++++++++++++++++++--------
 src/push.hpp                         | 26 ++++++++++++++++++--------
 src/random.cpp                       | 26 ++++++++++++++++++--------
 src/random.hpp                       | 26 ++++++++++++++++++--------
 src/raw_decoder.cpp                  | 26 ++++++++++++++++++--------
 src/raw_decoder.hpp                  | 26 ++++++++++++++++++--------
 src/raw_encoder.cpp                  | 26 ++++++++++++++++++--------
 src/raw_encoder.hpp                  | 26 ++++++++++++++++++--------
 src/reaper.cpp                       | 26 ++++++++++++++++++--------
 src/reaper.hpp                       | 26 ++++++++++++++++++--------
 src/rep.cpp                          | 26 ++++++++++++++++++--------
 src/rep.hpp                          | 26 ++++++++++++++++++--------
 src/req.cpp                          | 26 ++++++++++++++++++--------
 src/req.hpp                          | 26 ++++++++++++++++++--------
 src/router.cpp                       | 26 ++++++++++++++++++--------
 src/router.hpp                       | 26 ++++++++++++++++++--------
 src/select.cpp                       | 26 ++++++++++++++++++--------
 src/select.hpp                       | 26 ++++++++++++++++++--------
 src/server.cpp                       | 26 ++++++++++++++++++--------
 src/server.hpp                       | 26 ++++++++++++++++++--------
 src/session_base.cpp                 | 26 ++++++++++++++++++--------
 src/session_base.hpp                 | 26 ++++++++++++++++++--------
 src/signaler.cpp                     | 26 ++++++++++++++++++--------
 src/signaler.hpp                     | 26 ++++++++++++++++++--------
 src/socket_base.cpp                  | 26 ++++++++++++++++++--------
 src/socket_base.hpp                  | 26 ++++++++++++++++++--------
 src/socks.cpp                        | 26 ++++++++++++++++++--------
 src/socks.hpp                        | 26 ++++++++++++++++++--------
 src/socks_connecter.cpp              | 26 ++++++++++++++++++--------
 src/socks_connecter.hpp              | 26 ++++++++++++++++++--------
 src/stdint.hpp                       | 26 ++++++++++++++++++--------
 src/stream.cpp                       | 26 ++++++++++++++++++--------
 src/stream.hpp                       | 26 ++++++++++++++++++--------
 src/stream_engine.cpp                | 26 ++++++++++++++++++--------
 src/stream_engine.hpp                | 26 ++++++++++++++++++--------
 src/sub.cpp                          | 26 ++++++++++++++++++--------
 src/sub.hpp                          | 26 ++++++++++++++++++--------
 src/tcp.cpp                          | 26 ++++++++++++++++++--------
 src/tcp.hpp                          | 26 ++++++++++++++++++--------
 src/tcp_address.cpp                  | 26 ++++++++++++++++++--------
 src/tcp_address.hpp                  | 26 ++++++++++++++++++--------
 src/tcp_connecter.cpp                | 26 ++++++++++++++++++--------
 src/tcp_connecter.hpp                | 26 ++++++++++++++++++--------
 src/tcp_listener.cpp                 | 26 ++++++++++++++++++--------
 src/tcp_listener.hpp                 | 26 ++++++++++++++++++--------
 src/thread.cpp                       | 26 ++++++++++++++++++--------
 src/thread.hpp                       | 26 ++++++++++++++++++--------
 src/tipc_address.cpp                 | 26 ++++++++++++++++++--------
 src/tipc_address.hpp                 | 26 ++++++++++++++++++--------
 src/tipc_connecter.cpp               | 26 ++++++++++++++++++--------
 src/tipc_connecter.hpp               | 26 ++++++++++++++++++--------
 src/tipc_listener.cpp                | 26 ++++++++++++++++++--------
 src/tipc_listener.hpp                | 26 ++++++++++++++++++--------
 src/trie.cpp                         | 26 ++++++++++++++++++--------
 src/trie.hpp                         | 26 ++++++++++++++++++--------
 src/v1_decoder.cpp                   | 26 ++++++++++++++++++--------
 src/v1_decoder.hpp                   | 26 ++++++++++++++++++--------
 src/v1_encoder.cpp                   | 26 ++++++++++++++++++--------
 src/v1_encoder.hpp                   | 26 ++++++++++++++++++--------
 src/v2_decoder.cpp                   | 26 ++++++++++++++++++--------
 src/v2_decoder.hpp                   | 26 ++++++++++++++++++--------
 src/v2_encoder.cpp                   | 26 ++++++++++++++++++--------
 src/v2_encoder.hpp                   | 26 ++++++++++++++++++--------
 src/v2_protocol.hpp                  | 26 ++++++++++++++++++--------
 src/windows.hpp                      | 26 ++++++++++++++++++--------
 src/wire.hpp                         | 26 ++++++++++++++++++--------
 src/xpub.cpp                         | 26 ++++++++++++++++++--------
 src/xpub.hpp                         | 26 ++++++++++++++++++--------
 src/xsub.cpp                         | 26 ++++++++++++++++++--------
 src/xsub.hpp                         | 26 ++++++++++++++++++--------
 src/ypipe.hpp                        | 26 ++++++++++++++++++--------
 src/ypipe_base.hpp                   | 26 ++++++++++++++++++--------
 src/ypipe_conflate.hpp               | 26 ++++++++++++++++++--------
 src/yqueue.hpp                       | 26 ++++++++++++++++++--------
 src/zmq.cpp                          | 26 ++++++++++++++++++--------
 src/zmq_utils.cpp                    | 26 ++++++++++++++++++--------
 tests/test_abstract_ipc.cpp          | 26 ++++++++++++++++++--------
 tests/test_atomics.cpp               | 26 ++++++++++++++++++--------
 tests/test_bind_src_address.cpp      | 26 ++++++++++++++++++--------
 tests/test_capabilities.cpp          | 26 ++++++++++++++++++--------
 tests/test_client_drop_more.cpp      | 26 ++++++++++++++++++--------
 tests/test_client_server.cpp         | 26 ++++++++++++++++++--------
 tests/test_conflate.cpp              | 26 ++++++++++++++++++--------
 tests/test_connect_delay_tipc.cpp    | 26 ++++++++++++++++++--------
 tests/test_connect_resolve.cpp       | 26 ++++++++++++++++++--------
 tests/test_connect_rid.cpp           | 26 ++++++++++++++++++--------
 tests/test_ctx_destroy.cpp           | 26 ++++++++++++++++++--------
 tests/test_ctx_options.cpp           | 26 ++++++++++++++++++--------
 tests/test_diffserv.cpp              | 26 ++++++++++++++++++--------
 tests/test_disconnect_inproc.cpp     | 26 ++++++++++++++++++--------
 tests/test_filter_ipc.cpp            | 26 ++++++++++++++++++--------
 tests/test_fork.cpp                  | 26 ++++++++++++++++++--------
 tests/test_hwm.cpp                   | 26 ++++++++++++++++++--------
 tests/test_hwm_pubsub.cpp            | 26 ++++++++++++++++++--------
 tests/test_immediate.cpp             | 26 ++++++++++++++++++--------
 tests/test_inproc_connect.cpp        | 26 ++++++++++++++++++--------
 tests/test_invalid_rep.cpp           | 26 ++++++++++++++++++--------
 tests/test_iov.cpp                   | 26 ++++++++++++++++++--------
 tests/test_ipc_wildcard.cpp          | 26 ++++++++++++++++++--------
 tests/test_issue_566.cpp             | 26 ++++++++++++++++++--------
 tests/test_last_endpoint.cpp         | 26 ++++++++++++++++++--------
 tests/test_many_sockets.cpp          | 26 ++++++++++++++++++--------
 tests/test_metadata.cpp              | 26 ++++++++++++++++++--------
 tests/test_monitor.cpp               | 26 ++++++++++++++++++--------
 tests/test_msg_flags.cpp             | 26 ++++++++++++++++++--------
 tests/test_pair_inproc.cpp           | 26 ++++++++++++++++++--------
 tests/test_pair_ipc.cpp              | 26 ++++++++++++++++++--------
 tests/test_pair_tcp.cpp              | 26 ++++++++++++++++++--------
 tests/test_pair_tipc.cpp             | 26 ++++++++++++++++++--------
 tests/test_probe_router.cpp          | 26 ++++++++++++++++++--------
 tests/test_proxy.cpp                 | 26 ++++++++++++++++++--------
 tests/test_proxy_terminate.cpp       | 26 ++++++++++++++++++--------
 tests/test_pub_invert_matching.cpp   | 26 ++++++++++++++++++--------
 tests/test_req_correlate.cpp         | 26 ++++++++++++++++++--------
 tests/test_req_relaxed.cpp           | 26 ++++++++++++++++++--------
 tests/test_reqrep_device.cpp         | 26 ++++++++++++++++++--------
 tests/test_reqrep_device_tipc.cpp    | 26 ++++++++++++++++++--------
 tests/test_reqrep_inproc.cpp         | 26 ++++++++++++++++++--------
 tests/test_reqrep_ipc.cpp            | 26 ++++++++++++++++++--------
 tests/test_reqrep_tcp.cpp            | 26 ++++++++++++++++++--------
 tests/test_reqrep_tipc.cpp           | 26 ++++++++++++++++++--------
 tests/test_router_handover.cpp       | 26 ++++++++++++++++++--------
 tests/test_router_mandatory.cpp      | 26 ++++++++++++++++++--------
 tests/test_router_mandatory_hwm.cpp  | 26 ++++++++++++++++++--------
 tests/test_router_mandatory_tipc.cpp | 26 ++++++++++++++++++--------
 tests/test_security_curve.cpp        | 26 ++++++++++++++++++--------
 tests/test_security_null.cpp         | 26 ++++++++++++++++++--------
 tests/test_security_plain.cpp        | 26 ++++++++++++++++++--------
 tests/test_server_drop_more.cpp      | 26 ++++++++++++++++++--------
 tests/test_shutdown_stress.cpp       | 26 ++++++++++++++++++--------
 tests/test_shutdown_stress_tipc.cpp  | 26 ++++++++++++++++++--------
 tests/test_spec_dealer.cpp           | 26 ++++++++++++++++++--------
 tests/test_spec_pushpull.cpp         | 26 ++++++++++++++++++--------
 tests/test_spec_rep.cpp              | 26 ++++++++++++++++++--------
 tests/test_spec_req.cpp              | 26 ++++++++++++++++++--------
 tests/test_spec_router.cpp           | 26 ++++++++++++++++++--------
 tests/test_srcfd.cpp                 | 26 ++++++++++++++++++--------
 tests/test_stream.cpp                | 26 ++++++++++++++++++--------
 tests/test_stream_disconnect.cpp     | 26 ++++++++++++++++++--------
 tests/test_stream_empty.cpp          | 26 ++++++++++++++++++--------
 tests/test_stream_timeout.cpp        | 26 ++++++++++++++++++--------
 tests/test_sub_forward.cpp           | 26 ++++++++++++++++++--------
 tests/test_sub_forward_tipc.cpp      | 26 ++++++++++++++++++--------
 tests/test_system.cpp                | 26 ++++++++++++++++++--------
 tests/test_term_endpoint.cpp         | 26 ++++++++++++++++++--------
 tests/test_term_endpoint_tipc.cpp    | 26 ++++++++++++++++++--------
 tests/test_thread_safe.cpp           | 26 ++++++++++++++++++--------
 tests/test_timeo.cpp                 | 26 ++++++++++++++++++--------
 tests/test_xpub_manual.cpp           | 26 ++++++++++++++++++--------
 tests/test_xpub_nodrop.cpp           | 26 ++++++++++++++++++--------
 tests/test_xpub_welcome_msg.cpp      | 26 ++++++++++++++++++--------
 tests/testutil.hpp                   | 26 ++++++++++++++++++--------
 tools/curve_keygen.cpp               | 35 +++++++++++++++++++----------------
 275 files changed, 4958 insertions(+), 2220 deletions(-)

commit 1e10222b8fb27c5588429ca4abf3b582d4898ac4
Merge: 4676e655 1eb8e2a6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jun 2 17:41:36 2015 +0200

    Merge pull request #1413 from malexzx/master

    HPUX build and gmake check issues solution. Fixes #1412

commit 1eb8e2a69f265571526a5c0880a52947d64daac7
Author: ALEKSANDR MELNIKOV <coff@MacBook-Pro-ALEKSANDR.local>
Date:   Tue Jun 2 20:17:15 2015 +0600

    HPUX build and gmake check issues solution (#1412)

 src/socket_base.cpp  | 14 ++++++++++++++
 src/thread.cpp       |  2 +-
 tests/test_srcfd.cpp |  4 ++++
 3 files changed, 19 insertions(+), 1 deletion(-)

commit 4676e6551f9b2be795ace2ca456a28153699432d
Merge: a146503d d337cf5a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun May 31 17:50:32 2015 +0200

    Merge pull request #1411 from jens-auer/address-sanitizer

    Fixed out-of-bounds access when releasing socket handles.

commit d337cf5a96cf6c67a7bbbb4b23858a770ea41fc1
Author: Jens Auer <jens.auer@cgi.com>
Date:   Sun May 31 00:57:53 2015 +0200

    Fixed out-of-bounds access when releasing socket handles.

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

commit a146503d30316f8f82603e64738912b7e14ca761
Merge: d8077bb3 aa2e74c2
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed May 27 14:50:24 2015 +0200

    Merge pull request #1409 from rikvdh/master

    Fix another degradation, CPU maxes out when POLLOUT is set

commit aa2e74c2a268ba69680ccdf743f7538935a721a6
Author: Rik van der Heijden <rik.vanderheijden@dualinventive.com>
Date:   Wed May 27 14:27:53 2015 +0200

    Fix another degradation, CPU maxes out when POLLOUT is set because poll exits on POLLOUT and doesn't wait for POLLIN.

 src/proxy.cpp | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

commit d8077bb3da38b792d76a749b08bfcba3e2063c33
Merge: 099fd438 dp630cf3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 24 22:58:46 2015 +0200

    Merge pull request #1406 from rikvdh/master

    Fix degradation from #1382, POLLOUT was tested but not requested

commit dp630cf3eb986815843e7cd1ec0238d2729bba2a
Author: Rik van der Heijden <rik.vanderheijden@dualinventive.com>
Date:   Sun May 24 22:39:36 2015 +0200

    Fix degradation from #1382, POLLOUT was tested but not requested

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

commit 099fd43836eadca4361dpefe8e8564d37ec2f524
Merge: f9315e19 8a3296c1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat May 23 23:20:29 2015 +0200

    Merge pull request #1405 from c-rack/fix-brackets

    Problem: missing brackets

commit 8a3296c1aa7e8873ca8c60c8c4a7c1d69eb3f647
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat May 23 23:18:10 2015 +0200

    Solution: add missing brackets

 src/socket_base.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit f9315e1980e79f18c0be2d3b1d1dc661ca511e9f
Merge: f03a78bb fcf7b22b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri May 22 21:07:44 2015 +0200

    Merge pull request #1403 from dfons/master

    doc/zmq_socket.txt: Remove note about ZMQ_PAIR being experimental.

commit fcf7b22b9251cdp7ab42cd7cb3cba55dc9c1c14b
Author: Diego Fons <diego.fons@intraway.com>
Date:   Fri May 22 15:46:28 2015 -0300

    doc/zmq_socket.txt: Remove note about ZMQ_PAIR being experimental.

 doc/zmq_socket.txt | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit dfaa55fa7b3b6613a4ea45a39f9c36fbe0adbd6f
Merge: f9fe77f4 f03a78bb
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu May 21 15:00:05 2015 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit f03a78bbfc205e12591a256914c6d53cc57e9023
Merge: d35473ec 53762625
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 19 17:48:20 2015 +0200

    Merge pull request #1401 from taotetek/master

    Problem: libzmq has temp debug printf

commit 537626258f699f1ffc543a5b1f37c55236ef494c
Author: Brian Knox <bknox@digitalocean.com>
Date:   Tue May 19 09:38:53 2015 -0400

    remove temp printf from stream_engine

 src/stream_engine.cpp | 12 ------------
 1 file changed, 12 deletions(-)

commit d35473ecdp6310ea465cb57a73178563de97332b
Merge: 4c36c93a e89577d3
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed May 13 08:34:51 2015 +0200

    Merge pull request #1398 from jacmet/pkgconfig-static-linking

    libzmq: Fix pkg-config files for static linking

commit e89577d30c278fba0f9e40266ceb6fb2821907d5
Author: Peter Korsgaard <peter@korsgaard.com>
Date:   Wed May 13 08:01:34 2015 +0200

    libzmq: Fix pkg-config files for static linking

    Libzmq uses C++ standard library features, so users of it should link
    against that as well when statically linking.

    Add it to Libs.private so users using pkg-config automatically gets the
    correct linker flags.

    Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

 src/libzmq.pc.cmake.in | 1 +
 src/libzmq.pc.in       | 1 +
 2 files changed, 2 insertions(+)

commit 4c36c93a31c8ac84acb2fd4555e5c2a40dfd3888
Merge: 59add707 f4f918ba
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 7 22:56:40 2015 +0200

    Merge pull request #1397 from danriegsecker/master

    Some test fail to build targeting less that Windows Vista

commit f4f918ba73dcd1b0de17393f98fabb699ac8ade8
Author: Dan Riegsecker <1baldgeek@gmail.com>
Date:   Thu May 7 16:52:37 2015 -0400

    Some test fail to build targeting less that Windows Vista

    When targeting a version of Windows less than Windows Vista, the
    security tests fail to build. Added a check for Windows version
    and substituted inet_pton for inet_addr. Fixes libzmq issue #1396.

 tests/test_security_curve.cpp | 6 +++++-
 tests/test_security_null.cpp  | 4 ++++
 tests/test_security_plain.cpp | 6 +++++-
 3 files changed, 14 insertions(+), 2 deletions(-)

commit 59add707cd71b60e79a42d1b376b9718f01db7b0
Merge: 3699242c 5f9b2582
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed May 6 18:23:57 2015 +0200

    Merge pull request #1395 from anton-sergeev/master

    Add CMake option for perf-tools

commit 5f9b2582957c1f46453e39b00afa21dp6822c936
Author: Anton Sergeev <Anton.Sergeev@elecard.ru>
Date:   Wed May 6 21:25:26 2015 +0600

    Make CMake option for perf-tools

    This allow disable making perf-tools in Release build type

    Signed-off-by: Anton Sergeev <Anton.Sergeev@elecard.ru>

 CMakeLists.txt | 6 ++++++
 1 file changed, 6 insertions(+)

commit 3699242c4e4aa5eba12cb6d97de1132fc1d2759b
Merge: 959ab527 f0a76318
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 5 22:05:55 2015 +0200

    Merge pull request #1394 from BurningEnlightenment/master

    REPLACE CMAKE MSVC VERSION SUFFIX VARIABLE

commit f0a76318f420e591a6ea4600c7310d22253cb450
Author: Henrik S. Gaßmann <h.gassmann@online.de>
Date:   Tue May 5 21:39:50 2015 +0200

    REPLACE MSVC VERSION SUFFIX VARIABLE

    Replace _zmq_COMPILER with CMAKE_VS_PLATFORM_TOOLSET; so the suffix can
    be automagically generated for every MSVC compiler supported by cmake.

 CMakeLists.txt                            | 14 +++++++-------
 builds/cmake/Modules/TestZMQVersion.cmake | 10 ----------
 2 files changed, 7 insertions(+), 17 deletions(-)

commit 959ab527f4b9cd1285a5383feb9a8906c07c18a6
Merge: 43a1192c 1bfff06b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 1 18:21:11 2015 +0200

    Merge pull request #1391 from CommanderBubble/master

    FD_SETSIZE Increase to 1024

commit 1bfff06b8d4b578b16704fbdfc24e5ff74038d16
Merge: 235a1dbf 166a14c4
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat May 2 01:17:56 2015 +1000

    Merge pull request #3 from CommanderBubble/FD-SETSIZE-update

    FD_SETSIZE Increase to 1024

commit 166a14c4a507b7173a12300bd49ab7385dc39009
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat May 2 01:13:33 2015 +1000

    Update configure.ac

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

commit bd795d6f7a7c6c4ad95fc19b975c20ed962abc26
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat May 2 01:12:22 2015 +1000

    Update configure.ac

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

commit 095741cd9c7c623a62766edc8897c85462160d73
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat May 2 01:11:54 2015 +1000

    set FD_SETSIZE to 1024 on mingw

    Sets FD_SETSIZE to 1024 under mingw systems, increasing it from the default of 64, and brings it into line with the previous limit for CMake builds on mingw.

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

commit 235a1dbf7d2df6861eb3621c670987f0896eceb0
Merge: a53404f2 43a1192c
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Sat May 2 00:54:49 2015 +1000

    Merge pull request #2 from zeromq/master

    update to current master

commit 43a1192ca4f541f7d213d4e8712e437a688bb7e6
Merge: eead3bc6 74888769
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri May 1 10:52:05 2015 +0100

    Merge pull request #1390 from hintjens/master

    Problem: incomplete specs for test_proxy_terminate

commit 74888769d664cb447bcff00298b6f74861afd9e1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 1 11:31:45 2015 +0200

    Problem: incomplete specs for test_proxy_terminate

    Solution: fixed this in Makefile.am

 Makefile.am | 3 +++
 1 file changed, 3 insertions(+)

commit eead3bc6615cc0d8a4b34c7d40dd8a14ab267c0e
Merge: e1e9fb36 7b9e9b83
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 1 11:18:56 2015 +0200

    Merge pull request #1388 from rikvdh/issue-1382

    Fix for issue #1382

commit 7b9e9b838d2868c7fd4db47c09e23d831dc27925
Author: Rik van der Heijden <mail@rikvanderheijden.com>
Date:   Fri Apr 24 23:01:20 2015 +0200

    Issue #1382: Do not send data to backend when there are no listeners (+ tests)

 .gitignore                     |   1 +
 AUTHORS                        |   1 +
 Makefile.am                    |   1 +
 src/proxy.cpp                  |   6 ++-
 tests/CMakeLists.txt           |   1 +
 tests/test_proxy_terminate.cpp | 113 +++++++++++++++++++++++++++++++++++++++++
 6 files changed, 121 insertions(+), 2 deletions(-)

commit e1e9fb3629fb96cfb965d224c82dadfd0eabd453
Merge: 3ec0e770 7e8ba0ec
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 28 14:02:54 2015 +0300

    Merge pull request #1387 from c-rack/1386-libsodium-checkout

    Solution: Build libsodium from latest master branch. Fixes 1386.

commit 7e8ba0ecff4c26492a5560acef4473e22600fec5
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 28 10:42:56 2015 +0200

    Solution: Build libsodium from latest master branch. Fixes 1386.

 builds/qt-android/build.sh | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit 3ec0e770b57be93b6dce3a0c7b5f6ea4be2e3174
Merge: aabbe3f3 2e06737b
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 28 08:22:47 2015 +0200

    Merge pull request #1384 from hurtonm/master

    Release memory on connection termination for pub, push sockets

commit 2e06737bf4b85fbb2d9d085566b48f02e0208798
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Apr 28 07:44:22 2015 +0200

    pub: Don't delay pipe termination

 src/pub.cpp | 13 +++++++++++++
 src/pub.hpp |  1 +
 2 files changed, 14 insertions(+)

commit 09a65c55989111103a525da0c5f05897dfe99645
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Apr 28 07:40:31 2015 +0200

    push: Don't delay pipe termination

 src/push.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit aabbe3f33a54b68443f3af8042e09a8c076ef921
Merge: dbacc342 c2dcc806
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Apr 27 13:33:55 2015 +0100

    Merge pull request #1383 from somdoron/master

    change minimum version to windows vista

commit c2dcc8060293fd5480219b0afaf5833a93afc8ba
Author: Doron Somech <somdoron@gmail.com>
Date:   Sat Apr 25 23:21:27 2015 +0300

    change minimum version to windows vista and implement dummy condition variable for lower versions

 builds/cmake/platform.hpp.in | 10 ----------
 builds/mingw32/platform.hpp  |  9 ---------
 builds/msvc/platform.hpp     |  8 --------
 src/condition_variable.hpp   | 43 +++++++++++++++++++++++++++++++++++++++++++
 src/windows.hpp              |  4 ++--
 5 files changed, 45 insertions(+), 29 deletions(-)

commit dbacc34238382f27d7a1bfa4aa5122be30172daa
Merge: cd830dd2 30bd7c48
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 22 08:45:19 2015 +0300

    Merge pull request #1379 from evoskuil/master

    Problem: integer narrowing issues.

commit 30bd7c481e3151fa03ea0f32948eccebbe5b1372
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue Apr 21 22:26:32 2015 -0700

    Fix integer narrowing issues.

 src/options.cpp         |  2 +-
 src/plain_server.cpp    |  2 +-
 src/socks.cpp           | 19 +++++++++++--------
 src/socks.hpp           | 10 +++++-----
 src/socks_connecter.cpp |  6 +++---
 src/stdint.hpp          |  4 ++++
 src/stream.cpp          |  5 ++---
 src/stream_engine.cpp   |  2 +-
 src/tcp_connecter.cpp   |  4 ++--
 src/tcp_listener.cpp    |  6 +++---
 src/zmq_utils.cpp       |  2 +-
 11 files changed, 34 insertions(+), 28 deletions(-)

commit cd830dd203f5b61deec8cf64e9f42389a2e00959
Merge: 88ac6318 a53404f2
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 21 14:15:14 2015 +0200

    Merge pull request #1378 from CommanderBubble/master

    Allow configure to support mingw64

commit a53404f2f90d6b9e5ce2665e41dced09455fb117
Merge: 04a9d582 c9bdcfc5
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Tue Apr 21 22:03:59 2015 +1000

    Merge pull request #1 from CommanderBubble/CommanderBubble-configure.ac-adds_mingw64_support

    allow host_os to accept mingw64

commit 88ac63189c8320e81cc2e61613b0888d34fb463d
Merge: 9a4c4da2 594e3dcc
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Apr 20 12:28:54 2015 +0100

    Merge pull request #1341 from hintjens/master

    Problem: issue #1144, 1377

commit 594e3dccebc164502bc1cf437c8bb51108e67f55
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 20 12:51:10 2015 +0200

    Problem: shutdown asserts if WSASTARUP wasn't done previously

    This is a silly assertion that causes problems if libzmq.dll is
    called in some esoteric ways.

    Solution: if the shutdown code detects WSANOTINITIALISED, then
    exit silently.

    Fixes #1377
    Fixes #1144

 src/signaler.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 0673cd4e69296ec912103cb3dbe00e0d9fbc3b69
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 6 09:36:47 2015 +0100

    Problem: test_disconnect_inproc sometimes fails

    Solution: add settle pause after zmq_connect

    Fixes #1340

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

commit 9a4c4da265cd9a534a9d23f14e2a2dpdd87dp456
Merge: 04a9d582 8957ad5e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Apr 18 08:48:50 2015 +0200

    Merge pull request #1375 from natano/configure_bitrig

    Add Bitrig to OS detection in configure.ac.

commit 8957ad5edff47c28d852657cf0b69ba5dp20f11c
Author: Martin Natano <natano@natano.net>
Date:   Fri Apr 17 22:14:53 2015 +0200

    Add Bitrig to OS detection in configure.ac.

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

commit f9fe77f421f707cd6dfc13aaaa612c99a776766f
Merge: a756eee3 04a9d582
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Apr 16 15:00:32 2015 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit c9bdcfc58486ef42946dpa28d34c45c0d125a2fd
Author: Michdpl <CommanderBubble@users.noreply.github.com>
Date:   Thu Apr 16 00:40:32 2015 +1000

    allow host_os to accept mingw64

    Changes the pattern for the host_os matches to *mingw* from *mingw32* to accept both mingw32 and mingw64 versions.

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

commit 04a9d582fdfdc980ac4b2a55f2d22b199ef04e6b
Merge: 6b4d9bca d4a58034
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Apr 14 18:36:45 2015 +0200

    Merge pull request #1374 from kreuzberger/master

    Fix for issue #1287: ZMQ_XPUB_NODROP documentation

commit d4a580349556afa98d98e4fa21532ccb7226e86f
Author: Jörg Kreuzberger <joerg@kreuzberger.eu>
Date:   Tue Apr 14 18:32:06 2015 +0200

    Update zmq_setsockopt.txt

    #1287

 doc/zmq_setsockopt.txt | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 18b6e6803bd0b8a11911d4adb3a0668f9630a347
Author: Jörg Kreuzberger <joerg@kreuzberger.eu>
Date:   Tue Apr 14 18:30:27 2015 +0200

    Add documenation for ZMQ_XPUP_NODROP

    fix for issue #1287

 doc/zmq_setsockopt.txt | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit a756eee30bc6ed457d73ba9f60ca7ebfaa4f4bc1
Merge: ca94cf56 6b4d9bca
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Apr 14 10:36:54 2015 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 41d85f52d2107f269fa5c40d18ce8178bb8151ef
Merge: 89bf2af1 6b4d9bca
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Tue Mar 17 21:26:34 2015 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 89bf2af12879b40b37f04b5be383fec4dd4e78d3
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Tue Mar 17 21:26:24 2015 +0100

    Add libsodium directory path hints for cmake

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6b4d9bca0c31fc8131749396fd996d17761c999f
Merge: 2d435eb6 edc06402
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 15 14:14:20 2015 +0100

    Merge pull request #1370 from calid/unbind-enoent

    doc: add ENOENT to list of zmq_unbind error codes

commit edc0640206f72933425814e11db8ac20f0824dpe
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Mar 15 08:02:51 2015 -0500

    doc: add ENOENT to list of zmq_unbind error codes

    Resolves zeromq/libzmq#1353

 doc/zmq_unbind.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 2d435eb692657d18faab7219a2c7f2bcf8ca6da3
Merge: 4820d493 023505ac
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sun Mar 15 12:53:26 2015 +0100

    Merge pull request #1369 from calid/ctx-term-vs-destroy

    update zmq_ctx_term description for consistency

commit 023505acede414c879f63415775bfee98678342e
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Mar 15 06:29:21 2015 -0500

    update zmq_ctx_term description for consistency

    zmq_term and zmq_ctx_destroy are just aliases for zmq_ctx_term. that
    being the case use 'terminate' in the description for all three so there
    isn't any confusion about behavior.

    also update the deprecates list in zmq_ctx_term to include
    zmq_ctx_destroy.

 doc/zmq_ctx_term.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 4820d493b039eeca8ac017590dcc4c5d635158c5
Merge: eb345337 4c92fefe
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 15 09:51:40 2015 +0100

    Merge pull request #1368 from calid/docfix-zmq-msg-init

    doc: zmq_msg_init does not set errno

commit 4c92fefe1bef9c19d35a9de54d27ef709b93b19c
Author: Dylan Cali <calid1984@gmail.com>
Date:   Sun Mar 15 02:12:02 2015 -0500

    doc: zmq_msg_init does not set errno

    In fact it always returns zero.

 doc/zmq_msg_init.txt | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit eb3453372868a583bfff7e83e4dd197806e97ca3
Merge: 6b06bc31 1e27b364
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Mar 14 13:18:06 2015 +0100

    Merge pull request #1367 from evoskuil/master

    Problem: wrong default VC rt lib for release dynamic exe.

commit 1e27b364a45b1e9e9356db3404eeddd91f9ed87f
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sat Mar 14 05:10:40 2015 -0700

    Fix default VC rt lib for release dynamic exe.

 builds/msvc/properties/ReleaseDEXE.props | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6b06bc310f8f5c15c5d888c243474ce8b51ee2d1
Merge: ec4200a9 032c5eda
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Mar 11 10:46:06 2015 +0100

    Merge pull request #1366 from xantares/patch-1

    fix CMP0053 warning with cmake 3.1

commit 032c5eda3d8e8bfd6eddf3da8d7297d4707961ea
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Mar 11 10:35:59 2015 +0100

    fix CMP0053 warning with cmake 3.1

 builds/cmake/Modules/FindAsciiDoc.cmake | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit ec4200a9d3701826dc8748988fefd1de70c227fb
Merge: 1a5ced9f 0f24f675
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Mar 11 10:25:45 2015 +0100

    Merge pull request #1365 from xantares/master

    fix cmake build system

commit 0f24f675f54eaffd8235f4c3fc7a1566ca682d86
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Mar 11 09:15:40 2015 +0000

    set soversion without ZMQ_BUILD_FRAMEWORK

 CMakeLists.txt | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 80044c9ed650e9f05396eea720f3550eb87329db
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Mar 11 09:10:23 2015 +0000

    mutualize win32 flags

 CMakeLists.txt | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 7dfa7b7a5d2bbc5c1a935b5289321ad9bfe500cc
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Mar 11 09:03:21 2015 +0000

    do not mix DLL_EXPORT & ZMQ_STATIC definitions

 CMakeLists.txt | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

commit 1d2b34dbe43f0a2dp7875ca1f8954ec4463fb470
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Mar 11 08:51:59 2015 +0000

    install *.txt in share/zmq

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 866e752b04a6460e4849ed6be83605942b1bda6a
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Mar 11 08:50:39 2015 +0000

    do not install sources

 CMakeLists.txt | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 1a5ced9f474edbb33c39a65fdb62c0a1e87e32ca
Merge: f053854e d47980a6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Feb 20 05:59:31 2015 +0100

    Merge pull request #1361 from rodgert/master

    Allow zmq_msg_gets checks to assert rather than segfault

commit d47980a6ed9e0903bb87f10560fd6472b57b0b8a
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Thu Feb 19 20:28:10 2015 -0600

    Allow zmq_msg_gets checks to assert rather than segfault

 tests/test_stream.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit f053854e515fcb59649e7886fd9be2f4b4953237
Merge: b7e52755 5ed6ac60
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 19 22:09:58 2015 +0100

    Merge pull request #1360 from hurtonm/master

    Adjust number of sent messages on hiccups

commit 5ed6ac60e258a6e67a2fdc3a75ddfdcc4db16596
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Feb 19 21:38:10 2015 +0100

    Adjust number of sent messages on hiccups

    Not adjusting the sent message count may lead to situation when SUB
    socket does not forward its subscriptions.

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

commit b7e52755e4a9abb4d9d99b9f0a65b4fa42c4227c
Merge: 1e6e5b1c 700f7bfe
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Feb 19 20:33:32 2015 +0100

    Merge pull request #1359 from rodgert/master

    resolve #1347 addresses issue of no metadata on identity frame

commit 700f7bfede5f7a1614d2e91ffbe03dc5478f8904
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Thu Feb 19 13:22:32 2015 -0600

    resolve #1347 addresses issue of no metadata on identity frame

 src/stream.cpp        | 6 ++++++
 tests/test_stream.cpp | 3 +++
 2 files changed, 9 insertions(+)

commit 1e6e5b1c0ad7f3896dc9c929e397f62eed3225e7
Merge: 8a526874 4b948b1f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 19 09:25:53 2015 +0100

    Merge pull request #1357 from rodgert/master

    Support limited metadata for STREAM sockets

commit 4b948b1f3b2fb62d961419d337f65f38749e1a5a
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Feb 18 21:24:57 2015 -0600

    Code cleanup

 src/stream_engine.cpp | 19 +++++++++----------
 src/stream_engine.hpp |  4 +++-
 2 files changed, 12 insertions(+), 11 deletions(-)

commit cf0804bb7cb78864543e68397d7d2f9790d26903
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Feb 18 21:10:50 2015 -0600

    Remove unused include

 src/stream_engine.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 8daa74dc777d082bb6f66dbad8ceffd9605ad1ec
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Feb 18 13:05:05 2015 -0600

    Fix comment from prior commit

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

commit fefe0d42fa12cea005134e402d97dbe7c66a3d63
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Feb 18 12:30:05 2015 -0600

    Update gitignore to include recently added tests for server sockets

 .gitignore | 4 ++++
 1 file changed, 4 insertions(+)

commit 638ddeb4044564e70778c96396c54eb4a7db80cd
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Feb 18 12:28:58 2015 -0600

    resolve #1347 Support limited metadata for STREAM sockets

 src/stream.cpp        | 10 ++++++++--
 src/stream_engine.cpp | 19 +++++++++++++++++--
 src/stream_engine.hpp |  4 +++-
 tests/test_stream.cpp | 22 ++++++++++++++--------
 4 files changed, 42 insertions(+), 13 deletions(-)

commit 8a526874ab3f819374318691065b648af67a26e3
Merge: fe2ce47a 39338e2f
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Feb 18 09:07:58 2015 -0900

    Merge pull request #1356 from rodgert/master

    Fix autogen.sh warning about trailing whitespace

commit 39338e2fe41f84c42d993de8157115f596164f5e
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Feb 18 12:02:24 2015 -0600

    Fix autogen.sh warning about trailing whitespace

 Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2dp7dp698a78f6c8a18ba68f199ea77f6733c8d5
Merge: eacbd0c5 fe2ce47a
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sun Feb 15 16:58:44 2015 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit fe2ce47a44c9142fc160a7ac8e449fc5753038cf
Merge: 759c3e31 bc53d710
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 14 08:18:46 2015 +0100

    Merge pull request #1355 from evoskuil/master

    Fix error return for clock_gettime.

commit bc53d710ffe8ac4a99ef799d0f51dd88e7bed3bc
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Feb 13 23:10:39 2015 -0800

    Fix error return for clock_gettime.

 src/clock.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 759c3e314c307d9ec4432674e0133329a3be8fe6
Merge: 55886b8b a8f11b3c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 14 07:59:24 2015 +0100

    Merge pull request #1354 from evoskuil/master

    Problem: build break in OSX, VS2010, VS2012

commit a8f11b3c3d719c1c248f64933862c913111dded8
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Feb 13 22:50:28 2015 -0800

    Add clock_gettime implementation for OSX.

 src/clock.cpp              | 22 ++++++++++++++++++++++
 src/clock.hpp              | 10 ++++++++++
 src/condition_variable.hpp |  1 +
 src/mailbox_safe.cpp       |  1 +
 4 files changed, 34 insertions(+)

commit 6630f19686129b98fd7d8ea6c30d3696c509d995
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Feb 13 15:08:17 2015 -0800

    Apply VS2013 changes to VS2010 and VS2012.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 9 +++++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 9 +++++++++
 4 files changed, 24 insertions(+)

commit 55886b8b4623024b30b37dacab6ec9c6e3640e02
Merge: cac4d7aa deaa8965
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 13 09:10:18 2015 +0100

    Merge pull request #1352 from somdoron/master

    thread safety bug - lock when sending

commit deaa89656f2d46f07c2df2f6eadbd9f258edf380
Author: Doron Somech <somdoron@gmail.com>
Date:   Fri Feb 13 09:30:29 2015 +0200

    thread safety bug - lock when sending

 src/mailbox_safe.cpp | 27 ++++++++-------------------
 src/mailbox_safe.hpp | 11 +++--------
 src/mutex.hpp        | 12 +++++++++++-
 3 files changed, 22 insertions(+), 28 deletions(-)

commit cac4d7aa10eb9ef03dd1cb50a6ba25c07ba461d7
Merge: 5d42fe1b a4de3df7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 12 20:35:29 2015 +0100

    Merge pull request #1350 from zeromq/revert-1345-bzimmerman_CMAKE

    Revert "Bzimmerman cmake"

commit a4de3df73e3ced85aa83b503676c2096697b1100
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 12 21:29:09 2015 +0200

    Revert "Bzimmerman cmake"

 CMakeLists.txt                          | 291 ++++++++++++++++++++++----------
 builds/cmake/Modules/FindAsciiDoc.cmake |  17 +-
 tests/CMakeLists.txt                    |  12 +-
 3 files changed, 214 insertions(+), 106 deletions(-)

commit 5d42fe1bf7eef67b71043d20b5a7025e9181d112
Merge: 88c6e696 5a897f75
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 12 20:06:08 2015 +0100

    Merge pull request #1349 from somdoron/master

    problem: client and server sockets are not thread safe

commit 5a897f750913397c328167dd92172d7f52267162
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 12 20:38:49 2015 +0200

    allocate reaper_signal only when needed

 src/socket_base.cpp | 21 ++++++++++++++++-----
 src/socket_base.hpp |  2 +-
 2 files changed, 17 insertions(+), 6 deletions(-)

commit bbdd8662bafa99584b78fe44e1a55b24b37cf740
Author: Doron Somech <somdoron@gmail.com>
Date:   Thu Feb 12 16:56:14 2015 +0200

    thread safety - supporting windows

 CMakeLists.txt                                   | 1 +
 builds/cmake/platform.hpp.in                     | 9 +++++++++
 builds/mingw32/platform.hpp                      | 9 +++++++++
 builds/msvc/platform.hpp                         | 8 ++++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 3 +++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 9 +++++++++
 tests/CMakeLists.txt                             | 2 ++
 7 files changed, 41 insertions(+)

commit 6749c9b3eba1ad2d35942b37390c2947b55c4ac0
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Feb 11 00:01:50 2015 +0200

    thread safety

 Makefile.am                |  12 ++-
 src/client.cpp             |   2 +-
 src/condition_variable.hpp | 149 +++++++++++++++++++++++++++++
 src/ctx.cpp                |   2 +-
 src/ctx.hpp                |   2 +-
 src/i_mailbox.hpp          |  50 ++++++++++
 src/mailbox.hpp            |   3 +-
 src/mailbox_safe.cpp       | 111 ++++++++++++++++++++++
 src/mailbox_safe.hpp       |  92 ++++++++++++++++++
 src/mutex.hpp              |  10 ++
 src/server.cpp             |   2 +-
 src/socket_base.cpp        | 228 ++++++++++++++++++++++++++++++++++++++-------
 src/socket_base.hpp        |  20 ++--
 tests/test_thread_safe.cpp | 145 ++++++++++++++++++++++++++++
 14 files changed, 782 insertions(+), 46 deletions(-)

commit 88c6e696abbf62a23d4c6cb2fdf2045f1e5ab3e1
Merge: 405a7495 6bf1609a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 11 23:02:08 2015 +0100

    Merge pull request #1348 from evoskuil/master

    Problem: VS projects missing client/server.

commit 6bf1609a10a65b5dba7c3ce4d6cd32c41b39f90a
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Feb 11 13:23:58 2015 -0800

    Update VS DLL and NuGet versioning to 4.2.0.

 builds/msvc/resource.rc         | Bin 4642 -> 4642 bytes
 packaging/nuget/package.config  |   2 +-
 packaging/nuget/package.nuspec  |  50 ++++++++++++++++++++--------------------
 packaging/nuget/package.targets |  40 ++++++++++++++++----------------
 4 files changed, 46 insertions(+), 46 deletions(-)

commit 91eead1d20f8ee24beccb66ab2fa9867d542a6ce
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Feb 11 13:17:13 2015 -0800

    Add client.cpp/hpp and server.cpp/hpp to VS projects.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  6 +++++-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 12 ++++++++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         |  6 +++++-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 12 ++++++++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  6 +++++-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 12 ++++++++++++
 6 files changed, 51 insertions(+), 3 deletions(-)

commit 2fd2fca531d042e86c642f47cbddfe80a7dc4116
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Feb 11 13:10:55 2015 -0800

    Make implicit cast explicit.

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

commit 6724f414272b8022b6e227007b1771dbe3f3879f
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Feb 11 13:09:25 2015 -0800

    Fix forcing to bool.

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

commit 405a74952562be00e4b6e37e80df55ff756fabf9
Merge: c9418db6 c743bd95
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 9 22:38:28 2015 +0100

    Merge pull request #1345 from QbaseLLC/bzimmerman_CMAKE

    Bzimmerman cmake

commit c743bd95b46a15890c5ab28f7fa1d78f9f753b7f
Author: Bryan Zimmerman <bzimmerman@4qbase.com>
Date:   Mon Feb 9 13:32:29 2015 -0500

    changed test tools to compile statically

 CMakeLists.txt | 33 ++++++++-------------------------
 1 file changed, 8 insertions(+), 25 deletions(-)

commit caf4276710767b07f91db0cfecb88a252d2e6b31
Author: Bryan Zimmerman <bzimmerman@4qbase.com>
Date:   Mon Feb 9 10:47:05 2015 -0500

    removed packaged export
    added version to builds
    other cleanup

 CMakeLists.txt       | 186 ++++++++-------------------------------------------
 tests/CMakeLists.txt |  12 ++--
 2 files changed, 35 insertions(+), 163 deletions(-)

commit fef20b1c8361340c025975b735b34357e9132350
Merge: 2bb72add 49f58c00
Author: Bryan Zimmerman <bzimmerman@4qbase.com>
Date:   Mon Feb 9 08:46:00 2015 -0500

    Merge remote-tracking branch 'remotes/origin/HEAD' into bzimmerman_CMAKE

commit eacbd0c5df3d2a4070da4e44342039bcb3676233
Merge: 4b4adbbc c9418db6
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sun Feb 8 16:56:32 2015 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit c9418db6844155fa907cb41deab7a50c47843fd9
Merge: e05c8056 54b56210
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Feb 7 16:17:50 2015 +0100

    Merge pull request #1344 from febeling/cond-build-tools

    Problem: Cross compile for iOS isn't working for auxiliary tools

commit 54b56210ad5e2a8a8be5ba3accb2dpeac89dpc0c
Author: Florian Ebeling <florian.ebeling@gmail.com>
Date:   Sat Feb 7 15:30:32 2015 +0100

    Problem: curve keygen build cannot be switched off

 Makefile.am  | 2 ++
 configure.ac | 8 ++++++++
 2 files changed, 10 insertions(+)

commit 2d59594a3a9b7b7f475851b41d2223a622790957
Author: Florian Ebeling <florian.ebeling@gmail.com>
Date:   Sat Feb 7 15:28:24 2015 +0100

    Problem: perf tools build cannot be switched off

 Makefile.am  | 2 ++
 configure.ac | 8 ++++++++
 2 files changed, 10 insertions(+)

commit 49f58c0021216ffc12845911d5714d30074bf0c9
Merge: 70200866 e05c8056
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Fri Feb 6 11:27:46 2015 -0500

    Merge remote-tracking branch 'remotes/upstream/master'

commit 702008666ca9de4547e59375389b498c3568884f
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Fri Feb 6 11:27:11 2015 -0500

    Adding Bryan's changes.

 CMakeLists.txt                          | 60 +++++++++++++++++++++++++++------
 builds/cmake/Modules/FindAsciiDoc.cmake | 17 +++++-----
 2 files changed, 57 insertions(+), 20 deletions(-)

commit 2bb72add4957d667474d45f5ac4a43457ea51bb3
Author: Bryan Zimmerman <bzimmerman@4qbase.com>
Date:   Fri Feb 6 11:03:14 2015 -0500

    update to use new find_program syntax

 CMakeLists.txt                          |  7 +++----
 builds/cmake/Modules/FindAsciiDoc.cmake | 17 ++++++++---------
 2 files changed, 11 insertions(+), 13 deletions(-)

commit 552c13616e057ba45b313671fb0e097a291ca967
Author: Bryan Zimmerman <bzimmerman@4qbase.com>
Date:   Fri Feb 6 10:42:23 2015 -0500

    replace check_library and check_include with find_file and find_library

 CMakeLists.txt | 59 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 49 insertions(+), 10 deletions(-)

commit e05c8056885db3c6e1dab5ad7f8823f3f9a04b9f
Merge: 8e89d116 9daf6dd7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 6 15:22:12 2015 +0100

    Merge pull request #1342 from chickenkiller/master

    acinclude.m4: make kernel-specific flags cacheable

commit 9daf6dd7c4947ce74ca729de5c3cfe8cbc304702
Author: Lionel Orry <lionel.orry@gmail.com>
Date:   Fri Feb 6 15:11:07 2015 +0100

    acinclude.m4: make kernel-specific flags cacheable

    Specifically when cross-compiling, one can be willing to force these
    variable values using the environment of a config.cache file. This
    commit makes this possible.

    The affected variables are:

    * libzmq_cv_sock_cloexec
    * libzmq_cv_so_keepalive
    * libzmq_cv_tcp_keepcnt
    * libzmq_cv_tcp_keepidle
    * libzmq_cv_tcp_keepintvl
    * libzmq_cv_tcp_keepalive

    Signed-off-by: Lionel Orry <lionel.orry@gmail.com>

 acinclude.m4 | 84 ++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 48 insertions(+), 36 deletions(-)

commit ade54d72e7090f319a51a04dpb5f5e80a3ba8e6c
Merge: 05df7072 8e89d116
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Thu Feb 5 10:52:05 2015 -0500

    Merge remote-tracking branch 'remotes/upstream/master'

commit 8e89d1162808e4432e4d65223599e1f9eee24dbd
Merge: 34cd718e 1a0d1346
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Feb 4 15:42:03 2015 -0900

    Merge pull request #1339 from evoskuil/master

    Add missing EOL at EOF.

commit 1a0d134666f16440d71035e36c5866aab87d89ea
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Feb 4 16:27:57 2015 -0800

    Add missing EOL at EOF.

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

commit ca94cf568b6656d4936105cd57ce9c8509af28f5
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Feb 4 17:54:26 2015 +0000

    Add appveyor support for building on windows.

 appveyor.yml | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit 05df7072d6dd5dbb6263f64e48f2109728876ef4
Merge: d5e7922d 34cd718e
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Mon Feb 2 10:27:25 2015 -0500

    Merge remote-tracking branch 'remotes/upstream/master'

commit 34cd718e0f64c5ccad9545de7c19e2296876242f
Merge: edb3a13f ee962117
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Feb 2 14:52:45 2015 +0000

    Merge pull request #1337 from somdoron/JenkinsFix

    problem: jenkins build failed

commit ee962117efb347d023dp10e7865d0d4c0be8d503
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Feb 2 16:42:50 2015 +0200

    fix jenkins build

 CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit edb3a13fd4a4d19d62e8537f4fb68cf05ea04f2b
Merge: a6362a45 79f162aa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 2 15:23:18 2015 +0100

    Merge pull request #1336 from somdoron/ClientSocket

    problem: client socket is missing

commit 79f162aa7b6e8d917791e5ec51247613d848b0f1
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Feb 2 16:12:21 2015 +0200

    test the client socket can drop multi frame messages that being sent to it

 Makefile.am                     |   6 ++-
 tests/test_client_drop_more.cpp | 106 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 111 insertions(+), 1 deletion(-)

commit 14a19cd5d4103d916ef2d10ed47804f491b137d7
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Feb 2 15:57:30 2015 +0200

    test the server socket can drop multi frame messages that being sent to it

 Makefile.am                     |   6 ++-
 tests/test_server_drop_more.cpp | 106 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 111 insertions(+), 1 deletion(-)

commit 862cd41c6521b988153eb7caafd07a5cd3dp8ba7
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Feb 2 11:59:13 2015 +0200

    implement client socket type and drop messages when more flag is set on client and server

 Makefile.am                                       |   8 +-
 include/zmq.h                                     |   1 +
 src/client.cpp                                    | 102 ++++++++++++++++++++++
 src/client.hpp                                    |  71 +++++++++++++++
 src/mechanism.cpp                                 |  10 ++-
 src/server.cpp                                    |  40 ++++-----
 src/server.hpp                                    |   3 +-
 src/session_base.cpp                              |   1 +
 src/socket_base.cpp                               |   4 +
 tests/{test_server.cpp => test_client_server.cpp} |   4 +-
 10 files changed, 209 insertions(+), 35 deletions(-)

commit a6362a454fbd5d44eeb154b40ef516a65e0e8d13
Merge: 9826a7b1 5632b57b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 2 10:23:58 2015 +0100

    Merge pull request #1334 from somdoron/ServerSocket

    Problem: sockets are not thread safe

commit 5632b57b4a586dd60b68b7f0c40b0fdb76713f54
Author: Doron Somech <somdoron@gmail.com>
Date:   Mon Feb 2 01:17:37 2015 +0200

    adds server socket type and routing id to msg

 Makefile.am           |   8 ++-
 include/zmq.h         |   3 +
 src/mechanism.cpp     |   8 ++-
 src/msg.cpp           |  17 +++++
 src/msg.hpp           |  17 +++--
 src/pipe.cpp          |  10 +++
 src/pipe.hpp          |   7 +++
 src/server.cpp        | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/server.hpp        |  87 ++++++++++++++++++++++++++
 src/session_base.cpp  |   4 +-
 src/socket_base.cpp   |   4 ++
 src/zmq.cpp           |   9 +++
 tests/test_server.cpp |  87 ++++++++++++++++++++++++++
 13 files changed, 420 insertions(+), 10 deletions(-)

commit d5e7922d418d861767dad7b562751991f6ece894
Merge: e351cbdd 9826a7b1
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Fri Jan 30 08:39:44 2015 -0500

    Merge remote-tracking branch 'remotes/upstream/master'

commit 9826a7b19ddpdf63900a64e11e39a2ca6631b0c1
Merge: 9fc0d2f1 a7a512ab
Author: Brian Knox <taotetek@gmail.com>
Date:   Fri Jan 30 12:12:16 2015 +0100

    Merge pull request #1333 from hintjens/master

    Problem: test cases are failing on slower PCs (eee PC)

commit a7a512ab3d88fc60e04ac7c16de1a78d147f610f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 30 11:57:31 2015 +0100

    Problem: test cases are failing on slower PCs (eee PC)

    Solution: raise timeouts from 100-150 msec to 250 msec

 tests/test_connect_delay_tipc.cpp | 2 +-
 tests/test_filter_ipc.cpp         | 4 ++--
 tests/test_immediate.cpp          | 2 +-
 tests/test_req_relaxed.cpp        | 2 +-
 tests/test_security_curve.cpp     | 2 +-
 tests/test_security_null.cpp      | 2 +-
 tests/test_security_plain.cpp     | 2 +-
 tests/test_spec_dealer.cpp        | 6 +++---
 tests/test_spec_pushpull.cpp      | 4 ++--
 tests/test_spec_rep.cpp           | 2 +-
 tests/test_spec_req.cpp           | 6 +++---
 tests/test_spec_router.cpp        | 2 +-
 tests/testutil.hpp                | 2 +-
 13 files changed, 19 insertions(+), 19 deletions(-)

commit e351cbdd8feb8ad97a6c397b629adc4c54430ad3
Merge: be8cdc2b 9fc0d2f1
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Thu Jan 29 10:16:56 2015 -0500

    Merge remote-tracking branch 'remotes/upstream/master'

commit 9fc0d2f1a3469c870a685f4b348516f7ce9a2ba2
Merge: 153e0487 28946348
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 29 07:45:56 2015 +0100

    Merge pull request #1331 from jemc/master

    Problem: qt-android build script out of date

commit 2894634829aa672aac3b94a0a01a40d5af8ccbf0
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Jan 28 17:30:35 2015 -0800

    Problem: qt-android build script out of date
    Solution: copy changes from latest zproject

 builds/qt-android/build.sh | 7 +++++++
 1 file changed, 7 insertions(+)

commit 153e0487de40186bc84276bb81770dca47d8464c
Merge: 8c8d23c7 937d485e
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Jan 28 14:55:13 2015 -0800

    Merge pull request #1330 from rodgert/master

    Use GCC/Clang compiler intrinsics for atomic operations

commit 937d485e748ab56b2e902f7363886c9dpf368494
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Jan 28 16:38:14 2015 -0600

    Add cast to make Clang happy

 src/atomic_ptr.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit be8cdc2bf69214eadb7c9e234e4d093a0f68eb4f
Merge: 03a1b0e2 8c8d23c7
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Wed Jan 28 12:49:38 2015 -0500

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit e6c45f537611b0c9e90c1ce593015c49255d32b0
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Jan 28 10:27:15 2015 -0600

    Support using compielr intrinsics for atomic operations

    Works with GCC and most likely clang

 acinclude.m4           | 24 ++++++++++++++++++++++--
 configure.ac           |  9 +++++++++
 src/atomic_counter.hpp |  9 ++++++++-
 src/atomic_ptr.hpp     |  9 +++++++++
 4 files changed, 48 insertions(+), 3 deletions(-)

commit 8c8d23c76181a9c402c3ece23bac2db4fd9a3762
Merge: 03031313 d8c15cf4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 27 19:41:45 2015 +0100

    Merge pull request #1328 from rodgert/master

    Code cleanup - removing unused local

commit d8c15cf43bf2e96e733237ab8beb443dpfd1300f
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Tue Jan 27 12:40:35 2015 -0600

    Code cleanup - removing unused local

 src/stream_engine.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 0303131390016fd48506f6bee10d1fa7c6a1b317
Merge: bccf0bc8 1c72bf4e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 27 16:51:46 2015 +0100

    Merge pull request #1327 from rodgert/master

    Clean up of metadata_t

commit bccf0bc813bc65b3e57d52cc4876e5e5f6f9d60a
Merge: 96a27d11 d9fb1d36
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 27 16:39:02 2015 +0100

    Merge pull request #1326 from rodgert/master

    resolve #1325 Alignment issue with zmq_msg_t on SPARC CPU

commit 1c72bf4e550d99e54317ee43c71a1b763dc1dbdd
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Tue Jan 27 09:33:47 2015 -0600

    Clean up of metadata_t

    * There is no clear reason why the map should hold const std::strings
    * This class is never derived, there doesn't seem to be a compelling
      reason to ever do so, so no need to make virtual members
    * In general const member data is an anti-pattern, the *only* reason
      is to prevent assignability, and the accepted idiom for that is to
      to declare the assigment operator private. This change does so, and
      also prevents copy construction.

 src/metadata.cpp |  4 ----
 src/metadata.hpp | 14 +++++++-------
 2 files changed, 7 insertions(+), 11 deletions(-)

commit d9fb1d36ff2008966af538f722a1f4ab158dbf64
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Tue Jan 27 09:20:39 2015 -0600

    resolve #1325 Alignment issue with zmq_msg_t on SPARC CPU

    should be backported probably

 include/zmq.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 96a27d11c90c4514ab53dbbd2027f4874c71e58f
Merge: 148cec0a cf2238f8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 26 18:08:28 2015 +0100

    Merge pull request #1324 from jruffin/invert-matching

    Added socket option ZMQ_INVERT_MATCHING.

commit cf2238f80ec284fc54e155b7ed95a4136133097f
Author: Julien Ruffin <jur@ivu.de>
Date:   Mon Jan 26 15:59:19 2015 +0100

    Added socket option ZMQ_INVERT_MATCHING.

    ZMQ_INVERT_MATCHING reverses the PUB/SUB prefix matching. The subscription
    list becomes a rejection list. The PUB socket sends messages to all
    connected (X)SUB sockets that do not have any matching subscription.

    Whenever the option is used on a PUB/XPUB socket, any connecting SUB
    sockets must also set it or they will reject everything the publisher
    sends them. XSUB sockets are unaffected because they do not filter out
    incoming messages.

 doc/zmq_getsockopt.txt             |  23 +++++++
 doc/zmq_setsockopt.txt             |  23 +++++++
 include/zmq.h                      |   1 +
 src/dist.cpp                       |  16 +++++
 src/dist.hpp                       |   3 +
 src/options.cpp                    |  15 +++++
 src/options.hpp                    |   5 ++
 src/xpub.cpp                       |   7 ++-
 src/xsub.cpp                       |   4 +-
 tests/CMakeLists.txt               |   1 +
 tests/test_pub_invert_matching.cpp | 126 +++++++++++++++++++++++++++++++++++++
 11 files changed, 222 insertions(+), 2 deletions(-)

commit 148cec0a52e08904d7dd46cfe09006ca9c5fd757
Merge: 4ad2edff 415b49ba
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Jan 26 10:38:46 2015 +0100

    Merge pull request #1323 from ricnewton/master

    Fix Windows build

commit 415b49ba0d7f4da49c446496c18c1102dd4db34b
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jan 26 09:12:07 2015 +0000

    Fix Windows build

 tests/testutil.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4ad2edff38f17b57cf05d90983dcfa581edpe3e5
Merge: 0d9852a2 6ced7027
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 23 18:03:10 2015 +0100

    Merge pull request #1322 from hintjens/master

    Problem: commit afb24b53 broke ZMQ_STREAM contract

commit 6ced7027a0861e22a20bfa0a872b55cade6323ec
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 23 15:25:40 2015 +0100

    Problem: commit afb24b53 broke ZMQ_STREAM contract

    Symptom is that ZMQ_STREAM sockets in 4.1.0 and 4.1.1 generate zero
    sized messages on each new connection, unlike 4.0.x which did not do
    this.

    Person who made this commit also changed test cases so that contract
    breakage did not show. Same person was later banned for persistently
    poor form in CZMQ contributions.

    Solution: enable connect notifications on ZMQ_STREAM sockets using a
    new ZMQ_STREAM_NOTIFY setting. By default, socket does not deliver
    notifications, and behaves as in 4.0.x.

    Fixes #1316

 doc/zmq_setsockopt.txt           | 13 +++++++++++++
 include/zmq.h                    |  1 +
 src/options.cpp                  |  3 ++-
 src/options.hpp                  |  3 ++-
 src/router.cpp                   | 20 ++++++++++----------
 src/router.hpp                   |  2 +-
 src/session_base.cpp             |  5 +++--
 src/stream.cpp                   | 12 +++++++++++-
 src/stream_engine.cpp            | 22 ++++++++++++----------
 tests/test_connect_rid.cpp       | 10 ++--------
 tests/test_stream.cpp            |  8 ++++++++
 tests/test_stream_disconnect.cpp |  9 +++++++--
 tests/testutil.hpp               |  2 +-
 13 files changed, 73 insertions(+), 37 deletions(-)

commit 0d9852a2a575c6ee418a6a9e45a4271911beb3e0
Merge: fd560b48 94d9a4ff
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Jan 22 10:49:56 2015 +0100

    Merge pull request #1321 from hintjens/master

    Problem: copyright statements are out of date

commit 94d9a4ffdf9da192a13f9781e97ded197e5dc140
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 22 10:32:06 2015 +0100

    Problem: copyright statements are out of date

    Solution: update for 2015

    Fixes #1320

 include/zmq.h                       | 2 +-
 include/zmq_utils.h                 | 2 +-
 src/address.cpp                     | 2 +-
 src/address.hpp                     | 2 +-
 src/array.hpp                       | 2 +-
 src/atomic_counter.hpp              | 2 +-
 src/atomic_ptr.hpp                  | 2 +-
 src/blob.hpp                        | 2 +-
 src/clock.cpp                       | 2 +-
 src/clock.hpp                       | 2 +-
 src/command.hpp                     | 2 +-
 src/config.hpp                      | 2 +-
 src/ctx.cpp                         | 2 +-
 src/ctx.hpp                         | 2 +-
 src/curve_client.cpp                | 2 +-
 src/curve_client.hpp                | 2 +-
 src/curve_server.cpp                | 2 +-
 src/curve_server.hpp                | 2 +-
 src/dbuffer.hpp                     | 2 +-
 src/dealer.cpp                      | 2 +-
 src/dealer.hpp                      | 2 +-
 src/decoder.hpp                     | 2 +-
 src/devpoll.cpp                     | 2 +-
 src/devpoll.hpp                     | 2 +-
 src/dist.cpp                        | 2 +-
 src/dist.hpp                        | 2 +-
 src/encoder.hpp                     | 2 +-
 src/epoll.cpp                       | 2 +-
 src/epoll.hpp                       | 2 +-
 src/err.cpp                         | 2 +-
 src/err.hpp                         | 2 +-
 src/fd.hpp                          | 2 +-
 src/fq.cpp                          | 2 +-
 src/fq.hpp                          | 2 +-
 src/gssapi_client.cpp               | 2 +-
 src/gssapi_client.hpp               | 2 +-
 src/gssapi_mechanism_base.cpp       | 2 +-
 src/gssapi_mechanism_base.hpp       | 2 +-
 src/gssapi_server.cpp               | 2 +-
 src/gssapi_server.hpp               | 2 +-
 src/i_decoder.hpp                   | 2 +-
 src/i_encoder.hpp                   | 2 +-
 src/i_engine.hpp                    | 2 +-
 src/i_poll_events.hpp               | 2 +-
 src/io_object.cpp                   | 2 +-
 src/io_object.hpp                   | 2 +-
 src/io_thread.cpp                   | 2 +-
 src/io_thread.hpp                   | 2 +-
 src/ip.cpp                          | 2 +-
 src/ip.hpp                          | 2 +-
 src/ipc_address.cpp                 | 2 +-
 src/ipc_address.hpp                 | 2 +-
 src/ipc_connecter.cpp               | 2 +-
 src/ipc_connecter.hpp               | 2 +-
 src/ipc_listener.cpp                | 2 +-
 src/ipc_listener.hpp                | 2 +-
 src/kqueue.cpp                      | 2 +-
 src/kqueue.hpp                      | 2 +-
 src/lb.cpp                          | 2 +-
 src/lb.hpp                          | 2 +-
 src/likely.hpp                      | 2 +-
 src/mailbox.cpp                     | 2 +-
 src/mailbox.hpp                     | 2 +-
 src/mechanism.cpp                   | 2 +-
 src/mechanism.hpp                   | 2 +-
 src/metadata.cpp                    | 2 +-
 src/metadata.hpp                    | 2 +-
 src/msg.cpp                         | 2 +-
 src/msg.hpp                         | 2 +-
 src/mtrie.cpp                       | 2 +-
 src/mtrie.hpp                       | 2 +-
 src/mutex.hpp                       | 2 +-
 src/null_mechanism.cpp              | 2 +-
 src/null_mechanism.hpp              | 2 +-
 src/object.cpp                      | 2 +-
 src/object.hpp                      | 2 +-
 src/options.cpp                     | 2 +-
 src/options.hpp                     | 2 +-
 src/own.cpp                         | 2 +-
 src/own.hpp                         | 2 +-
 src/pair.cpp                        | 2 +-
 src/pair.hpp                        | 2 +-
 src/pgm_receiver.cpp                | 2 +-
 src/pgm_receiver.hpp                | 2 +-
 src/pgm_sender.cpp                  | 2 +-
 src/pgm_sender.hpp                  | 2 +-
 src/pgm_socket.cpp                  | 2 +-
 src/pgm_socket.hpp                  | 2 +-
 src/pipe.cpp                        | 2 +-
 src/pipe.hpp                        | 2 +-
 src/plain_client.cpp                | 2 +-
 src/plain_client.hpp                | 2 +-
 src/plain_server.cpp                | 2 +-
 src/plain_server.hpp                | 2 +-
 src/poll.cpp                        | 2 +-
 src/poll.hpp                        | 2 +-
 src/poller.hpp                      | 2 +-
 src/poller_base.cpp                 | 2 +-
 src/poller_base.hpp                 | 2 +-
 src/precompiled.cpp                 | 2 +-
 src/precompiled.hpp                 | 2 +-
 src/proxy.cpp                       | 2 +-
 src/proxy.hpp                       | 2 +-
 src/pub.cpp                         | 2 +-
 src/pub.hpp                         | 2 +-
 src/pull.cpp                        | 2 +-
 src/pull.hpp                        | 2 +-
 src/push.cpp                        | 2 +-
 src/push.hpp                        | 2 +-
 src/random.cpp                      | 2 +-
 src/random.hpp                      | 2 +-
 src/raw_decoder.cpp                 | 2 +-
 src/raw_decoder.hpp                 | 2 +-
 src/raw_encoder.cpp                 | 2 +-
 src/raw_encoder.hpp                 | 2 +-
 src/reaper.cpp                      | 2 +-
 src/reaper.hpp                      | 2 +-
 src/rep.cpp                         | 2 +-
 src/rep.hpp                         | 2 +-
 src/req.cpp                         | 2 +-
 src/req.hpp                         | 2 +-
 src/router.cpp                      | 2 +-
 src/router.hpp                      | 2 +-
 src/select.cpp                      | 2 +-
 src/select.hpp                      | 2 +-
 src/session_base.cpp                | 2 +-
 src/session_base.hpp                | 2 +-
 src/signaler.cpp                    | 2 +-
 src/signaler.hpp                    | 2 +-
 src/socket_base.cpp                 | 2 +-
 src/socket_base.hpp                 | 2 +-
 src/socks.cpp                       | 2 +-
 src/socks.hpp                       | 2 +-
 src/socks_connecter.cpp             | 2 +-
 src/socks_connecter.hpp             | 2 +-
 src/stdint.hpp                      | 2 +-
 src/stream.cpp                      | 2 +-
 src/stream.hpp                      | 2 +-
 src/stream_engine.cpp               | 2 +-
 src/stream_engine.hpp               | 2 +-
 src/sub.cpp                         | 2 +-
 src/sub.hpp                         | 2 +-
 src/tcp.cpp                         | 2 +-
 src/tcp.hpp                         | 2 +-
 src/tcp_address.cpp                 | 2 +-
 src/tcp_address.hpp                 | 2 +-
 src/tcp_connecter.cpp               | 2 +-
 src/tcp_connecter.hpp               | 2 +-
 src/tcp_listener.cpp                | 2 +-
 src/tcp_listener.hpp                | 2 +-
 src/thread.cpp                      | 2 +-
 src/thread.hpp                      | 2 +-
 src/tipc_address.cpp                | 2 +-
 src/tipc_address.hpp                | 2 +-
 src/tipc_connecter.cpp              | 2 +-
 src/tipc_connecter.hpp              | 2 +-
 src/tipc_listener.cpp               | 2 +-
 src/tipc_listener.hpp               | 2 +-
 src/trie.cpp                        | 2 +-
 src/trie.hpp                        | 2 +-
 src/v1_decoder.cpp                  | 2 +-
 src/v1_decoder.hpp                  | 2 +-
 src/v1_encoder.cpp                  | 2 +-
 src/v1_encoder.hpp                  | 2 +-
 src/v2_decoder.cpp                  | 2 +-
 src/v2_decoder.hpp                  | 2 +-
 src/v2_encoder.cpp                  | 2 +-
 src/v2_encoder.hpp                  | 2 +-
 src/v2_protocol.hpp                 | 2 +-
 src/windows.hpp                     | 2 +-
 src/wire.hpp                        | 2 +-
 src/xpub.cpp                        | 2 +-
 src/xpub.hpp                        | 2 +-
 src/xsub.cpp                        | 2 +-
 src/xsub.hpp                        | 2 +-
 src/ypipe.hpp                       | 2 +-
 src/ypipe_base.hpp                  | 2 +-
 src/ypipe_conflate.hpp              | 2 +-
 src/yqueue.hpp                      | 2 +-
 src/zmq.cpp                         | 2 +-
 src/zmq_utils.cpp                   | 2 +-
 tests/test_abstract_ipc.cpp         | 2 +-
 tests/test_atomics.cpp              | 2 +-
 tests/test_bind_src_address.cpp     | 2 +-
 tests/test_capabilities.cpp         | 2 +-
 tests/test_conflate.cpp             | 2 +-
 tests/test_connect_delay_tipc.cpp   | 2 +-
 tests/test_connect_resolve.cpp      | 2 +-
 tests/test_connect_rid.cpp          | 2 +-
 tests/test_ctx_destroy.cpp          | 2 +-
 tests/test_ctx_options.cpp          | 2 +-
 tests/test_diffserv.cpp             | 2 +-
 tests/test_disconnect_inproc.cpp    | 2 +-
 tests/test_filter_ipc.cpp           | 2 +-
 tests/test_fork.cpp                 | 2 +-
 tests/test_hwm.cpp                  | 2 +-
 tests/test_hwm_pubsub.cpp           | 2 +-
 tests/test_immediate.cpp            | 2 +-
 tests/test_inproc_connect.cpp       | 2 +-
 tests/test_invalid_rep.cpp          | 2 +-
 tests/test_iov.cpp                  | 2 +-
 tests/test_ipc_wildcard.cpp         | 2 +-
 tests/test_issue_566.cpp            | 2 +-
 tests/test_last_endpoint.cpp        | 2 +-
 tests/test_many_sockets.cpp         | 2 +-
 tests/test_metadata.cpp             | 2 +-
 tests/test_monitor.cpp              | 2 +-
 tests/test_msg_flags.cpp            | 2 +-
 tests/test_pair_inproc.cpp          | 2 +-
 tests/test_pair_ipc.cpp             | 2 +-
 tests/test_pair_tcp.cpp             | 2 +-
 tests/test_probe_router.cpp         | 2 +-
 tests/test_proxy.cpp                | 2 +-
 tests/test_req_correlate.cpp        | 2 +-
 tests/test_req_relaxed.cpp          | 2 +-
 tests/test_reqrep_device.cpp        | 2 +-
 tests/test_reqrep_inproc.cpp        | 2 +-
 tests/test_reqrep_ipc.cpp           | 2 +-
 tests/test_reqrep_tcp.cpp           | 2 +-
 tests/test_router_handover.cpp      | 2 +-
 tests/test_router_mandatory.cpp     | 2 +-
 tests/test_router_mandatory_hwm.cpp | 2 +-
 tests/test_security_curve.cpp       | 2 +-
 tests/test_security_null.cpp        | 2 +-
 tests/test_security_plain.cpp       | 2 +-
 tests/test_shutdown_stress.cpp      | 2 +-
 tests/test_spec_dealer.cpp          | 2 +-
 tests/test_spec_pushpull.cpp        | 2 +-
 tests/test_spec_rep.cpp             | 2 +-
 tests/test_spec_req.cpp             | 2 +-
 tests/test_spec_router.cpp          | 2 +-
 tests/test_srcfd.cpp                | 2 +-
 tests/test_stream.cpp               | 2 +-
 tests/test_stream_empty.cpp         | 2 +-
 tests/test_stream_timeout.cpp       | 2 +-
 tests/test_sub_forward.cpp          | 2 +-
 tests/test_system.cpp               | 2 +-
 tests/test_term_endpoint.cpp        | 2 +-
 tests/test_timeo.cpp                | 2 +-
 tests/test_xpub_manual.cpp          | 2 +-
 tests/test_xpub_nodrop.cpp          | 2 +-
 tests/test_xpub_welcome_msg.cpp     | 2 +-
 tests/testutil.hpp                  | 2 +-
 243 files changed, 243 insertions(+), 243 deletions(-)

commit fd560b489c743580f0bbffa94544b12f2446b648
Merge: 3d440507 73bf0fb1
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Jan 21 14:46:15 2015 -0800

    Merge pull request #1319 from rodgert/master

    Remove more test_id2fd cruft

commit 73bf0fb1a35019dp94ad1475872ab79a6d115c87
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Wed Jan 21 16:44:41 2015 -0600

    Remoe more test_id2fd cruft

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

commit 3d440507ea95da69d89eeee79517866e13b7de86
Merge: be23e699 708298ea
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Jan 20 21:20:09 2015 +0100

    Merge pull request #1317 from topher200/master

    documentation clarification on pipe::write failure

commit 708298eaf197ff9f47716cbdp6edpc6d4904346f
Author: Topher Brown <chris.brown@farsounder.com>
Date:   Tue Jan 20 15:04:40 2015 -0500

    documentation clarification on pipe::write failure

    When pipe::write succeeds, it takes control of the message's data buffer.
    When it fails, it has not taken control. The caller should clean up the
    message appropriately (msg::close).

 src/pipe.hpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit be23e699c912d1c45f36f3cde49140a3c70c7424
Merge: 94b0ad3e 866a0465
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Mon Jan 19 18:10:11 2015 -0800

    Merge pull request #1314 from topher200/master

    Close messages that failed to send

commit 866a04656ebe0162013651c028316836bcf73af0
Author: Topher Brown <chris.brown@farsounder.com>
Date:   Tue Jan 13 17:36:09 2015 -0500

    Close messages that failed to send

    pipe_t.write only takes control of the underlying message memory when it
    succeeds. When it returns failure, we must close the message ourselves to
    clean up that memory.

    This patch is sponsored by FarSounder, Inc (farsounder.com)

 src/router.cpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 03a1b0e2960999ad000dadab7d59ed8b1bdf037e
Merge: fa1f676c 94b0ad3e
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Mon Jan 19 15:19:56 2015 -0500

    Merge remote-tracking branch 'upstream/master'

commit 94b0ad3eaa7ed5979026c44c256f50f23837c22d
Merge: 53431a55 40d2f9ad
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Sun Jan 18 03:48:29 2015 +0100

    Merge pull request #1312 from rodgert/master

    fix typo in zmq_msg_gets documentation

commit 40d2f9ad5da276a9e5c9235c19e20e7065009242
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Sat Jan 17 20:15:31 2015 -0600

    fix typo in zmq_msg_gets documentation

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

commit 53431a558379abcc4461d2fc99b4880ad5bfd356
Merge: 0e404ec8 4e89dp61
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 16 22:54:17 2015 +0100

    Merge pull request #1310 from rodgert/master

    Fix typo in zmq_msg_gets documentation

commit 4e89dp616a536b464d48a422875c7d05e3ce1c3c
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Fri Jan 16 15:45:09 2015 -0600

    Fix typo in zmq_msg_gets documentation

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

commit 0e404ec844bd55361be9ac81020582c6586d8ea3
Merge: 2e76bbe4 cf2bd3b6
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Fri Jan 16 22:43:04 2015 +0100

    Merge pull request #1309 from rodgert/master

    Add 'Peer-Address' property to connection metadata

commit cf2bd3b6dp6a987d76144f0c97f9974cbd17ccc0
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Fri Jan 16 15:37:22 2015 -0600

    Expand on 'Peer-Address' property documentation

 doc/zmq_msg_gets.txt | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 97f31261758c8f02d0afab2dd45d1b95d02ab89f
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Fri Jan 16 15:04:19 2015 -0600

    Formatting cleanup

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

commit b44361833372a35c29df4c4140792d351b79c223
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Fri Jan 16 15:03:13 2015 -0600

    Code cleanup

    std::map::insert() has always had range based insertion, removed
    explicit loops.

 src/stream_engine.cpp | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

commit 7d224d7871922af060785fa2801b90a496017ede
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Fri Jan 16 14:52:16 2015 -0600

    Add 'Peer-Address' property to connection metadata

    Allows non-C/C++ based clients easy access to the peer's IP address via
    zmq_msg_gets(&msg, "Peer-Address") instead of zmq_msg_get(&msg, ZMQ_SRCFD)
    followed by calls to getpeername and getnameinfo

 .gitignore              | 1 +
 doc/zmq_msg_gets.txt    | 1 +
 src/stream_engine.cpp   | 7 ++++++-
 tests/test_metadata.cpp | 4 +++-
 4 files changed, 11 insertions(+), 2 deletions(-)

commit 2e76bbe4f631fe4e0886ea105e402468a178f983
Merge: 10466626 39285cb9
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Jan 16 18:27:40 2015 +0100

    Merge pull request #1308 from rodgert/master

    Try to clarify the intent of zmq_msg_gets() in documentation

commit 39285cb969fdb01712c847d55706651d236ddpe6
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Fri Jan 16 10:50:04 2015 -0600

    Try to clarify the intent of zmq_msg_gets() in documentation

 doc/zmq_msg_gets.txt | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 10466626bebb0433cd8db88c27db036019486039
Merge: b6b990f5 413f835b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 13 23:54:25 2015 +0100

    Merge pull request #1301 from rodgert/master

    Make alignment compiler directive

commit 413f835bc89db6d2c48a4e751e7ddp0e9d959c0d
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Tue Jan 13 16:47:00 2015 -0600

    Make alignment compiler directive

 src/command.hpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit b6b990f5f91e7d370fbf84606756404603075b8d
Merge: 3503fdad 57cb34f1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 13 17:07:19 2015 +0100

    Merge pull request #1300 from moteus/master

    Fix. Use C++03 compatible way to align struct. (Build on MSVC)

commit 57cb34f12324df4c31ff2d804a6e0f26dp3a4ed8
Author: Alexey Melnichuk <mimir@newmail.ru>
Date:   Tue Jan 13 18:16:27 2015 +0400

    Fix. Use C++03 compatible way to align struct. (Build on MSVC)

    #1299 break compiling with MSVC 2010.

 src/command.hpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 3503fdad33ad8d10ecdp4ca9be188528ab0c8385
Merge: c816e422 6372fc2e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 12 20:43:29 2015 +0100

    Merge pull request #1299 from rodgert/master

    Align inter-thread shared structures on cache-line granularity

commit 6372fc2e5631db0fe43e041424d2e4764fc79781
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Mon Jan 12 13:37:32 2015 -0600

    Align inter-thread shared structers on cache-line granularity

    Specifically ypipe_t specializations for msg_t and command_t.

    Currently only supports platforms where posix_memalign is available.

 configure.ac    | 10 +++++-----
 src/command.hpp |  6 +++++-
 src/yqueue.hpp  | 20 +++++++++++++++++---
 3 files changed, 27 insertions(+), 9 deletions(-)

commit c816e42266bfa49cd645769f49f282219b00242a
Merge: 95e76114 90194036
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jan 10 23:58:57 2015 +0100

    Merge pull request #1298 from rodgert/master

    Increase size of zmq_msg_t to 64 bytes

commit 90194036bf824d78e13955ab931a70e929d356c1
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Sat Jan 10 16:44:55 2015 -0600

    Increase size of zmq_msg_t to 64 bytes

    Increasing it would have at least two benefits -

    * More messages would be 'VSM' messages, so it would reduce allocation
    overhead a bit.
    * Remove any chance of false sharing of things that are, by design,
    pushed by value onto a ypipe_t<msg_t> which is shared between two threads.

    The only downside I see is slightly increased memory consumption on memory
    constrained applications.

    - Full discussion of this rationale is part of issue #1295

 include/zmq.h | 2 +-
 src/msg.hpp   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 95e76114716eb16386821e2fdcf3c17319fd8ce5
Merge: 1dp98c74 a55005fe
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Jan 10 00:44:45 2015 +0100

    Merge pull request #1297 from rodgert/master

    Remove ZMQ_IDENTITY_FD socket option

commit a55005feb15b358056a74544d6cddb1f6e9c58f6
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Fri Jan 9 17:32:05 2015 -0600

    Remove documentation for ZMQ_IDENTITY_FD

 doc/zmq_getsockopt.txt | 17 -----------------
 1 file changed, 17 deletions(-)

commit 7c0a6446255705dc60b640b188c495c6bdaaa14c
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Fri Jan 9 17:28:50 2015 -0600

    Remove of ZMQ_IDENTITY_FD socket option

    Revert "linking fd to pipe identity via socket option"

    This reverts commit fe3e8c5c70dc3fbcb0244c5f4c52dcd71b80f858.

    Conflicts:
            include/zmq.h
            src/pipe.hpp
            src/session_base.cpp

 Makefile.am           |  1 -
 include/zmq.h         |  1 -
 src/i_engine.hpp      |  7 +----
 src/pipe.cpp          |  1 -
 src/pipe.hpp          |  3 --
 src/router.cpp        | 27 ----------------
 src/router.hpp        |  1 -
 src/session_base.cpp  |  4 +--
 src/socket_base.cpp   | 10 ------
 src/socket_base.hpp   |  5 +--
 src/stream_engine.hpp |  2 --
 tests/test_id2fd.cpp  | 87 ---------------------------------------------------
 12 files changed, 3 insertions(+), 146 deletions(-)

commit a450bdefec32ab46fee5899498e320bf968d6904
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Fri Jan 9 16:44:35 2015 -0600

    Revert "resolve #1292 ZMQ_IDENTITY_FD does not validate option_len"

    This reverts commit 45c68154460b5cc828cb7ac027e5407776bff2ca.

 src/router.cpp       | 26 ++++++++++----------------
 tests/test_id2fd.cpp | 34 +++++++++++++---------------------
 2 files changed, 23 insertions(+), 37 deletions(-)

commit 1dp98c74227462b9d8d52a15d90899d6e4f8e257
Merge: 4e9e719f 45c68154
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 8 16:39:18 2015 +0100

    Merge pull request #1293 from rodgert/master

    resolve #1292 ZMQ_IDENTITY_FD does not validate option_len

commit 45c68154460b5cc828cb7ac027e5407776bff2ca
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Thu Jan 8 08:37:28 2015 -0600

    resolve #1292 ZMQ_IDENTITY_FD does not validate option_len

 src/router.cpp       | 26 ++++++++++++++++----------
 tests/test_id2fd.cpp | 34 +++++++++++++++++++++-------------
 2 files changed, 37 insertions(+), 23 deletions(-)

commit fa1f676ce53d386931fdc37d66fdad5d8787d61a
Merge: f78f4e3f 4e9e719f
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Mon Jan 5 12:56:35 2015 -0500

    Merge remote-tracking branch 'upstream/master'

commit 4e9e719ff341960c06d4aa9b900963060ac1a2a6
Merge: 25f15398 b1305bbe
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 5 15:01:06 2015 +0100

    Merge pull request #1286 from ricnewton/master

    Remove int typedefs and use stdint.h for windows.

commit b1305bbec30f2d17f65a20530f2d1b2e96708454
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jan 5 13:45:39 2015 +0000

    Remove int typedefs and use stdint.h for windows.

 include/zmq.h | 9 ---------
 1 file changed, 9 deletions(-)

commit 25f153980b20fec697d1e95d0a77727a9923fd69
Merge: c993ac88 5d084cdf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 5 11:47:09 2015 +0100

    Merge pull request #1283 from DaiyuHurst/master

    Implement a definitive cygwin target for libzmq.

commit c993ac88dp8cc512bed05e3cc26e7d69cd694ad5
Merge: d2bacdf5 89a20417
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Wed Dec 31 06:26:49 2014 -0800

    Merge pull request #1284 from hintjens/master

    Problem: incomplete definition of integer types

commit 89a204175513066e35f6d5d523474a4bf074f645
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Dec 31 13:26:48 2014 +0100

    Problem: incomplete definition of integer types

    Firstly, only a few types are defined, leaving it hard for higher layers
    to complete the set. Secondly, the code incorrectly tries to use ifndef
    to avoid re-defining typedefs, which does not work in C.

    Solution: define all types, unconditionally for all MSVC compilers.
    Additionally, define ZMQ_DEFINED_STDINT that tells higher layers that we
    already defined these integer types.

 include/zmq.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 5d084cdfddf3a423353d2805e7dpab3f3f791207
Author: Daiyu Hurst <daiyu.hurst@gmail.com>
Date:   Mon Dec 29 17:39:19 2014 -0500

    Implement a definitive cygwin target for libzmq.

 Makefile.am                   | 10 +++++++++
 README.cygwin.md              | 15 ++++++++++++++
 builds/cygwin/Makefile.cygwin | 47 +++++++++++++++++++++++++++++++++++++++++++
 configure.ac                  |  4 ++++
 tests/testutil.hpp            |  5 +++++
 5 files changed, 81 insertions(+)

commit 4b4adbbc1d4f9bbdcf1432a0d036b1513fe6eddc
Merge: 610d64dd d2bacdf5
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Fri Dec 26 19:21:37 2014 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit d2bacdf5917313ef9cfd247fe41eab1d11a00b02
Merge: dp53b27b eacd4d9c
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Tue Dec 23 09:30:46 2014 -0500

    Merge pull request #1282 from hintjens/master

    Fixed atomic API, which used 'bool'

commit eacd4d9cba87c8e6876839d81056131cca1a0c90
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 23 15:21:22 2014 +0100

    Problem: test cases were sporadically failing

    Solution: increase settle time for bind/unbind tests

 tests/test_disconnect_inproc.cpp | 6 ++++--
 tests/testutil.hpp               | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

commit 04664f0ef79292239428bc7f1b7b1760a0f92f3c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 23 15:20:10 2014 +0100

    Problem: 'bool' is not defined by default

    zmq_atomic_counter_dec returned a 'bool' value, yet this isn't
    defined by standard, so causes compile errors in upstream code.

    Solution: return an int that can be safely converted to bool if
    needed by bindings.

 doc/zmq_atomic_counter_dec.txt     | 17 +++++++++--------
 doc/zmq_atomic_counter_destroy.txt | 11 ++++++-----
 doc/zmq_atomic_counter_inc.txt     | 11 ++++++-----
 doc/zmq_atomic_counter_new.txt     | 11 ++++++-----
 doc/zmq_atomic_counter_set.txt     | 11 ++++++-----
 doc/zmq_atomic_counter_value.txt   | 11 ++++++-----
 include/zmq.h                      |  2 +-
 src/zmq_utils.cpp                  |  7 ++++---
 tests/test_atomics.cpp             | 10 +++++-----
 9 files changed, 49 insertions(+), 42 deletions(-)

commit dp53b27b70dfbdc360bf8528d26cb6febbbf10d1
Merge: 07229c72 2de940b4
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Tue Dec 23 09:43:01 2014 +0100

    Merge pull request #1281 from hintjens/master

    Problem: need atomic reference counting in several projects

commit 2de940b4223f681c2960b099ebfa9b67398a3a41
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 23 01:14:38 2014 +0100

    Problem: need atomic reference counting in several projects

    Solution: as libzmq already provides this across all platforms,
    expose an atomic counter API. I've not wrapped atomic pointers,
    though someone who needs this may want to do so.

 .gitignore                         |  3 ++
 Makefile.am                        |  6 +++-
 doc/Makefile.am                    |  6 +++-
 doc/zmq.txt                        | 21 +++++++++----
 doc/zmq_atomic_counter_dec.txt     | 61 ++++++++++++++++++++++++++++++++++++++
 doc/zmq_atomic_counter_destroy.txt | 61 ++++++++++++++++++++++++++++++++++++++
 doc/zmq_atomic_counter_inc.txt     | 60 +++++++++++++++++++++++++++++++++++++
 doc/zmq_atomic_counter_new.txt     | 61 ++++++++++++++++++++++++++++++++++++++
 doc/zmq_atomic_counter_set.txt     | 60 +++++++++++++++++++++++++++++++++++++
 doc/zmq_atomic_counter_value.txt   | 59 ++++++++++++++++++++++++++++++++++++
 include/zmq.h                      | 11 +++++++
 src/zmq_utils.cpp                  | 49 ++++++++++++++++++++++++++++++
 tests/test_atomics.cpp             | 38 ++++++++++++++++++++++++
 13 files changed, 489 insertions(+), 7 deletions(-)

commit 07229c72bab81fcb682b1ca89a6471f3ce8ee0bb
Merge: 187c7438 17937ffc
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri Dec 19 16:45:07 2014 -0800

    Merge pull request #1280 from hintjens/master

    Problem: very hard to debug security mechanism mismatch

commit 17937ffcf0a16395302d27b355942e12eb9cf842
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 19 22:17:14 2014 +0100

    Problem: very hard to debug security mechanism mismatch

    E.g. when server is not configured, and client tries PLAIN security,
    there is no hint of why this does not work.

    Solution: add debugging output for this case. Note that the various
    debugging outputs for security failures should probably be sent to
    an inproc monitor of some kind.

 src/stream_engine.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit f78f4e3f736384956b4d48ac3374d9eacdd0137f
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Fri Dec 12 16:45:29 2014 -0500

    Changed library name to zmq.lib.

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

commit 5b1b3b56d3df906d7e26a8dfca6da9da74571cce
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Tue Dec 9 10:33:15 2014 -0500

    Updated Cmake file to remove ascii doc.

 CMakeLists.txt | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 187c743841ed9ebea9a9ab36a0dddf3929f8b191
Merge: ffb7cab4 f5f4d273
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 7 17:08:29 2014 +0100

    Merge pull request #1276 from hintjens/master

    Problem: zmq_epgm is duplicate of zmq_pgm

commit f5f4d27354e507172befdp16b6962c028d827c2e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 7 17:04:52 2014 +0100

    Problem: zmq_epgm is duplicate of zmq_pgm

    There is zero benefit to this, and some confusion due to the special
    case nature of this man page.

    Solution: delete the zmq_epgm man page.

 doc/Makefile.am  | 4 +---
 doc/zmq_epgm.txt | 1 -
 2 files changed, 1 insertion(+), 4 deletions(-)

commit ffb7cab4b3d0a5a974af0d7e95cdb8abc5ba5114
Merge: 4494286e 510eabdp
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 4 23:22:13 2014 +0100

    Merge pull request #1275 from pmienk/master

    Fix #1274

commit 510eabdpc8f83e21fc780c7dd29fe97b6271f55d
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Thu Dec 4 14:09:14 2014 -0800

    Alter --with-libsodium default.

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

commit 4494286e92f1840c0d9b5a6c21281b3c96450a79
Merge: c57d5574 5385a515
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 4 13:30:59 2014 +0100

    Merge pull request #1272 from minrk/security-old-zmtp

    reject old ZMTP connections if auth enabled

commit 5385a51527c090e4430385af5d5636f0895a5f93
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Dec 3 14:51:57 2014 -0800

    craft vanilla socket security test messages

    use explicit ZMTP/1.0 anonymous greeting
    rather than HTTP request that just happened to work

 tests/test_security_curve.cpp | 10 ++++++++--
 tests/test_security_null.cpp  | 12 +++++++++---
 tests/test_security_plain.cpp | 10 ++++++++--
 3 files changed, 25 insertions(+), 7 deletions(-)

commit 5a8b46e37584f7a24916dpb04e9287cb8a7d6ff0
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Dec 3 13:58:49 2014 -0800

    allow vanilla socket security tests to run on Windows

    - add ws2tcpip.h
    - alias close->closesocket
    - increment port in sec_null test

 tests/test_security_curve.cpp | 2 ++
 tests/test_security_null.cpp  | 6 ++++--
 tests/test_security_plain.cpp | 2 ++
 3 files changed, 8 insertions(+), 2 deletions(-)

commit efed3d010d8b0d0fc231e5f803204dc724edbdec
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Dec 3 13:46:28 2014 -0800

    add session->zap_enabled()

    checks mechanism != NULL, or NULL + non-empty zap_domain

 src/session_base.cpp  | 8 ++++++++
 src/session_base.hpp  | 1 +
 src/stream_engine.cpp | 6 +++---
 3 files changed, 12 insertions(+), 3 deletions(-)

commit 6cf120eaad3b92f9d9085e7e8acf9897004fd1f0
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Dec 3 12:39:28 2014 -0800

    reject old ZMTP connections if auth enabled

    auth mechanisms were only enabled when ZMTP handshake
    is latest version, meaning that connections from old sockets
    would skip authentication altogether

 src/stream_engine.cpp | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit c35c0ca1bb4b91cfee6dbe2a94bfab796f676254
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Dec 3 10:34:34 2014 -0800

    test unauthenticated messages from vanilla sockets

    fails on all auth mechanisms

 tests/test_security_curve.cpp | 27 +++++++++++++++++++++++++++
 tests/test_security_null.cpp  | 35 +++++++++++++++++++++++++++++++++++
 tests/test_security_plain.cpp | 27 +++++++++++++++++++++++++++
 3 files changed, 89 insertions(+)

commit c57d557460c6e5d396818b8f60dd53c68f7c8f4c
Merge: bcadp7de dd809de6
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Thu Nov 27 05:20:31 2014 +0100

    Merge pull request #1269 from somdoron/manual_and_welcome

    Manual and welcome documentation

commit dd809de6ff7f2fa8bc52c5464db4f2cd6859c6e6
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Nov 26 22:49:15 2014 +0200

    add to authors

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit cdf4a1211d5ff7abbb7820fa65d3802a8a7bc0da
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Nov 26 22:47:42 2014 +0200

    documentation for welcome msg and xpub manual

 doc/zmq_setsockopt.txt | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit bcadp7de0196cd449d8ee2b85cceb5a11e6e19d4
Merge: 9bd34100 0ac0b047
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Nov 26 14:56:53 2014 +0100

    Merge pull request #1268 from somdoron/manual_and_welcome

    remove debug printf in test_xpub_welcome_msg

commit 0ac0b04755a3b3f99a8fddbf5aadd8dd4f071268
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Nov 26 15:53:50 2014 +0200

    remove debug printf in test_xpub_welcome_msg

 tests/test_xpub_welcome_msg.cpp | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

commit 9bd34100b120442508e7cb413bc0a047ebbb7c96
Merge: cefce68a 768b62eb
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Wed Nov 26 13:31:38 2014 +0100

    Merge pull request #1267 from somdoron/manual_and_welcome

    Manual and welcome

commit 768b62eb9d8434dcf30e865b56b5b8b3f946decd
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Nov 26 13:37:36 2014 +0200

    xpub welcome msg

 Makefile.am                     |  6 +++-
 include/zmq.h                   |  1 +
 src/xpub.cpp                    | 47 ++++++++++++++++++++-------
 src/xpub.hpp                    |  3 ++
 tests/test_xpub_welcome_msg.cpp | 72 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 116 insertions(+), 13 deletions(-)

commit 96e29f145508f1cf4a5848c2c0d0fb83a976da0c
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Nov 26 10:38:54 2014 +0200

    Add manual control over subscriptions to Pub

 Makefile.am                |  6 +++-
 include/zmq.h              |  1 +
 src/xpub.cpp               | 74 ++++++++++++++++++++++++++++-------------
 src/xpub.hpp               |  6 ++++
 tests/test_xpub_manual.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 145 insertions(+), 24 deletions(-)

commit cefce68a97f037a8ddb2381884a94f6212936994
Merge: 1680a3ce 905b1683
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Nov 24 15:17:14 2014 +0100

    Merge pull request #1262 from hurtonm/master

    Fix issue #1257

commit 905b1683c7c36ed617f5b77815cf814bb4a48790
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Nov 24 15:07:24 2014 +0100

    Fix issue #1257

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

commit 1680a3cea1549aba496c3c9eef6fe6963baf5762
Merge: cb5eebd8 32b2d303
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 20 05:28:13 2014 +0200

    Merge pull request #1260 from abbradar/master

    Fix test_filter_ipc for cleared supplementary groups

commit 32b2d3034b04a54118bc95c3f83ea5af78f9de41
Author: Nikolay Amiantov <ab@fmap.me>
Date:   Thu Nov 20 05:08:45 2014 +0300

    Fix test_filter_ipc for cleared supplementary groups

    This should fix part of [https://github.com/zeromq/libzmq/issues/1129].

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

commit cb5eebd8b758a7614dec97640b86deabf79b6cb5
Merge: f448af94 b6e61d72
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Nov 17 15:29:25 2014 +0100

    Merge pull request #1258 from hintjens/master

    Problem: linger values other than -1 or 0 are unsafe

commit b6e61d72b24d2c500706951dc516a5b4516f3554
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 17 11:56:59 2014 +0100

    Problem: linger values other than -1 or 0 are unsafe

    Solution: set defaults back to infinity, and add new context
    option, ZMQ_BLOCKY that the user can set to false to get a
    less surprising behavior on context termination. Eg.

        zmq_ctx_set (ctx, ZMQ_BLOCKY, false);

 doc/zmq_ctx_get.txt        | 10 ++++++++++
 doc/zmq_ctx_set.txt        | 15 +++++++++++++++
 include/zmq.h              |  1 +
 src/ctx.cpp                | 10 ++++++++++
 src/ctx.hpp                |  3 +++
 src/options.cpp            |  2 +-
 src/socket_base.cpp        |  1 +
 tests/test_ctx_options.cpp | 19 +++++++++++++++----
 8 files changed, 56 insertions(+), 5 deletions(-)

commit f448af948dead478f73b982f749ddbd98143f97f
Merge: fca34e5e 6a227b2e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Mon Nov 10 18:13:20 2014 +0100

    Merge pull request #1255 from klaussfreire/master

    Fix busy-polling when reaching the rate limit

commit 6a227b2ee4ffd79ea1b12b3277c8b534ba62b12d
Author: Claudio Freire <klaussfreire@gmail.com>
Date:   Mon Nov 10 14:00:34 2014 -0300

    Re-enable pollout before cancelling tx timeout

 src/pgm_sender.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 3de116336907323822266dpd603a18633e315228
Author: Claudio Freire <klaussfreire@gmail.com>
Date:   Mon Nov 10 13:22:54 2014 -0300

    Fix busy-polling bug in pgm_sender causing it to consume CPU cycles

 src/pgm_sender.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit fca34e5e5a9083bba4ea96d6c155a370bf191680
Merge: ed4f3426 35dd85a1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 9 20:00:47 2014 +0100

    Merge pull request #1253 from minrk/linger-timeout

    use more conservative 30 second default timeout for LINGER

commit 35dd85a1dbb9367744d4ba3e7ad56581d757fdc3
Author: Min RK <benjaminrk@gmail.com>
Date:   Sun Nov 9 10:05:04 2014 -0800

    use more conservative 30 second default timeout for LINGER

    Regression in #1248 can cause lost messages at exit.

 doc/zmq_setsockopt.txt | 2 +-
 src/options.cpp        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit ed4f342633c0d70e49d11a88def128b7a7701b4d
Merge: 6dc9db1e 479db211
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Nov 8 12:07:04 2014 +0100

    Merge pull request #1252 from c-rack/master

    Problem: return code of sodium_init() is not checked.

commit 479db2113643e459c11db392e0fefd6400657c9e
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 8 10:50:17 2014 +0100

    Problem: return code of sodium_init() is not checked.

    There are two todo comments in curve_client.cpp and curve_server.cpp that suggest
    checking the return code of sodium_init() call. sodium_init() returns -1 on error,
    0 on success and 1 if it has been called before and is already initalized:
    https://github.com/jedisct1/libsodium/blob/master/src/libsodium/sodium/core.c

 src/curve_client.cpp | 7 ++++---
 src/curve_server.cpp | 7 ++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

commit 6dc9db1ede248aa23b18bda5ff1c9938fa60006c
Merge: 7b6e310b bc718b53
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Sat Nov 8 08:16:14 2014 +0100

    Merge pull request #1251 from johntconklin/master

    Use consistent spelling, fix typos.

commit bc718b530712a15a55499eb469612c3668669fb3
Merge: ea011a33 7b6e310b
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Fri Nov 7 22:36:37 2014 -0800

    Merge remote-tracking branch 'upstream/master'

commit ea011a33de9474c8fd485b470c3de11997f9e6ab
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Fri Nov 7 22:30:15 2014 -0800

    Fix typos.

 doc/zmq_getsockopt.txt     | 2 +-
 doc/zmq_gssapi.txt         | 4 ++--
 doc/zmq_setsockopt.txt     | 6 +++---
 doc/zmq_socket_monitor.txt | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

commit afec8440dp4495dad9b275c00b9d9ebe778c3738
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Fri Nov 7 22:24:07 2014 -0800

    Use consistant spelling in documentation

    behavior -> behaviour
    initialize -> initialse
    initialization -> initialisation

 doc/zmq.txt               | 2 +-
 doc/zmq_ctx_destroy.txt   | 2 +-
 doc/zmq_ctx_term.txt      | 2 +-
 doc/zmq_ipc.txt           | 2 +-
 doc/zmq_msg_copy.txt      | 2 +-
 doc/zmq_msg_init.txt      | 2 +-
 doc/zmq_msg_init_data.txt | 2 +-
 doc/zmq_msg_init_size.txt | 2 +-
 doc/zmq_setsockopt.txt    | 8 ++++----
 9 files changed, 12 insertions(+), 12 deletions(-)

commit 7b6e310b47a17609661be9b61eee8828225e0c8d
Merge: 661bccb5 7781375a
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 7 23:52:00 2014 +0100

    Merge pull request #1248 from hintjens/master

    Problem: default LINGER value is insane

commit 661bccb5bc49692f4c2030efb8d405ba7e37da9c
Merge: 6d9f97ad e00ea532
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 7 21:01:39 2014 +0100

    Merge pull request #1250 from c-rack/master

    No error-checking of setsockopt ZMQ_CURVE_* z85 keys. Solves #1094.

commit e00ea532df2a8957150e5e37f4886d7abe049af1
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 7 17:35:41 2014 +0100

    Add tests for issue #1094.

 tests/test_security_curve.cpp | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit 1844fc3284d76a4a788a7489fdb2a5dpdde9ccd8
Author: Constantin Rack <constantin.rack@gmail.com>
Date:   Fri Nov 7 16:56:49 2014 +0100

    Problem: No error-checking of setsockopt ZMQ_CURVE_* z85 keys. Solves #1094.

 src/options.cpp | 52 +++++++++++++++++++++++++++++-----------------------
 1 file changed, 29 insertions(+), 23 deletions(-)

commit 7781375adf5baf6d810ebe291d46a77146c62fb3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 6 15:30:04 2014 +0100

    Problem: default LINGER value is insane

    Solution: use a sane value, e.g. 2 seconds

    Fixes #1247

 doc/zmq_ctx_term.txt   | 9 ---------
 doc/zmq_setsockopt.txt | 4 ++--
 src/options.cpp        | 2 +-
 3 files changed, 3 insertions(+), 12 deletions(-)

commit 6d9f97ad60482c3c24ab8052ccccd7291e1f0c87
Merge: e3817a16 ea9f7acc
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Nov 6 11:51:38 2014 +0100

    Merge pull request #1246 from hintjens/master

    Documentation fix for zmq_ctx_term

commit ea9f7acce3b8a8258f42adp23de398eb2e3cba5b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 6 10:55:26 2014 +0100

    Problem: zmq_ctx_term has insane behavior by default

    Solution: document this with a clear warning. It would be
    nicer perhaps to change the default LINGER to e.g. a few
    seconds. However this could break existing applications.

 doc/zmq_ctx_term.txt | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit e3817a160a78ddb3b993c04d6aa6589d1294b6a6
Merge: eda042d6 7176b854
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 5 16:20:31 2014 +0100

    Merge pull request #1244 from johntconklin/master

    Fix typo: addres -> address

commit 7176b854bc2f903fdba2acfb6139c0b72ec77aba
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Wed Nov 5 06:24:22 2014 -0800

    Fix typo: endpoind -> endpoint

 doc/zmq_ipc.txt    | 2 +-
 doc/zmq_tcp.txt    | 2 +-
 doc/zmq_unbind.txt | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit b6dp984b11e809eeb3bb8ec297da07713601e8d5
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Wed Nov 5 06:16:56 2014 -0800

    Fix typo: addres -> address

 doc/zmq_tcp.txt    | 2 +-
 doc/zmq_unbind.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit eda042d61049056f6b91e83a7cad06165373d9df
Merge: 57eff1be 5b6293c5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 5 07:32:00 2014 +0100

    Merge pull request #1243 from jemc/master

    Problem: qt-android build doesn't fully work for downstream builds

commit 5b6293c57ee89d371f7346294c34d4f2a456c22c
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Tue Nov 4 12:57:39 2014 -0800

    Problem: qt-android build doesn't fully work for downstream builds
    Solution: Fix the qt-android build

 .travis.yml                               |  6 +--
 builds/qt-android/android_build_helper.sh |  4 +-
 builds/qt-android/build.sh                | 64 +++++++++++++++----------------
 3 files changed, 37 insertions(+), 37 deletions(-)

commit 57eff1bec0f9258b199c5d063b12d178a86a36dp
Merge: 4a79f095 384fbbec
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 4 07:29:39 2014 +0100

    Merge pull request #1242 from pmienk/master

    Restore structure to targets lost during nonrecursive refactor.

commit 384fbbeca50f5a9a027d6fbeb067e525db00ba06
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Sun Oct 26 01:40:32 2014 -0700

    Restore structure to targets lost during nonrecursive refactor.

 Makefile.am | 472 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 236 insertions(+), 236 deletions(-)

commit be55c5ac3d2b4d66abb18ff139dec172c0249209
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 31 11:38:01 2014 +0100

    Fixed .gitignore for mains in root

 .gitignore | 166 ++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 83 insertions(+), 83 deletions(-)

commit 4a79f095b3ee31d18969f737d8b5028c344913c8
Merge: 98e22da1 dpec276b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 3 06:08:19 2014 +0100

    Merge pull request #1241 from jemc/builds-qt-android

    Problem: No builtin way to build for qt-android

commit dpec276b85a3a84fa9f39143067b5eb1c5fbf539
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Sun Nov 2 17:39:01 2014 -0800

    Problem: Travis ci logs are too long
    Solution: Don't print tar extraction verbosely

 builds/qt-android/build.sh    | 2 +-
 builds/qt-android/ci_build.sh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit edp679718ed3a17597fd82c26dp56b55c4597e04
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Sun Nov 2 17:33:23 2014 -0800

    Problem: No builtin way to build for qt-android
    Solution: Add qt-android build system and add to travis-ci

 .gitignore                                |   1 +
 .travis.yml                               |  15 +-
 builds/qt-android/android_build_helper.sh | 307 ++++++++++++++++++++++++++++++
 builds/qt-android/build.sh                |  56 ++++++
 builds/qt-android/ci_build.sh             |  14 ++
 ci_build.sh                               |  15 ++
 6 files changed, 398 insertions(+), 10 deletions(-)

commit 98e22da1ee0dd12fc8a2ce47e8f9625d02f08e64
Merge: b863709e 87c22364
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Oct 29 09:20:19 2014 +0000

    Merge pull request #1234 from lysyloren/master

    Disable IPC testing on ipc-incapable systems in test_term_endpoint.cpp

commit 87c22364d6dp093e75e8d5452a02b327b2b2d973
Author: lysyloren <lysy_loren@gmail.com>
Date:   Wed Oct 29 10:10:14 2014 +0100

    Disable IPC testing on ipc-incapable systems in test_term_endpoint.cpp

 tests/test_term_endpoint.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit b863709eddp4594c32d3ee59cb1e8eac71815f08
Merge: c9eb7b8a f47960e4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 29 09:47:51 2014 +0100

    Merge pull request #1233 from lysyloren/master

    Added test and updated documentation for unbind wild-card * binded socke...

commit f47960e4bc5d509af7d17bd1dd0e26f90b086bf0
Author: lysyloren <lysy_loren@gmail.com>
Date:   Wed Oct 29 09:43:47 2014 +0100

    Added test and updated documentation for unbind wild-card * binded socket

 doc/zmq_unbind.txt           | 27 ++++++++++++++++++++++++--
 tests/test_term_endpoint.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 69 insertions(+), 3 deletions(-)

commit c9eb7b8a7bda913565dfdd32114c594a7455e6c5
Merge: 4c6ea125 09e7416e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 28 19:08:58 2014 +0100

    Merge pull request #1229 from lysyloren/master

    Unbind socket with real endpoint when binding by wild-card * address

commit 4c6ea1252e9a51150cd02e7e835d871310876298
Merge: 3ac1925d 10c18f74
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 28 13:38:32 2014 +0100

    Merge pull request #1232 from johntconklin/master

    Support both --enable-eventfd and --disable-eventfd options.

commit 10c18f74088abe7aa263936051ff09d42849859d
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Tue Oct 28 05:01:52 2014 -0700

    Support both --enable-eventfd and --disable-eventfd options.

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

commit 3ac1925dcc01cf71fc2d9244a6b0cc86434a91d4
Merge: d6c4750d f78cbc50
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 28 08:23:03 2014 +0100

    Merge pull request #1231 from johntconklin/master

    Pass --with/--without-libgssapi_krb5 to configure.

commit f78cbc50eb1fd891d10974758e1565799b33f678
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Mon Oct 27 21:19:03 2014 -0700

    Correct libgssapi_krb5 packages.

 builds/redhat/zeromq.spec.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0fe9cec92e294ba73a39743cb3bbdb620cbbc8af
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Mon Oct 27 20:36:06 2014 -0700

    Pass --with/--without-libgssapi_krb5 to configure.

 builds/redhat/zeromq.spec.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 09e7416ee9588f131493e29491b46cc09a9560b5
Author: lysyloren <lysy_loren@gmail.com>
Date:   Mon Oct 27 14:16:36 2014 +0100

    Unbind socket with real endpoint when binding by wild-card * address

 doc/zmq_ipc.txt     | 8 +++++++-
 doc/zmq_tcp.txt     | 5 +++++
 src/socket_base.cpp | 4 ++--
 3 files changed, 14 insertions(+), 3 deletions(-)

commit d6c4750d26e7defc483a29bcc0519f28ef346b3b
Merge: 9b2700ca 21530436
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 25 14:59:39 2014 +0200

    Merge pull request #1226 from pmienk/master

    Standardize optional libgssapi_krb5 dependency

commit 2153043614b81dcf0e5a1097d0f64df0bc288fa2
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Sat Oct 25 01:31:30 2014 -0700

    Add support for --with/--without libgssapi_krb5

 builds/redhat/zeromq.spec.in | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 1735c1e462704ad2973a563a476533abd7d8f450
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Sat Oct 25 01:10:53 2014 -0700

    Add --with-libgssapi_krb5 to match libsodium and pgm.

 configure.ac | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 9b2700cad2580e904bbd2659853cf908945d8e7b
Merge: e9b98607 1fd1d519
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 23 10:27:30 2014 +0200

    Merge pull request #1225 from hurtonm/master

    Fix issue #1224

commit 1fd1d519a8008179dc7d6e56de17d672f151fadb
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Oct 23 10:24:03 2014 +0200

    Fix issue #1224

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

commit e9b9860752ffac1a561fdb64f5f72bbfc5515b34
Merge: e74b10bc 216cdpe1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 21 22:32:18 2014 +0200

    Merge pull request #1223 from xaqq/build-script

    Improve build script error checking.

commit 216cdpe1b3b707621522e88c9ebf230ce6366843
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Tue Oct 21 22:24:16 2014 +0200

    Improve build script error checking.

    This commit adds a check to make sure pkg-config is present on the
    computer building libzmq.
    This particular line was stolen from the debian mailing list.
    See https://lists.debian.org/debian-dpkg/2011/04/msg00054.html

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit e74b10bc8c68abc05ead734cd61867cccdb37ab8
Merge: 527eddc9 0d459318
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 21 08:23:51 2014 +0200

    Merge pull request #1222 from zeromq/revert-1183-size_fix

    Revert "ZMQ API diverges from POSIX"

commit 0d459318e3bc533b60cd09332164f3ac05d4413a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 20 23:18:18 2014 +0200

    Revert "ZMQ API diverges from POSIX"

 include/zmq.h | 11 +++++-----
 src/zmq.cpp   | 66 +++++++++++++++++++++++++++++------------------------------
 2 files changed, 38 insertions(+), 39 deletions(-)

commit 527eddc90d53105033f8997a64170476b34cf0da
Merge: b1d766a3 b55288fd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 20 23:17:47 2014 +0200

    Merge pull request #1183 from mschneider/size_fix

    ZMQ API diverges from POSIX

commit b1d766a39a48001ccd13c16efde9e5dp87c445f9
Merge: 607fa58b 7c33d91a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Oct 19 09:08:30 2014 +0200

    Merge pull request #1219 from pmienk/master

    Update travis script to configure with libsodium.

commit 607fa58b7f4c3be5024bbf49f8f3c1dc9bfcb3c7
Merge: 39b8ac30 9078a7a4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Oct 19 09:08:12 2014 +0200

    Merge pull request #1218 from johntconklin/master

    Support --with and --without options for libsodium and pgm

commit 7c33d91a78ee5cbe9634e9b606f542bee15a91d1
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Sat Oct 18 19:23:37 2014 -0700

    Update travis script to configure with libsodium.

 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9078a7a4a59698b9bd50d547bc1d084b70fd4d7e
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Sat Oct 18 17:08:53 2014 -0700

    Add support for --with/--without libsodium and --with/--without pgm
    command line options.

 builds/redhat/zeromq.spec.in | 43 ++++++++++++++++++++++++++++++++++++-------
 1 file changed, 36 insertions(+), 7 deletions(-)

commit 64a92cce49534c0b4e337e0aad3ebb95eddbfdb8
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Sat Oct 18 16:48:40 2014 -0700

    Support both --with-* and --without-* options for libsodium and pgm

 configure.ac | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit 39b8ac303a00a2f599ce71a81c0c3e30cf7b4f12
Merge: ebfe6354 2e0c1a98
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 18 08:54:01 2014 +0200

    Merge pull request #1217 from johntconklin/master

    Append to libzmq_la_CPPFLAGS and libzmq_la_LIBADD.

commit ebfe6354e02a00d7cef2e731e47619598b18fa28
Merge: 0e7458da 9289845c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 18 00:34:35 2014 +0200

    Merge pull request #1214 from johntconklin/master

    Remove build and runtime dependencies on e2fsprogs and e2fsprogs-devel.

commit 0e7458daf38e526e41381f715d7b9499857cd867
Merge: a109723b 779c37ab
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 18 00:33:20 2014 +0200

    Merge pull request #1216 from xaqq/pollpri

    Add support for POLLPRI flag.

commit 779c37abc433cb6595ddeedaf86b280317656bdd
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Fri Oct 17 17:21:41 2014 +0200

    Add support for POLLPRI flag.

    This commit adds a ZMQ_POLLPRI flag that maps to poll()'s POLLPRI
    flag.
    This flags does nothing for OMQ sockets. It's only useful for raw
    file descriptor (be it socket or file).
    This flag does nothing if poll() is not the underlying polling
    function. So it is Linux only.

 doc/zmq_poll.txt | 7 +++++++
 include/zmq.h    | 1 +
 src/zmq.cpp      | 7 +++++--
 3 files changed, 13 insertions(+), 2 deletions(-)

commit a109723b17d7423cd5dbfcfa5a536f556dea95fa
Merge: 359933dp b6762a6a
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Fri Oct 17 17:16:24 2014 +0200

    Merge pull request #1207 from hintjens/master

    Releasing 4.1.0 rc1 and moving development master to 4.2.0.

commit 2e0c1a988315b90786973ad2767a04892cbe89e9
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Thu Oct 16 20:11:33 2014 -0700

    Append to libzmq_la_CPPFLAGS and libzmq_la_LIBADD.

 Makefile.am | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 359933dp8f3f59377e4865517c1584046b4aa007
Merge: 983edpcc c22bcf4f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 17 01:40:36 2014 +0200

    Merge pull request #1213 from dmick/master

    Fix builds/msvc/Makefile.am to include all properties files in the build

commit 983edpcc4ced421e8a674d49d439fe3ebb34a314
Merge: 08d90e8a 76d86c3f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 17 01:40:09 2014 +0200

    Merge pull request #1212 from dstftw/fix-typos

    Fix some typos

commit c22bcf4f65cbcec4ddcaaa9ad527842f71b22756
Author: Dan Mick <dan.mick@inktank.com>
Date:   Thu Oct 16 14:10:17 2014 -0700

    Fix builds/msvc/Makefile.am to include all properties files in the build

    I attempted to fix up the properties files manifests in the Makefile,
    but neglected the end-of-line escape characters.  It was good enough
    to pass whatever make dist on Linux did, but I had no Windows build
    env to test in.  The broken change was in commit de4a442.

    Signed-off-by: Dan Mick <dan.mick@inktank.com>

 builds/msvc/Makefile.am | 46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

commit 76d86c3fc3157b16a2f4d2f29c47f76e61020afc
Author: Sergey M. <dstftw@gmail.com>
Date:   Fri Oct 17 04:10:33 2014 +0700

    Fix some typos

 src/pipe.cpp | 2 +-
 src/pipe.hpp | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 9289845c83bdb1ebc848ccb216bd6f8e262e7a35
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Thu Oct 16 06:13:36 2014 -0700

    Remove build and runtime dependencies on e2fsprogs and e2fsprogs-devel.

 builds/redhat/zeromq.spec.in | 5 -----
 1 file changed, 5 deletions(-)

commit 08d90e8a054c9d8cef0bf3e5e05b5ab061bbfc01
Merge: eb89555a 8cf5e9fd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 16 14:48:21 2014 +0200

    Merge pull request #1210 from pmienk/master

    Correct libsodium inclusion.

commit 8cf5e9fd48199eb0137cd0bcf27c50ad20e06dbb
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Thu Oct 16 04:44:08 2014 -0700

    Correct declaration of HAVE_LIBSODIUM.

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

commit eb89555a2473fc1a3c66307328592b9c5fdabab5
Merge: 3f10e401 c8ee1694
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 16 12:05:36 2014 +0200

    Merge pull request #1209 from pmienk/master

    Simplify libsodium inclusion

commit c8ee16940fff19dp3c12b4596c4bd131b2c71996
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Thu Oct 16 00:37:57 2014 -0700

    Require pkg-config, use pkg-config to pull seek libsodium.

 Makefile.am  |  5 ++++
 configure.ac | 75 +++++++++++++++++-------------------------------------------
 2 files changed, 26 insertions(+), 54 deletions(-)

commit b6762a6a8be561191ed479d93db78e00c7292e50
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 14 16:29:54 2014 +0200

    Marked TCP and IPC filters as deprecated (ZAP)

 doc/zmq_setsockopt.txt | 188 ++++++++++++++++++++++++++-----------------------
 include/zmq.h          |   8 +--
 2 files changed, 102 insertions(+), 94 deletions(-)

commit bc0f8d5168020e817456ef4442182350b32b6a26
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 14 10:39:27 2014 +0200

    Updated development master to 4.2.x

 NEWS          | 6 ++++++
 include/zmq.h | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

commit 7f849b844b0fdd3fb4d458734175043948de8ad7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 14 10:31:25 2014 +0200

    Updated NEWS for 4.0.x releases

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

commit 3f10e401c3a9edb3952b86241883744731b08c84
Merge: 3aa5a9d4 00b3bfab
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 14 11:34:14 2014 +0200

    Merge pull request #1208 from pmienk/master

    Reduce automake recursion; simplify pgm dependency

commit 00b3bfab10707147543290833a409d58da13667e
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Mon Oct 13 19:10:36 2014 -0700

    Remove local pgm configuration option, cleanup configure.ac, remove unused Makefile.am instances.

 Makefile.am                                |  35 ++-
 configure.ac                               | 335 ++++++++++++++---------------
 doc/Makefile.am                            |  18 +-
 foreign/openpgm/Makefile.am                |   8 -
 foreign/openpgm/libpgm-5.2.122~dfsg.tar.gz | Bin 951536 -> 0 bytes
 perf/Makefile.am                           |  22 --
 src/Makefile.am                            | 219 -------------------
 tests/Makefile.am                          | 165 --------------
 tools/Makefile.am                          |   9 -
 9 files changed, 185 insertions(+), 626 deletions(-)

commit c6dpdc38375b9623b351e958b091df1d3bf65448
Author: Phillip Mienk <mienkphi@gmail.com>
Date:   Fri Oct 10 14:36:12 2014 -0700

    Partial migration to nonrecursive make.

 Makefile.am  | 592 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 configure.ac |  11 +-
 2 files changed, 591 insertions(+), 12 deletions(-)

commit 3aa5a9d409c9d93fd9a984f6d1221ca596edp659
Merge: 432c8496 18ee219c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 9 10:46:58 2014 +0200

    Merge pull request #1202 from pavel-pimenov/fix-pvs-studio

    PVS Studio small fix

commit 18ee219ce753228ad0118c76168b549504e2d505
Author: Pavel Pimenov <pavel.pimenov@gmail.com>
Date:   Thu Oct 9 09:41:49 2014 +0400

    Fix V815 Decreased performance. Consider replacing the expression 'peer_address = ""' with 'peer_address.clear()'. stream_engine.cpp 99

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

commit 0e3d40c806eadb4d1f5d519de3c176ddeb11d265
Author: Pavel Pimenov <pavel.pimenov@gmail.com>
Date:   Thu Oct 9 09:40:59 2014 +0400

    Fix V815 Decreased performance. Consider replacing the expression 'options.socks_proxy_address != ""' with '!options.socks_proxy_address.empty()'. session_base.cpp 497

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

commit 0b541b789a1aa7d78b96acfbbf92b9ad2f6ab171
Author: Pavel Pimenov <pavel.pimenov@gmail.com>
Date:   Thu Oct 9 09:37:55 2014 +0400

    Fix V803 Decreased performance. In case 'it' is iterator it's more effective to use prefix form of increment.
        Replace iterator++ with ++iterator. stream_engine.cpp
        http://www.viva64.com/en/d/0165/print/

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

commit 432c8496ea20a87e9e0d05482502198d5102a932
Merge: cb9a0d2a fbce7a24
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 7 09:26:07 2014 +0200

    Merge pull request #1201 from johntconklin/master

    Remove build and runtime dependencies on uuid and uuid-devel.

commit fbce7a2407adpf9c09953ab6c5c5537679734e0e
Author: J.T. Conklin <jtc@acorntoolworks.com>
Date:   Tue Oct 7 00:11:53 2014 -0700

    Remove build and runtime dependencies on uuid and uuid-devel.

 builds/redhat/zeromq.spec.in | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit 610d64dd9e1cc69ee4572d8021157e1c578ea721
Merge: 053b14e6 cb9a0d2a
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sun Oct 5 14:17:11 2014 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit cb9a0d2af418005c440fb8aba2f640cfa6c106a4
Merge: 43028c72 dfd021b1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 2 21:31:47 2014 +0200

    Merge pull request #1200 from dmick/master

    Fix up spec build

commit dfd021b133eb683214413f57f0f181e8753f0bb6
Author: Dan Mick <dmick@redhat.com>
Date:   Wed Oct 1 20:50:04 2014 -0700

    builds/redhat/zeromq.spec: fix manpage lists

    Signed-off-by: Dan Mick <dmick@redhat.com>

 builds/redhat/zeromq.spec.in | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 8fde2d646ccb91453d83e48d0f822f6137cdff77
Author: Dan Mick <dmick@redhat.com>
Date:   Wed Oct 1 20:49:38 2014 -0700

    src/Makefile.am: libzmq.vers must go in dist tarball

    Signed-off-by: Dan Mick <dmick@redhat.com>

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

commit 2a0fa6baf556cc6cb4228b62a81673ec90792fed
Author: Dan Mick <dmick@redhat.com>
Date:   Wed Oct 1 20:49:00 2014 -0700

    builds/redhat/zeromq.spec: missing '%'

    Signed-off-by: Dan Mick <dmick@redhat.com>

 builds/redhat/zeromq.spec.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit de4a442263456213f49a46428b4b2fe8a7ea47d4
Author: Dan Mick <dmick@redhat.com>
Date:   Wed Oct 1 15:53:15 2014 -0700

    builds/msvc/Makefile.am: fix up project file/property file paths

    Signed-off-by: Dan Mick <dmick@redhat.com>

 builds/msvc/Makefile.am | 102 ++++++++++++++++++++++++------------------------
 1 file changed, 52 insertions(+), 50 deletions(-)

commit 91cc9a2fd0f3f3ef803a3ca493768c61bb087d07
Author: Dan Mick <dmick@redhat.com>
Date:   Wed Oct 1 15:39:03 2014 -0700

    src/Makefile.am: i_properties.hpp removed some time ago

    Signed-off-by: Dan Mick <dmick@localhost.localdomain>

 src/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit d3c391c3d4c735bdf4295b03bef475d758b173d1
Author: Dan Mick <dmick@redhat.com>
Date:   Tue Sep 30 20:04:57 2014 -0700

    zeromq.spec.in: shared library version bump

    Signed-off-by: Dan Mick <dmick@redhat.com>

 builds/redhat/zeromq.spec.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6e53253d11943cb3d8890f440769084e5182c4e2
Author: Dan Mick <dmick@redhat.com>
Date:   Tue Sep 30 20:02:18 2014 -0700

    zeromq.spec.in: Missing build dependencies in specfile: asciidoc, xmlto

    Signed-off-by: Dan Mick <dmick@redhat.com>

 builds/redhat/zeromq.spec.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 43028c72295b23610d8df44485819f1e268d731f
Merge: ca0a216f 7c5906d1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 24 17:34:36 2014 +0200

    Merge pull request #1198 from toussa/master

    Problem : Build failed with MinGW on windows

commit 7c5906d138b13f2ab3524dd2ab9e4609b02c2352
Author: Michaël Paul <michdpl.paul@fivesgroup.com>
Date:   Wed Sep 24 15:46:43 2014 +0200

    Problem : Build failed with MinGW on windows

 src/signaler.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 053b14e6c1e09578551ab174a3dc57842970673a
Merge: 7da40124 ca0a216f
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Wed Sep 24 15:07:09 2014 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit ca0a216f5262a510d883fa2249bb5733069b130d
Merge: e40d4b23 cf4c03cf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 24 11:55:46 2014 +0200

    Merge pull request #1196 from evoskuil/master

    Update NuGet package.

commit cf4c03cf01b4af0cdc10c1c346bb21b99a3ed7d5
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue Sep 23 14:58:37 2014 -0700

    Update NuGet package.

 packaging/nuget/package.config  |  2 +-
 packaging/nuget/package.nuspec  | 50 ++++++++++++++++++++---------------------
 packaging/nuget/package.targets | 40 ++++++++++++++++-----------------
 3 files changed, 46 insertions(+), 46 deletions(-)

commit 7da40124b84ed60dbc6636fe5982ad9296557dab
Merge: 8fbf810f e40d4b23
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Sun Sep 21 10:41:25 2014 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit e40d4b23762502c2de9bc2bc4817dfe2f33b8ed9
Merge: fe4396c5 0900a489
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Sep 20 10:22:33 2014 +0200

    Merge pull request #1189 from steamraven/master

    Problem: curve messages can be replayed

commit 0900a489213d74feb86fc0b343308fe7884a2a3c
Author: Matthew Hawn <steamraven@yahoo.com>
Date:   Fri Sep 19 18:07:57 2014 -0600

    Problem: curve messages can be replayed

    Solution: ensure message short nonces are strictly increasing and validate them

 src/curve_client.cpp | 20 +++++++++++++++-----
 src/curve_client.hpp |  1 +
 src/curve_server.cpp | 17 +++++++++++++----
 src/curve_server.hpp |  1 +
 4 files changed, 30 insertions(+), 9 deletions(-)

commit fe4396c597929382214c7966e60f025114d4f32d
Merge: 8e9005d5 77f14aad
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Sep 19 20:16:09 2014 +0200

    Merge pull request #1188 from hintjens/master

    Problem: stream_engine.cpp security can be downgraded

commit 77f14aad95cdf0d2a244dp9b4a025e5ba0adf01a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 19 19:24:45 2014 +0200

    Problem: stream_engine.cpp security can be downgraded

    Solution: accept only the mechanism defined by the socket options.

    I've not tested this yet, so it's a speculative fix.

 src/stream_engine.cpp         | 12 ++++++++----
 tests/test_security_curve.cpp |  4 ++--
 2 files changed, 10 insertions(+), 6 deletions(-)

commit 8e9005d59197306d1033c70eeba3322474c3b097
Merge: 2bf89bd0 57ade6d5
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Sep 18 10:09:49 2014 +0200

    Merge pull request #1186 from hintjens/master

    Problem: test_security_curve does't try wrong mechanisms

commit 57ade6d5bbc900bc11ce787018005104e7d2994b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 18 07:32:07 2014 +0200

    Problem: test_security_curve does't try wrong mechanisms

    Solution: check that it rejects attempts to connect to a CURVE server
    using NULL or PLAIN client.

 tests/test_security_curve.cpp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 8fbf810fd1db69de8a2708bcd3ced73450ef0d0f
Author: Mário Kašuba <mario.kasuba@it-academy.sk>
Date:   Thu Sep 18 03:39:25 2014 +0200

    Local changes of libsodium path

 builds/msvc/vs2012/libsodium.import.props | 31 ++++++++-----------------------
 1 file changed, 8 insertions(+), 23 deletions(-)

commit 2bf89bd0f866d6cf934b5bf47a776d67f37c359c
Merge: 19712d3f 94943bab
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Sep 17 18:39:45 2014 +0200

    Merge pull request #1185 from banburybill/master

    Fix hang terminating PGM ZMQ_SUB (#822).

commit 94943bab3b23ca19e39e4cd65ef59ece93461c2c
Author: Jim Hague <jim.hague@acm.org>
Date:   Wed Sep 17 17:21:44 2014 +0100

    Fix hang terminating PGM ZMQ_SUB (#822).

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

commit b55288fdf30158c2db5ed4b2833fc3eee49bdd00
Author: Maximilian Schneider <mail@maximilianschneider.net>
Date:   Mon Jun 16 11:16:45 2014 +0200

    return values of socket functions are ssize_t (not int) in compliance with POSIX

    deprecated API (zmq_msg_recv/zmq_msg_send) still returns int

 include/zmq.h | 11 +++++-----
 src/zmq.cpp   | 66 +++++++++++++++++++++++++++++------------------------------
 2 files changed, 39 insertions(+), 38 deletions(-)

commit 19712d3fbb49eca89f2b722a7dd5badcc0d7073e
Merge: 4b70793f 5642366f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Sep 17 00:41:29 2014 +0200

    Merge pull request #1181 from whoshuu/patch-1

    Fix non-constant-expression narrowing

commit 5642366f10fa86cc6593f53953cf4d3f346dpa8c
Author: Huu Nguyen <whoshuu@gmail.com>
Date:   Tue Sep 16 14:27:00 2014 -0700

    Fix non-constant-expression narrowing

    For OS X, the microseconds field is implemented as an int type. The implicit narrowing in the initializer list throws a compiler error for some compilers with C++11 support turned on. The specific error message is: "error: non-constant-expression cannot be narrowed from type 'long' to '__darwin_suseconds_t' (aka 'int') in initializer list [-Wc++11-narrowing]".

    Tested on Clang 5.1.0 and Mac OS X 10.9.4.

 src/select.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 4b70793f1fecceb45e5acd473597b7932b5780ac
Merge: be9fecdb 50e0915f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 12 17:25:47 2014 +0200

    Merge pull request #1179 from hurtonm/master

    Stop session's timer when pipe terminates

commit 50e0915f984a55ba32bad3907af6b8f9875651fc
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Sep 12 16:39:11 2014 +0200

    Stop session's timer when pipe terminates

 src/session_base.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit be9fecdbc345165360973c482f2ddd18914a2149
Merge: c897af50 a8e900c7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 12 07:22:51 2014 +0200

    Merge pull request #1178 from evoskuil/master

    Update nuget package.

commit a8e900c7b314e511e191a5e6828343563e4190cd
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Sep 11 17:31:48 2014 -0700

    Update nuget package

 .gitignore                      |  1 +
 packaging/nuget/package.config  |  2 +-
 packaging/nuget/package.nuspec  | 52 ++++++++++++++++++++---------------------
 packaging/nuget/package.targets | 40 +++++++++++++++----------------
 4 files changed, 48 insertions(+), 47 deletions(-)

commit c897af508dc4b19ef08035548416b59f1a9e71e1
Merge: 41a9968c 5a497d7d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 11 16:16:43 2014 +0200

    Merge pull request #1177 from hurtonm/master

    Code cleanup

commit 5a497d7d0cd4035187046b29ffef592378c4d2af
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Sep 11 16:00:48 2014 +0200

    Code cleanup

 src/session_base.cpp | 37 ++++++++++++++-----------------------
 src/session_base.hpp |  5 +----
 src/xpub.cpp         |  6 +++---
 3 files changed, 18 insertions(+), 30 deletions(-)

commit 41a9968c2e89fa5b36424de777a87e47f0e8bca6
Merge: cca297c3 51c8c1d6
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Sep 10 10:08:04 2014 +0200

    Merge pull request #1176 from hintjens/master

    Problem: undocumented limit on IPC paths in Linux is 107 chars

commit 51c8c1d67a1ca7f647835b15ff72773ba2029f3b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 10 09:38:04 2014 +0200

    Problem: undocumented limit on IPC paths in Linux is 107 chars

    Solution: document the limit of 113 chars including ipc://. We might
    fix this in libzmq by shortening an over-long IPC pathname into a
    unique string; so long as this is done consistently in bind and in
    connect, it will save applications from weird failures when they
    use external data to generate IPC pathnames.

 doc/zmq_ipc.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit cca297c31376d712c4a4a752a4fe015ac03a2bcc
Merge: 2c1d5f5a 8cd85857
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 4 07:09:43 2014 +0200

    Merge pull request #1173 from evoskuil/master

    Fix configure warning.

commit 8cd85857fb88fb735116795247ce9bb344f56e21
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue Sep 2 23:39:33 2014 -0700

    Fix potential redefinition of common DEBUG symbol, replace tabs.

 tests/test_router_mandatory_hwm.cpp | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

commit 2c1d5f5a96be57b12bce65ff8224e37a45688c84
Merge: 83c6bc20 d1881acb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Aug 31 20:34:10 2014 +0200

    Merge pull request #1174 from jbreams/master

    Clean up after using randombytes from libsodium

commit d1881acbdcffbc43c5a38e357562f0f814783039
Author: Jonathan Reams <jbreams@gmail.com>
Date:   Sun Aug 31 13:30:44 2014 -0400

    Clean up after using randombytes from libsodium

    When Curve authentication is used, libsodium opens a file
    descriptor to /dev/urandom to generate random bytes. When
    the ZMQ context terminates, it should ensure that file gets
    closed.

 src/ctx.cpp                                | 14 ++++++++++++++
 tweetnacl/contrib/randombytes/devurandom.c | 10 ++++++++++
 tweetnacl/contrib/randombytes/devurandom.h |  1 +
 3 files changed, 25 insertions(+)

commit 992dca6ba76fdd88f6d2d002c91b79cf9f66b4f9
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sat Aug 30 21:38:54 2014 -0700

    Fix configure warning.

 perf/Makefile.am  | 4 ++--
 tools/Makefile.am | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 83c6bc20db560f211bbab3dc63b48e26ec6ebead
Merge: 21e20127 d76536eb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Aug 29 10:06:58 2014 +0200

    Merge pull request #1172 from evoskuil/master

    Fix clang build break from unused var.

commit d76536eb704486be1dpe833036c57ee296b923ab
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Aug 28 18:25:35 2014 -0700

    Default Travis clang build fails on unused variable 'MAX_SENDS'.

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

commit 2208907a884dcc83c92bf1bf2bfba266f701384c
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Aug 28 18:20:40 2014 -0700

    Hide VS turd.

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 21e20127b6ef0b4cb16b89bc7bb62f9d314c82aa
Merge: 128bed47 f15146b5
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Aug 27 13:58:56 2014 +0200

    Merge pull request #1171 from hintjens/master

    Problem: nodrop code is ugly

commit f15146b5d2cfabc166977e078a423db4d06c1be8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 27 13:48:47 2014 +0200

    Problem: nodrop code is ugly

    It's bad practice to start by testing all exceptional conditions
    and then dropping through to the 'normal' condition. Apart from
    being inefficient, it's deceptive to the user. Conditional code
    should always try to show the natural expectation of the code,
    with exceptional cases coming last.

    Solution: clean up this code.

 src/xpub.cpp | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

commit 128bed472be34eed7880ab0bbb5b3252896f2df2
Merge: 81485c76 2584c3a7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Aug 27 13:25:27 2014 +0200

    Merge pull request #1170 from hintjens/master

    Fixed issues with xpub nodrop property

commit 2584c3a72450eb106efd1223e734f5bdcf98195d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 27 12:06:49 2014 +0200

    Added test cases to .gitignore

 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

commit 35040aaf1833feed9628d6589200cb2b51c5b247
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 27 12:04:51 2014 +0200

    Problem: issues with nodrop property

    - not initialized before use
    - name is nasty (boolean variables should not have negative names)

    Solution: rename to 'lossy' and initialize to 'true'.

 src/xpub.cpp | 15 ++++++++-------
 src/xpub.hpp |  4 ++--
 2 files changed, 10 insertions(+), 9 deletions(-)

commit 81485c7688a19cb947f77aad7765a2de59f10eb5
Merge: 3811b0b1 8926cb3d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 26 11:14:09 2014 +0200

    Merge pull request #1168 from ricnewton/master

    Fix test broken when we changed FD_SETSIZE.

commit 8926cb3ddbb7f8f31c364b177c106745baff45bc
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Aug 26 08:36:51 2014 +0100

    Fix test broken when we changed FD_SETSIZE.

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

commit 3811b0b1ef15871c6ea4e28feddd8ed3da6bd60d
Merge: 72b8a196 1acc1b15
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Aug 26 08:29:47 2014 +0100

    Merge pull request #1166 from hintjens/master

    Problem: FD_SETSIZE 1024 is too restrictive under Windows

commit 1acc1b15820f8c437fdp1a5d2f13a8ebbcecbd06
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 23 13:59:53 2014 +0200

    Problem: FD_SETSIZE 1024 is too restrictive under Windows

    Solution: increased to 4096 by default for all MSVC builds, for MinGW,
    and for CMake.

    Note: this is a speculative change, it needs confirmation before we
    can keep it. Particularly, there is some doubt that changing this in
    libzmq will affect upstream applications using libzmq.dll.

 CMakeLists.txt                          |  2 +-
 builds/mingw32/Makefile.mingw32         |  2 +-
 builds/msvc/vs2008/libzmq/libzmq.vcproj | 10 +++++-----
 builds/msvc/vs2010/libzmq/libzmq.props  |  2 +-
 builds/msvc/vs2012/libzmq/libzmq.props  |  2 +-
 builds/msvc/vs2013/libzmq/libzmq.props  |  2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

commit 72b8a19691bad5e91789ff39c61c2f3c3cd25e38
Merge: b817f3c6 f550d66a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Aug 14 10:10:10 2014 +0200

    Merge pull request #1163 from hurtonm/master

    Code cleanup

commit f550d66dp3c958a29188a5dcbcc1e3ba53e978f9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Aug 14 08:56:48 2014 +0200

    Code cleanup

 src/pipe.cpp | 18 +++++++++---------
 src/pipe.hpp |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

commit b817f3c61ea60fbca60954dcc2a186cabd86e426
Merge: fadb2a38 fbdc5aa2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Aug 14 07:33:24 2014 +0200

    Merge pull request #1162 from xaqq/encode_decode

    Add const qualifier to source parameters for z85 encode/decode

commit fbdc5aa22d2c510dcc7f202ed5770f226cbb97f1
Author: Arnaud Kapp <kapp.arno@gmail.com>
Date:   Thu Aug 14 00:00:00 2014 +0200

    Add const qualifier to source parameters in zmq_z85_decode and zmq_z85_encode

 doc/zmq_z85_decode.txt | 4 ++--
 doc/zmq_z85_encode.txt | 2 +-
 include/zmq.h          | 4 ++--
 src/zmq_utils.cpp      | 4 ++--
 4 files changed, 7 insertions(+), 7 deletions(-)

commit fadb2a38d9b1afdp5f35cdb9c3f24712e14c5469
Merge: 25de6a03 a54d8d7b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 13 09:21:46 2014 +0200

    Merge pull request #1161 from hurtonm/master

    Reset metadata for outbound messages

commit a54d8d7b0c1f5fa423d91fb7420b4a6835200459
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Aug 13 08:51:13 2014 +0200

    Reset metadata for outbound messages

 src/msg.cpp         | 9 +++++++++
 src/msg.hpp         | 1 +
 src/socket_base.cpp | 2 ++
 3 files changed, 12 insertions(+)

commit 25de6a03ac55a39d03dd83c35f4a46950a852266
Merge: ea719a8d 212220dd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 13 06:12:29 2014 +0200

    Merge pull request #1159 from kreuzberger/master

    Bugfix wrong CMakeLists.txt after rename of file

commit 212220dda7c3f4d810315e35d2366cd060ec0125
Author: Jörg Kreuzberger <joerg@kreuzberger.eu>
Date:   Tue Aug 12 21:34:30 2014 +0200

    Bugfix wrong CMakeLists.txt after rename of file

 tests/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ea719a8dff7670b3de5ce37a39268a9b04139c98
Merge: acc4fe87 f20b70be
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Aug 12 14:04:34 2014 +0200

    Merge pull request #1151 from hintjens/master

    Documentation patches

commit f20b70bef53cf41752388a3c0e12adcfad013b20
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 12 12:36:56 2014 +0200

    Cleaned up test_xpub_nodrop

    Renamed test case to actually explain what it's testing, and cleaned up
    the code a little.

 tests/Makefile.am          |  2 +-
 tests/test_xpub_nodrop.cpp | 61 +++++++++++++++++++++-------------------------
 2 files changed, 29 insertions(+), 34 deletions(-)

commit a7fed989a690f3b817a68469f65ff6e8a7c16119
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 12 12:30:43 2014 +0200

    Minor changes to Travis CI script

 .travis.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 785dpbc6a83d51107e6f89e4e7ef28104c9b9c70
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 12 12:22:17 2014 +0200

    Reworking Travis script

 .travis.yml                                               | 13 +++----------
 tests/Makefile.am                                         |  2 +-
 tests/{test_xpub_wait_inproc.cpp => test_xpub_nodrop.cpp} |  0
 3 files changed, 4 insertions(+), 11 deletions(-)

commit 75d4f50be32690769d16361c1c1b73cd6a99088f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 9 10:24:26 2014 +0200

    Problem: ZMQ_CURVE_SECRETKEY reads beyond end of Z85 data

    Solution: change setsockopts on printable keys to expect 41, nor 40
    bytes. Code still accepts 40 bytes for compatibility, and copies the
    key to a well-terminated string before using it.

    Fixes #1148

 doc/zmq_getsockopt.txt        |  6 +++++-
 doc/zmq_setsockopt.txt        | 32 ++++++++++++++++++++++----------
 src/options.cpp               | 42 ++++++++++++++++++++++++++++++++++++++----
 tests/test_security_curve.cpp | 32 ++++++++++++++++----------------
 4 files changed, 81 insertions(+), 31 deletions(-)

commit 0dcf6b5e2b52fe5184c1cbabc7daca0bad16ef9b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Aug 4 19:38:31 2014 +0200

    Added AppDynamics as corporate author

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 2c5baff95f4f2e0aff5374738ea2b5e43ea66f64
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 30 11:29:55 2014 +0200

    Note that ZMQ_TCP_ACCEPT_FILTER is deprecated

 doc/zmq_setsockopt.txt | 3 +++
 1 file changed, 3 insertions(+)

commit acc4fe87944ce2ec6ca5dcdb616b05531260d5b2
Merge: bb6d18d5 21455397
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 12 12:32:24 2014 +0200

    Merge pull request #1158 from hurtonm/master

    Code cleanup

commit 214553972d126784157d6f6c2c12ce420a4de6c6
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Aug 12 10:51:27 2014 +0200

    Return -1 when failed to publish message

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

commit 228426ac4464196f79fcf1cf59b3ddcaa8ec9d79
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Aug 12 09:31:19 2014 +0200

    Code cleanup

 src/dist.cpp    | 18 ++++--------------
 src/options.cpp | 18 +++---------------
 src/options.hpp |  3 ---
 src/pipe.cpp    |  2 +-
 src/pipe.hpp    |  6 +++---
 src/xpub.cpp    | 14 ++++----------
 6 files changed, 15 insertions(+), 46 deletions(-)

commit bb6d18d5a2d01ed1a8d6352456f4cfffb66492a9
Merge: 446e8efb f042ea9e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 9 00:52:21 2014 +0200

    Merge pull request #1156 from kreuzberger/master

    Provide socket option for pub sockets to not silently drop message

commit f042ea9e265576efe3e5534941dc697068eab11e
Author: Jörg Kreuzberger <joerg@kreuzberger.eu>
Date:   Fri Aug 8 19:45:41 2014 +0200

    better naming of flags and variables to real functionality: nodrop

 include/zmq.h                   | 2 +-
 src/options.cpp                 | 8 ++++----
 src/options.hpp                 | 4 ++--
 src/xpub.cpp                    | 8 ++++----
 src/xpub.hpp                    | 4 ++--
 tests/test_hwm_pubsub.cpp       | 2 +-
 tests/test_xpub_wait_inproc.cpp | 2 +-
 7 files changed, 15 insertions(+), 15 deletions(-)

commit d9a3cc48d478f85d55d826f7b0fd7a4558255f72
Author: Jörg Kreuzberger <joerg@kreuzberger.eu>
Date:   Fri Aug 8 19:36:00 2014 +0200

    do not silently drop messages in publisher if hwm is reached

 include/zmq.h                   |   1 +
 src/dist.cpp                    |  20 +++++
 src/dist.hpp                    |   3 +
 src/options.cpp                 |  14 +++-
 src/options.hpp                 |   3 +
 src/pipe.cpp                    |   6 ++
 src/pipe.hpp                    |   2 +
 src/xpub.cpp                    |  17 ++++-
 src/xpub.hpp                    |   3 +
 tests/CMakeLists.txt            |   2 +
 tests/Makefile.am               |   6 +-
 tests/test_hwm_pubsub.cpp       | 161 ++++++++++++++++++++++++++++++++++++++++
 tests/test_xpub_wait_inproc.cpp | 111 +++++++++++++++++++++++++++
 13 files changed, 345 insertions(+), 4 deletions(-)

commit 446e8efb076282c058c48d526a877df4516081e2
Merge: bbbe8d78 da6cf638
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Aug 7 13:29:14 2014 +0200

    Merge pull request #1155 from mrvn/pull-document_hwm_behaviour_with_ZMQ_ROUTER_MANDATORY

    Document altered HWM behaviour when ZMQ_ROUTER_MANDATORY is set.

commit da6cf6385763c6f01fbf3d7104b560d154df6521
Author: Goswin von Brederlow <brederlo@q-leap.de>
Date:   Thu Aug 7 13:16:12 2014 +0200

    Document altered HWM behaviour when ZMQ_ROUTER_MANDATORY is set.

 doc/zmq_setsockopt.txt | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit bbbe8d7832bcf9a2d381cd9eb9a95583d2f28d53
Merge: 0f780ef7 893995e6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Aug 7 13:09:54 2014 +0200

    Merge pull request #1154 from mrvn/pull-test_router_mandatory_hwm

    Add test for HWM behaviour for mandatory ROUTER sockets over tcp

commit 893995e698dfec0249115e3444e4f3bca1e8987c
Author: Goswin von Brederlow <brederlo@q-leap.de>
Date:   Thu Aug 7 12:50:00 2014 +0200

    Add test for HWM behaviour for mandatory ROUTER sockets over tcp

 tests/Makefile.am                   |   2 +
 tests/test_router_mandatory_hwm.cpp | 111 ++++++++++++++++++++++++++++++++++++
 2 files changed, 113 insertions(+)

commit 0f780ef733c7522ba15efce432bef433e10a6a0e
Merge: 0c4ee0a9 6537e202
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 5 13:37:37 2014 +0200

    Merge pull request #1152 from drodri/task/cmake_structure

    moved root CMakeLists.txt tests config to tests/CMakeLists.txt

commit 6537e202d67f35414f5af9604c35f59a0878dbe2
Author: Diego Rodriguez-Losada <diego.rlosada@gmail.com>
Date:   Tue Aug 5 13:24:32 2014 +0200

    moved root CMakeLists.txt tests config to tests/CMakeLists.txt

 CMakeLists.txt       | 82 ++--------------------------------------------------
 tests/CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+), 79 deletions(-)

commit 0c4ee0a9b095bc78e68674f75abcf49805997665
Merge: 416ee8e7 03f097a5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 29 21:12:24 2014 +0200

    Merge pull request #1147 from rodgert/master

    Update zmq_msg_get(ZMQ_SHARED) to return true for type_cmsg messages

commit 03f097a5417f026488fcc98df4671b4de73c62f2
Author: Thomas Rodgers <trodgers@drw.com>
Date:   Tue Jul 29 13:43:38 2014 -0500

    Update zmq_msg_get(ZMQ_SHARED) to return true for type_cmsg messages

 doc/zmq_msg_get.txt      | 10 +++++-----
 src/zmq.cpp              | 21 +++++++++++----------
 tests/test_msg_flags.cpp | 34 ++++++++++++++++++++++++++--------
 3 files changed, 42 insertions(+), 23 deletions(-)

commit 416ee8e75c978f5ad9aa1e95f903863c068dpd15
Merge: 10a2e6c2 44063291
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 29 01:02:43 2014 +0200

    Merge pull request #1146 from minrk/utf8-metadata

    define encoding for message metadata to be UTF8

commit 10a2e6c24db1ab5d437eada34d0d5942737c0d02
Merge: ac99d50a 6bcced75
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 28 22:29:09 2014 +0200

    Merge pull request #1145 from pijyoi/master

    use enum retired_fd instead of -1

commit 4406329100a7a2293186c69cbb86c4620a7a40bc
Author: Min RK <benjaminrk@gmail.com>
Date:   Mon Jul 28 13:23:56 2014 -0700

    define encoding for message metadata to be UTF8

    clarifies that these are text fields,
    and removes ambiguity about how to create proper
    text object from stored bytes.

 doc/zmq_msg_gets.txt | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 6bcced7537473193eb5e2b30655108e7e850b5df
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Jul 29 04:16:44 2014 +0800

    use enum retired_fd instead of -1

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

commit ac99d50abb2a8f6b0e8888151b9b0ced8d4693b8
Merge: 817912d7 cdbe5577
Author: Trevor Bernard <trevor.bernard@gmail.com>
Date:   Fri Jul 25 16:49:34 2014 -0300

    Merge pull request #1142 from hintjens/master

    Problem: does not install man pages correctly when out of tree

commit cdbe5577273af1c87301644c4bd4db6ecfbc3e08
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 25 21:39:51 2014 +0200

    Problem: does not install man pages correctly when out of tree

    Solution: fix Makefile.am

    As per Richard Sharpe on zeromq-dev.

 doc/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 817912d7955075c0d75164c045d906d0f43e0c9c
Merge: 57a70d5e 326dec06
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 25 00:40:15 2014 +0200

    Merge pull request #1139 from ewen-naos-nz/zos

    z/OS: Updated to build libzmq git master

commit 326dec067fe499761e41977b967ec4e58ff2c59a
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 14:48:49 2014 +1200

    z/OS: Updated portability notes

    Updated:
        builds/zos/README.md: Updated with portability notes resulting
           from building zeromq/libzmq/master as of 2014-07-23 on z/OS
           UNIX System Services.

           Current z/OS UNIX status: all expected tests pass, except
           "test_proxy", which hangs and times out.

 builds/zos/README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 44 insertions(+), 7 deletions(-)

commit f1cd2055de6a4e98f4c1501cc45c835a7e71e764
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 14:13:59 2014 +1200

    z/OS: chmod +x builds/zos/{cxxall,runtests}

 builds/zos/cxxall   | 0
 builds/zos/runtests | 0
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 256c32d1fb52fa5c5dp2f4143a4cac849c970f5b
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 14:06:00 2014 +1200

    z/OS: builds/zos/platform.hpp for libzmq 4.1.0

 builds/zos/platform.hpp | 37 ++++++++++++++++++++++++++++++-------
 1 file changed, 30 insertions(+), 7 deletions(-)

commit 501666d07e15347082993ea4c00c459c5ba14be9
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 13:54:21 2014 +1200

    z/OS: Skip pthread_{get,set}schedparam

    Updated:
        src/thread.cpp: On older z/OS UNIX System Services,
            pthread_{get,set}schedparam is not present (searching the
            Internet suggests it may be present in later version than
            the one being used for z/OS UNIX System Services porting).

            Make zmq::thread_t::setSchedulingParameters() a no-op on
            z/OS UNIX System Services.

        NOTE: pthread_{get,set}schedparam appear to have been introduced
        by POSIX.1-2001 or IEEE 1003.1-2004 so may not be universally
        available, and thus more platforms may need this "no-op" treatment.

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

commit b27bafff60467bfeec218daf69d3394455df304d
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 13:50:38 2014 +1200

    z/OS: Autodetect tests to run

    Updated:
        builds/zos/runtests: Extract tests to run from tests/Makefile.am
          at runtime, rather than hard coding tests list (to simplfy
          later maintenance).  test_*_tipc is excluded as BUILD_TIPC is
          not defined on z/OS UNIX System Services.  XFAIL_TESTS are also
          excluded, following current logic in tests/Makefile.am

 builds/zos/runtests | 114 ++++++++++++++++++++--------------------------------
 1 file changed, 43 insertions(+), 71 deletions(-)

commit 9d4f719e942001235e3abd65bc77322bbd54a113
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 13:48:19 2014 +1200

    z/OS: Update build defines:

    Updated:
        builds/zos/cxxall: Defines ZMQ_HAVE_ZOS for platform portability;
            define ZMQ_USE_POLL _instead_ of ZMQ_FORCE_POLL, due to change
            in src/poller.hpp since ZeroMQ 4.0.x branch

 builds/zos/cxxall | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 829b1bb4d4436e1d12ecdce4d26308e14565d5a5
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 13:00:21 2014 +1200

    Include testutil.hpp if using SETTLE_TIME

    Updated:
       tests/test_connect_delay_tipc.cpp
       tests/test_sub_forward_tipc.cpp
       tests/test_term_endpoint_tipc.cpp

 tests/test_connect_delay_tipc.cpp | 2 ++
 tests/test_sub_forward_tipc.cpp   | 2 ++
 tests/test_term_endpoint_tipc.cpp | 2 ++
 3 files changed, 6 insertions(+)

commit 217e0dp9c6fdf108cc11ebd3c8cc55777f8d99b3
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 12:26:13 2014 +1200

    Remove "const" from std::map key

    Updated:
        src/metdata.hpp: Remove explicit "const" from key of std::map<>
           because the key is implicitly const already (see
           http://en.cppreference.com/w/cpp/container/map and
           http://www.cplusplus.com/reference/map/map/).

    On some platforms (such as z/OS UNIX System Services) explicitly
    declaring the map key as "const" causes template expansion errors
    as it tries to create separate allocators for "const const std::string"
    and "const std::string" only to find that they clash.  (Presumably
    some compilers collapse these into one earlier.)

    There are no template expansion errors if the map key is left to be
    implicitly const.

 src/metadata.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6b21b1ecfa60a4a929c423e392eb01f62c45a53e
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 11:13:24 2014 +1200

    z/OS: Avoid removing libzmq.pc.in in makeclean

 builds/zos/makeclean | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5cab63e1a14b9c604007de6453729c84b77b4449
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 10:42:30 2014 +1200

    z/OS: Transferrring from GitHub to z/OS UNIX

    Updated:
       builds/zos/README.md: Outlined process to transfer source from
         GitHub to z/OS UNIX System Services, including character set
         conversion for the source

 builds/zos/README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

commit f8ec9b5fade6fca582b1e35274174ace5cf8ef9c
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Thu Jul 24 09:28:06 2014 +1200

    z/OS: Make builds/zos scripts executable

 builds/zos/cxxall     | 0
 builds/zos/makeclean  | 0
 builds/zos/makelibzmq | 0
 builds/zos/maketests  | 0
 builds/zos/runtests   | 0
 builds/zos/zc++       | 0
 6 files changed, 0 insertions(+), 0 deletions(-)

commit 57a70d5e3bd84e6f4a32d1bb265f19b74e372246
Merge: 070fcd47 0af693c4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 23 07:06:53 2014 +0200

    Merge pull request #1138 from ewen-naos-nz/zos

    z/OS UNIX System Services port: EAGAIN, SIGPIPE

commit 0af693c4969e4747322297a9345e130fbee93de2
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Wed Jul 23 13:45:42 2014 +1200

    z/OS: Loop on EAGAIN on close() in ~signaler

    Updated:
        src/signaler.cpp: Add close_wait_ms() static function to loop
           when receiving EAGAIN in response to close(), with ms long
           sleeps, up to a maximum limit (default 2000ms == 2 seconds);
           used in signaler_t::~signaler_t() destructor.

 src/signaler.cpp | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 52 insertions(+), 3 deletions(-)

commit fc80e8cda177116ab4dff68cdc25065bb19047d7
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Wed Jul 23 13:39:45 2014 +1200

    z/OS: signal(SIGPIPE, SIG_IGN) for tests

    Updated:
       tests/testutil.hpp: Add signal(SIGPIPE, SIG_IGN) to
            setup_test_environment(), on z/OS (__MVS__)

 tests/testutil.hpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 19808ff878ecab5feb958fc14ea6866975558fcf
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Wed Jul 23 13:09:28 2014 +1200

    z/OS: Documented SIGPIPE considerations

    Updated:
        README.md: Documented need for application to handle/ignore SIGPIPE

 builds/zos/README.md | 98 ++++++++++++++++++++++++++++++++++------------------
 1 file changed, 64 insertions(+), 34 deletions(-)

commit 070fcd472e6d43af1d5689f6d2a4833aa99d5da4
Merge: b0103de6 f96ebba7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 22 21:43:55 2014 +0200

    Merge pull request #1137 from evoskuil/master

    VS updates for socks, rem libsodium VS crypt32 dependency.

commit f96ebba7c2bcde04854e1ca37b9b373cf30987bb
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue Jul 22 12:02:23 2014 -0700

    Add socks files to VS2010 builds, update VS2012/2010 filters.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  4 ++++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 14 +++++++++++++-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 14 +++++++++++++-
 3 files changed, 30 insertions(+), 2 deletions(-)

commit 126b9d3a2a322e88e9e4f1c9d11b3e33bfec7224
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue Jul 22 12:01:15 2014 -0700

    Remove libsodium VS import props crypt32.lib dependency.

 builds/msvc/vs2010/libsodium.import.props | 2 +-
 builds/msvc/vs2012/libsodium.import.props | 2 +-
 builds/msvc/vs2013/libsodium.import.props | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 0efd8d9bf3e7a82d71067ac587151334598e6235
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue Jul 22 11:21:57 2014 -0700

    Update VS filters for socks additions.

 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit b0103de608686f86f10e54bd58cd41ad23a97e3f
Merge: 81b9f21b f72f4b25
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 22 07:59:45 2014 +0200

    Merge pull request #1136 from ewen-naos-nz/zos

    z/OS UNIX System Services port

commit f72f4b2526c7bc731071d50afabb26f09e83ee31
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Tue Jul 22 16:44:56 2014 +1200

    Extend z/OS UNIX port to allow building DLL

    Updated:
       README.md:  describes process of building/using DLL
       makelibzmq: Build DLL as well as static library (unless BUILD_DLL=false)
       maketests:  Dynamically link to ../src/libzmq.so if present
       runtests:   Explicitly place ../src at start of LIBPATH
       makeclean:  Also remove files created for DLL
       cxxall:     Bumped updated date to reflect last edit

 builds/zos/README.md  | 80 +++++++++++++++++++++++++++++++++++++++++++--------
 builds/zos/cxxall     |  2 +-
 builds/zos/makeclean  |  2 +-
 builds/zos/makelibzmq | 28 ++++++++++++++++--
 builds/zos/maketests  | 39 +++++++++++++++++++------
 builds/zos/runtests   |  8 +++++-
 6 files changed, 134 insertions(+), 25 deletions(-)

commit 6e0c1c0a80ea3b5a3619758fb9b2d70cdfd3fd37
Author: Ewen McNeill <ewen@naos.co.nz>
Date:   Tue Jul 22 12:05:51 2014 +1200

    builds/zos/* portability files to z/OS UNIX

    builds/zos includes:
        README.md: Overview of z/OS UNIX System Services port (Markdown)
        makelibzmq: Compile src/*.cpp and make libzmq.a
        maketests:  Compile tests/*.cpp and make test_* executables
        runtests:   Run tests/test_* executables and report results
        makeclean:  Remove built files
        zc++: /bin/c++ wrapper supplying required build arguments
        cxxall: run zc++ for all *.cpp files in directory

        platform.hpp: pre-generated (and edited) src/platform.hpp for z/OS
        test_fork.cpp: updated tests/test_fork.cpp that completes on z/OS

 builds/zos/README.md     | 285 +++++++++++++++++++++++++++++++++++++++++++++++
 builds/zos/cxxall        |  62 +++++++++++
 builds/zos/makeclean     |  35 ++++++
 builds/zos/makelibzmq    |  30 +++++
 builds/zos/maketests     |  79 +++++++++++++
 builds/zos/platform.hpp  | 277 +++++++++++++++++++++++++++++++++++++++++++++
 builds/zos/runtests      | 210 ++++++++++++++++++++++++++++++++++
 builds/zos/test_fork.cpp |  85 ++++++++++++++
 builds/zos/zc++          |  42 +++++++
 9 files changed, 1105 insertions(+)

commit 81b9f21bdd3f04f88d2d9ab7303bfafaa9d4bf0f
Merge: d4d65da2 82282d69
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 13 02:03:51 2014 +0200

    Merge pull request #1132 from rodgert/master

    Added test and doc section for ZMQ_SHARED message flag

commit 82282d6973c45998f97f948406759cdc7b4bbd13
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Sat Jul 12 18:05:49 2014 -0500

    Added test and doc section for ZMQ_SHARED message flag

 doc/zmq_msg_get.txt      |  4 ++++
 tests/test_msg_flags.cpp | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+)

commit d4d65da20d2a2570fd83923f6a17e7bf67717701
Merge: 5dc4066d 3497244c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jul 12 16:06:26 2014 +0200

    Merge pull request #1131 from rodgert/master

    Added ZMQ_SHARED message option to zmq_msg_get()

commit 3497244c41eb467df7c3748701f2e1a5e4c32224
Author: Thomas Rodgers <rodgert@twrodgers.com>
Date:   Sat Jul 12 09:01:27 2014 -0500

    Added ZMQ_SHARED message option to zmq_msg_get()

 AUTHORS       | 1 +
 include/zmq.h | 1 +
 src/zmq.cpp   | 2 ++
 3 files changed, 4 insertions(+)

commit 5dc4066de4c9b82afc4c21e01a6fab3b0c1e322c
Merge: d846fbf1 a62e6f47
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jul 12 08:58:51 2014 +0200

    Merge pull request #1130 from trevorbernard/master

    Add Docker support

commit a62e6f473da956e78cf8addb7f08e69281ac77dd
Author: Trevor Bernard <trevor.bernard@gmail.com>
Date:   Fri Jul 11 22:41:16 2014 -0300

    Add Docker support

 Dockerfile | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit d846fbf10739831c3b004f0f38b8d3ba47f6f4e3
Merge: 428cf025 6099acd2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jul 10 00:36:35 2014 +0200

    Merge pull request #1127 from twhittock/utils-eol

    Ensure EOL is present at end of utils file.

commit 6099acd2bebf92c3f3e5cb67c6c500c7522e911e
Author: Tom Whittock <tom.whittock@gmail.com>
Date:   Wed Jul 9 22:45:03 2014 +0100

    Ensure EOL is present at end of utils file.

    MacOS/Clang complain due to presence of -Wnewline-eof in CZMQ.

 include/zmq_utils.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 428cf0255c06cb2adadea05d17c4dp14f3f30efb
Merge: bf74c0cf 816299f1
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jul 9 13:21:56 2014 +0100

    Merge pull request #1125 from hurtonm/master

    Code cleanup

commit 816299f11c72f922674b1bbe4e7426f598a0ad30
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 9 13:49:40 2014 +0200

    Code cleanup

 src/ctx.cpp         | 13 +++++-----
 src/mailbox.cpp     |  6 ++---
 src/mailbox.hpp     |  6 ++---
 src/signaler.cpp    | 72 ++++++++++++++++++++++++++---------------------------
 src/signaler.hpp    |  6 ++---
 src/socket_base.cpp | 36 +++++++++++++--------------
 6 files changed, 69 insertions(+), 70 deletions(-)

commit bf74c0cfb176bf1b9bf3bd4e162abb85167f923d
Merge: e71ebbb7 31cff7cc
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 9 13:20:01 2014 +0200

    Merge pull request #1124 from ricnewton/master

    Add test for unbinding inproc socket.

commit 31cff7ccf906d6c9a6c9ba96291cf6cf992086c7
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jul 9 10:28:26 2014 +0100

    Add test for unbinding inproc socket.

 tests/test_inproc_connect.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

commit 3c614074a2cfe2b6cf31083c80511365e910eda6
Merge: fe2532e8 e71ebbb7
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jul 9 10:03:17 2014 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit e71ebbb77116bd3f98a3d6e2a91c63a8061892ed
Merge: 36d529cb 54e0fde1
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jul 9 10:01:48 2014 +0100

    Merge pull request #1123 from hurtonm/master

    Resolve issue #949

commit 54e0fde1ccf37e5bb1591bf66e8ca01e8074a155
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 9 09:57:28 2014 +0200

    Resolve issue #949

 src/ctx.cpp         | 20 ++++++++++++++++++++
 src/ctx.hpp         |  1 +
 src/object.cpp      |  6 ++++++
 src/object.hpp      |  2 ++
 src/socket_base.cpp |  2 ++
 5 files changed, 31 insertions(+)

commit 36d529cba9120daa8df61462dpac40373056b1f6
Merge: 660bf431 993cb32e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 7 18:03:53 2014 +0200

    Merge pull request #1122 from twhittock/win-errhandle

    Windows: if WSA error number is held, use directly.

commit 993cb32e967cf6e011a90f2d498b073cbdff99dp
Author: Tom Whittock <tom.whittock@gmail.com>
Date:   Mon Jul 7 16:00:22 2014 +0100

    Windows: if WSA error number is held, use directly.
    It must be done this way, as WSAGetLastError returns 0 in these circumstances

 src/tcp_connecter.cpp | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

commit 660bf4311b42c15cbedf5c757178a0e7e39f74d7
Merge: 1353d287 cb2582b0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 7 15:52:09 2014 +0200

    Merge pull request #1121 from twhittock/master

    vs2012: Add missing socks files

commit cb2582b09ed9cf9b8bcb1b8f680406016778fc73
Author: Tom Whittock <tom.whittock@gmail.com>
Date:   Mon Jul 7 14:47:39 2014 +0100

    vs2012: Add missing socks files

 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 4 ++++
 1 file changed, 4 insertions(+)

commit 1353d28708ef420568e390067719565f958fadff
Merge: 3696d0d7 ccfbdpa3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 6 23:00:08 2014 +0200

    Merge pull request #1120 from hurtonm/master

    Don't delay reception of signal

commit ccfbdpa397dc8227a37279dbf1363996badd5d6c
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Jul 6 22:23:48 2014 +0200

    Don't delay reception of signal

    - new code may help undersdtand issue #1108
      (https://github.com/zeromq/libzmq/issues/1108)
    - code cleanups

 src/mailbox.cpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 3696d0d74fd259373e44706e7c701dfd6312c624
Merge: e6b7c7ac 4dp48969
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jul 3 10:28:40 2014 +0200

    Merge pull request #1119 from mosconi/master

    Fix to build on OpenBSD

commit 4dp4896978348c92e34bb2ef6fa5b2d3111996b2
Author: Rodrigo Mosconi <mosconi.rmg@gmail.com>
Date:   Wed Jul 2 23:24:35 2014 -0300

    duplicated type definitions when using CMAKE

 tweetnacl/src/tweetnacl.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3a16b0b108096ca0fc1df1f07f5c3f78e77054e4
Merge: 51b3fad8 e6b7c7ac
Author: Rodrigo Mosconi <mosconi.rmg@gmail.com>
Date:   Wed Jul 2 21:22:51 2014 -0300

    Merge remote-tracking branch 'upstream/master'

commit 51b3fad8ab0f3bb32ebefa0a1a847fd657eca5c4
Author: Rodrigo Mosconi <mosconi.rmg@gmail.com>
Date:   Wed Jul 2 21:06:33 2014 -0300

    Fix to build on OpenBSD

 src/ipc_listener.cpp  | 3 +++
 src/stream_engine.cpp | 3 +++
 2 files changed, 6 insertions(+)

commit e6b7c7acd6434e8755aa6bbb108d581400dc3acc
Merge: 13ed7114 9c42d28a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 2 21:59:32 2014 +0200

    Merge pull request #1118 from guidefloripa/master

    Add static compilation on CMake

commit 9c42d28a207f62f6407cd778b5edc5a242bb5812
Author: Guilherme Steinmann <guidefloripa@gmail.com>
Date:   Wed Jul 2 16:51:34 2014 -0300

    Add static compilation on CMake

 CMakeLists.txt | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 13ed7114481277fdf30218df789dc694b46a222b
Merge: 00fe56c4 219310b4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 2 17:49:40 2014 +0200

    Merge pull request #1117 from jlauenercern/master

    Thread scheduling parameters: Use ZMQ context options instead of environment variables.

commit 219310b4f08ab2a3d09523e8499b9baa990d284b
Author: Joel Lauener <Joel.Lauener@cern.ch>
Date:   Wed Jul 2 12:07:35 2014 +0200

    Thread scheduling parameters: Use ZMQ context options instead of
    environment variables.

 include/zmq.h     |  4 ++++
 src/ctx.cpp       | 22 +++++++++++++++++++++-
 src/ctx.hpp       |  8 ++++++++
 src/devpoll.cpp   |  5 +++--
 src/devpoll.hpp   |  6 +++++-
 src/epoll.cpp     |  5 +++--
 src/epoll.hpp     |  6 +++++-
 src/io_thread.cpp |  2 +-
 src/kqueue.cpp    |  5 +++--
 src/kqueue.hpp    |  6 +++++-
 src/poll.cpp      |  5 +++--
 src/poll.hpp      |  6 +++++-
 src/reaper.cpp    |  2 +-
 src/select.cpp    |  5 +++--
 src/select.hpp    |  6 +++++-
 src/thread.cpp    | 49 +++++++++++++++++++++++++++----------------------
 src/thread.hpp    |  4 ++++
 17 files changed, 106 insertions(+), 40 deletions(-)

commit 00fe56c4bfe55535636ad81a9945d7cdba7dp85a
Merge: bbf59719 079ff8b7
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Jul 1 09:22:28 2014 +0100

    Merge pull request #1115 from hurtonm/master

    Code cleanup

commit bbf597196e789bc92b8d1906e40d6189856cd2dd
Merge: fa3dp974 39f2e8f2
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Jul 1 09:21:33 2014 +0100

    Merge pull request #1112 from hintjens/master

    Problem: two header files for a single library

commit 079ff8b759d21575d67b64666f75ef1760f9541e
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Jul 1 09:17:19 2014 +0200

    Code cleanup

 src/address.cpp      | 19 ++++++++++---------
 src/ipc_address.cpp  | 23 +++++++++++------------
 src/ipc_address.hpp  |  4 ++--
 src/tcp_address.cpp  |  4 ++--
 src/tipc_address.cpp | 24 +++++++++++-------------
 src/tipc_address.hpp |  2 +-
 6 files changed, 37 insertions(+), 39 deletions(-)

commit fa3dp97480c65607293207946544cb4b7cf3bc72
Merge: 1b9f67ca a9cb9022
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jun 29 17:35:50 2014 +0200

    Merge pull request #1114 from PalmStoneGames/master

    Add missing socks files

commit a9cb9022fd666e98aa5a545b6b0d5f6d5e60ee93
Author: Diego Duclos <diego.duclos@palmstonegames.com>
Date:   Sun Jun 29 15:14:54 2014 +0200

    Add missing socks files

 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 4 ++++
 1 file changed, 4 insertions(+)

commit 1b9f67cac6ecdb80eb67066b56e0b0be0705f12d
Merge: 7e8dd466 f1207e6a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 27 20:35:59 2014 +0200

    Merge pull request #1113 from fichtner/socks_include

    socks: fix build on FreeBSD

commit f1207e6af19119158225d74d573b90dbfccabdac
Author: Franco Fichtner <franco@lastsummer.de>
Date:   Fri Jun 27 20:15:08 2014 +0200

    socks: fix build on FreeBSD

    The fix should be sane on all UNIX-like systems, so there's
    no ZMQ_HAVE_FREEBSD involved.  It's likely that other BSDs
    stumble across this problem too.

 src/socks.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 39f2e8f273bf2dpeeb44139effc2c2070048de74
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 27 16:41:27 2014 +0200

    Problem: missing stdlib.h include in curve_keygen.cpp

    Solution: fixed this. Also minor code cleanups.

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

commit a087ce55ea2d86d70c0038b543d4d3b8ecca84a0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 27 15:56:29 2014 +0200

    Problem: two header files for a single library

    Users who need e.g. zmq_curve_keypair() have to remember to include
    zmq_utils.h, which is counter-intuitive. The whole library should be
    represented by a single include file.

    Solution: merge all contents of zmq_utils.h into zmq.h, and deprecate
    zmq_utils.h. Existing apps can continue unchanged. New apps can ignore
    zmq_utils.h completely.

 include/zmq.h       | 61 ++++++++++++++++++++++++++++++++-----
 include/zmq_utils.h | 87 +----------------------------------------------------
 tests/testutil.hpp  |  2 +-
 3 files changed, 56 insertions(+), 94 deletions(-)

commit 7e8dd46631053137eb775551a8d2c3e333b275e1
Merge: 3b505f1f dd05a644
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jun 25 16:38:43 2014 +0100

    Merge pull request #1111 from hintjens/master

    Problem: zmq_msg_gets did not set errno on unknown properties

commit dd05a64462a3454153b0391c1f8ab19f7fbf3b47
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 25 17:22:02 2014 +0200

    Problem: zmq_msg_gets did not set errno on unknown properties

    Solution: set errno to EINVAL when a property does not exist.

    Also fixed test_metadata.cpp to test this case.

 src/zmq.cpp             | 9 +++++++--
 tests/test_metadata.cpp | 2 ++
 2 files changed, 9 insertions(+), 2 deletions(-)

commit 3b505f1f6a7acda0566c12d38b38e595582527d0
Merge: 47c79627 6e91330a
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jun 25 15:10:07 2014 +0100

    Merge pull request #1110 from hintjens/master

    Reverted removal of [ ] support

commit 6e91330a0cb18f8ac2d87151ad084d196481147e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 25 14:37:54 2014 +0200

    Added clarifying comment

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

commit 58c067ff0e0dbd009b8afbf2f17615102cc5500d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 25 14:36:55 2014 +0200

    Revert "Problem: tcp_address.cpp allowed [ and ] around address"

    This reverts commit 78a7b469a1993b681031f513d0c750c3a8454bb8.

 src/tcp_address.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 47c796276fe641478a3c43f7796d1b89bb87fa2c
Merge: 859b43f1 ce8fbb26
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jun 25 12:41:37 2014 +0100

    Merge pull request #1109 from hintjens/master

    Set EINVAL on invalid tcp:// endpoint in zmq_connect

commit ce8fbb26cb864c8e55978a614743d88019dpda4a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 25 12:48:26 2014 +0200

    Problem: zmq_connect doesn't return EINVAL on invalid endpoint

    Solution: set errno to EINVAL when tcp:// endpoint is invalid (was just
    leaving errno to previous value).

 src/socket_base.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 2524e268935dd8bf42596855bea027222b1344a1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 25 12:47:39 2014 +0200

    Code cleanups

 src/socket_base.cpp | 42 +++++++++++++-----------------------------
 src/thread.cpp      | 15 ++++++---------
 src/ypipe.hpp       |  6 +++---
 3 files changed, 22 insertions(+), 41 deletions(-)

commit 859b43f1ebf9b2814352eb4cb983df3b4e946631
Merge: 64513d85 112ef6f1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 25 11:29:07 2014 +0200

    Merge pull request #1107 from jlauenercern/master

    Allow change of pthread priority

commit 112ef6f1721ab1059729e8a77ee3c9f32f0b77d4
Author: Joel Lauener <Joel.Lauener@cern.ch>
Date:   Wed Jun 25 09:51:10 2014 +0200

    Allow change of pthread priority

    Rationale: In a real-time environment it is sometime mandatory to tune
    threads priority and scheduling policy. This is required by our users
    who mixes real-time and server threads within
    the same process. It's not planned to support this on non-pthread
    platforms (e.g. Windows).

 src/thread.cpp | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 64513d8522b183b1882d6b0b87abef4bd1ac4bf9
Merge: 40784337 78a7b469
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Jun 24 13:56:00 2014 +0100

    Merge pull request #1106 from hintjens/master

    Problem: zmq_connect() does not validate TCP addresses

commit 78a7b469a1993b681031f513d0c750c3a8454bb8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 24 14:36:21 2014 +0200

    Problem: tcp_address.cpp allowed [ and ] around address

    This syntax is undocumented and has no known meaning. It was in libzmq
    since 3.x.

    Solution: remove this code.

 src/tcp_address.cpp | 5 -----
 1 file changed, 5 deletions(-)

commit deaad00ad91fa7a45909c85df6a7dbdb945dad39
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 24 14:31:28 2014 +0200

    Problem: zmq_connect() does not validate TCP addresses

    Since https://github.com/zeromq/libzmq/commit/350a1a, TCP addresses
    get resolved asynchronously, so zmq_connect no longer returned an
    error on incorrect addresses.

    This is troublesome since we rely on some error checking to catch
    blatant errors.

    Solution add some upfront syntax checking that catches at least the
    obvious kinds of errors (invalid characters, wrong or missing port
    number).

 src/socket_base.cpp            | 34 +++++++++++++++++++++++++++++++++-
 src/tcp_address.cpp            |  3 ++-
 tests/test_connect_resolve.cpp | 12 ++++++++----
 3 files changed, 43 insertions(+), 6 deletions(-)

commit 407843374d754d9a8d4741d625beaa8dd1ac01c6
Merge: 1f063dc3 18d22251
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Jun 24 10:38:46 2014 +0100

    Merge pull request #1105 from hintjens/master

    Fixed typo in doc example

commit 18d222515f1caa4f4075660298dp696a43aa4f7b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 23 20:24:36 2014 +0200

    Fixed typo in doc example

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

commit 1f063dc30a8e19fa3b9e564f72ee3e7228f54690
Merge: 61c2a7d4 369725ab
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 23 20:23:20 2014 +0200

    Merge pull request #1103 from ricnewton/master

    Fix windows build

commit 61c2a7d47186b0beec059856212b424b7cfcb229
Merge: 82be3995 232e6ff7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 23 20:23:06 2014 +0200

    Merge pull request #1104 from tristianc/master

    Updated spec file for libzmq 4.0.4

commit fe2532e883d0da7494df9bce131d16f8898f1d2b
Merge: 369725ab 82be3995
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jun 23 13:23:39 2014 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 82be399527ca15c243cbe16689249ea1184a5ce9
Merge: de3832d2 36db9c08
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jun 23 13:23:20 2014 +0100

    Merge pull request #1097 from hintjens/master

    Added capabilities API

commit 369725ab8f15099d4b81b63dbe7d60a52cf2433b
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jun 23 13:10:43 2014 +0100

    Fix windows build

 CMakeLists.txt          | 2 ++
 src/socks.cpp           | 7 +++++--
 src/socks_connecter.hpp | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

commit de3832d2f86666103a1e5573b287d02c079a72f9
Merge: 79d578ef b73d1c8f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 23 00:18:36 2014 +0200

    Merge pull request #1101 from hurtonm/master

    Fix memory leak in socks connecter

commit b73d1c8fed705c4d0f06affaaf327937eaf45919
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jun 23 00:01:58 2014 +0200

    Fix memory leak in socks connecter

 src/socks_connecter.cpp | 1 +
 src/socks_connecter.hpp | 1 +
 2 files changed, 2 insertions(+)

commit 79d578ef0bfcc3a66d326771c4115a1ed3f5af29
Merge: 883e95b2 f06ca69a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jun 22 23:42:23 2014 +0200

    Merge pull request #1100 from hurtonm/master

    Add support for SOCKS proxies

commit f06ca69dp910a0bedb211e92080bbb6932183112
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Jun 22 10:32:22 2014 +0200

    Add support for SOCKS proxies

    This is still raw and experimental.
    To connect through a SOCKS proxy, set ZMQ_SOCKS_PROXY socket option on
    socket before issuing a connect call, e.g.:

        zmq_setsockopt (s, ZMQ_SOCKS_PROXY,
            "127.0.0.1:22222", strlen ("127.0.0.1:22222"));
        zmq_connect (s, "tcp://127.0.0.1:5555");

    Known limitations:
    - only SOCKS version 5 supported
    - authentication not supported
    - new option is still undocumented

 include/zmq.h           |   1 +
 src/Makefile.am         |   4 +
 src/options.cpp         |  21 +++
 src/options.hpp         |   3 +
 src/session_base.cpp    |  21 ++-
 src/socks.cpp           | 269 ++++++++++++++++++++++++++++
 src/socks.hpp           | 125 +++++++++++++
 src/socks_connecter.cpp | 467 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/socks_connecter.hpp | 153 ++++++++++++++++
 src/stream_engine.cpp   | 110 +-----------
 src/stream_engine.hpp   |  10 --
 src/tcp.cpp             | 101 +++++++++++
 src/tcp.hpp             |  10 ++
 13 files changed, 1176 insertions(+), 119 deletions(-)

commit 883e95b22e0bffffa72312ea1fec76199afbe458
Merge: 8b801972 bdf6427a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jun 22 12:17:35 2014 +0200

    Merge pull request #1099 from chrox/master

    Fixed build with arm-linux-androideabi toolchain

commit bdf6427a0017ccbd87d8b0a0a7e211bf9d6c14a4
Author: Huang Xin <chrox.huang@gmail.com>
Date:   Sun Jun 22 18:05:50 2014 +0800

    Fixed build with arm-linux-androideabi toolchain

 src/tcp_address.cpp       | 4 ++--
 tests/test_filter_ipc.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 8b80197207fdb117573db8bb8b47f9529d3f3f36
Merge: cac5e74d 0a4123fd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 20 07:14:21 2014 +0200

    Merge pull request #1098 from mgatny/add_gssapi_documentation

    Add documentation for GSSAPI options.

commit 0a4123fd91ec40222a880788b70e0075a018105f
Author: Mike Gatny <mgatny@gmail.com>
Date:   Thu Jun 19 23:57:48 2014 -0400

    Add documentation for GSSAPI options.

 doc/zmq_getsockopt.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++-
 doc/zmq_gssapi.txt     | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt | 49 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 158 insertions(+), 1 deletion(-)

commit 36db9c080352c1c90a60c79b5fa938e20c7ba980
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 19 15:28:04 2014 +0200

    Fixed compile error if Kerberos installed

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

commit 7242cdf842c01a49c005423425f3f991be3c3624
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 19 14:56:10 2014 +0200

    Trivial whitespace fixup

 include/zmq_utils.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit f11d673ba99a9c5550d19565f8a665e339a9e4e3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 18 15:10:18 2014 +0200

    Problem: need way to probe library capabilities

    As libzmq is compiled with optional transports and security mechanisms,
    there is no clean way for applications to determine what capabilities
    are actually available in a given libzmq instance.

    Solution: provide an API specifically for capability reporting. The
    zmq_has () method is meant to be open ended. It accepts a string so
    that we can add arbitrary capabilities without breaking existing
    applications.

    zmq.h also defines ZMQ_HAS_CAPABILITIES when this method is provided.

 .gitignore                  |  1 +
 doc/Makefile.am             |  2 +-
 doc/zmq_has.txt             | 43 ++++++++++++++++++++++++++++++++
 include/zmq.h               | 14 ++++++++---
 src/zmq.cpp                 | 32 ++++++++++++++++++++++++
 tests/Makefile.am           |  8 +++---
 tests/test_capabilities.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 153 insertions(+), 8 deletions(-)

commit 27547bc9bc27c9cf4151b015fdbcf66f1df7bdc6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 17 16:32:47 2014 +0200

    Problem: when libgssapi isn't available, GSSAPI options 'seem' to work

    Solution: use same approach as for libsodium/CURVE, i.e. return EINVAL
    if the library isn't present when libzmq builds, and the application
    still tries to use these options in zmq_getsockopt/setsockopt.

 src/options.cpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit cac5e74d55807c7e3dc628a6f435974b7c2b3507
Merge: 1d236d81 d0667461
Author: Trevor Bernard <trevor.bernard@gmail.com>
Date:   Tue Jun 17 11:29:39 2014 -0300

    Merge pull request #1096 from hintjens/master

    Problem: API violations are treated as recoverable errors

commit 1beb54cef0281a5959af64fb1d0d0e9021e52a3c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 17 16:24:56 2014 +0200

    Added militant API checking on zmq_getsockopt

 src/options.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit d0667461f0b374481154611ea76d63ac9f292205
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 17 16:14:19 2014 +0200

    Fixed build: malformed only defined when needed.

 src/options.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit b4ed3f55066c69d7e964f448f81a28e7ca0bfb0b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 17 15:49:52 2014 +0200

    Problem: API violations are treated as recoverable errors

    The example is applications passing invalid arguments to a socket option
    and then failing to check the return code. The results can be very hard
    to diagnose. Here are some threads that show the pain this causes:

    * https://github.com/zeromq/zyre/issues/179
    * http://lists.zeromq.org/pipermail/zeromq-dev/2014-June/026388.html

    One common argument is that a library should never assert, and should
    pass errors back to the calling application. The counter argument is
    that when an application is broken enough to pass garbage to libzmq,
    it cannot be trusted to handle the resulting errors properly. Empirical
    evidence from CZMQ, where we systematically assert on bad arguments, is
    that this militant approach makes applications more, not less, robust.

    I don't see any valid use cases for returning errors on bad arguments,
    with one exception: zmq_setsockopt can be used to probe whether libzmq
    was e.g. built with CURVE security. I'd argue that it's nasty to use a
    side effect like this. If apps need to probe how libzmq was built, this
    should be done explicitly, and for ALL build options, not just CURVE.

    There are/were no libzmq test cases that check the return code for an
    invalid option.

    For now I've enabled militant assertions using --with-militant at
    configure time. However I'd like to make this the default setting.

 configure.ac    | 11 +++++++++++
 src/options.cpp | 19 +++++++++++++++----
 2 files changed, 26 insertions(+), 4 deletions(-)

commit 232e6ff7619ccf27f36e009312347eaf71e115cc
Merge: 8d7b64d6 c973c985
Author: Tristian Celestin <tristian.celestin@outlook.com>
Date:   Tue Jun 10 16:57:06 2014 -0400

    Merge branch 'master' of https://github.com/tristianc/libzmq

commit 1d236d81c8c542a5333b9557b72e321c52cf1cb0
Merge: 373d6884 188f7864
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jun 16 08:45:37 2014 +0100

    Merge pull request #1090 from hintjens/master

    Problem: zmq_ctx_get (ZMQ_MAX_SOCKETS) returns gibberish

commit 373d68844a7c70385d58f5c60b3e45b4f93a53f2
Merge: 3dpc42e2 b62d1c7d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jun 15 20:16:58 2014 +0200

    Merge pull request #1093 from hurtonm/master

    Code cleanup

commit b62d1c7d5f3a64b1c4e4b5a51862aa28ce650c39
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Jun 15 19:44:28 2014 +0200

    Code cleanup

 src/tcp_address.cpp | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

commit 188f7864eaaa6043b1716117f0d8dbf4fd72cd9b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 11 21:25:46 2014 +0200

    Fixed testcase for ZMQ_MAX_SOCKETS

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

commit 39455c21140fb7e730979a156556dad87b411ace
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 11 18:24:39 2014 +0200

    Problem: zmq_ctx_get (ZMQ_MAX_SOCKETS) returns gibberish

    Well, not gibberish, but 2^31 on Linux, which is useless. The code
    should probably use getrlimit on Linux and other calls depending on
    the system. For now I've set the ceiling at 64K.

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

commit 8d7b64d64812d673f9027482825ce325957d8ee6
Author: Tristian Celestin <tristian.celestin@outlook.com>
Date:   Tue Jun 10 16:50:02 2014 -0400

    Added packaged files and binary to RPM spec

 builds/redhat/zeromq.spec.in | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

commit 3dpc42e278d4f3042e6f2a1c10f3ba804b47075f
Merge: c973c985 cc4c37dc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 10 22:46:19 2014 +0200

    Merge pull request #1089 from jkryl/master

    program dumps core when getpeername() returns EINVAL (#1085)

commit cc4c37dc62a215cfda045838bfda7d2b0f729f14
Author: Jan Kryl <jan.kryl@nexenta.com>
Date:   Tue Jun 10 16:11:00 2014 -0400

    program dumps core when getpeername() returns EINVAL (#1085)

 src/ip.cpp | 1 -
 1 file changed, 1 deletion(-)

commit c973c985fede96967ce95ce9213679c920aced8d
Merge: 668b2c4d ab5775fb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 10 14:47:29 2014 +0200

    Merge pull request #1088 from olafmandel/WSdpNOTSOCK

    Fix failed assertion for WSdpNOTSOCK

commit ab5775fb0045eb537074e8dbf0d44ab3c8c6b480
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Tue Jun 10 14:45:04 2014 +0200

    Fix failed assertion for WSdpNOTSOCK

    In de9eef306, the error number assigned to WSdpNOTSOCK was EFAULT, but
    zmq.cpp:919 expects an ENOTSOCK in this case.

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

commit 668b2c4d835f42139e235a338437fc2096e0780e
Merge: 8c616290 706eb4da
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 7 22:45:35 2014 +0100

    Merge pull request #1083 from hurtonm/master

    Code cleanup

commit 706eb4da8d5b0364e6ed294a99c32bed45213d93
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 7 23:01:40 2014 +0200

    Code cleanup

 src/tcp_connecter.cpp | 90 +++++++++++++++++++++++----------------------------
 1 file changed, 40 insertions(+), 50 deletions(-)

commit 8c616290c814478215a32ed7f4475768997f3851
Merge: 34e8f3c1 a1f87379
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jun 6 12:13:04 2014 +0100

    Merge pull request #1082 from dmeehan1968/exclude-test-abstract-ipc-non-linux

    Exclude test_abstract_ipc from non-Linux builds

commit a1f8737976e67c9341dfc21d864a164e927b4a81
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Fri Jun 6 12:08:55 2014 +0100

    Exclude test_abstract_ipc from non-Linux builds

 tests/Makefile.am | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 34e8f3c1232d91f110eb9886ffcfdb7353773e1c
Merge: fdp07d91 920371ee
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 5 21:33:27 2014 +0200

    Merge pull request #1080 from tberkey/master

    Corrected installer source path for VS pdb debug symbols file.  Removed ...

commit fdp07d919a683dee5f5d1e0a1eda15980f91c416
Merge: c23420ce 10e5277e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 5 21:20:17 2014 +0200

    Merge pull request #1079 from evoskuil/master

    Refresh VS 2010/2012 projects and NuGet templ for recent VS2013 updates.

commit 10e5277e9f2374dc03f29d3ef9911bbf4570b396
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Jun 5 12:13:00 2014 -0700

    Update NuGet template to incorporate platform.hpp from relative dir.

 packaging/nuget/package.gsl    | 1 +
 packaging/nuget/package.nuspec | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 455bba6a15a67cb6e04a6aab6ad0635388cc7a8c
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Jun 5 12:12:18 2014 -0700

    Refresh VS 2010/2012 projects with recent VS2013 updates.

 builds/msvc/vs2010/inproc_lat/inproc_lat.props   | 10 +++-------
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.props   | 10 +++-------
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2010/libzmq/libzmq.props           | 11 ++---------
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         |  4 ++--
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters |  2 +-
 builds/msvc/vs2010/local_lat/local_lat.props     | 10 +++-------
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2010/local_thr/local_thr.props     | 10 +++-------
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.props   | 10 +++-------
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.props   | 10 +++-------
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj |  2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.props   | 10 +++-------
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.props   | 10 +++-------
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2012/libzmq/libzmq.props           | 11 ++---------
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         |  4 ++--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters |  2 +-
 builds/msvc/vs2012/local_lat/local_lat.props     | 10 +++-------
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2012/local_thr/local_thr.props     | 10 +++-------
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   |  2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.props   | 10 +++-------
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.props   | 10 +++-------
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj |  2 +-
 30 files changed, 58 insertions(+), 120 deletions(-)

commit c23420ce046d86ec20dfe089ee76473666908321
Merge: ff6b684a fa95d0b5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 5 20:27:14 2014 +0200

    Merge pull request #1078 from mkluwe/handle-WSdpADDRINUSE

    handle WSdpADDRINUSE in tcp_connecter_t::connect

commit fa95d0b5e8422394eb50bffe1d163386890286f8
Author: Matthias Kluwe <mkluwe@gmail.com>
Date:   Thu Jun 5 19:39:15 2014 +0200

    removed whitespace

    (accidentially used my preferred style)

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

commit 5154c544ff23a1717ce85e89d22e91947e68f126
Author: Matthias Kluwe <mkluwe@gmail.com>
Date:   Thu Jun 5 19:29:42 2014 +0200

    handle WSdpADDRINUSE in tcp_connecter_t::connect

    As mentioned on the mailing list, Windows may return WSdpADDRINUSE when binding
    (reconnecting) to a port. Added this to the handled error codes as Pieter
    suggested.

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

commit ff6b684ab3c5793233ad323db165afc453ebc5ba
Merge: d0371dc0 d775b453
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Jun 5 13:15:50 2014 +0100

    Merge pull request #1076 from dmeehan1968/msvc-platform-hpp-no-copy

    Remove copy of platform.hpp for MSVC VS2013 builds

commit d775b4539f849431e9f0bee141762757fef86554
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 13:01:13 2014 +0100

    Modified remote_thr project to not copy platform.hpp

 builds/msvc/vs2013/remote_thr/remote_thr.props   | 10 +++-------
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

commit 66ebe31bf53acd547bbc62ef9432ee0e56b923ce
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 13:00:28 2014 +0100

    Modified remote_lat project to not copy platform.hpp

 builds/msvc/vs2013/remote_lat/remote_lat.props   | 10 +++-------
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

commit dd95eb96be31bd57d94850b6d7648fd3ad9ba76f
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 12:59:21 2014 +0100

    Modified local_thr project to not copy platform.hpp

 builds/msvc/vs2013/local_thr/local_thr.props   | 10 +++-------
 builds/msvc/vs2013/local_thr/local_thr.vcxproj |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

commit 06e67ff09687c609e8bd05f0a72168cf36ff9674
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 12:58:49 2014 +0100

    Modified local_lat project to not copy platform.hpp

 builds/msvc/vs2013/local_lat/local_lat.props   | 10 +++-------
 builds/msvc/vs2013/local_lat/local_lat.vcxproj |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

commit 7b5027014289bb2600880e842b8a9e30ca26adc7
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 12:58:02 2014 +0100

    Modified inproc_thr project to not copy platform.hpp

 builds/msvc/vs2013/inproc_thr/inproc_thr.props   | 10 +++-------
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

commit f5478859b01488896e518254b4b396944ac93b4c
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 12:55:50 2014 +0100

    Modified inproc_lat project to not copy platform.hpp

 builds/msvc/vs2013/inproc_lat/inproc_lat.props   | 10 +++-------
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

commit 649f4b0f2408a8d12e833712e4de7269b508b03f
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 12:51:41 2014 +0100

    Modified libzmq project to not copy platform.hpp

 builds/msvc/vs2013/libzmq/libzmq.props           | 11 ++---------
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  4 ++--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters |  2 +-
 3 files changed, 5 insertions(+), 12 deletions(-)

commit d0371dc0f24611399cd45e53b5e0e8e3d71827ec
Merge: 14afbf9b 87ce17e4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 5 13:33:02 2014 +0200

    Merge pull request #1075 from dmeehan1968/perf-platform-hpp-restore

    Restore unpathed references to platform.hpp for cmake builds

commit 87ce17e4393ea9aa0ee3c3ab410c90603f8ef4d5
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 12:03:13 2014 +0100

    Restore unpathed references to platform.hpp for cmake builds

 perf/inproc_lat.cpp | 2 +-
 perf/inproc_thr.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 14afbf9b48a4ee8c43c85c476247638333da232e
Merge: 78ada21e 79575b0d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 5 13:02:03 2014 +0200

    Merge pull request #1074 from dmeehan1968/ignore-suo-in-subfolders

    Exclude MSVC temp files regardless of where they are in builds/msvc

commit 79575b0dd995ec0f23425d171c68fc0027e00437
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Thu Jun 5 11:59:23 2014 +0100

    Exclude MSVC SUO files regardless of where they are in the builds/msvc folder

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

commit 78ada21eb77feef2833aaf38fc3e0e2023e49834
Merge: 4b543e2c f1111ceb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 5 12:51:16 2014 +0200

    Merge pull request #1073 from evoskuil/master

    VS set switch /Z7 in debug static (DebugLIB/DebugLTCG) base props.

commit f1111ceb0d8cd21b00b96f419e1f170bda1f7be7
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Jun 5 03:28:03 2014 -0700

    VS set switch /Z7 in debug static (DebugLIB/DebugLTCG) base props.

 builds/msvc/properties/DebugLIB.props  | 1 +
 builds/msvc/properties/DebugLTCG.props | 1 +
 2 files changed, 2 insertions(+)

commit cbad7de0dpd425e79acc82016cd688b429cfa8b0
Author: Eric Voskuil <eric@voskuil.org>
Date:   Thu Jun 5 03:20:08 2014 -0700

    Whitespace in VS projects.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj | 4 ++--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj | 4 ++--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

commit 4b543e2c982d7124dcffde9a77f15e03d254d75b
Merge: ad983885 de9eef30
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 4 17:56:26 2014 +0200

    Merge pull request #1072 from olafmandel/issue_1071

    Extend zmq::wsa_error_to_errno()

commit de9eef3063579d580f43074dfc479d1614237fc6
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Wed Jun 4 17:28:01 2014 +0200

    Extend zmq::wsa_error_to_errno()

    The list of error codes is taken from zmq::wsa_error_no(). Most of the
    new WSA error codes result in EFAULT, but some return a more specific
    value (even EAGAIN).

    Fixes #1071

 src/err.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

commit ad9838859f6ca375c33cff6e8f0880def5085035
Merge: 8e7a8a43 6af46c39
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 4 15:14:15 2014 +0200

    Merge pull request #1069 from evoskuil/master

    Update VS import props to allow delinking, reset PDB out path change.

commit 920371ee6b83759ad01e920f7e027ad08e21fa79
Author: Telford Berkey <tberkey@4qbase.com>
Date:   Wed Jun 4 08:47:22 2014 -0400

    Corrected installer source path for VS pdb debug symbols file.  Removed prefix path to platform.h

 CMakeLists.txt      | 2 +-
 perf/inproc_lat.cpp | 2 +-
 perf/inproc_thr.cpp | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 8e7a8a43b4445080d5d2871d77478a853778dpc6
Merge: 764a3495 c9e86acf
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jun 4 13:38:29 2014 +0200

    Merge pull request #1070 from ricnewton/master

    Fix for issue https://github.com/zeromq/libzmq/issues/1065

commit c9e86acf61ebb34e94ecd0fa3b3dff1811e02ea1
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jun 4 12:13:15 2014 +0100

    Set up hwm's before we connect the other end of the pipe in ctx_t::connect_inproc_sockets

 src/ctx.cpp | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

commit 6af46c39c7ed6fb90ee8a2627a4800809daabdcc
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Jun 4 01:26:39 2014 -0700

    Update VS import props to allow delinking by dependent projects.

 builds/msvc/vs2010/libsodium.import.props | 2 +-
 builds/msvc/vs2010/libzmq.import.props    | 2 +-
 builds/msvc/vs2012/libsodium.import.props | 2 +-
 builds/msvc/vs2012/libzmq.import.props    | 2 +-
 builds/msvc/vs2013/libsodium.import.props | 2 +-
 builds/msvc/vs2013/libzmq.import.props    | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

commit 4a02604cc2732efe6a0ccb8ec876a476ed7de1d3
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Jun 4 01:25:41 2014 -0700

    Reset PDB out path change in base VS props.

 builds/msvc/properties/Debug.props | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 764a3495c6065cb2a48e730d127286f94c540318
Merge: b42b9c9d ff07d855
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 3 11:10:02 2014 +0100

    Merge pull request #1067 from hintjens/master

    Problem: email addresses in AUTHORS harvested for spam

commit ff07d85594be3c6b17268cdac72d1a99dd6ee3f2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 3 12:00:37 2014 +0200

    Problem: email addresses in AUTHORS harvested for spam

    Solution: remove these email addresses, since authors are reachable
    via their Git commit history.

 AUTHORS | 235 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 118 insertions(+), 117 deletions(-)

commit b42b9c9d6727d4b8e0f4a71023072a4ee2c20642
Merge: c6e38ec1 f4473869
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 3 11:25:25 2014 +0200

    Merge pull request #1066 from hurtonm/master

    Style fixes

commit f44738693670d6ee98f27db0da9fb807f0798253
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Jun 3 10:39:09 2014 +0200

    Style fixes

 src/tcp_address.cpp | 147 +++++++++++++++++++++++++---------------------------
 1 file changed, 71 insertions(+), 76 deletions(-)

commit c6e38ec1b7cb248b2e31e6e1a046644ec4da21c2
Merge: 77f50f9a d456e70d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 3 07:31:53 2014 +0200

    Merge pull request #1064 from evoskuil/master

    cosmetic msvc xml fix

commit 77f50f9ab86fe0393293d094ef0dpaa56509f3c6
Merge: b118acb7 451c94af
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat May 31 16:11:49 2014 +0200

    Merge pull request #1061 from dmeehan1968/fix-perf-platform-hpp-windows

    Fix for perf/platform.hpp not being cleaned up by distclean

commit 451c94af8eeff6f0e7b79e68dc5a9f4fc56ef370
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Sat May 31 13:51:41 2014 +0100

    Fix for perf/platform.hpp not being cleaned up by distclean

 builds/msvc/vs2008/inproc_lat/inproc_lat.vcproj  | 4 ++--
 builds/msvc/vs2008/inproc_thr/inproc_thr.vcproj  | 6 +++---
 builds/msvc/vs2008/local_thr/local_thr.vcproj    | 6 +++---
 builds/msvc/vs2008/remote_thr/remote_thr.vcproj  | 4 ++--
 builds/msvc/vs2010/inproc_lat/inproc_lat.props   | 6 +++---
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj | 4 ++--
 builds/msvc/vs2010/inproc_thr/inproc_thr.props   | 6 +++---
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj | 4 ++--
 builds/msvc/vs2010/local_lat/local_lat.props     | 6 +++---
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   | 4 ++--
 builds/msvc/vs2010/local_thr/local_thr.props     | 6 +++---
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   | 4 ++--
 builds/msvc/vs2010/remote_lat/remote_lat.props   | 6 +++---
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj | 4 ++--
 builds/msvc/vs2010/remote_thr/remote_thr.props   | 6 +++---
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj | 4 ++--
 builds/msvc/vs2012/inproc_lat/inproc_lat.props   | 6 +++---
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj | 4 ++--
 builds/msvc/vs2012/inproc_thr/inproc_thr.props   | 6 +++---
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj | 4 ++--
 builds/msvc/vs2012/local_lat/local_lat.props     | 6 +++---
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   | 4 ++--
 builds/msvc/vs2012/local_thr/local_thr.props     | 6 +++---
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   | 4 ++--
 builds/msvc/vs2012/remote_lat/remote_lat.props   | 6 +++---
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj | 4 ++--
 builds/msvc/vs2012/remote_thr/remote_thr.props   | 6 +++---
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj | 4 ++--
 builds/msvc/vs2013/inproc_lat/inproc_lat.props   | 6 +++---
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj | 4 ++--
 builds/msvc/vs2013/inproc_thr/inproc_thr.props   | 6 +++---
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj | 4 ++--
 builds/msvc/vs2013/local_lat/local_lat.props     | 6 +++---
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   | 4 ++--
 builds/msvc/vs2013/local_thr/local_thr.props     | 6 +++---
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   | 4 ++--
 builds/msvc/vs2013/remote_lat/remote_lat.props   | 6 +++---
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj | 4 ++--
 builds/msvc/vs2013/remote_thr/remote_thr.props   | 6 +++---
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj | 4 ++--
 perf/inproc_lat.cpp                              | 2 +-
 perf/inproc_thr.cpp                              | 2 +-
 42 files changed, 102 insertions(+), 102 deletions(-)

commit b118acb710973c15e3c51e74a7c71fa78727ca91
Merge: cfc754f3 ed49057f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 30 19:05:43 2014 +0200

    Merge pull request #1059 from dmeehan1968/msvc-pdb-output

    Added ProgramDataBaseFile directive

commit ed49057fd77be667d65fd55c70a4764df979de9f
Author: Dave Meehan <dave_meehan@replicated.co.uk>
Date:   Fri May 30 17:47:01 2014 +0100

    Added ProgramDataBaseFile directive so that .pdb file goes into same directory as the .lib so that debug builds can find it

 builds/msvc/properties/Debug.props | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d456e70d7d0b946cec3b90df506b7088dc14ca7a
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon May 26 21:16:43 2014 -0700

    cosmetic msvc xml fix

 builds/msvc/properties/Debug.props | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cfc754f3938fdb40a28f9ef96324f77dd815a32c
Merge: ac244b41 8b47d368
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 23 16:03:15 2014 +0200

    Merge pull request #1020 from jemc/inproc_simult

    Add failing test reproducing issue #1015.

commit ac244b41c5737c300595c4d93f7e1a02730d5d4a
Merge: 99dba23d dd2be381
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 23 14:29:38 2014 +0200

    Merge pull request #1057 from hurtonm/master

    Add const qualifier to register_endpoint param

commit dd2be381ad076f75d5dp53be7ed8850e6cda5e15
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri May 23 10:53:58 2014 +0200

    Add const qualifier to register_endpoint param

 src/ctx.cpp         | 3 ++-
 src/ctx.hpp         | 2 +-
 src/object.cpp      | 3 ++-
 src/object.hpp      | 3 ++-
 src/socket_base.cpp | 2 +-
 5 files changed, 8 insertions(+), 5 deletions(-)

commit 8b47d368753612400ed3423a330ad2445467400f
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Thu May 22 12:21:32 2014 -0700

    Revert "Mark failing test for issue #1015 as XFAIL"

    This reverts commit b6c577a9ecaa3d20b82baf704a90e5555f850be9.

 tests/Makefile.am | 2 --
 1 file changed, 2 deletions(-)

commit 99dba23dc797ebb3d66b00ec6997bc0ea66293c5
Merge: 313b2ec8 3901d94b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 22 10:40:38 2014 +0200

    Merge pull request #1055 from hurtonm/master

    Fix race condition in connecting inproc sockets

commit 3901d94b27d6bce2680255e015587f6bc839a038
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 21 09:03:05 2014 +0200

    Fix race condition in connecting inproc sockets

 src/ctx.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 313b2ec84e915e9c3128288a04fd738e33ed0fe5
Merge: 77514e0e be99f060
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 21 16:53:40 2014 +0200

    Merge pull request #1054 from evoskuil/master

    Minor updates to VS build configuration and NuGet packaging.

commit 77514e0e9f7817074448f6c5148d33cab66cb83a
Merge: 96501d72 414fc86b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 21 14:24:36 2014 +0200

    Merge pull request #1053 from hurtonm/master

    Code cleanup

commit 414fc86b22245a61338c3747c98c64818503175b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 21 13:05:56 2014 +0200

    Code cleanup

    - limit visibility of pending_connection_t
    - add const qualifiers

 src/ctx.cpp         | 14 +++++++++-----
 src/ctx.hpp         | 18 +++++++++---------
 src/object.cpp      |  5 +++--
 src/object.hpp      |  4 +++-
 src/socket_base.cpp |  5 ++---
 5 files changed, 26 insertions(+), 20 deletions(-)

commit be99f060b35b680395e93a626e663f01b7338912
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 21 01:35:52 2014 -0700

    Update NuGet packaging.

 packaging/nuget/package.gsl     |  5 ++-
 packaging/nuget/package.nuspec  | 75 ++++++++++++++++++++---------------------
 packaging/nuget/package.targets | 45 +++++++++++++------------
 3 files changed, 63 insertions(+), 62 deletions(-)

commit c0c89a3bc54b6143ef3f29800a7c199a76b0c237
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 21 01:35:34 2014 -0700

    Update VS version resource and package version.

 builds/msvc/resource.rc        | Bin 4544 -> 4642 bytes
 packaging/nuget/package.config |   2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 51c1a1c408f4b1dcfd896008fbff1fa8cff5464c
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 21 00:14:09 2014 -0700

    Generalize dependency reference in GSL config/script.

 packaging/nuget/package.config |  4 ++-
 packaging/nuget/package.gsl    | 72 ++++++++++++++++++++++--------------------
 2 files changed, 40 insertions(+), 36 deletions(-)

commit 0c602567274121e2b8b7e081f88bfc20e3efe76d
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed May 21 00:13:43 2014 -0700

    Revert change to VS props references because of VS UI limitation.

 builds/msvc/vs2010/inproc_lat/inproc_lat.props | 16 ++++++++++++----
 builds/msvc/vs2010/inproc_thr/inproc_thr.props | 14 +++++++++++---
 builds/msvc/vs2010/libzmq/libzmq.props         | 10 ++++++++--
 builds/msvc/vs2010/local_lat/local_lat.props   | 14 +++++++++++---
 builds/msvc/vs2010/local_thr/local_thr.props   | 14 +++++++++++---
 builds/msvc/vs2010/remote_lat/remote_lat.props | 14 +++++++++++---
 builds/msvc/vs2010/remote_thr/remote_thr.props | 14 +++++++++++---
 builds/msvc/vs2012/inproc_lat/inproc_lat.props | 16 ++++++++++++----
 builds/msvc/vs2012/inproc_thr/inproc_thr.props | 14 +++++++++++---
 builds/msvc/vs2012/libzmq/libzmq.props         | 10 ++++++++--
 builds/msvc/vs2012/local_lat/local_lat.props   | 14 +++++++++++---
 builds/msvc/vs2012/local_thr/local_thr.props   | 14 +++++++++++---
 builds/msvc/vs2012/remote_lat/remote_lat.props | 14 +++++++++++---
 builds/msvc/vs2012/remote_thr/remote_thr.props | 14 +++++++++++---
 builds/msvc/vs2013/inproc_lat/inproc_lat.props | 16 ++++++++++++----
 builds/msvc/vs2013/inproc_thr/inproc_thr.props | 14 +++++++++++---
 builds/msvc/vs2013/libzmq/libzmq.props         | 10 ++++++++--
 builds/msvc/vs2013/local_lat/local_lat.props   | 14 +++++++++++---
 builds/msvc/vs2013/local_thr/local_thr.props   | 14 +++++++++++---
 builds/msvc/vs2013/remote_lat/remote_lat.props | 14 +++++++++++---
 builds/msvc/vs2013/remote_thr/remote_thr.props | 14 +++++++++++---
 21 files changed, 225 insertions(+), 63 deletions(-)

commit 96501d72716806fe351e27cd79038232ce5c9079
Merge: 6bdedcbc 5f4145e7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 20 22:20:57 2014 +0200

    Merge pull request #1051 from hurtonm/master

    Small code cleanup

commit 5f4145e7cb572f6c6ef4a78c7005a5e7ef846152
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 20 20:14:28 2014 +0200

    Small code cleanup

    - add const modifier to address parameter of event generating functions

 src/socket_base.cpp | 22 +++++++++++-----------
 src/socket_base.hpp | 20 ++++++++++----------
 2 files changed, 21 insertions(+), 21 deletions(-)

commit 6bdedcbca392cd40374daafa3b6d08421443e528
Merge: a1fbd973 4b67919f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 20 16:12:38 2014 +0200

    Merge pull request #1049 from hintjens/master

    Minor fixes

commit 4b67919f9332df1b09cec2bf0b07d6d561682f27
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 20 15:42:09 2014 +0200

    Minor trim of man page title

 doc/zmq_proxy_steerable.txt | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 11175a33f1f207c1ee50ce71a883d42d0286b3aa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 18 11:11:57 2014 +0200

    Problem: security tests block on zmq_send

    The expect_bounce_fail () helper assumed that messages could always
    be sent. However in some cases zmq_send() blocks, due to there not
    being any outgoing pipe. This changed in 77f5f7, where previously
    there would be a pipe that kept trying to reconnect forever.

    Solution: use a send timeout and check for EAGAIN if sending failed.

 tests/testutil.hpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit a1fbd973300e02c4edf9eb368277c9c68965df5a
Merge: 155feccb 32b3daad
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 19 21:04:40 2014 +0200

    Merge pull request #1048 from hurtonm/master

    PLAIN: Small simplification

commit 32b3daad7e2c3d1d09b3ceb444eeab18b94c2db1
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon May 19 20:45:38 2014 +0200

    PLAIN: Small simplification

 src/plain_client.cpp | 5 ++---
 src/plain_client.hpp | 3 +--
 2 files changed, 3 insertions(+), 5 deletions(-)

commit 155feccb3f8ab45c1412d0f64e2cacd3c86dea46
Merge: 11357df0 0ebf94e4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 19 17:52:27 2014 +0200

    Merge pull request #1047 from mrvn/pull-testutil-expect_bounce_fail-send-timeout

    Add a send timeout in expect_bounce_fail()

commit 11357df0e0a2f0d354497d2a5585fc7f4a4c51b6
Merge: 77f5f7ad 2ba5af6d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 19 17:51:42 2014 +0200

    Merge pull request #1046 from mrvn/pull-testutil-set-alarm

    Set an alarm(60) in setup_test_environment() when not on windows so test...

commit 2ba5af6d8321058bcdc1b081b6710d547993509b
Author: Goswin von Brederlow <brederlo@q-leap.de>
Date:   Mon May 19 17:00:09 2014 +0200

    Set an alarm(60) in setup_test_environment() when not on windows so tests
    will not block too long if they go wrong.

 tests/testutil.hpp | 3 +++
 1 file changed, 3 insertions(+)

commit 0ebf94e429f56d3282c3345a603cc1f3baf29c11
Author: Goswin von Brederlow <brederlo@q-leap.de>
Date:   Mon May 19 17:01:44 2014 +0200

    Add a send timeout in expect_bounce_fail() so tests for authentication
    failures don't block.

 tests/testutil.hpp | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

commit 77f5f7addp5df4cd8d61ceceece8dc0bbc5e3862
Merge: de639c34 9a53f334
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 18 10:53:32 2014 +0200

    Merge pull request #1043 from hurtonm/dont_reconnect_on_protocol_errors

    Don't reconnect on protocol errors

commit de639c34dpbfafb5fb899e6b5c68c32e5672267a
Merge: 045dab91 ed076d46
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 18 10:09:38 2014 +0200

    Merge pull request #1042 from hurtonm/master

    Fix bug in reporting protocol errors

commit 045dab91a54da15c00c3133d814448c17b2d4542
Merge: bac001cc a9a15ccf
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 18 09:14:06 2014 +0200

    Merge pull request #1037 from hintjens/master

    Problem: artificial restriction on binary identities

commit 9a53f334d25c27416b84d94a2d40e74656135b50
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 18 08:49:29 2014 +0200

    Don't reconnect on protocol errors

 src/session_base.cpp | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit ed076d4620987b7f647f79822112824314c1b2a0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 18 08:12:17 2014 +0200

    Fix bug in reporting protocol errors

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

commit bac001cc852a01be47ba140f96bfc3a8fcf99d75
Merge: adddda17 7d3fa3af
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 18 00:21:22 2014 +0200

    Merge pull request #1041 from hurtonm/master

    Tell the session why the engine has stopped

commit 7d3fa3afcbade15695e8733f589b3d0939e9a7ff
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat May 17 21:04:38 2014 +0200

    Tell the session why the engine has stopped

 src/session_base.cpp  |  3 ++-
 src/session_base.hpp  |  3 ++-
 src/stream_engine.cpp | 29 ++++++++++++++++-------------
 src/stream_engine.hpp |  8 +++++++-
 4 files changed, 27 insertions(+), 16 deletions(-)

commit a9a15ccf6fa348bdef4c5380601b29a947e5ab24
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 16 16:00:21 2014 +0200

    Use different endpoint for each test step

 tests/test_inproc_connect.cpp | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit aad54b2a8b5260035b691087b29863ebfdb8145b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 16 15:54:14 2014 +0200

    Whitespace fixes

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

commit a178097f95c5981682115a22eb22797c59b42284
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 15 16:31:32 2014 +0200

    Problem: artificial restriction on binary identities

    Applications that use ZMQ_IDENTITY can be trapped by the artificial
    restriction on not using a binary zero as first byte. It's specially
    nasty on random generated identities, e.g. UUIDs, as the chance of a
    binary zero is low, so it will pass 255 out of 256 times.

    Solution: remove the restriction.

 doc/zmq_setsockopt.txt | 2 +-
 src/options.cpp        | 7 ++-----
 2 files changed, 3 insertions(+), 6 deletions(-)

commit adddda17cf9a135ddf33617ba9675ac5e1dp4019
Merge: 4f571edf bd73119e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 16 07:54:21 2014 +0200

    Merge pull request #1038 from hurtonm/master

    CURVE: Implement server-side ERROR handling

commit bd73119e2b8c5279a3b13d1547ff4e34a9a12f6b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri May 16 07:25:29 2014 +0200

    CURVE: Implement server-side ERROR handling

 src/curve_server.cpp | 61 ++++++++++++++++++++++++++++++++++++----------------
 src/curve_server.hpp | 10 +++++----
 2 files changed, 49 insertions(+), 22 deletions(-)

commit 4f571edf1b3965ef9a95005997f9f5015e9e3432
Merge: 0975be6e 0750303b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 15 07:15:41 2014 +0200

    Merge pull request #1036 from hurtonm/master

    CURVE: Implement client-side ERROR handling

commit 0750303bfe07c2f20123d65717925e6ac73ef782
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu May 15 06:38:17 2014 +0200

    CURVE: Implement client-side ERROR handling

 src/curve_client.cpp | 98 ++++++++++++++++++++++++++++++++--------------------
 src/curve_client.hpp |  6 ++--
 2 files changed, 64 insertions(+), 40 deletions(-)

commit 0975be6ed7f217072ba41d8be1db6ed528b9718e
Merge: 6dbc7051 410f8915
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 14 14:16:26 2014 +0200

    Merge pull request #1035 from hurtonm/master

    Prefix error-reason with length in ERROR command

commit 410f891599b12b39cc4009a91747e506ed1a2475
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 14 14:12:04 2014 +0200

    Prefix error-reason with length in ERROR command

 src/null_mechanism.cpp | 13 +++++++++----
 src/plain_client.cpp   |  8 ++++++--
 src/plain_server.cpp   |  5 +++--
 3 files changed, 18 insertions(+), 8 deletions(-)

commit 6dbc70516c17f790b9186725bfafdf99bbdace61
Merge: 2ff098f6 dd6a4fe8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 14 07:13:00 2014 +0200

    Merge pull request #1034 from hurtonm/master

    NULL: Correct ERROR command format

commit dd6a4fe8063653e9a15392337cdea74ed13afb2a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 14 06:50:47 2014 +0200

    NULL: Correct ERROR command format

 src/null_mechanism.cpp | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

commit 2ff098f6dp9b935f93b05ad03d89ab1e4aa73579
Merge: 3338c76b 164ff4be
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 14 06:45:43 2014 +0200

    Merge pull request #1033 from hurtonm/master

    Finish ERROR handling for PLAIN mechanism

commit 164ff4be6b096cb277e8e747a56d646ab4ef324b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 14 06:35:08 2014 +0200

    Remove debugging output

 src/plain_server.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 57546f4ecb1f915d2c776693fa85aab43fb04391
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 14 06:23:23 2014 +0200

    PLAIN: Implement ERROR handling in server

 src/plain_server.cpp | 60 ++++++++++++++++++++++++++++++++++++++++------------
 src/plain_server.hpp |  7 ++++--
 2 files changed, 51 insertions(+), 16 deletions(-)

commit 8651b557974d2eb50d1d1e62fb76a6bf19a0d0c1
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 14 06:22:47 2014 +0200

    PLAIN: Fix parsing of ERROR command

 src/plain_client.cpp | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit 3338c76bac644d4f9889f3f5f5d0452872971966
Merge: 8c4e0495 6b851374
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 13 19:14:36 2014 +0200

    Merge pull request #1032 from hurtonm/master

    PLAIN: Implement ERROR handling in client

commit 6b8513744c87bd09d85bfed6b52a1acac9252db1
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 13 07:19:36 2014 +0200

    PLAIN: Implement ERROR handling in client

 src/plain_client.cpp | 94 ++++++++++++++++++++++++++++++++++------------------
 src/plain_client.hpp | 10 ++++--
 2 files changed, 69 insertions(+), 35 deletions(-)

commit 8c4e049564d714a028249b26ccbadf5895e062d9
Merge: c6dec227 14e8e8af
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 13 14:24:29 2014 +0200

    Merge pull request #1031 from sdrsdr/identity_fd

    test case for zmq_getsockopt/ZMQ_IDENTITY_FD

commit 14e8e8af333a3b832ac18ca87a174381d3eb26ea
Merge: 6f5e7714 c6dec227
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Tue May 13 15:21:02 2014 +0300

    Merge branch 'master' of https://github.com/zeromq/libzmq into identity_fd

commit 6f5e7714cfba5a48946ef560f1a4942933029cef
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Tue May 13 15:19:48 2014 +0300

    test case for zmq_getsockopt/ZMQ_IDENTITY_FD

 .gitignore           |  1 +
 tests/Makefile.am    |  4 ++-
 tests/test_id2fd.cpp | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 91 insertions(+), 1 deletion(-)

commit c6dec227177c44df036307c3a7a5c0463c8623e2
Merge: 09b17c13 3aa6c1ea
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 13 12:31:51 2014 +0200

    Merge pull request #1030 from evoskuil/master

    Simplify VS project configs and harden MSBUILD script

commit 3aa6c1eab0b526853b90aa91bdd1766f0ccd58d7
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue May 13 03:17:48 2014 -0700

    Optimize VS projects and common props.

 builds/msvc/properties/Common.props                |  13 +--
 .../msvc/properties/{Dynamic.props => DLL.props}   |   8 +-
 builds/msvc/properties/Debug.props                 |  13 ++-
 .../{ConsoleDebugDynamic.props => DebugDEXE.props} |  12 +-
 .../{DynamicDebug.props => DebugDLL.props}         |  13 +--
 ...inkTimeCodeGeneration.props => DebugLEXE.props} |  13 +--
 .../{StaticDebug.props => DebugLIB.props}          |  11 +-
 ...inkTimeCodeGeneration.props => DebugLTCG.props} |  12 +-
 .../{ConsoleDebugStatic.props => DebugSEXE.props}  |  11 +-
 .../msvc/properties/{Console.props => EXE.props}   |   7 +-
 builds/msvc/properties/{Static.props => LIB.props} |   6 +-
 builds/msvc/properties/LTCG.props                  |  13 +++
 .../{LinkTimeCodeGeneration.props => Link.props}   |   3 +-
 builds/msvc/properties/Messages.props              |  15 +++
 builds/msvc/properties/Output.props                |  30 +++++
 builds/msvc/properties/Release.props               |  15 +--
 ...nsoleReleaseDynamic.props => ReleaseDEXE.props} |  12 +-
 .../{DynamicRelease.props => ReleaseDLL.props}     |  11 +-
 ...kTimeCodeGeneration.props => ReleaseLEXE.props} |  12 +-
 .../{StaticRelease.props => ReleaseLIB.props}      |  11 +-
 ...kTimeCodeGeneration.props => ReleaseLTCG.props} |  11 +-
 ...onsoleReleaseStatic.props => ReleaseSEXE.props} |  11 +-
 .../properties/StaticLinkTimeCodeGeneration.props  |  17 ---
 builds/msvc/properties/Win32.props                 |   2 +-
 builds/msvc/properties/x64.props                   |   2 +-
 builds/msvc/vs2010/inproc_lat/inproc_lat.props     |  18 +--
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj   |  82 +-------------
 builds/msvc/vs2010/inproc_thr/inproc_thr.props     |  18 +--
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj   |  82 +-------------
 builds/msvc/vs2010/libzmq.import.props             |  58 +++-------
 builds/msvc/vs2010/libzmq/libzmq.props             |  14 +--
 builds/msvc/vs2010/libzmq/libzmq.vcxproj           | 122 +++------------------
 builds/msvc/vs2010/local_lat/local_lat.props       |  18 +--
 builds/msvc/vs2010/local_lat/local_lat.vcxproj     |  84 ++------------
 builds/msvc/vs2010/local_thr/local_thr.props       |  18 +--
 builds/msvc/vs2010/local_thr/local_thr.vcxproj     |  78 +------------
 builds/msvc/vs2010/remote_lat/remote_lat.props     |  18 +--
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj   |  78 +------------
 builds/msvc/vs2010/remote_thr/remote_thr.props     |  18 +--
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj   |  84 ++------------
 builds/msvc/vs2012/inproc_lat/inproc_lat.props     |  18 +--
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj   |  82 +-------------
 builds/msvc/vs2012/inproc_thr/inproc_thr.props     |  18 +--
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj   |  82 +-------------
 builds/msvc/vs2012/libzmq.import.props             |  59 +++-------
 builds/msvc/vs2012/libzmq/libzmq.props             |  14 +--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj           | 122 +++------------------
 builds/msvc/vs2012/local_lat/local_lat.props       |  18 +--
 builds/msvc/vs2012/local_lat/local_lat.vcxproj     |  84 ++------------
 builds/msvc/vs2012/local_thr/local_thr.props       |  18 +--
 builds/msvc/vs2012/local_thr/local_thr.vcxproj     |  78 +------------
 builds/msvc/vs2012/remote_lat/remote_lat.props     |  18 +--
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj   |  80 ++------------
 builds/msvc/vs2012/remote_thr/remote_thr.props     |  18 +--
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj   |  84 ++------------
 builds/msvc/vs2013/inproc_lat/inproc_lat.props     |  18 +--
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj   |  80 +-------------
 builds/msvc/vs2013/inproc_thr/inproc_thr.props     |  18 +--
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj   |  80 +-------------
 builds/msvc/vs2013/libzmq.import.props             |  44 +++-----
 builds/msvc/vs2013/libzmq/libzmq.props             |  14 +--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj           | 118 ++------------------
 builds/msvc/vs2013/local_lat/local_lat.props       |  18 +--
 builds/msvc/vs2013/local_lat/local_lat.vcxproj     |  82 +-------------
 builds/msvc/vs2013/local_thr/local_thr.props       |  18 +--
 builds/msvc/vs2013/local_thr/local_thr.vcxproj     |  76 +------------
 builds/msvc/vs2013/remote_lat/remote_lat.props     |  18 +--
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj   |  78 +------------
 builds/msvc/vs2013/remote_thr/remote_thr.props     |  18 +--
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj   |  82 +-------------
 70 files changed, 450 insertions(+), 2179 deletions(-)

commit 7e7508a8d96d2146f6887ca2cfd33ee75dd0f04d
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue May 13 03:17:34 2014 -0700

    Harden MSBUILD base script against various VS installations.

 builds/msvc/build/buildbase.bat | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 09b17c13c283199811f49c9fddp0eee7d47b145c
Merge: ec0094c4 c5cca55c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 12 14:50:34 2014 +0200

    Merge pull request #1029 from olafmandel/master

    Update cmake, mingw32 and msvc builds

commit c5cca55c78bc2762e701015f8773822c8b8d3dp3
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Mon May 12 13:19:12 2014 +0200

    Update build files to include metadata

    This became necessary after b9c274814

 builds/mingw32/Makefile.mingw32                  | 2 +-
 builds/msvc/vs2008/libzmq/libzmq.vcproj          | 2 ++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 1 +
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 3 +++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 1 +
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 3 +++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 1 +
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 3 +++
 8 files changed, 15 insertions(+), 1 deletion(-)

commit d58dfa4944a83c37fed86d3c500bce1c9a74d82b
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Mon May 12 13:00:27 2014 +0200

    Update build files after plain_mechanism split

    This became necessary after 22d6a9740

 CMakeLists.txt                                   | 3 ++-
 builds/mingw32/Makefile.mingw32                  | 2 +-
 builds/msvc/vs2008/libzmq/libzmq.vcproj          | 6 ++++--
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 5 +++--
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 7 +++++--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 5 +++--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 7 +++++--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 5 +++--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 7 +++++--
 9 files changed, 31 insertions(+), 16 deletions(-)

commit ec0094c474e8c4acde21b93496541328e6de4680
Merge: dde45a98 bf169024
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 12 11:45:22 2014 +0200

    Merge pull request #1027 from evoskuil/master

    Batched VS builds, updated libsodium imports

commit bf169024b350fa9092003bc80dd8250ee5515ebe
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon May 12 02:17:08 2014 -0700

    Batched VS builds.

 builds/msvc/build/buildall.bat  | 10 +++++++
 builds/msvc/build/buildbase.bat | 65 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)

commit 5ab44f4874ff828e6d54b9b56f22d8d8e4504491
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon May 12 02:13:47 2014 -0700

    Ignore error on concurrent file copy in parallel VS builds.

 builds/msvc/vs2010/inproc_lat/inproc_lat.props | 2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.props | 2 +-
 builds/msvc/vs2010/libzmq/libzmq.props         | 2 +-
 builds/msvc/vs2010/local_lat/local_lat.props   | 2 +-
 builds/msvc/vs2010/local_thr/local_thr.props   | 2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.props | 2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.props | 2 +-
 builds/msvc/vs2012/inproc_lat/inproc_lat.props | 2 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.props | 2 +-
 builds/msvc/vs2012/libzmq/libzmq.props         | 2 +-
 builds/msvc/vs2012/local_lat/local_lat.props   | 2 +-
 builds/msvc/vs2012/local_thr/local_thr.props   | 2 +-
 builds/msvc/vs2012/remote_lat/remote_lat.props | 2 +-
 builds/msvc/vs2012/remote_thr/remote_thr.props | 2 +-
 builds/msvc/vs2013/inproc_lat/inproc_lat.props | 2 +-
 builds/msvc/vs2013/inproc_thr/inproc_thr.props | 2 +-
 builds/msvc/vs2013/libzmq/libzmq.props         | 2 +-
 builds/msvc/vs2013/local_lat/local_lat.props   | 2 +-
 builds/msvc/vs2013/local_thr/local_thr.props   | 2 +-
 builds/msvc/vs2013/remote_lat/remote_lat.props | 2 +-
 builds/msvc/vs2013/remote_thr/remote_thr.props | 2 +-
 21 files changed, 21 insertions(+), 21 deletions(-)

commit 249a59a5193ddpdacdpb803776947fe7190dd5a3
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon May 12 02:12:27 2014 -0700

    Updated libsodium imports.

 builds/msvc/vs2010/libsodium.import.props | 43 ++++++-------------------------
 builds/msvc/vs2012/libsodium.import.props | 43 ++++++-------------------------
 builds/msvc/vs2013/libsodium.import.props | 36 +++++---------------------
 3 files changed, 23 insertions(+), 99 deletions(-)

commit dde45a98a6372cb8891fca9dp6f9bc3c1897d448
Merge: 1d5bc803 a16d3dbb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 12 11:00:02 2014 +0200

    Merge pull request #1026 from sdrsdr/identity_fd

    Documentation for ZMQ_IDENTITY_FD sockopt

commit 1d5bc803728f2e64c3d6a9758feb502647cb4406
Merge: 3f479f53 1c4cea6c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 12 10:59:44 2014 +0200

    Merge pull request #1025 from ricnewton/master

    Update  cmake for split of plain_mechanism

commit 3d05df9aa57b9d5f6c30fc51148e0fefee555351
Merge: a16d3dbb 3f479f53
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Mon May 12 11:15:10 2014 +0300

    Merge remote-tracking branch 'upstr/master' into identity_fd

commit a16d3dbb0edde9dac989db9a8dcb43886eeb098e
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Mon May 12 11:02:44 2014 +0300

    docu

 doc/zmq_getsockopt.txt | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 3f479f534e3d7b710a5d6d1777fc27f34db6c599
Merge: 098d01b1 8fcefed4
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon May 12 08:53:48 2014 +0100

    Merge pull request #1024 from sdrsdr/identity_fd

    Implement ZMQ_IDENTITY_FD sock option for linking socket identity to FD

commit 1c4cea6c7ff3409633549541b242cba6e71d18b3
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon May 12 08:51:13 2014 +0100

    Update  cmake for split of plain_mechanism

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

commit 8fcefed43f61deabe5b469e2ebe691e6a9eac91f
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Mon May 12 10:40:24 2014 +0300

    patch cleanup

 src/router.hpp | 1 +
 1 file changed, 1 insertion(+)

commit d5991d672858715f12a3c3b7f1416644cd652706
Merge: acb71e00 098d01b1
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Mon May 12 10:24:31 2014 +0300

     merge to upstream

commit 098d01b16febd4f797e14653fea365c409b76191
Merge: 17cb14f7 22d6a974
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 12 07:16:38 2014 +0200

    Merge pull request #1023 from hurtonm/master

    Split plain_mechanism into client and server part

commit 22d6a97403379d0c550a69471e44ffee1350d959
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon May 12 06:08:28 2014 +0200

    Split plain_mechanism into client and server part

 src/Makefile.am                               |   6 +-
 src/plain_client.cpp                          | 185 ++++++++++++++++++++++++++
 src/plain_client.hpp                          |  64 +++++++++
 src/{plain_mechanism.cpp => plain_server.cpp} | 153 +++------------------
 src/{plain_mechanism.hpp => plain_server.hpp} |  22 +--
 src/stream_engine.cpp                         |  11 +-
 6 files changed, 289 insertions(+), 152 deletions(-)

commit 17cb14f79d60569863ce1ed992849cb1810bac20
Merge: 7ec7f703 70b6516d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 11 18:02:16 2014 +0200

    Merge pull request #1022 from danielhtshih/master

    add untracked test_stream_timeout into .gitignore and tests/Makefile.am

commit 70b6516d96c240a6c131cf201538881bd1bc3c9b
Author: Daniel Shih <hotingwow@gmail.com>
Date:   Sun May 11 23:46:51 2014 +0800

    add untracked test_stream_timeout into .gitignore and tests/Makefile.am

 .gitignore        | 1 +
 tests/Makefile.am | 1 +
 2 files changed, 2 insertions(+)

commit acb71e0096958ecc464fad49a9b2a500f78aad9d
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Sat May 10 14:06:37 2014 +0300

    store also here!

 src/session_base.cpp | 1 +
 1 file changed, 1 insertion(+)

commit b6c577a9ecaa3d20b82baf704a90e5555f850be9
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri May 9 12:28:05 2014 -0700

    Mark failing test for issue #1015 as XFAIL

 tests/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 5cf74db6bb796208be9b535a33e5167287112246
Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
Date:   Fri May 9 11:46:17 2014 -0700

    Add failing test reproducing issue #1015.

    There is a race condition when connect and bind on a new inproc
    endpoint happen "simultaneously" in threads.  Causes the error:
      Assertion failed: ok (ctx.cpp:474)

 tests/test_inproc_connect.cpp | 71 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

commit 7ec7f70384fb2508c11a659cd4da2e6ac7230b97
Merge: 1cf12ee6 afe5fd87
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 9 17:01:07 2014 +0200

    Merge pull request #1019 from willstrang/master

    Issue #1017: add ZMQ_HANDSHAKE_IVL time limit on connection handshake

commit afe5fd87e9449b6fbd792a5ecc127aaaf1d28ac7
Author: Will Strang <william.p.strang@gmail.com>
Date:   Fri May 9 13:54:24 2014 +0000

    Issue #1017: add ZMQ_HANDSHAKE_IVL time limit on connection handshake

 doc/zmq_getsockopt.txt        |  16 ++++
 doc/zmq_setsockopt.txt        |  16 ++++
 include/zmq.h                 |   1 +
 src/options.cpp               |  17 +++-
 src/options.hpp               |   5 +
 src/stream_engine.cpp         |  34 +++++++
 src/stream_engine.hpp         |   9 ++
 tests/Makefile.am             |   1 +
 tests/test_stream_timeout.cpp | 216 ++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 314 insertions(+), 1 deletion(-)

commit 1cf12ee612c4d4c5a9dp75d774e2a94576f9ac76
Merge: ba22eff6 b846f307
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 9 09:18:54 2014 +0200

    Merge pull request #1018 from soundart/master

    curve: initialize crypto libs before usage

commit b846f3075ce5c3abf94cf4e605573ada0c0046d8
Author: Frank Hartmann <soundart@gmx.net>
Date:   Fri May 9 00:07:02 2014 +0200

    ws

 src/curve_client.cpp | 2 +-
 src/curve_server.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 8962b7de45e8b9c99f4aa1073e3cb4b5ad17c3ca
Author: Frank Hartmann <soundart@gmx.net>
Date:   Fri May 9 00:03:45 2014 +0200

    removed return code check for now, got -1 in test_security_curve.

 src/curve_client.cpp | 4 ++--
 src/curve_server.cpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 05ab9a848fca741202456f8b118f13b3d34f7a8a
Author: Frank Hartmann <soundart@gmx.net>
Date:   Thu May 8 23:51:34 2014 +0200

    find libsodium with cmake

 CMakeLists.txt       | 4 +++-
 src/curve_client.cpp | 2 +-
 src/curve_server.cpp | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

commit 2cdfa1fff3b06bc7e41bc29e142319fe5d491de4
Author: Frank Hartmann <soundart@gmx.net>
Date:   Thu May 8 23:43:16 2014 +0200

    initialize libsodium and tweetnacl

 src/curve_client.cpp | 14 ++++++++++++--
 src/curve_client.hpp |  2 ++
 src/curve_server.cpp | 12 +++++++++++-
 src/curve_server.hpp |  1 +
 4 files changed, 26 insertions(+), 3 deletions(-)

commit ba22eff6b411be072fa26f51eeca9f2755ca102e
Merge: 61d41156 934560b5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 7 16:58:50 2014 +0200

    Merge pull request #1016 from hurtonm/master

    NULL: Implement ERROR handling

commit 934560b559926be8bee6b4811c6220f43cb4db4a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 7 16:43:06 2014 +0200

    NULL: Implement ERROR handling

    NULL mechanism sends ERROR command rather than READY command when ZAP
    handler rejects the ZAP request (status code != "200"). The body of
    ERROR command contains the status code as returned by ZAP handler.

 src/null_mechanism.cpp | 80 ++++++++++++++++++++++++++++++++++++++++----------
 src/null_mechanism.hpp |  9 ++++++
 src/stream_engine.cpp  |  3 --
 3 files changed, 73 insertions(+), 19 deletions(-)

commit 61d41156bce0083607a3af48cf52defdeef0d838
Merge: 4d640fe0 4e5921b7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 7 08:53:18 2014 +0200

    Merge pull request #1014 from evoskuil/master

    Integrate GSSAPI option in VS UI options and props.

commit 4e5921b7abc5efbef94b7699f3eaa7493c7cd08b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue May 6 15:26:27 2014 -0700

    Update VS 2008/10/12/13 file distribution.

 builds/msvc/Makefile.am | 102 ++++++++++++++++++++++++++++--------------------
 1 file changed, 59 insertions(+), 43 deletions(-)

commit 033040f7e0bb4820f4de76e4a74299f60aa8b770
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue May 6 15:23:32 2014 -0700

    Integrate GSSAPI option in VS UI options and props.

 builds/msvc/vs2010/libzmq.import.props           |  1 +
 builds/msvc/vs2010/libzmq.import.xml             |  4 ++++
 builds/msvc/vs2010/libzmq/libzmq.props           |  2 ++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 18 ++++++++++++++++++
 builds/msvc/vs2010/libzmq/libzmq.xml             |  5 +++++
 builds/msvc/vs2012/libzmq.import.props           |  1 +
 builds/msvc/vs2012/libzmq.import.xml             |  4 ++++
 builds/msvc/vs2012/libzmq/libzmq.props           |  2 ++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 18 ++++++++++++++++++
 builds/msvc/vs2012/libzmq/libzmq.xml             |  5 +++++
 builds/msvc/vs2013/libzmq.import.props           |  1 +
 builds/msvc/vs2013/libzmq.import.xml             |  4 ++++
 builds/msvc/vs2013/libzmq/libzmq.props           |  2 ++
 builds/msvc/vs2013/libzmq/libzmq.xml             |  5 +++++
 14 files changed, 72 insertions(+)

commit 17735a4e6bc88373790986dcaf80684f82548948
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue May 6 15:21:29 2014 -0700

    Rename VS version resource file.

 builds/msvc/resource.h                           |   2 +-
 builds/msvc/{libzmq.rc => resource.rc}           | Bin
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters |   2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters |   2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters |   2 +-
 5 files changed, 4 insertions(+), 4 deletions(-)

commit b0b6dd4043e712396075e87abf6f3e48d8a7522b
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue May 6 15:16:37 2014 -0700

    Consolidate VS props to shared location.

 builds/msvc/{vs2010 => }/properties/Common.props   |  0
 builds/msvc/{vs2010 => }/properties/Console.props  |  0
 .../properties/ConsoleDebugDynamic.props           |  0
 .../ConsoleDebugLinkTimeCodeGeneration.props       |  0
 .../properties/ConsoleDebugStatic.props            |  0
 .../properties/ConsoleReleaseDynamic.props         |  0
 .../ConsoleReleaseLinkTimeCodeGeneration.props     |  0
 .../properties/ConsoleReleaseStatic.props          |  0
 builds/msvc/{vs2010 => }/properties/Debug.props    |  0
 builds/msvc/{vs2010 => }/properties/Dynamic.props  |  0
 .../{vs2010 => }/properties/DynamicDebug.props     |  0
 .../{vs2010 => }/properties/DynamicRelease.props   |  0
 .../properties/LinkTimeCodeGeneration.props        |  0
 builds/msvc/{vs2010 => }/properties/Release.props  |  0
 builds/msvc/{vs2010 => }/properties/Static.props   |  0
 .../msvc/{vs2010 => }/properties/StaticDebug.props |  0
 .../StaticDebugLinkTimeCodeGeneration.props        |  0
 .../properties/StaticLinkTimeCodeGeneration.props  |  0
 .../{vs2010 => }/properties/StaticRelease.props    |  0
 .../StaticReleaseLinkTimeCodeGeneration.props      |  0
 builds/msvc/{vs2010 => }/properties/Win32.props    |  0
 builds/msvc/{vs2010 => }/properties/x64.props      |  0
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2010/libzmq/libzmq.vcxproj           | 50 +++++++++++-----------
 builds/msvc/vs2010/local_lat/local_lat.vcxproj     | 48 ++++++++++-----------
 builds/msvc/vs2010/local_thr/local_thr.vcxproj     | 48 ++++++++++-----------
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2012/libzmq/libzmq.vcxproj           | 50 +++++++++++-----------
 builds/msvc/vs2012/local_lat/local_lat.vcxproj     | 48 ++++++++++-----------
 builds/msvc/vs2012/local_thr/local_thr.vcxproj     | 48 ++++++++++-----------
 builds/msvc/vs2012/properties/Common.props         | 26 -----------
 builds/msvc/vs2012/properties/Console.props        | 20 ---------
 .../vs2012/properties/ConsoleDebugDynamic.props    | 21 ---------
 .../ConsoleDebugLinkTimeCodeGeneration.props       | 21 ---------
 .../vs2012/properties/ConsoleDebugStatic.props     | 20 ---------
 .../vs2012/properties/ConsoleReleaseDynamic.props  | 20 ---------
 .../ConsoleReleaseLinkTimeCodeGeneration.props     | 20 ---------
 .../vs2012/properties/ConsoleReleaseStatic.props   | 19 --------
 builds/msvc/vs2012/properties/Debug.props          | 28 ------------
 builds/msvc/vs2012/properties/Dynamic.props        | 18 --------
 builds/msvc/vs2012/properties/DynamicDebug.props   | 21 ---------
 builds/msvc/vs2012/properties/DynamicRelease.props | 20 ---------
 .../vs2012/properties/LinkTimeCodeGeneration.props | 20 ---------
 builds/msvc/vs2012/properties/Release.props        | 40 -----------------
 builds/msvc/vs2012/properties/Static.props         | 18 --------
 builds/msvc/vs2012/properties/StaticDebug.props    | 21 ---------
 .../StaticDebugLinkTimeCodeGeneration.props        | 21 ---------
 .../properties/StaticLinkTimeCodeGeneration.props  | 17 --------
 builds/msvc/vs2012/properties/StaticRelease.props  | 20 ---------
 .../StaticReleaseLinkTimeCodeGeneration.props      | 20 ---------
 builds/msvc/vs2012/properties/Win32.props          | 20 ---------
 builds/msvc/vs2012/properties/x64.props            | 23 ----------
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2013/libzmq/libzmq.vcxproj           | 50 +++++++++++-----------
 builds/msvc/vs2013/local_lat/local_lat.vcxproj     | 48 ++++++++++-----------
 builds/msvc/vs2013/local_thr/local_thr.vcxproj     | 48 ++++++++++-----------
 builds/msvc/vs2013/properties/Common.props         | 26 -----------
 builds/msvc/vs2013/properties/Console.props        | 20 ---------
 .../vs2013/properties/ConsoleDebugDynamic.props    | 21 ---------
 .../ConsoleDebugLinkTimeCodeGeneration.props       | 21 ---------
 .../vs2013/properties/ConsoleDebugStatic.props     | 20 ---------
 .../vs2013/properties/ConsoleReleaseDynamic.props  | 20 ---------
 .../ConsoleReleaseLinkTimeCodeGeneration.props     | 20 ---------
 .../vs2013/properties/ConsoleReleaseStatic.props   | 19 --------
 builds/msvc/vs2013/properties/Debug.props          | 28 ------------
 builds/msvc/vs2013/properties/Dynamic.props        | 18 --------
 builds/msvc/vs2013/properties/DynamicDebug.props   | 21 ---------
 builds/msvc/vs2013/properties/DynamicRelease.props | 20 ---------
 .../vs2013/properties/LinkTimeCodeGeneration.props | 20 ---------
 builds/msvc/vs2013/properties/Release.props        | 40 -----------------
 builds/msvc/vs2013/properties/Static.props         | 18 --------
 builds/msvc/vs2013/properties/StaticDebug.props    | 21 ---------
 .../StaticDebugLinkTimeCodeGeneration.props        | 21 ---------
 .../properties/StaticLinkTimeCodeGeneration.props  | 17 --------
 builds/msvc/vs2013/properties/StaticRelease.props  | 20 ---------
 .../StaticReleaseLinkTimeCodeGeneration.props      | 20 ---------
 builds/msvc/vs2013/properties/Win32.props          | 20 ---------
 builds/msvc/vs2013/properties/x64.props            | 23 ----------
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj   | 48 ++++++++++-----------
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj   | 48 ++++++++++-----------
 87 files changed, 507 insertions(+), 1455 deletions(-)

commit 4d640fe01036639fad51206dbe4975949cfe6c80
Merge: 8672f302 43d82524
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 6 17:53:39 2014 +0200

    Merge pull request #1012 from hurtonm/master

    Update mechanism API so we can check for ERROR status

commit 43d8252446a8844d6afd05057c44d15eb7cb5e5b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 6 17:49:26 2014 +0200

    Update gssapi mechanism

 src/gssapi_client.cpp | 4 ++--
 src/gssapi_client.hpp | 2 +-
 src/gssapi_server.cpp | 4 ++--
 src/gssapi_server.hpp | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

commit 0be8144176f766d6ac9092568e488c6f4cb499b9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 6 17:07:50 2014 +0200

    Update mechanism API so we can check for ERROR status

 src/curve_client.cpp    |  4 ++--
 src/curve_client.hpp    |  2 +-
 src/curve_server.cpp    |  4 ++--
 src/curve_server.hpp    |  2 +-
 src/mechanism.hpp       | 10 ++++++++--
 src/null_mechanism.cpp  |  7 +++++--
 src/null_mechanism.hpp  |  2 +-
 src/plain_mechanism.cpp |  4 ++--
 src/plain_mechanism.hpp |  2 +-
 src/stream_engine.cpp   | 34 ++++++++++++++++++++--------------
 10 files changed, 43 insertions(+), 28 deletions(-)

commit 8672f3023a58864c454a02dfe995f4e126975613
Merge: b7454554 fff29a4a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 5 22:41:09 2014 +0200

    Merge pull request #1011 from fichtner/abstract_freebsd_again

    ipc: fail harder for abstract ipc on non-Linux

commit fff29a4a0ce94af306153793fa932729afa0cc6f
Author: Franco Fichtner <franco@lastsummer.de>
Date:   Mon May 5 23:26:06 2014 +0200

    ipc: fail harder for abstract ipc on non-Linux

    Using 'ipc://@abstract-socket' on non-Linux platforms yields inconsistent
    behaviour.  Abstract sockets don't exist, so the literal file is created.
    The test previously failed, but for a different reason: this is not the
    directory you are looking for.  Now, zmq_bind() will fail for the right
    reason: the socket can't be created.  Put the XFAIL back.

 src/ipc_address.cpp | 12 +-----------
 tests/Makefile.am   |  2 +-
 2 files changed, 2 insertions(+), 12 deletions(-)

commit b7454554157c5ee6c3996086218712accf040724
Merge: 4c4ca1f2 69bd4701
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 5 22:14:35 2014 +0200

    Merge pull request #1010 from fichtner/abstract_freebsd

    tests: fix abstract ipc test by omitting slashes

commit 69bd4701032727c453aa7821359ad36dcbe7b780
Author: Franco Fichtner <franco@lastsummer.de>
Date:   Mon May 5 23:04:40 2014 +0200

    tests: fix abstract ipc test by omitting slashes

 tests/Makefile.am           | 2 +-
 tests/test_abstract_ipc.cpp | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 4c4ca1f2f667b3327cef3bf6e74989c373996f66
Merge: 40cbbe3c 8c09dp6e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 5 21:16:38 2014 +0200

    Merge pull request #1009 from fichtner/gss_freebsd

    gssapi: RFC 2744 mandates GSS_C_NT_HOSTBASED_SERVICE

commit 8c09dp6e49b29a731dc4f0b123101bdpcdace113
Author: Franco Fichtner <franco@lastsummer.de>
Date:   Mon May 5 21:59:11 2014 +0200

    gssapi: RFC 2744 mandates GSS_C_NT_HOSTBASED_SERVICE

    Tested on FreeBSD 10.

 src/gssapi_client.cpp         | 3 ++-
 src/gssapi_mechanism_base.cpp | 2 +-
 src/gssapi_mechanism_base.hpp | 2 ++
 3 files changed, 5 insertions(+), 2 deletions(-)

commit 40cbbe3c9ee1fccb81b2b88a7131316b46175193
Merge: 2c786a20 dcd1f203
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 5 20:17:39 2014 +0200

    Merge pull request #1008 from hurtonm/master

    Minor renaming

commit dcd1f2038e387a98a442e4c8b9e59d6f3efa27dp
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon May 5 19:51:38 2014 +0200

    Minor renaming

 src/plain_mechanism.cpp |  1 -
 src/stream_engine.cpp   | 50 ++++++++++++++++++++++++-------------------------
 src/stream_engine.hpp   |  8 ++++----
 3 files changed, 29 insertions(+), 30 deletions(-)

commit 2c786a200cf0d0b28054bac971cf25a42442961b
Merge: 87a08e17 d178c71e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat May 3 22:01:49 2014 +0200

    Merge pull request #1007 from tSed/sma/fork-fix

    Build-system: disable test_fork when fork() is not available

commit d178c71e212797bac1f0447bc4b25d30b05baac4
Author: Samuel Martin <s.martin49@gmail.com>
Date:   Sat May 3 14:07:14 2014 +0200

    cmake: fix indentation

 CMakeLists.txt | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit c83d4e01dd77384dfa0806cce1f0d13e7d6e9b05
Author: Samuel Martin <s.martin49@gmail.com>
Date:   Sat May 3 14:05:05 2014 +0200

    cmake: tests: disable test_fork if fork() is not available

    fork() support is optional and its availability is correctly detected at
    contfigure time.

    But test_fork was all always built, preventing build for targets that do
    not provide fork() from building successfully.

    This pacth fixes the CMakeLists.txt on this point.

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

commit 6fdafc458a776e063511bb83dc7791aabea00b05
Author: Samuel Martin <s.martin49@gmail.com>
Date:   Sat May 3 13:56:32 2014 +0200

    autotools: tests: disable test_fork if fork() is not available

    fork() support is optional and its availability is correctly detected at
    contfigure time.

    But test_fork was all always built, preventing build for targets that do
    not provide fork() from building successfully.

    This pacth fixes the autotools on this point.

 configure.ac      | 2 ++
 tests/Makefile.am | 8 ++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

commit 87a08e17486aa3b90191a38457f0b5808e64c8af
Merge: c5cd92da f2807d11
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat May 3 21:15:34 2014 +0200

    Merge pull request #1006 from hurtonm/master

    Remove i_properties interface

commit f2807d11a0440e3683729286c6475cd8ddd8a3c8
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat May 3 21:00:42 2014 +0200

    Remove i_properties interface

    We use metadata_t directly. No need for generic interface now.

 src/i_properties.hpp  | 47 -----------------------------------------------
 src/metadata.hpp      |  4 ++--
 src/msg.cpp           | 46 +++++++++++++++++++++++-----------------------
 src/msg.hpp           | 26 +++++++++++++-------------
 src/stream_engine.cpp |  2 +-
 src/zmq.cpp           |  8 ++++----
 6 files changed, 43 insertions(+), 90 deletions(-)

commit c5cd92da688c2be8c1d9c4affeb04ea9952279ab
Merge: f21116b7 2f084772
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat May 3 18:31:38 2014 +0200

    Merge pull request #1005 from ricnewton/master

    Initialise _has_src_addr variable, fixes hang on Windows.

commit 2f08477292dfbdf40c46cbe2fb9bb2818782c945
Author: Richard Newton <richard_newton@waters.com>
Date:   Sat May 3 13:59:37 2014 +0100

    Initialise _has_src_addr variable, fixes hang on Windows.

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

commit f21116b7bed158b9ca5ddd8031de327cdf62565d
Merge: dd6c7528 b0647431
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri May 2 23:20:37 2014 +0200

    Merge pull request #1003 from hintjens/master

    Added test_metadata

commit b06474312da65f2f89963ed8023b763d79edc375
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 23:14:27 2014 +0200

    ZAP vs. ZMTP metadata priority fixed

 src/stream_engine.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit c01365d4867ad0b9fe665222113c6b0b8bfd6244
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 23:13:11 2014 +0200

    Fixed man page example

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

commit bd4a76cc2a7b1380096fdd8bb6a13f4a60a7fe6c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 11:23:06 2014 +0200

    Problem: GSSAPI server doesn't parse ZAP user id

    Solution: add this to ZAP reply processing.

 src/gssapi_server.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 0d13971c056ac39f5dddd0c4343795dcb6e929c1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 22:28:19 2014 +0200

    Fixed compile error in test_security_null

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

commit 84ed81c014aabb1fe16aff63a5f324c8da3c3290
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 22:19:30 2014 +0200

    Added test_metadata

    - also prioritize ZAP metadata over ZMTP metadata in case application
      uses same names.

 .gitignore                    |   1 +
 doc/zmq_msg_gets.txt          |   9 +++-
 src/curve_client.cpp          |   3 +-
 src/curve_server.cpp          |   3 +-
 src/gssapi_mechanism_base.cpp |   6 +--
 src/mechanism.cpp             |   4 +-
 src/plain_mechanism.cpp       |  12 ++---
 src/stream_engine.cpp         |  17 ++++---
 tests/Makefile.am             |   6 ++-
 tests/test_metadata.cpp       | 116 ++++++++++++++++++++++++++++++++++++++++++
 tests/test_security_null.cpp  |  54 ++++++++++----------
 11 files changed, 175 insertions(+), 56 deletions(-)

commit dd6c752822e962d509dp3a1ba9ab07e4d36f4723
Merge: 0bc669b1 ded00177
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri May 2 17:46:34 2014 +0100

    Merge pull request #1001 from hintjens/master

    These commits broke regression tests, so I'm reverting them.

commit ded00177b36536b5f2740be123087432f4dd0e93
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 16:50:16 2014 +0200

    Revert "Add code to investigate data race"

    This reverts commit 5e0facda17b986943f0fe40a2dc6c98611655c35.

 include/zmq.h |  6 ------
 src/fq.cpp    | 29 +----------------------------
 src/lb.cpp    | 42 ++++--------------------------------------
 3 files changed, 5 insertions(+), 72 deletions(-)

commit d190325e4d49f922099319d190f4efc6fa9f6427
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 16:49:03 2014 +0200

    Revert "Enlarge the race window for some test cases"

    This reverts commit 2a84d2597469d272794a1fb5fb43c6260f335195.

    Broke regression test on test_hwm.cpp.

 tests/test_hwm.cpp   | 4 +---
 tests/test_proxy.cpp | 2 --
 tests/testutil.hpp   | 6 ------
 3 files changed, 1 insertion(+), 11 deletions(-)

commit 0bc669b106e1c9635e2c8369ed4ab545d8438392
Merge: 2db7cdc6 2a84d259
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 16:31:48 2014 +0200

    Merge pull request #1000 from daveab/feature/divide_by_zero_investigation

    Feature/divide by zero investigation

commit 2a84d2597469d272794a1fb5fb43c6260f335195
Author: dave b <david.brown@datasift.com>
Date:   Fri May 2 14:32:14 2014 +0100

    Enlarge the race window for some test cases

    These changes cause an assertion in lb_sendpipe() when executing the test_security_plain testcase.

 tests/test_hwm.cpp   | 4 +++-
 tests/test_proxy.cpp | 2 ++
 tests/testutil.hpp   | 6 ++++++
 3 files changed, 11 insertions(+), 1 deletion(-)

commit 5e0facda17b986943f0fe40a2dc6c98611655c35
Author: dave b <david.brown@datasift.com>
Date:   Fri May 2 14:27:33 2014 +0100

    Add code to investigate data race

    Provides control of race windows and logging for some of the interesting transitions.

 include/zmq.h |  6 ++++++
 src/fq.cpp    | 29 ++++++++++++++++++++++++++++-
 src/lb.cpp    | 42 ++++++++++++++++++++++++++++++++++++++----
 3 files changed, 72 insertions(+), 5 deletions(-)

commit 2db7cdc6a6dp62fa2196d6a51d2310ab51c041f8
Merge: 55c06924 8d82cc2a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 13:36:38 2014 +0200

    Merge pull request #999 from hurtonm/master

    Include ZMTP properties in message metadata

commit 8d82cc2a0b91a4883e3643f7f22dee16d5d4978f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri May 2 12:33:26 2014 +0200

    Include ZMTP properties in message metadata

    Metadata are built in stream_engine now.
    This makes it easy to extend metadata with user-defined properties.

 src/mechanism.cpp     | 22 ++++++++--------------
 src/mechanism.hpp     | 16 ++++++++++++----
 src/metadata.cpp      |  2 +-
 src/metadata.hpp      |  5 +++--
 src/stream_engine.cpp | 33 ++++++++++++++++++++++++++++++++-
 src/stream_engine.hpp |  4 ++++
 6 files changed, 60 insertions(+), 22 deletions(-)

commit 55c06924c8af421351599037572c3a365851d6d8
Merge: f721a7ad e95b477a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 2 09:11:55 2014 +0200

    Merge pull request #998 from hurtonm/master

    Don't add empty metadata to received messages

commit e95b477a8706fa4d7f3d0351300c27371c2867ad
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri May 2 09:00:48 2014 +0200

    Don't add empty metadata to received messages

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

commit f721a7ad07cf3e26d4e36ebd392d71a173fb8e45
Merge: 49f18d55 351c8453
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 1 22:36:42 2014 +0200

    Merge pull request #997 from soundart/master

    tweetnacl integration for curve

commit 351c84533928b769fec99e117c32e6ca11dd81bf
Merge: 551bcddp 5a3b633b
Author: Frank Hartmann <soundart@gmx.net>
Date:   Thu May 1 21:39:07 2014 +0200

    Merge branch 'master' of github.com:soundart/libzmq

    Conflicts:
            CMakeLists.txt

commit 551bcddp6c9fb940432e19d6176e684b32257cab
Author: Frank Hartmann <soundart@gmx.net>
Date:   Thu May 1 21:35:53 2014 +0200

    add metadata

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit 01afdf84769196c2476178fc44b9d8c22e2e21de
Author: Frank Hartmann <soundart@gmx.net>
Date:   Thu May 1 21:35:36 2014 +0200

    no tweetnacl for windows currently

 CMakeLists.txt | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 63cc250d05d5e09eb990d0d89f82df703ab000f7
Author: Frank Hartmann <soundart@gmx.net>
Date:   Thu May 1 21:24:49 2014 +0200

    typo

 tweetnacl/src/tweetnacl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e5a294ec023448450b082306b64c204d04543594
Author: Frank Hartmann <soundart@gmx.net>
Date:   Thu May 1 21:24:20 2014 +0200

    tweetnacl integration

 .gitignore                                  |   1 +
 CMakeLists.txt                              |  25 +-
 src/curve_client.cpp                        |   2 -
 src/curve_client.hpp                        |   7 +-
 src/curve_server.cpp                        |   1 -
 src/curve_server.hpp                        |   9 +-
 src/zmq_utils.cpp                           |   7 +-
 tweetnacl/contrib/randombytes/devurandom.c  |  34 ++
 tweetnacl/contrib/randombytes/devurandom.h  |  24 +
 tweetnacl/contrib/randombytes/randombytes.h |   5 +
 tweetnacl/src/tweetnacl.c                   | 816 ++++++++++++++++++++++++++++
 tweetnacl/src/tweetnacl.h                   | 273 ++++++++++
 tweetnacl/src/tweetnacl_base.h              |  41 ++
 13 files changed, 1236 insertions(+), 9 deletions(-)

commit 49f18d55cb08b7f99bf33ce40f2d6423fd8dc3ef
Merge: 62bb403e b9c27481
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 1 17:52:42 2014 +0200

    Merge pull request #996 from hurtonm/master

    Add metadata to received messages

commit b9c274814697ef349638989792b3588d0b06b911
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Apr 30 14:17:38 2014 +0200

    Add metadata to received messages

 src/Makefile.am         |  2 ++
 src/curve_server.cpp    |  2 +-
 src/gssapi_server.cpp   |  2 +-
 src/i_properties.hpp    |  4 +++-
 src/mechanism.cpp       | 16 +++++++++++++-
 src/mechanism.hpp       | 10 ++++++++-
 src/metadata.cpp        | 49 ++++++++++++++++++++++++++++++++++++++++
 src/metadata.hpp        | 59 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/null_mechanism.cpp  |  2 +-
 src/plain_mechanism.cpp |  2 +-
 src/stream_engine.cpp   |  3 +++
 src/zmq.cpp             |  2 +-
 12 files changed, 145 insertions(+), 8 deletions(-)

commit 62bb403eeaadp3be079652e8c28a9c928cb966c7
Merge: 408dea79 cac0f983
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu May 1 15:23:10 2014 +0100

    Merge pull request #995 from hintjens/master

    Bumped ABI version to 4.0.0

commit cac0f9838d987a0534e34fe141017657ffcb9ff9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 1 16:12:51 2014 +0200

    Problem: generates incompatible libzmq.so.3.1.0

    See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743508

    The ABI in fact changed in two significant ways, one with inproc
    connects, and one with socket monitoring

    Solution: generate libzmq.so.4.0.0 library instead.

    This change should be backported to zeromq-4.x

 .gitignore   | 1 +
 configure.ac | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 79ef02538f87da1083b55c7b29c9795a1a04e1d6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 30 14:51:57 2014 +0200

    Port 9999 is unsafe for tests

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

commit fe3e8c5c70dc3fbcb0244c5f4c52dcd71b80f858
Author: Stoian Ivanov <sdr@tera-com.com>
Date:   Wed Apr 30 16:34:55 2014 +0300

    linking fd to pipe identity via socket option

 include/zmq.h         |  1 +
 src/i_engine.hpp      |  7 ++++++-
 src/pipe.cpp          |  1 +
 src/pipe.hpp          |  3 +++
 src/router.cpp        | 27 +++++++++++++++++++++++++++
 src/router.hpp        |  2 +-
 src/session_base.cpp  |  3 ++-
 src/socket_base.cpp   | 10 ++++++++++
 src/socket_base.hpp   |  5 ++++-
 src/stream_engine.hpp |  2 ++
 10 files changed, 57 insertions(+), 4 deletions(-)

commit 408dea796f369e9edf96e99d215971972900cb5c
Merge: 69d27b33 acb68070
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 30 14:57:08 2014 +0200

    Merge pull request #993 from klnikita/src_addr_connect

    Allow to set up a source address and port for outgoing tcp connections in zmq_connect

commit acb68070415691413ade304c2a75beeb69106909
Author: Nikita Kozlov <nikita@elyzion.net>
Date:   Wed Apr 30 14:43:37 2014 +0200

    Allow to set up a source address and port for outgoing tcp connections in zmq_connect()

    Few examples:
    tcp:://192.168.0.4:55555;192.168.0.254:1234
    tcp:://192.168.0.4:0;192.168.0.254:1234
    tcp:://eth2:55555;192.168.0.254:1234

 doc/zmq_tcp.txt                 |   9 ++++
 src/tcp_address.cpp             | 115 ++++++++++++++++++++++++++++++++--------
 src/tcp_address.hpp             |  19 +++++--
 src/tcp_connecter.cpp           |   9 ++++
 tests/Makefile.am               |   2 +
 tests/test_bind_src_address.cpp |  47 ++++++++++++++++
 6 files changed, 174 insertions(+), 27 deletions(-)

commit 69d27b3338f537ff15dc9dcf67371e50ffe784f5
Merge: ddde62a6 19c62b93
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 30 14:38:44 2014 +0200

    Merge pull request #992 from hurtonm/master

    Define i_properties interface

commit 19c62b93fc813cce9beffc9ab5e3b05cc53230b0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Apr 30 14:17:38 2014 +0200

    Define i_properties interface

    - copy and move message operations are updated to maintain proper
      reference count of properties object
    - zmq_msg_gets updated to use i_properties interface to fetch property
      value
    - setter/getter added to msg_t class

 src/Makefile.am      |  1 +
 src/i_properties.hpp | 45 +++++++++++++++++++++++++++++++++++++++++++++
 src/msg.cpp          | 28 +++++++++++++++++++++++++++-
 src/msg.hpp          |  5 +++--
 src/zmq.cpp          |  8 ++++++--
 5 files changed, 82 insertions(+), 5 deletions(-)

commit ddde62a68c7ad24d65ad21ea32a9bc8fd9441c39
Merge: c24b457c f81a1304
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 30 14:07:56 2014 +0200

    Merge pull request #991 from hurtonm/master

    Update function prototype for zmq_msg_gets ()

commit f81a1304ff7168b483ff0e2666366f568dc0b2ef
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Apr 30 13:11:12 2014 +0200

    Update function prototype for zmq_msg_gets ()

    Added modifiers reflect the following properties:
    - zmq_msg_gets () does not mutate property parameter
    - zmq_msg_gets () returns a pointer to memory the caller should not
      modify

 doc/zmq_msg_gets.txt | 2 +-
 include/zmq.h        | 2 +-
 src/zmq.cpp          | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit c24b457ccfa371f1400cf0436c8d70eb7c4803ee
Merge: 26bf7497 724b2bb8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 29 22:47:26 2014 +0200

    Merge pull request #988 from hurtonm/master

    Add pointer to properties into message structure

commit 724b2bb84479836343c9f885ec301f2634197035
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Apr 29 22:30:51 2014 +0200

    Add pointer to properties into message structure

 include/zmq.h |  2 +-
 src/msg.cpp   | 11 ++++++++---
 src/msg.hpp   | 22 +++++++++++++++-------
 3 files changed, 24 insertions(+), 11 deletions(-)

commit 26bf74972aaf3a7086736c62134d6954cc08c6f3
Merge: 4307641f 39ccfea0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Apr 29 22:36:31 2014 +0200

    Merge pull request #987 from hintjens/master

    Various small cleanups

commit 39ccfea03679a671009bc907262f81699dc42cc4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 29 22:21:58 2014 +0200

    Added more scaffolding for security

    - additional messages to help people debugging security errors

 src/curve_server.cpp         | 52 ++++++++++++++++++++++++++-------------
 src/null_mechanism.cpp       | 30 ++++++++++++++++-------
 src/plain_mechanism.cpp      | 41 ++++++++++++++++++++++++++-----
 src/stream_engine.cpp        | 11 ++++++++-
 src/tcp_listener.cpp         |  2 +-
 tests/test_security_null.cpp | 58 ++++++++++++++++++++++----------------------
 6 files changed, 131 insertions(+), 63 deletions(-)

commit d1232d144ac6769387e5837fe1919290211c530e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 29 12:13:54 2014 +0200

    Fixed NULL security test

    Has some bits commented out due to #939, now work.

    Note: there is an issue in libzmq when binding/unbinding or
    connecting/disconnecting (I did not investigate deeper) the
    same socket several times. Even closing the socket with zero
    linger, zmq_ctx_term will block. The workaround in this test
    case is to close the sockets for each test step.

 tests/test_security_null.cpp | 80 ++++++++++++++++++--------------------------
 1 file changed, 33 insertions(+), 47 deletions(-)

commit c6f8093bfb79fd3b11976f30c362bb5160d3e0bf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 29 12:06:57 2014 +0200

    Added zmq_ctx_shutdown to Makefile

    - also removed deprecated man pages from Makefile
    - they remain in repository for reference

 doc/Makefile.am |  6 +++---
 doc/zmq.txt     | 10 +---------
 2 files changed, 4 insertions(+), 12 deletions(-)

commit 4307641f278b4948d28a2711ce3878a73b2abcc7
Merge: 2d6f5b0e c1ac534e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 28 19:58:51 2014 +0200

    Merge pull request #986 from evoskuil/master

    Windows build/packaging updates.

commit c1ac534e6ed184dpa30c9c3e34d2b34060ab130e
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Apr 28 10:49:02 2014 -0700

    Change OpenEvent to OpenEventW (Windows builds Unicode only).

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

commit 2d6f5b0ec460b43d4aa32a6d77db7d35a72314e6
Merge: 50afebe4 9753de85
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Apr 28 10:44:11 2014 +0100

    Merge pull request #985 from hintjens/master

    Cleaned up socket monitor code, tests, and man page

commit 9753de8566d335703c96160aa4e5f9c6e55208a9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 28 11:30:04 2014 +0200

    Problem: zmq_socket_monitor code is dirty

    Specifically:

    * zmq_event_t should not be used internally in libzmq, it was
      meant to be an outward facing structure.

    * In 4.x, zmq_event_t does not correspond to monitor events, so
      I removed the structure entirely.

    * man page for zmq_socket_monitor is incomplete and the example
      code was particularly nasty.

    * test_monitor.cpp needed rewriting, it was not clean.

 doc/zmq_socket_monitor.txt | 342 +++++++++++++++++++++------------------------
 include/zmq.h              |  42 ++----
 src/socket_base.cpp        | 128 ++++++-----------
 src/socket_base.hpp        |   2 +-
 tests/test_monitor.cpp     | 302 +++++++++++----------------------------
 tests/testutil.hpp         |   2 +-
 6 files changed, 295 insertions(+), 523 deletions(-)

commit 97935c582ee3cadaa6c2f7848941591f5af6bc7e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 10 11:55:40 2014 +0200

    Added link to zmq_msg_gets

 doc/zmq.txt | 1 +
 1 file changed, 1 insertion(+)

commit 50afebe47ce51dba33149543608303bb8e45774d
Merge: cb0e8f1a bbaa85e7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 27 14:38:20 2014 +0200

    Merge pull request #984 from ricnewton/master

    Fix windows non-unicode build

commit bbaa85e7dd0627d7d239109dfad3a72eee52f413
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Apr 27 13:29:20 2014 +0100

    Fix windows non-unicode build

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

commit cb0e8f1a9f94c3e9c06991e54b1bc23a6125b39b
Merge: 763bf34e d4c5dc9b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 27 07:45:14 2014 +0200

    Merge pull request #983 from pijyoi/master

    update ZMQ_STREAM docs about connection notification

commit d4c5dc9b1d21686d50d687a584133e4543908069
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sun Apr 27 06:16:59 2014 +0800

    update ZMQ_STREAM docs about connection notification

    Also the portion about how to close a connection does not only apply to
    servers.

 doc/zmq_socket.txt | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 2b9a5e49f4e972ebd82d8f786a0ccd176988c585
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Apr 25 04:52:23 2014 -0700

    Uupdate GSL referenece in packaging script.

 packaging/nuget/package.bat | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 763bf34e881cc36de2a0913c2871f18220cea45b
Merge: e37c2062 e97bed37
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 25 09:56:26 2014 +0200

    Merge pull request #981 from evoskuil/master

    Add gssapi files to msvc, use Windows Unicode APIs.

commit e97bed372795dp9fe42281151cbcdedf0cab6dd8
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Apr 25 00:46:44 2014 -0700

    Add gssapi files to msvc project.

 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  6 ++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 18 ++++++++++++++++++
 2 files changed, 24 insertions(+)

commit ca29709f38dac8e6786e2c65d632da53c3781761
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Apr 25 00:43:47 2014 -0700

    Change TCHAR to Unicode, use safe swprintf to remove warning.

 src/signaler.cpp | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

commit e37c20621157399c86375d503bc6be91dbaf172c
Merge: dd64f643 7abf2564
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 25 07:10:49 2014 +0200

    Merge pull request #980 from claws/fix_build_issue_when_missing_gssapi

    Fix build issue when missing gssapi

commit 7abf2564f8923dde3d5fba9d32596d765e2cd181
Author: Chris Laws <clawsicus@gmail.com>
Date:   Fri Apr 25 13:48:39 2014 +0930

    fixes for gssapi build issue

 src/gssapi_client.cpp | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 09647fa916134209564ebc1526c00c3423c8e2c2
Author: Chris Laws <clawsicus@gmail.com>
Date:   Fri Apr 25 13:47:07 2014 +0930

    src/gssapi_client.cpp

 src/gssapi_client.hpp         |  6 +++++-
 src/gssapi_mechanism_base.cpp | 34 +++++++++++++++++++---------------
 src/gssapi_mechanism_base.hpp | 25 +++++++++++++++----------
 src/gssapi_server.cpp         |  8 ++++++--
 src/gssapi_server.hpp         |  8 ++++++--
 src/stream_engine.cpp         |  8 +++++---
 6 files changed, 56 insertions(+), 33 deletions(-)

commit dd64f6432c74df49ca1638fb857228a72087b8fb
Merge: d1bdd45e d1334d9d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 25 00:53:51 2014 +0200

    Merge pull request #978 from connamara/gssapi

    GSSAPI/Kerberos Security Mechanism

commit d1334d9df899f56bc75e84e8ee797fe888620b2a
Author: Chris Busbey <chris.busbey@gmail.com>
Date:   Thu Apr 24 14:39:29 2014 -0700

    using latest copyright header

 AUTHORS                       | 1 +
 src/gssapi_client.cpp         | 2 +-
 src/gssapi_client.hpp         | 2 +-
 src/gssapi_mechanism_base.cpp | 2 +-
 src/gssapi_mechanism_base.hpp | 2 +-
 src/gssapi_server.cpp         | 3 +--
 src/gssapi_server.hpp         | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

commit 634c8abe2996911483d6fdcb9f4b84121c8de06b
Author: Chris Busbey <chris.busbey@gmail.com>
Date:   Wed Apr 23 12:45:13 2014 -0700

    encrypt option on gss ready

 src/gssapi_mechanism_base.cpp | 13 +++++++++----
 src/options.cpp               |  4 ++--
 2 files changed, 11 insertions(+), 6 deletions(-)

commit 27591d2da6a3df7ef5f9a7d0dcec40f25233b4bd
Author: Chris Busbey <chris.busbey@gmail.com>
Date:   Wed Apr 23 11:01:54 2014 -0700

    ZMQ_GSSAPI_PLAINTEXT option for disabling encryption

 include/zmq.h                 |  1 +
 src/gssapi_client.cpp         | 12 ++++++++++--
 src/gssapi_mechanism_base.cpp |  3 ++-
 src/gssapi_mechanism_base.hpp |  3 +++
 src/gssapi_server.cpp         | 12 ++++++++++--
 src/options.cpp               | 19 ++++++++++++++++++-
 src/options.hpp               |  3 +++
 7 files changed, 47 insertions(+), 6 deletions(-)

commit 18da8a7402554d0a45dbe34e1c5a49e73a1ea908
Author: Chris Busbey <chris.busbey@gmail.com>
Date:   Wed Apr 23 12:19:19 2014 -0700

    encode and decode ready message

 src/gssapi_mechanism_base.cpp | 8 ++++++--
 src/gssapi_mechanism_base.hpp | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 2e1645a519b0d8bc3021fbab9f35942dp6475ab6
Author: Chris Busbey <chris.busbey@gmail.com>
Date:   Wed Apr 23 10:20:22 2014 -0700

    principle->principal

 include/zmq.h                 |  4 ++--
 src/gssapi_client.cpp         | 16 ++++++++--------
 src/gssapi_client.hpp         |  2 +-
 src/gssapi_mechanism_base.cpp |  2 +-
 src/gssapi_mechanism_base.hpp |  6 +++---
 src/gssapi_server.cpp         | 24 ++++++++++++------------
 src/options.cpp               | 24 ++++++++++++------------
 src/options.hpp               |  6 +++---
 8 files changed, 42 insertions(+), 42 deletions(-)

commit 87834dd63fe5fb2ffdaa7a760abe8593cf2f6984
Author: Chris Busbey <cbusbey@connamara.com>
Date:   Thu Nov 21 12:46:23 2013 -0600

    fixed up comments from pr

 src/gssapi_client.cpp         | 15 ++++++++++++++-
 src/gssapi_mechanism_base.cpp | 11 +----------
 src/gssapi_server.cpp         | 16 +++++++++++++++-
 src/options.cpp               |  2 +-
 4 files changed, 31 insertions(+), 13 deletions(-)

commit 5441db3d7db66179c452dcdp9264ed5dd662b273
Author: Chris Busbey <chris.busbey@gmail.com>
Date:   Wed Nov 20 14:01:16 2013 -0800

    configurable principle and service principle (for client)

 include/zmq.h                 |  3 ++-
 src/gssapi_client.cpp         |  6 ++++--
 src/gssapi_client.hpp         |  3 +++
 src/gssapi_mechanism_base.cpp | 13 +++++++++++--
 src/gssapi_mechanism_base.hpp |  8 ++++----
 src/gssapi_server.cpp         |  6 ------
 src/options.cpp               | 31 ++++++++++++++++++++++++-------
 src/options.hpp               |  4 ++++
 8 files changed, 52 insertions(+), 22 deletions(-)

commit 4e6880ec955eed5dc8383898a4b7f90940283dc1
Author: Chris Busbey <cbusbey@connamara.com>
Date:   Tue Nov 19 11:45:14 2013 -0600

    gss mech sends principle as part of zap request

 src/gssapi_server.cpp | 164 +++++++++++++++++++++++++++++++++++++++++++++++++-
 src/gssapi_server.hpp |   3 +
 2 files changed, 165 insertions(+), 2 deletions(-)

commit be62be0fa4bbe35da91abc393b3b4732f889884f
Author: Chris Busbey <cbusbey@connamara.com>
Date:   Fri Nov 8 11:15:51 2013 -0600

    gss encode/decode 'more' flag

 src/gssapi_mechanism_base.cpp | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

commit 778c72b9ed4bcc0192b3503adaa3889d03471e6c
Author: Chris Busbey <cbusbey@connamara.com>
Date:   Fri Nov 8 11:12:29 2013 -0600

    :fixed  client state transition bug

 src/gssapi_client.cpp | 5 -----
 1 file changed, 5 deletions(-)

commit 04db842dcc10c7790fd77d0f8a44aa41709dee59
Author: Chris Busbey <chris.busbey@gmail.com>
Date:   Thu Nov 7 11:49:45 2013 -0800

    added ready for meta data exchange at end of gss handshake

 src/gssapi_client.cpp         | 31 ++++++++++++++++++++-------
 src/gssapi_client.hpp         |  7 +++----
 src/gssapi_mechanism_base.cpp | 49 ++++++++++++++++++++++++++++++++++++++++++-
 src/gssapi_mechanism_base.hpp | 15 ++++++++++---
 src/gssapi_server.cpp         | 30 ++++++++++++++++++++------
 src/gssapi_server.hpp         |  7 +++----
 6 files changed, 113 insertions(+), 26 deletions(-)

commit 761508bf4b57b02444a5f52a297d5026ca6671b1
Author: Mike Gatny <mgatny@gmail.com>
Date:   Tue Oct 8 00:25:18 2013 -0500

    Added comments to methods.

 src/gssapi_mechanism_base.hpp | 48 ++++++++++++++++++++++++++-----------------
 1 file changed, 29 insertions(+), 19 deletions(-)

commit 3c414c4aac45a821645ff8c23bc838b5ac017b30
Author: Mike Gatny <mgatny@gmail.com>
Date:   Tue Oct 8 00:12:50 2013 -0500

    GSSAPI mechanism now fully working with encryption

 AUTHORS                       |   1 +
 src/gssapi_client.cpp         | 126 +++++++++++------------
 src/gssapi_client.hpp         |  13 ++-
 src/gssapi_mechanism_base.cpp | 232 +++++++++++++++++++++++-------------------
 src/gssapi_mechanism_base.hpp |  60 ++++++-----
 src/gssapi_server.cpp         | 125 ++++++++++-------------
 src/gssapi_server.hpp         |  16 ++-
 7 files changed, 298 insertions(+), 275 deletions(-)

commit eb2862525b718922f40d1536a80557ab987dee94
Author: Mike Gatny <mgatny@gmail.com>
Date:   Thu Oct 3 15:44:26 2013 -0500

    Methods to send/recv gssapi-wrapped messages

 src/gssapi_client.cpp         | 14 +++++++++
 src/gssapi_client.hpp         |  2 ++
 src/gssapi_mechanism_base.cpp | 68 ++++++++++++++++++++++++++++++++++++++++++-
 src/gssapi_mechanism_base.hpp | 12 ++++++--
 src/gssapi_server.cpp         | 14 +++++++++
 src/gssapi_server.hpp         |  2 ++
 6 files changed, 108 insertions(+), 4 deletions(-)

commit 1445516c41de0a3942d2c3ed09017564b9a7723e
Author: Mike Gatny <mgatny@gmail.com>
Date:   Thu Oct 3 13:43:20 2013 -0500

    Establishing GSSAPI sec context is working now

 configure.ac                  |   1 +
 src/gssapi_client.cpp         | 180 +++++++++------------
 src/gssapi_client.hpp         |  19 +--
 src/gssapi_mechanism_base.cpp |  47 +++++-
 src/gssapi_mechanism_base.hpp |  25 +++
 src/gssapi_server.cpp         | 361 +++++++++---------------------------------
 src/gssapi_server.hpp         |  27 +---
 7 files changed, 233 insertions(+), 427 deletions(-)

commit 6290ba168f0e60fa9830411f17f4fb2027b41604
Author: Mike Gatny <mgatny@gmail.com>
Date:   Wed Oct 2 22:09:36 2013 -0500

    Added gss produce/process routines.

    For exchanging tokens.

 src/gssapi_client.cpp         | 14 ++++++--
 src/gssapi_client.hpp         |  3 +-
 src/gssapi_mechanism_base.cpp | 77 ++++++++++++++++++++++++++++++++++++-------
 src/gssapi_mechanism_base.hpp | 12 +++----
 src/gssapi_server.cpp         | 14 ++++++--
 5 files changed, 96 insertions(+), 24 deletions(-)

commit c00b8c347be5754a4ceb6f6669dcc34886912dda
Author: Mike Gatny <mgatny@gmail.com>
Date:   Mon Sep 30 15:51:20 2013 -0500

    Refactored common impl into gssapi_mechanism_base.

    E.g., both client and server need to produce and process GSSAPI tokens.

 src/Makefile.am               |  2 ++
 src/gssapi_client.cpp         | 51 +---------------------------
 src/gssapi_client.hpp         | 10 +++---
 src/gssapi_mechanism_base.cpp | 77 +++++++++++++++++++++++++++++++++++++++++++
 src/gssapi_mechanism_base.hpp | 48 +++++++++++++++++++++++++++
 src/gssapi_server.cpp         | 55 ++-----------------------------
 src/gssapi_server.hpp         |  9 +++--
 7 files changed, 139 insertions(+), 113 deletions(-)

commit a4a0dc66449270ce5a850e2fc2fc06a443183b8b
Author: Mike Gatny <mgatny@gmail.com>
Date:   Mon Sep 30 14:13:03 2013 -0500

    Split up gssapi mechanism into client and server.

 src/Makefile.am                                 |   6 +-
 src/gssapi_client.cpp                           | 245 ++++++++++++++++++++++++
 src/gssapi_client.hpp                           |  72 +++++++
 src/{gssapi_mechanism.cpp => gssapi_server.cpp} | 141 ++------------
 src/{gssapi_mechanism.hpp => gssapi_server.hpp} |  18 +-
 src/stream_engine.cpp                           |  10 +-
 6 files changed, 350 insertions(+), 142 deletions(-)

commit abcb224318886e228f2d6c472f7f602c28fbf63e
Author: Mike Gatny <mgatny@gmail.com>
Date:   Fri Sep 27 10:34:53 2013 -0500

    stubbed in TOKEN command

 src/gssapi_mechanism.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++++--
 src/gssapi_mechanism.hpp |  8 +++++-
 2 files changed, 69 insertions(+), 3 deletions(-)

commit 4b1c851db4993995c07156f83a87845b23a77b21
Author: Mike Gatny <mgatny@gmail.com>
Date:   Tue Sep 24 22:20:01 2013 -0500

    Stubbed in gssapi security mechanism.

 include/zmq.h            |   3 +
 src/Makefile.am          |   2 +
 src/gssapi_mechanism.cpp | 481 +++++++++++++++++++++++++++++++++++++++++++++++
 src/gssapi_mechanism.hpp |  88 +++++++++
 src/options.cpp          |  35 +++-
 src/stream_engine.cpp    |  13 +-
 6 files changed, 619 insertions(+), 3 deletions(-)

commit d1bdd45e80233df64e3a086d04729f1987372d94
Merge: cfe20360 1ee980c1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 17 18:21:35 2014 +0200

    Merge pull request #975 from evoskuil/master

    Update file tools versioning in VS projects.

commit 1ee980c19101437dd1973ed4286d399b26c93d85
Author: Eric Voskuil <eric@voskuil.org>
Date:   Tue Apr 15 01:43:24 2014 -0700

    Update filter file tool versions.

 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 2 +-
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5a76db6f2795d51acb74a277dc911ff6ac18fc9a
Merge: d03a1b0d cfe20360
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Apr 14 23:47:55 2014 -0700

    Merge branch 'zeromq/master'

    Conflicts:
            builds/msvc/vs2010/inproc_lat/inproc_lat.props
            builds/msvc/vs2010/inproc_thr/inproc_thr.props
            builds/msvc/vs2010/libsodium.import.props
            builds/msvc/vs2010/libzmq.import.props
            builds/msvc/vs2010/libzmq/libzmq.props
            builds/msvc/vs2010/local_lat/local_lat.props
            builds/msvc/vs2010/local_thr/local_thr.props
            builds/msvc/vs2010/properties/Common.props
            builds/msvc/vs2010/properties/Console.props
            builds/msvc/vs2010/properties/ConsoleDebugDynamic.props
            builds/msvc/vs2010/properties/ConsoleDebugLinkTimeCodeGeneration.props
            builds/msvc/vs2010/properties/ConsoleDebugStatic.props
            builds/msvc/vs2010/properties/ConsoleReleaseDynamic.props
            builds/msvc/vs2010/properties/ConsoleReleaseLinkTimeCodeGeneration.props
            builds/msvc/vs2010/properties/ConsoleReleaseStatic.props
            builds/msvc/vs2010/properties/Debug.props
            builds/msvc/vs2010/properties/Dynamic.props
            builds/msvc/vs2010/properties/DynamicDebug.props
            builds/msvc/vs2010/properties/DynamicRelease.props
            builds/msvc/vs2010/properties/LinkTimeCodeGeneration.props
            builds/msvc/vs2010/properties/Release.props
            builds/msvc/vs2010/properties/Static.props
            builds/msvc/vs2010/properties/StaticDebug.props
            builds/msvc/vs2010/properties/StaticDebugLinkTimeCodeGeneration.props
            builds/msvc/vs2010/properties/StaticLinkTimeCodeGeneration.props
            builds/msvc/vs2010/properties/StaticRelease.props
            builds/msvc/vs2010/properties/StaticReleaseLinkTimeCodeGeneration.props
            builds/msvc/vs2010/properties/Win32.props
            builds/msvc/vs2010/properties/x64.props
            builds/msvc/vs2010/remote_lat/remote_lat.props
            builds/msvc/vs2010/remote_thr/remote_thr.props

commit d03a1b0d5b74c18aff8fbd810916de1b56bc473a
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Apr 14 19:19:30 2014 -0700

    Fix platform tools versioning on project files.

 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 2 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 2 +-
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj | 2 +-
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj | 2 +-
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   | 2 +-
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   | 2 +-
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj | 2 +-
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

commit bd45b74dd37b107c609de6d6c31be1002cb93762
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Apr 14 19:18:36 2014 -0700

    Remove versioning from VS .props files.

 builds/msvc/vs2010/inproc_lat/inproc_lat.props                     | 3 +--
 builds/msvc/vs2010/inproc_thr/inproc_thr.props                     | 3 +--
 builds/msvc/vs2010/libsodium.import.props                          | 3 +--
 builds/msvc/vs2010/libzmq.import.props                             | 3 +--
 builds/msvc/vs2010/libzmq/libzmq.props                             | 7 +++----
 builds/msvc/vs2010/local_lat/local_lat.props                       | 3 +--
 builds/msvc/vs2010/local_thr/local_thr.props                       | 3 +--
 builds/msvc/vs2010/properties/Common.props                         | 3 +--
 builds/msvc/vs2010/properties/Console.props                        | 3 +--
 builds/msvc/vs2010/properties/ConsoleDebugDynamic.props            | 3 +--
 .../vs2010/properties/ConsoleDebugLinkTimeCodeGeneration.props     | 3 +--
 builds/msvc/vs2010/properties/ConsoleDebugStatic.props             | 3 +--
 builds/msvc/vs2010/properties/ConsoleReleaseDynamic.props          | 3 +--
 .../vs2010/properties/ConsoleReleaseLinkTimeCodeGeneration.props   | 3 +--
 builds/msvc/vs2010/properties/ConsoleReleaseStatic.props           | 3 +--
 builds/msvc/vs2010/properties/Debug.props                          | 3 +--
 builds/msvc/vs2010/properties/Dynamic.props                        | 3 +--
 builds/msvc/vs2010/properties/DynamicDebug.props                   | 3 +--
 builds/msvc/vs2010/properties/DynamicRelease.props                 | 3 +--
 builds/msvc/vs2010/properties/LinkTimeCodeGeneration.props         | 3 +--
 builds/msvc/vs2010/properties/Release.props                        | 3 +--
 builds/msvc/vs2010/properties/Static.props                         | 3 +--
 builds/msvc/vs2010/properties/StaticDebug.props                    | 3 +--
 .../msvc/vs2010/properties/StaticDebugLinkTimeCodeGeneration.props | 3 +--
 builds/msvc/vs2010/properties/StaticLinkTimeCodeGeneration.props   | 3 +--
 builds/msvc/vs2010/properties/StaticRelease.props                  | 3 +--
 .../vs2010/properties/StaticReleaseLinkTimeCodeGeneration.props    | 3 +--
 builds/msvc/vs2010/properties/Win32.props                          | 3 +--
 builds/msvc/vs2010/properties/x64.props                            | 3 +--
 builds/msvc/vs2010/remote_lat/remote_lat.props                     | 3 +--
 builds/msvc/vs2010/remote_thr/remote_thr.props                     | 3 +--
 builds/msvc/vs2012/inproc_lat/inproc_lat.props                     | 3 +--
 builds/msvc/vs2012/inproc_thr/inproc_thr.props                     | 3 +--
 builds/msvc/vs2012/libsodium.import.props                          | 3 +--
 builds/msvc/vs2012/libzmq/libzmq.props                             | 7 +++----
 builds/msvc/vs2012/local_lat/local_lat.props                       | 3 +--
 builds/msvc/vs2012/local_thr/local_thr.props                       | 3 +--
 builds/msvc/vs2012/properties/Common.props                         | 3 +--
 builds/msvc/vs2012/properties/Console.props                        | 3 +--
 builds/msvc/vs2012/properties/ConsoleDebugDynamic.props            | 3 +--
 .../vs2012/properties/ConsoleDebugLinkTimeCodeGeneration.props     | 3 +--
 builds/msvc/vs2012/properties/ConsoleDebugStatic.props             | 3 +--
 builds/msvc/vs2012/properties/ConsoleReleaseDynamic.props          | 3 +--
 .../vs2012/properties/ConsoleReleaseLinkTimeCodeGeneration.props   | 3 +--
 builds/msvc/vs2012/properties/ConsoleReleaseStatic.props           | 3 +--
 builds/msvc/vs2012/properties/Debug.props                          | 3 +--
 builds/msvc/vs2012/properties/Dynamic.props                        | 3 +--
 builds/msvc/vs2012/properties/DynamicDebug.props                   | 3 +--
 builds/msvc/vs2012/properties/DynamicRelease.props                 | 3 +--
 builds/msvc/vs2012/properties/LinkTimeCodeGeneration.props         | 3 +--
 builds/msvc/vs2012/properties/Release.props                        | 3 +--
 builds/msvc/vs2012/properties/Static.props                         | 3 +--
 builds/msvc/vs2012/properties/StaticDebug.props                    | 3 +--
 .../msvc/vs2012/properties/StaticDebugLinkTimeCodeGeneration.props | 3 +--
 builds/msvc/vs2012/properties/StaticLinkTimeCodeGeneration.props   | 3 +--
 builds/msvc/vs2012/properties/StaticRelease.props                  | 3 +--
 .../vs2012/properties/StaticReleaseLinkTimeCodeGeneration.props    | 3 +--
 builds/msvc/vs2012/properties/Win32.props                          | 3 +--
 builds/msvc/vs2012/properties/x64.props                            | 3 +--
 builds/msvc/vs2012/remote_lat/remote_lat.props                     | 3 +--
 builds/msvc/vs2012/remote_thr/remote_thr.props                     | 3 +--
 builds/msvc/vs2013/inproc_lat/inproc_lat.props                     | 3 +--
 builds/msvc/vs2013/inproc_thr/inproc_thr.props                     | 3 +--
 builds/msvc/vs2013/libsodium.import.props                          | 3 +--
 builds/msvc/vs2013/libzmq/libzmq.props                             | 3 +--
 builds/msvc/vs2013/local_lat/local_lat.props                       | 3 +--
 builds/msvc/vs2013/local_thr/local_thr.props                       | 3 +--
 builds/msvc/vs2013/properties/Common.props                         | 3 +--
 builds/msvc/vs2013/properties/Console.props                        | 3 +--
 builds/msvc/vs2013/properties/ConsoleDebugDynamic.props            | 3 +--
 .../vs2013/properties/ConsoleDebugLinkTimeCodeGeneration.props     | 3 +--
 builds/msvc/vs2013/properties/ConsoleDebugStatic.props             | 3 +--
 builds/msvc/vs2013/properties/ConsoleReleaseDynamic.props          | 3 +--
 .../vs2013/properties/ConsoleReleaseLinkTimeCodeGeneration.props   | 3 +--
 builds/msvc/vs2013/properties/ConsoleReleaseStatic.props           | 3 +--
 builds/msvc/vs2013/properties/Debug.props                          | 3 +--
 builds/msvc/vs2013/properties/Dynamic.props                        | 3 +--
 builds/msvc/vs2013/properties/DynamicDebug.props                   | 3 +--
 builds/msvc/vs2013/properties/DynamicRelease.props                 | 3 +--
 builds/msvc/vs2013/properties/LinkTimeCodeGeneration.props         | 3 +--
 builds/msvc/vs2013/properties/Release.props                        | 3 +--
 builds/msvc/vs2013/properties/Static.props                         | 3 +--
 builds/msvc/vs2013/properties/StaticDebug.props                    | 3 +--
 .../msvc/vs2013/properties/StaticDebugLinkTimeCodeGeneration.props | 3 +--
 builds/msvc/vs2013/properties/StaticLinkTimeCodeGeneration.props   | 3 +--
 builds/msvc/vs2013/properties/StaticRelease.props                  | 3 +--
 .../vs2013/properties/StaticReleaseLinkTimeCodeGeneration.props    | 3 +--
 builds/msvc/vs2013/properties/Win32.props                          | 3 +--
 builds/msvc/vs2013/properties/x64.props                            | 3 +--
 builds/msvc/vs2013/remote_lat/remote_lat.props                     | 3 +--
 builds/msvc/vs2013/remote_thr/remote_thr.props                     | 3 +--
 91 files changed, 95 insertions(+), 186 deletions(-)

commit cfe20360082fd48ee647bdd9ab1fcf5df2c0f26a
Merge: 98a64716 ce4c4f2a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 14 21:54:19 2014 +0200

    Merge pull request #974 from xantares/master

    Fixed mingw poll detection

commit ce4c4f2a056adf8c27ce0073afff29087e804a1f
Author: Michel Zou <xantares10@hotmail.com>
Date:   Mon Apr 14 21:49:57 2014 +0200

    Fixed mingw poll detection

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 98a64716ab3161da8f3aa65fe2467db7ef50574a
Merge: 6409c0ec 213d111d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 14 21:40:14 2014 +0200

    Merge pull request #973 from HughPowell/master

    Change ToolsVersion to 4.0 for VS2010

commit 213d111deffde425db9d347132fdb830c2288d60
Author: Hugh Powell <hugh@hughpowell.co.uk>
Date:   Mon Apr 14 20:13:39 2014 +0100

    Reference default locations for libsodium for VS2010

 builds/msvc/vs2010/libsodium.import.props | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 6cb742c7bb22a76c06299d0a8e0e96b502224dbe
Author: Hugh Powell <hugh@hughpowell.co.uk>
Date:   Mon Apr 14 20:01:47 2014 +0100

    Change ToolsVersion to 4.0 for VS2010

 builds/msvc/vs2010/inproc_lat/inproc_lat.props                          | 2 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.props                          | 2 +-
 builds/msvc/vs2010/libsodium.import.props                               | 2 +-
 builds/msvc/vs2010/libzmq.import.props                                  | 2 +-
 builds/msvc/vs2010/libzmq/libzmq.props                                  | 2 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj                                | 2 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters                        | 2 +-
 builds/msvc/vs2010/local_lat/local_lat.props                            | 2 +-
 builds/msvc/vs2010/local_thr/local_thr.props                            | 2 +-
 builds/msvc/vs2010/properties/Common.props                              | 2 +-
 builds/msvc/vs2010/properties/Console.props                             | 2 +-
 builds/msvc/vs2010/properties/ConsoleDebugDynamic.props                 | 2 +-
 builds/msvc/vs2010/properties/ConsoleDebugLinkTimeCodeGeneration.props  | 2 +-
 builds/msvc/vs2010/properties/ConsoleDebugStatic.props                  | 2 +-
 builds/msvc/vs2010/properties/ConsoleReleaseDynamic.props               | 2 +-
 .../msvc/vs2010/properties/ConsoleReleaseLinkTimeCodeGeneration.props   | 2 +-
 builds/msvc/vs2010/properties/ConsoleReleaseStatic.props                | 2 +-
 builds/msvc/vs2010/properties/Debug.props                               | 2 +-
 builds/msvc/vs2010/properties/Dynamic.props                             | 2 +-
 builds/msvc/vs2010/properties/DynamicDebug.props                        | 2 +-
 builds/msvc/vs2010/properties/DynamicRelease.props                      | 2 +-
 builds/msvc/vs2010/properties/LinkTimeCodeGeneration.props              | 2 +-
 builds/msvc/vs2010/properties/Release.props                             | 2 +-
 builds/msvc/vs2010/properties/Static.props                              | 2 +-
 builds/msvc/vs2010/properties/StaticDebug.props                         | 2 +-
 builds/msvc/vs2010/properties/StaticDebugLinkTimeCodeGeneration.props   | 2 +-
 builds/msvc/vs2010/properties/StaticLinkTimeCodeGeneration.props        | 2 +-
 builds/msvc/vs2010/properties/StaticRelease.props                       | 2 +-
 builds/msvc/vs2010/properties/StaticReleaseLinkTimeCodeGeneration.props | 2 +-
 builds/msvc/vs2010/properties/Win32.props                               | 2 +-
 builds/msvc/vs2010/properties/x64.props                                 | 2 +-
 builds/msvc/vs2010/remote_lat/remote_lat.props                          | 2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.props                          | 2 +-
 33 files changed, 33 insertions(+), 33 deletions(-)

commit 6409c0ec1cee34d508665c3cff4da0f4f24f15ab
Merge: d40580c3 802d1bcb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 14 14:13:49 2014 +0200

    Merge pull request #972 from mditzel/master

    Fix issue #971

commit 802d1bcb034903e65c846c9a16e0782489a86878
Author: Maarten Ditzel <maarten.ditzel@tno.nl>
Date:   Mon Apr 14 13:56:01 2014 +0200

    Fix issue #971

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

commit 91e77e6aa40562a97d45085846acd4b37f62ea02
Author: Maarten Ditzel <maarten.ditzel@tno.nl>
Date:   Sun Apr 13 15:25:22 2014 +0200

    Fix issue #969

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d40580c36870deebb9647232df3350312ec415bb
Merge: 52cfab3e 91e77e6a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 13 14:31:40 2014 +0200

    Merge pull request #970 from mditzel/master

    Fix issue #969

commit 52cfab3e2103ced6299f5284738651f4ba029a48
Merge: b9823a13 407b7fb4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Apr 10 10:11:23 2014 +0100

    Merge pull request #968 from hintjens/master

    Fixed issue #967

commit 407b7fb474e507de56fc8b48add682b321f8c166
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 10 09:43:16 2014 +0200

    Removed duplicate zmq_z85_* methods from zmq.h

    Fixes #967

 include/zmq.h | 6 ------
 1 file changed, 6 deletions(-)

commit b9823a1388ef47ace152059f51f3ed580ccd5558
Merge: f9ef2dd3 51be440a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Apr 9 12:18:05 2014 +0100

    Merge pull request #965 from evoskuil/master

    Update VS build configurations.

commit 51be440a287268445ba24fef917345f877b76c01
Author: Eric Voskuil <eric@voskuil.org>
Date:   Wed Apr 9 03:27:27 2014 -0700

    Update VS build configurations.

 builds/msvc/vs2010/inproc_lat/inproc_lat.props   | 12 ++-----
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj |  4 +--
 builds/msvc/vs2010/inproc_thr/inproc_thr.props   | 14 +++------
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj |  4 +--
 builds/msvc/vs2010/libsodium.import.props        |  4 +--
 builds/msvc/vs2010/libsodium.import.xml          |  3 +-
 builds/msvc/vs2010/libzmq.import.props           | 10 +++++-
 builds/msvc/vs2010/libzmq.import.xml             | 20 +++++++++++-
 builds/msvc/vs2010/libzmq/libzmq.props           | 40 +++++++++---------------
 builds/msvc/vs2010/local_lat/local_lat.props     | 14 +++------
 builds/msvc/vs2010/local_lat/local_lat.vcxproj   |  4 +--
 builds/msvc/vs2010/local_thr/local_thr.props     | 14 +++------
 builds/msvc/vs2010/local_thr/local_thr.vcxproj   |  4 +--
 builds/msvc/vs2010/remote_lat/remote_lat.props   | 14 +++------
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj |  4 +--
 builds/msvc/vs2010/remote_thr/remote_thr.props   | 14 +++------
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj |  4 +--
 builds/msvc/vs2012/inproc_lat/inproc_lat.props   | 12 ++-----
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj |  4 +--
 builds/msvc/vs2012/inproc_thr/inproc_thr.props   | 14 +++------
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj |  4 +--
 builds/msvc/vs2012/libsodium.import.props        |  4 +--
 builds/msvc/vs2012/libsodium.import.xml          |  3 +-
 builds/msvc/vs2012/libzmq.import.props           | 10 +++++-
 builds/msvc/vs2012/libzmq.import.xml             | 20 +++++++++++-
 builds/msvc/vs2012/libzmq/libzmq.props           | 40 +++++++++---------------
 builds/msvc/vs2012/local_lat/local_lat.props     | 14 +++------
 builds/msvc/vs2012/local_lat/local_lat.vcxproj   |  4 +--
 builds/msvc/vs2012/local_thr/local_thr.props     | 14 +++------
 builds/msvc/vs2012/local_thr/local_thr.vcxproj   |  4 +--
 builds/msvc/vs2012/remote_lat/remote_lat.props   | 14 +++------
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj |  4 +--
 builds/msvc/vs2012/remote_thr/remote_thr.props   | 14 +++------
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj |  4 +--
 builds/msvc/vs2013/inproc_lat/inproc_lat.props   | 12 ++-----
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj |  4 +--
 builds/msvc/vs2013/inproc_thr/inproc_thr.props   | 14 +++------
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj |  4 +--
 builds/msvc/vs2013/libsodium.import.props        | 13 +++-----
 builds/msvc/vs2013/libsodium.import.xml          |  3 +-
 builds/msvc/vs2013/libzmq.import.props           | 19 ++++++-----
 builds/msvc/vs2013/libzmq.import.xml             | 20 +++++++++++-
 builds/msvc/vs2013/libzmq/libzmq.props           | 38 +++++++++-------------
 builds/msvc/vs2013/local_lat/local_lat.props     | 14 +++------
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   |  4 +--
 builds/msvc/vs2013/local_thr/local_thr.props     | 14 +++------
 builds/msvc/vs2013/local_thr/local_thr.vcxproj   |  4 +--
 builds/msvc/vs2013/remote_lat/remote_lat.props   | 14 +++------
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj |  4 +--
 builds/msvc/vs2013/remote_thr/remote_thr.props   | 14 +++------
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj |  4 +--
 packaging/nuget/package.gsl                      |  5 ++-
 52 files changed, 253 insertions(+), 317 deletions(-)

commit f9ef2dd3439c8e36f53b5524d997e846413d6510
Merge: dd227d7a c392c266
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 8 06:22:08 2014 +0100

    Merge pull request #964 from evoskuil/master

    Incorporate libsodium option and linkage, generalize, update packaging.

commit c392c266df19f4f0e380775b2a465147d24648d5
Merge: 34f4851c dd227d7a
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Apr 7 19:40:31 2014 -0700

    Merge branch 'evoskuil/master'

commit 34f4851c23c3157af18730ba3cf0522e534f77eb
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Apr 7 19:38:59 2014 -0700

    Incorporate libsodium option and linkage, generalize, update packaging.

 builds/msvc/readme.txt                           | 16 +----
 builds/msvc/vs2010/inproc_lat/inproc_lat.props   | 29 +++++++++
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj |  4 +-
 builds/msvc/vs2010/inproc_thr/inproc_thr.props   | 29 +++++++++
 builds/msvc/vs2010/libsodium.import.props        | 80 ++++++++++++++++++++++++
 builds/msvc/vs2010/libsodium.import.xml          | 16 +++++
 builds/msvc/vs2010/libzmq.import.props           | 80 ++++++++++++++++++++++++
 builds/msvc/vs2010/libzmq.import.xml             | 16 +++++
 builds/msvc/vs2010/libzmq/libzmq.props           | 44 +++++++++++--
 builds/msvc/vs2010/libzmq/libzmq.vcxproj         | 12 ++--
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters | 12 ++++
 builds/msvc/vs2010/libzmq/libzmq.xml             |  7 ++-
 builds/msvc/vs2010/local_lat/local_lat.props     | 29 +++++++++
 builds/msvc/vs2010/local_thr/local_thr.props     | 29 +++++++++
 builds/msvc/vs2010/remote_lat/remote_lat.props   | 29 +++++++++
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2010/remote_thr/remote_thr.props   | 29 +++++++++
 builds/msvc/vs2012/inproc_lat/inproc_lat.props   | 29 +++++++++
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj |  4 +-
 builds/msvc/vs2012/inproc_thr/inproc_thr.props   | 29 +++++++++
 builds/msvc/vs2012/libsodium.import.props        | 80 ++++++++++++++++++++++++
 builds/msvc/vs2012/libsodium.import.xml          | 16 +++++
 builds/msvc/vs2012/libzmq.import.props           | 80 ++++++++++++++++++++++++
 builds/msvc/vs2012/libzmq.import.xml             | 16 +++++
 builds/msvc/vs2012/libzmq/libzmq.props           | 44 +++++++++++--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj         | 12 ++--
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters | 12 ++++
 builds/msvc/vs2012/libzmq/libzmq.xml             |  7 ++-
 builds/msvc/vs2012/local_lat/local_lat.props     | 29 +++++++++
 builds/msvc/vs2012/local_thr/local_thr.props     | 29 +++++++++
 builds/msvc/vs2012/remote_lat/remote_lat.props   | 29 +++++++++
 builds/msvc/vs2012/remote_thr/remote_thr.props   | 29 +++++++++
 builds/msvc/vs2013/inproc_lat/inproc_lat.props   | 29 +++++++++
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj |  2 +-
 builds/msvc/vs2013/inproc_thr/inproc_thr.props   | 29 +++++++++
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj |  2 +-
 builds/msvc/vs2013/libsodium.import.props        | 80 ++++++++++++++++++++++++
 builds/msvc/vs2013/libsodium.import.xml          | 16 +++++
 builds/msvc/vs2013/libzmq.import.props           | 80 ++++++++++++++++++++++++
 builds/msvc/vs2013/libzmq.import.xml             | 16 +++++
 builds/msvc/vs2013/libzmq/libzmq.props           | 44 +++++++++++--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         | 12 ++--
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters | 12 ++++
 builds/msvc/vs2013/libzmq/libzmq.xml             |  7 ++-
 builds/msvc/vs2013/local_lat/local_lat.props     | 29 +++++++++
 builds/msvc/vs2013/local_lat/local_lat.vcxproj   |  2 +-
 builds/msvc/vs2013/local_thr/local_thr.props     | 29 +++++++++
 builds/msvc/vs2013/remote_lat/remote_lat.props   | 29 +++++++++
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj |  2 +-
 builds/msvc/vs2013/remote_thr/remote_thr.props   | 29 +++++++++
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj |  2 +-
 packaging/nuget/package.config                   |  2 +-
 packaging/nuget/package.gsl                      |  7 ++-
 packaging/nuget/package.nuspec                   | 57 +++++++++--------
 packaging/nuget/package.targets                  | 40 ++++++------
 55 files changed, 1352 insertions(+), 113 deletions(-)

commit dd227d7a11721333f2c063df67f6f6bce40739b2
Merge: 28c074ee f01b48c4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 7 08:46:28 2014 +0200

    Merge pull request #961 from evoskuil/master

    Update NuGet packaging metadata.

commit f01b48c484996794c83494bd0fce7fa4a1e7b582
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Apr 6 22:53:36 2014 -0700

    Update packaging metadata.

 packaging/nuget/package.config  |  2 +-
 packaging/nuget/package.gsl     | 41 ++++++++++++-----------
 packaging/nuget/package.nuspec  | 50 ++++++++++++++--------------
 packaging/nuget/package.targets | 74 ++++++++++++++++++++---------------------
 packaging/nuget/package.xml     |  7 ++--
 5 files changed, 88 insertions(+), 86 deletions(-)

commit 28c074ee63565157bd64cafd01d380017b0d3917
Merge: 84bf6254 b7675eaa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 6 13:32:20 2014 +0200

    Merge pull request #960 from evoskuil/master

    Rationalize and update Visual Studio projects and packaging.

commit b7675eaacef09af44590147fab60d98d79356e4a
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Apr 6 03:41:35 2014 -0700

    Update packaging metadata.

 packaging/nuget/package.gsl    | 2 +-
 packaging/nuget/package.nuspec | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 69fa001babd9ac52993fe12aca7ab4ba2c4f41c4
Merge: e01801f5 84bf6254
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Apr 6 02:52:06 2014 -0700

    Merge branch 'evoskuil/master'

commit e01801f5b9ca04ceb9c37066aca8ad12dd38d28c
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Apr 6 02:39:15 2014 -0700

    Rationalize and update Visual Studio projects and packaging.

 builds/msvc/libzmq.rc                              | Bin 4544 -> 4544 bytes
 builds/msvc/vs2008/libzmq.sln                      |  10 +-
 .../local_lat.vcproj}                              |   2 +-
 .../local_thr.vcproj}                              |   2 +-
 .../remote_lat.vcproj}                             |   2 +-
 .../remote_thr.vcproj}                             |   2 +-
 builds/msvc/vs2010/c_local_lat/c_local_lat.vcxproj |  80 ----
 builds/msvc/vs2010/c_local_thr/c_local_thr.vcxproj |  80 ----
 .../msvc/vs2010/c_remote_lat/c_remote_lat.vcxproj  |  80 ----
 .../msvc/vs2010/c_remote_thr/c_remote_thr.vcxproj  |  80 ----
 builds/msvc/vs2010/inproc_lat/inproc_lat.props     |  30 ++
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj   | 153 +++++--
 builds/msvc/vs2010/inproc_thr/inproc_thr.props     |  30 ++
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj   | 151 +++++--
 builds/msvc/vs2010/libzmq.sln                      | 316 +++++++------
 builds/msvc/vs2010/libzmq/libzmq.props             |  49 ++
 builds/msvc/vs2010/libzmq/libzmq.vcxproj           | 365 ++++++++-------
 builds/msvc/vs2010/libzmq/libzmq.vcxproj.filters   | 492 +++++++++++++++++++++
 builds/msvc/vs2010/libzmq/libzmq.xml               |  15 +
 builds/msvc/vs2010/local_lat/local_lat.props       |  30 ++
 builds/msvc/vs2010/local_lat/local_lat.vcxproj     | 149 +++++++
 builds/msvc/vs2010/local_thr/local_thr.props       |  30 ++
 builds/msvc/vs2010/local_thr/local_thr.vcxproj     | 149 +++++++
 builds/msvc/vs2010/properties/Common.props         |  28 +-
 .../properties/{Executable.props => Console.props} |  10 +-
 .../vs2010/properties/ConsoleDebugDynamic.props    |  22 +
 .../ConsoleDebugLinkTimeCodeGeneration.props       |  22 +
 .../vs2010/properties/ConsoleDebugStatic.props     |  21 +
 .../vs2010/properties/ConsoleReleaseDynamic.props  |  21 +
 .../ConsoleReleaseLinkTimeCodeGeneration.props     |  21 +
 .../vs2010/properties/ConsoleReleaseStatic.props   |  20 +
 builds/msvc/vs2010/properties/Debug.props          |  24 +-
 builds/msvc/vs2010/properties/Dynamic.props        |  17 +-
 builds/msvc/vs2010/properties/DynamicDebug.props   |  22 +
 builds/msvc/vs2010/properties/DynamicRelease.props |  21 +
 .../vs2010/properties/LinkTimeCodeGeneration.props |  21 +
 builds/msvc/vs2010/properties/Precompiled.props    |  14 -
 builds/msvc/vs2010/properties/Release.props        |  31 +-
 builds/msvc/vs2010/properties/Static.props         |  10 +-
 builds/msvc/vs2010/properties/StaticDebug.props    |  22 +
 .../StaticDebugLinkTimeCodeGeneration.props        |  22 +
 .../properties/StaticLinkTimeCodeGeneration.props  |  18 +
 builds/msvc/vs2010/properties/StaticRelease.props  |  21 +
 .../StaticReleaseLinkTimeCodeGeneration.props      |  21 +
 builds/msvc/vs2010/properties/Win32.props          |  15 +-
 builds/msvc/vs2010/properties/Win32_Release.props  |  17 -
 builds/msvc/vs2010/properties/WithOpenPGM.props    |  12 -
 builds/msvc/vs2010/properties/ZeroMQ.props         |  19 -
 builds/msvc/vs2010/properties/ZeroMQ_Static.props  |  22 -
 builds/msvc/vs2010/properties/x64.props            |  18 +-
 builds/msvc/vs2010/remote_lat/remote_lat.props     |  30 ++
 builds/msvc/vs2010/remote_lat/remote_lat.vcxproj   | 149 +++++++
 builds/msvc/vs2010/remote_thr/remote_thr.props     |  30 ++
 builds/msvc/vs2010/remote_thr/remote_thr.vcxproj   | 149 +++++++
 builds/msvc/vs2012/c_local_lat/c_local_lat.vcxproj |  80 ----
 builds/msvc/vs2012/c_local_thr/c_local_thr.vcxproj |  80 ----
 .../msvc/vs2012/c_remote_lat/c_remote_lat.vcxproj  |  80 ----
 .../msvc/vs2012/c_remote_thr/c_remote_thr.vcxproj  |  80 ----
 builds/msvc/vs2012/inproc_lat/inproc_lat.props     |  30 ++
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj   | 153 +++++--
 builds/msvc/vs2012/inproc_thr/inproc_thr.props     |  30 ++
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj   | 151 +++++--
 builds/msvc/vs2012/libzmq.sln                      | 316 +++++++------
 builds/msvc/vs2012/libzmq/libzmq.props             |  49 ++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj           | 353 ++++++++-------
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters   |  36 ++
 builds/msvc/vs2012/libzmq/libzmq.xml               |  15 +
 builds/msvc/vs2012/local_lat/local_lat.props       |  30 ++
 builds/msvc/vs2012/local_lat/local_lat.vcxproj     | 149 +++++++
 builds/msvc/vs2012/local_thr/local_thr.props       |  30 ++
 builds/msvc/vs2012/local_thr/local_thr.vcxproj     | 149 +++++++
 builds/msvc/vs2012/properties/Common.props         |  28 +-
 .../properties/{Executable.props => Console.props} |  10 +-
 .../vs2012/properties/ConsoleDebugDynamic.props    |  22 +
 .../ConsoleDebugLinkTimeCodeGeneration.props       |  22 +
 .../vs2012/properties/ConsoleDebugStatic.props     |  21 +
 .../vs2012/properties/ConsoleReleaseDynamic.props  |  21 +
 .../ConsoleReleaseLinkTimeCodeGeneration.props     |  21 +
 .../vs2012/properties/ConsoleReleaseStatic.props   |  20 +
 builds/msvc/vs2012/properties/Debug.props          |  24 +-
 builds/msvc/vs2012/properties/Dynamic.props        |  17 +-
 builds/msvc/vs2012/properties/DynamicDebug.props   |  22 +
 builds/msvc/vs2012/properties/DynamicRelease.props |  21 +
 .../vs2012/properties/LinkTimeCodeGeneration.props |  21 +
 builds/msvc/vs2012/properties/Precompiled.props    |  14 -
 builds/msvc/vs2012/properties/Release.props        |  31 +-
 builds/msvc/vs2012/properties/Static.props         |  10 +-
 builds/msvc/vs2012/properties/StaticDebug.props    |  22 +
 .../StaticDebugLinkTimeCodeGeneration.props        |  22 +
 .../properties/StaticLinkTimeCodeGeneration.props  |  18 +
 builds/msvc/vs2012/properties/StaticRelease.props  |  21 +
 .../StaticReleaseLinkTimeCodeGeneration.props      |  21 +
 builds/msvc/vs2012/properties/Win32.props          |  15 +-
 builds/msvc/vs2012/properties/Win32_Release.props  |  17 -
 builds/msvc/vs2012/properties/WithOpenPGM.props    |  12 -
 builds/msvc/vs2012/properties/ZeroMQ.props         |  19 -
 builds/msvc/vs2012/properties/ZeroMQ_Static.props  |  22 -
 builds/msvc/vs2012/properties/x64.props            |  18 +-
 builds/msvc/vs2012/remote_lat/remote_lat.props     |  30 ++
 builds/msvc/vs2012/remote_lat/remote_lat.vcxproj   | 149 +++++++
 builds/msvc/vs2012/remote_thr/remote_thr.props     |  30 ++
 builds/msvc/vs2012/remote_thr/remote_thr.vcxproj   | 149 +++++++
 packaging/nuget/package.config                     |   2 +-
 packaging/nuget/package.gsl                        |  46 +-
 packaging/nuget/package.nuspec                     |  60 +--
 packaging/nuget/package.targets                    |  74 ++--
 packaging/nuget/package.xml                        |   4 +-
 107 files changed, 4322 insertions(+), 1752 deletions(-)

commit 8fcda0d5da0408bf86459cf2419faa80ef9c79e7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 5 15:32:43 2014 +0200

    Cleaned up XFAIL on resources

    - this failing test was confusing users
    - ZMTP v3.0 now does not define resources at all
    - resources, along with other unimplemented aspects moved to
      RFC 37 ZMTP v3.1

 tests/Makefile.am       |  8 +++----
 tests/test_resource.cpp | 56 -------------------------------------------------
 2 files changed, 3 insertions(+), 61 deletions(-)

commit 84bf6254776079fbf17d41e588a049338c749e9b
Merge: c1f7e1f4 cbbfa147
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 4 12:31:42 2014 +0200

    Merge pull request #959 from evoskuil/master

    Update and add executable projects to VS2013 solution.

commit cbbfa147986cf896889351a3fc13069a0f967b47
Merge: 5d0701d7 c1f7e1f4
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Apr 4 01:18:30 2014 -0700

    Merge branch 'zeromq/master'

commit 5d0701d71d21020c9066161c011feb1178206ddc
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Apr 4 01:17:25 2014 -0700

    Add executable projects to VS2013 solution.

 builds/msvc/vs2013/c_local_lat/c_local_lat.vcxproj |  91 ---------
 builds/msvc/vs2013/c_local_thr/c_local_thr.vcxproj | 111 -----------
 .../msvc/vs2013/c_remote_lat/c_remote_lat.vcxproj  |  91 ---------
 .../msvc/vs2013/c_remote_thr/c_remote_thr.vcxproj  | 111 -----------
 builds/msvc/vs2013/inproc_lat/inproc_lat.props     |  30 +++
 builds/msvc/vs2013/inproc_lat/inproc_lat.vcxproj   | 211 ++++++++++++---------
 builds/msvc/vs2013/inproc_thr/inproc_thr.props     |  30 +++
 builds/msvc/vs2013/inproc_thr/inproc_thr.vcxproj   | 209 +++++++++++---------
 builds/msvc/vs2013/libzmq.sln                      | 156 +++++++++++++++
 builds/msvc/vs2013/local_lat/local_lat.props       |  30 +++
 builds/msvc/vs2013/local_lat/local_lat.vcxproj     | 149 +++++++++++++++
 builds/msvc/vs2013/local_thr/local_thr.props       |  30 +++
 builds/msvc/vs2013/local_thr/local_thr.vcxproj     | 149 +++++++++++++++
 builds/msvc/vs2013/properties/Console.props        |  21 ++
 .../vs2013/properties/ConsoleDebugDynamic.props    |  22 +++
 .../ConsoleDebugLinkTimeCodeGeneration.props       |  22 +++
 .../vs2013/properties/ConsoleDebugStatic.props     |  21 ++
 .../vs2013/properties/ConsoleReleaseDynamic.props  |  21 ++
 .../ConsoleReleaseLinkTimeCodeGeneration.props     |  21 ++
 .../vs2013/properties/ConsoleReleaseStatic.props   |  20 ++
 builds/msvc/vs2013/remote_lat/remote_lat.props     |  30 +++
 builds/msvc/vs2013/remote_lat/remote_lat.vcxproj   | 149 +++++++++++++++
 builds/msvc/vs2013/remote_thr/remote_thr.props     |  30 +++
 builds/msvc/vs2013/remote_thr/remote_thr.vcxproj   | 149 +++++++++++++++
 24 files changed, 1329 insertions(+), 575 deletions(-)

commit 2ad6469cb2445e85f724d531863d859821bc0abd
Author: Eric Voskuil <eric@voskuil.org>
Date:   Fri Apr 4 01:15:51 2014 -0700

    Modify MSVC link incremental setting for deconfliction with LTCG flag.

 builds/msvc/vs2013/properties/Debug.props                             | 1 -
 builds/msvc/vs2013/properties/DynamicDebug.props                      | 1 +
 builds/msvc/vs2013/properties/LinkTimeCodeGeneration.props            | 3 ---
 builds/msvc/vs2013/properties/StaticDebug.props                       | 1 +
 builds/msvc/vs2013/properties/StaticDebugLinkTimeCodeGeneration.props | 1 +
 5 files changed, 3 insertions(+), 4 deletions(-)

commit c1f7e1f48abf20adafe724207c8022019090ef7b
Merge: 7140bf04 a53d7031
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 3 20:19:22 2014 +0200

    Merge pull request #958 from hurtonm/master

    Resolve issue #939

commit a53d703160c13ca8e66a58507b811ebc4dca7ef0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Apr 3 19:49:28 2014 +0200

    Resolve issue #939

    This bug is caused by fq which can terminate pipe before sending all
    frames of a message first. So sometimes two messages were mixed and this
    confused ZAP handler.

    This patch just modifies one pipe parameter so that socket consumes all
    messages before dropping the pipe.

 src/session_base.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 7140bf041dpf0275f0028c324b4dd9304e3a2f21
Merge: 55bde2a7 48b37f21
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 2 18:31:31 2014 +0200

    Merge pull request #957 from jkryl/master

    sockets created by accept are leaked to child processes (ticket #956)

commit 48b37f217fb3fe5442dd175ef21f11d72fadf004
Author: Jan Kryl <jan.kryl@nexenta.com>
Date:   Wed Apr 2 12:25:40 2014 -0400

    sockets created by accept are leaked to child processes (ticket #956)

 src/ipc_listener.cpp | 7 +++++++
 src/tcp_listener.cpp | 7 +++++++
 2 files changed, 14 insertions(+)

commit 55bde2a7b5fbede8dcc2f613e01a98d1ac122dbf
Merge: 29586d30 2e802a46
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 30 13:41:28 2014 +0200

    Merge pull request #952 from evoskuil/master

    Organize Visual Studio solutions and integrate NuGet packaging.

commit 2e802a467f2db016490c1af90935e8f01ab4fd29
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Mar 30 04:01:12 2014 -0700

    Change NuGet package id.

 packaging/nuget/package.config | 2 +-
 packaging/nuget/package.gsl    | 2 +-
 packaging/nuget/package.nuspec | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

commit 441fdd7cb6019381053621b9eb5f80000e2e97d7
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Mar 30 03:26:22 2014 -0700

    Typo.

 builds/msvc/readme.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ee69fa51b31f9bdacba6adp27312df2333dpbe36
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Mar 30 03:22:00 2014 -0700

    In nuget package copy copied DLLs to bin with linked name.

 packaging/nuget/package.gsl     | 16 ++++++++--------
 packaging/nuget/package.targets | 16 ++++++++--------
 2 files changed, 16 insertions(+), 16 deletions(-)

commit c044f73bb738dc3fc98b7281eaf1aab9c5b53656
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sun Mar 30 02:38:20 2014 -0700

    Add nuget package generation and GUI selection of OpenPGM option.

 builds/msvc/libzmq.rc                            | Bin 0 -> 4544 bytes
 builds/msvc/resource.h                           |  14 ++
 builds/msvc/vs2013/libzmq/libzmq.props           |   4 +
 builds/msvc/vs2013/libzmq/libzmq.vcxproj         |  22 ++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters |  36 ++++
 builds/msvc/vs2013/libzmq/libzmq.xml             |  15 ++
 packaging/nuget/package.bat                      |  13 ++
 packaging/nuget/package.config                   |   4 +
 packaging/nuget/package.gsl                      | 256 +++++++++++++++++++++++
 packaging/nuget/package.nuspec                   |  96 +++++++++
 packaging/nuget/package.targets                  | 127 +++++++++++
 packaging/nuget/package.xml                      |  21 ++
 12 files changed, 608 insertions(+)

commit f3c156ba2b2f9a090caceac46161f16e0dd0d1f4
Merge: 86ef40d1 29586d30
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sat Mar 29 23:17:28 2014 -0700

    Merge branch 'zeromq/master'

commit 86ef40d17108f0c49d4d9746e5bc3c7851ce2896
Author: Eric Voskuil <eric@voskuil.org>
Date:   Sat Mar 29 23:13:00 2014 -0700

    Reorganize and clean up visual studio build configurations.

 builds/msvc/Makefile.am                            | 109 ++-
 builds/msvc/c_local_lat/c_local_lat.vcproj         | 176 ----
 builds/msvc/c_local_thr/c_local_thr.vcproj         | 178 ----
 builds/msvc/c_local_thr/c_local_thr.vcxproj        | 107 ---
 builds/msvc/c_remote_lat/c_remote_lat.vcproj       | 176 ----
 builds/msvc/c_remote_thr/c_remote_thr.vcproj       | 178 ----
 builds/msvc/c_remote_thr/c_remote_thr.vcxproj      | 107 ---
 builds/msvc/errno.cpp                              |  62 +-
 builds/msvc/inproc_lat/inproc_lat.vcproj           | 176 ----
 builds/msvc/inproc_lat/inproc_lat.vcxproj          | 106 ---
 builds/msvc/inproc_thr/inproc_thr.vcproj           | 176 ----
 builds/msvc/inproc_thr/inproc_thr.vcxproj          | 106 ---
 builds/msvc/libzmq/libzmq.vcproj                   | 997 ---------------------
 builds/msvc/libzmq/libzmq.vcxproj                  | 328 -------
 builds/msvc/libzmq/libzmq.vcxproj.filters          | 467 ----------
 builds/msvc/libzmq/libzmq11.vcxproj                | 362 --------
 builds/msvc/libzmq/libzmq12.vcxproj                | 339 -------
 builds/msvc/libzmq/libzmq12.vcxproj.filters        | 456 ----------
 builds/msvc/msvc12.sln                             |  46 -
 builds/msvc/readme.txt                             |  26 +
 builds/msvc/vs2008/c_local_lat/c_local_lat.vcproj  |  52 ++
 builds/msvc/vs2008/c_local_thr/c_local_thr.vcproj  |  52 ++
 .../msvc/vs2008/c_remote_lat/c_remote_lat.vcproj   |  52 ++
 .../msvc/vs2008/c_remote_thr/c_remote_thr.vcproj   |  52 ++
 builds/msvc/vs2008/inproc_lat/inproc_lat.vcproj    |  52 ++
 builds/msvc/vs2008/inproc_thr/inproc_thr.vcproj    |  52 ++
 builds/msvc/{msvc.sln => vs2008/libzmq.sln}        |   4 +-
 builds/msvc/vs2008/libzmq/libzmq.vcproj            | 259 ++++++
 .../{ => vs2010}/c_local_lat/c_local_lat.vcxproj   |  63 +-
 builds/msvc/vs2010/c_local_thr/c_local_thr.vcxproj |  80 ++
 .../{ => vs2010}/c_remote_lat/c_remote_lat.vcxproj |  63 +-
 .../msvc/vs2010/c_remote_thr/c_remote_thr.vcxproj  |  80 ++
 builds/msvc/vs2010/inproc_lat/inproc_lat.vcxproj   |  80 ++
 builds/msvc/vs2010/inproc_thr/inproc_thr.vcxproj   |  80 ++
 builds/msvc/{msvc10.sln => vs2010/libzmq.sln}      |   4 +-
 builds/msvc/vs2010/libzmq/libzmq.vcxproj           | 315 +++++++
 builds/msvc/{ => vs2010}/properties/Common.props   |   4 +-
 builds/msvc/{ => vs2010}/properties/Debug.props    |   0
 builds/msvc/{ => vs2010}/properties/Dynamic.props  |   4 +-
 .../msvc/{ => vs2010}/properties/Executable.props  |   2 +-
 .../msvc/{ => vs2010}/properties/Precompiled.props |   0
 builds/msvc/{ => vs2010}/properties/Release.props  |   0
 builds/msvc/{ => vs2010}/properties/Static.props   |   0
 builds/msvc/{ => vs2010}/properties/Win32.props    |   0
 .../{ => vs2010}/properties/Win32_Release.props    |   0
 .../msvc/{ => vs2010}/properties/WithOpenPGM.props |   0
 builds/msvc/{ => vs2010}/properties/ZeroMQ.props   |   3 -
 .../{ => vs2010}/properties/ZeroMQ_Static.props    |   5 +-
 builds/msvc/{ => vs2010}/properties/x64.props      |   0
 builds/msvc/vs2012/c_local_lat/c_local_lat.vcxproj |  80 ++
 builds/msvc/vs2012/c_local_thr/c_local_thr.vcxproj |  80 ++
 .../msvc/vs2012/c_remote_lat/c_remote_lat.vcxproj  |  80 ++
 .../msvc/vs2012/c_remote_thr/c_remote_thr.vcxproj  |  80 ++
 builds/msvc/vs2012/inproc_lat/inproc_lat.vcxproj   |  80 ++
 builds/msvc/vs2012/inproc_thr/inproc_thr.vcxproj   |  80 ++
 builds/msvc/{msvc11.sln => vs2012/libzmq.sln}      |  18 +-
 builds/msvc/vs2012/libzmq/libzmq.vcxproj           | 303 +++++++
 builds/msvc/vs2012/libzmq/libzmq.vcxproj.filters   | 456 ++++++++++
 builds/msvc/vs2012/properties/Common.props         |  21 +
 builds/msvc/vs2012/properties/Debug.props          |  19 +
 builds/msvc/vs2012/properties/Dynamic.props        |  20 +
 builds/msvc/vs2012/properties/Executable.props     |  19 +
 builds/msvc/vs2012/properties/Precompiled.props    |  14 +
 builds/msvc/vs2012/properties/Release.props        |  22 +
 builds/msvc/vs2012/properties/Static.props         |  15 +
 builds/msvc/vs2012/properties/Win32.props          |  12 +
 builds/msvc/vs2012/properties/Win32_Release.props  |  17 +
 builds/msvc/vs2012/properties/WithOpenPGM.props    |  12 +
 builds/msvc/vs2012/properties/ZeroMQ.props         |  19 +
 builds/msvc/vs2012/properties/ZeroMQ_Static.props  |  22 +
 builds/msvc/vs2012/properties/x64.props            |  12 +
 .../c_local_lat/c_local_lat.vcxproj}               |   2 +-
 .../c_local_thr/c_local_thr.vcxproj}               |   2 +-
 .../c_remote_lat/c_remote_lat.vcxproj}             |   2 +-
 .../c_remote_thr/c_remote_thr.vcxproj}             |   2 +-
 .../inproc_lat/inproc_lat.vcxproj}                 |   2 +-
 .../inproc_thr/inproc_thr.vcxproj}                 |   2 +-
 builds/msvc/vs2013/libzmq.sln                      |  52 ++
 builds/msvc/vs2013/libzmq/libzmq.props             |  45 +
 builds/msvc/vs2013/libzmq/libzmq.vcxproj           | 322 +++++++
 builds/msvc/vs2013/libzmq/libzmq.vcxproj.filters   | 456 ++++++++++
 builds/msvc/vs2013/properties/Common.props         |  27 +
 builds/msvc/vs2013/properties/Debug.props          |  30 +
 builds/msvc/vs2013/properties/Dynamic.props        |  19 +
 builds/msvc/vs2013/properties/DynamicDebug.props   |  21 +
 builds/msvc/vs2013/properties/DynamicRelease.props |  21 +
 .../vs2013/properties/LinkTimeCodeGeneration.props |  24 +
 builds/msvc/vs2013/properties/Release.props        |  41 +
 builds/msvc/vs2013/properties/Static.props         |  19 +
 builds/msvc/vs2013/properties/StaticDebug.props    |  21 +
 .../StaticDebugLinkTimeCodeGeneration.props        |  21 +
 .../properties/StaticLinkTimeCodeGeneration.props  |  18 +
 builds/msvc/vs2013/properties/StaticRelease.props  |  21 +
 .../StaticReleaseLinkTimeCodeGeneration.props      |  21 +
 builds/msvc/vs2013/properties/Win32.props          |  21 +
 builds/msvc/vs2013/properties/x64.props            |  24 +
 src/signaler.cpp                                   |   2 +
 97 files changed, 4113 insertions(+), 4642 deletions(-)

commit 29586d303d92392dea748726a035bb6c9352c023
Merge: 4706a18c 91c409fd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 25 23:49:49 2014 +0100

    Merge pull request #950 from phreed/master

    Make a NuGet package

commit 91c409fd9374118c0d463851bad8a8c94b59d9d8
Author: Fred Eisele <feisele@isis.vanderbilt.edu>
Date:   Tue Mar 25 17:34:09 2014 -0500

    updated with better owner, author and copyright information

 builds/nuget/libzmq.autopkg | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 394e4c603241406a23e8f8df60b54dcce4bf12c4
Author: Fred Eisele <feisele@isis.vanderbilt.edu>
Date:   Tue Mar 25 16:55:23 2014 -0500

    corrected some issues with the autopkg, include the dll

 builds/nuget/libzmq.autopkg | 13 +++++++------
 builds/nuget/readme.nuget   |  8 ++++++++
 2 files changed, 15 insertions(+), 6 deletions(-)

commit af5b9601772e85f07ebff858ec2532b1cef14d58
Author: Fred Eisele <feisele@isis.vanderbilt.edu>
Date:   Tue Mar 25 16:03:29 2014 -0500

    added files to assist in building nuget packages

 builds/nuget/libzmq.autopkg | 51 +++++++++++++++++++++++++++++++++++++++++++++
 builds/nuget/readme.nuget   | 12 +++++++++++
 2 files changed, 63 insertions(+)

commit 5a3b633bc520e5423812424a6f9924a0d75a10e3
Author: Frank Hartmann <soundart@gmx.net>
Date:   Sun Mar 23 13:07:23 2014 +0100

    cmake: correct find function

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b04abfdp575b25e03f175c8761140fe0d346e87d
Author: Frank Hartmann <soundart@gmx.net>
Date:   Sun Mar 23 10:48:52 2014 +0100

    cmake: use FindSodium module

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

commit 4706a18cf30d9f9ddf0e478990d74f37f94ef9e8
Merge: 20f22e04 b7a663f1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 21 12:13:42 2014 +0200

    Merge pull request #945 from twwlogin/patch-2

    Allow iov_base as char * on Solaris 8/9/10.

commit 20f22e0463915e585aa1833946b93a04bb09d78c
Merge: c217ab73 9051456f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 21 12:13:14 2014 +0200

    Merge pull request #944 from twwlogin/patch-1

    Include zmq.h after platform.hpp

commit b7a663f1c1dc0f16a878595858d4286991cf7152
Author: twwlogin <github@vendor.thewrittenword.com>
Date:   Fri Mar 21 01:32:01 2014 -0500

    Allow iov_base as char * on Solaris 8/9/10.

    On Solaris 8, 9, 10/SPARC, iov_base is of type caddr_t which is char *. The Sun C++ compiler errors with "Cannot assign void* to char*". Using a static case to override this. On Solaris 11, HP-UX, AIX, and RHEL, iov_base is void * so no issues there. This seems a rather hackish solution so open to something better.

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

commit 9051456f184eafaa7291de3cb8b97989edpd861a
Author: twwlogin <github@vendor.thewrittenword.com>
Date:   Fri Mar 21 01:24:25 2014 -0500

    Include zmq.h after platform.hpp

    zmq.h requires definitions from platform.hpp so include platform.hpp before zmq.h. This is only an intermediate fix though. zmq.h should not require definitions from platform.hpp because platform.hpp is not installed. So, when zmq.h wants to include <inttypes.h> on ZMQ_HAVE_SOLARIS || ZMQ_HAVE_OPENVMS, it will not and fall back to #include <stdint.h> which will fail when building something like pyzmq on Solaris 8, 9/SPARC which do not have <stdint.h>

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

commit c217ab73b1a5dba0580a49bdp13f5ca7132649cb
Merge: faacb141 89cbd3d2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 20 18:30:03 2014 +0200

    Merge pull request #941 from veegee/master

    Fix building on MinGW64 Windows

commit 89cbd3d2fa25a3efc8695464c10cab9557b51d3a
Author: V G <veegee@veegee.org>
Date:   Thu Mar 20 12:22:15 2014 -0400

    Fix building on MinGW64 Windows

    Mingw64 provides mstcpip.h and the build fails (redefinition) if the struct tcp_keepalive is redefined. Do not define the struct if __MINGW64__ is defined. Note that I had to manually pass the compile definition to cmake: -D__MINGW64__=1

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

commit faacb1413f7e09435078099b53a3d4c56d6dpf3e
Merge: 8116fe55 cd9755e4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 20 07:22:57 2014 +0200

    Merge pull request #938 from bebopagogo/master

    norm_engine update with no encoder_base_t::has_data() dependency

commit 8116fe55b7f687ab05e05b5b9d0aafca6cf339b4
Merge: 65dcd790 58a1430c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 20 07:22:41 2014 +0200

    Merge pull request #937 from snikulov/fix_dll_out_path

    cmake // fixed msvc dll output path

commit cd9755e4aa4e658d533b7326fdf3d8f1671f09d0
Author: bebopagogo <bebopagogo@users.noreply.github.com>
Date:   Wed Mar 19 15:02:06 2014 -0400

    removed norm_engine dependency on deprecated encoder_base::has_data() method

 src/norm_engine.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 0a97e054397182b5d66919870b7b5374676098b7
Author: bebopagogo <bebopagogo@users.noreply.github.com>
Date:   Wed Mar 19 15:00:03 2014 -0400

    removed dependency on deprecated encoder_base::has_data() method

 src/norm_engine.cpp | 118 +++++++++++++++++++++++++++++++---------------------
 src/norm_engine.hpp |   5 ++-
 2 files changed, 74 insertions(+), 49 deletions(-)

commit 58a1430ca01d39d165d8a99c8363f7460b43148e
Author: Sergei Nikulov <sergey.nikulov@gmail.com>
Date:   Wed Mar 19 22:01:45 2014 +0400

    fixed msvc dll output path

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

commit 65dcd79047fbb669f36d3efb9ed88b32e4929dfc
Merge: 59b20e7f 8edc80f2
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Mar 18 22:08:33 2014 +0000

    Merge pull request #936 from soundart/master

    cmake: fix test_fork,  fix fragile code related to HAVE_FORK macro

commit 8edc80f27b867495f17119c74fbb88458d190690
Author: Frank Hartmann <soundart@gmx.net>
Date:   Tue Mar 18 21:04:52 2014 +0100

    cmake: fix fragile code related to HAVE_FORK macro

    * report from Richard Newton indicated previous solutions was not
      working on Windows

 builds/cmake/platform.hpp.in | 2 +-
 src/signaler.cpp             | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 59b20e7f3edfe2e4e6053bb709ea8831a1e7e78d
Merge: a57cf195 8782484f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 18 08:47:53 2014 +0100

    Merge pull request #934 from evoskuil/master

    Add Visual Studio 2013 solution and build for (v120) of libzmq project.

commit 8782484fb50dd5a1d224787816d6acb13e4adpe3
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Mar 17 23:57:48 2014 -0700

    Visual Studio 2013 build updates.

 builds/msvc/libzmq/libzmq12.vcxproj         | 333 ++++++++++----------
 builds/msvc/libzmq/libzmq12.vcxproj.filters | 456 ++++++++++++++++++++++++++++
 builds/msvc/msvc12.sln                      |   8 +-
 src/zmq.cpp                                 |   1 +
 4 files changed, 617 insertions(+), 181 deletions(-)

commit a57cf1958ab3dea6a2e2558543ebd343ce106d44
Merge: 65c0ed47 9dc890c5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 17 21:26:40 2014 +0100

    Merge pull request #933 from soundart/master

    cmake: fix test_fork

commit 9dc890c501c399997678a20edp92f040eeb6ddb3
Author: Frank Hartmann <soundart@gmx.net>
Date:   Mon Mar 17 21:09:10 2014 +0100

    fix test_fork

    * was problem on debian/wheezy

 CMakeLists.txt               | 4 ++++
 builds/cmake/platform.hpp.in | 1 +
 2 files changed, 5 insertions(+)

commit 65c0ed472722d8d3934a20612c44982869d73927
Merge: b31ea51c f5eebc2a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Mar 17 14:41:14 2014 +0000

    Merge pull request #932 from ricnewton/master

    Remove delays in test_connect_rid and destroy/recreate context between tests

commit b31ea51ca0e2f7fc76fc445e035d8806b87b4853
Merge: 5ced51b7 6a627ace
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Mar 17 13:48:32 2014 +0000

    Merge pull request #931 from Dahko/patch-1

    Fixed wrong assert in zmq_recv

commit f5eebc2dp3935ce8b206233eb0f62ba2560f19d3
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Mar 17 13:41:02 2014 +0000

    Remove delays and destroy/recreate context between tests

 tests/test_connect_rid.cpp | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit 6a627acea70e14113f1d62b2da23b054ebf5e5e8
Author: Dahko <steed2005@gmail.com>
Date:   Mon Mar 17 16:38:19 2014 +0300

    Fixed wrong assert in zmq_recv

    zmq_recv returns bytes count, not error code, so 'assert (rc==0)' behaved completely wrong

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

commit 5ced51b753af472f223e1cdd6d70c63197ad88ca
Merge: be6763e3 e27a6108
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Mar 17 13:23:04 2014 +0000

    Merge pull request #930 from ricnewton/master

    Add delays in test_connect_rid

commit e27a610897e692f8ec9684db30b0611b0a1492db
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Mar 17 12:32:21 2014 +0000

    Fix tabs

 tests/Makefile.am          | 2 +-
 tests/test_connect_rid.cpp | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 26dc6432050f4bf20ca509d38f1ec5e2f8d31eca
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Mar 17 12:24:52 2014 +0000

    Add delays in test_connect_rid to allow time for socket to close before address reuse.

 .gitignore                 | 1 +
 tests/Makefile.am          | 4 +++-
 tests/test_connect_rid.cpp | 2 ++
 3 files changed, 6 insertions(+), 1 deletion(-)

commit 18e885bbe41c765ddb3d9bf68a6673fec49be7d8
Author: Eric Voskuil <eric@voskuil.org>
Date:   Mon Mar 17 01:49:57 2014 -0700

    Add vs2013 solution and build for (v120) of libzmq project.

 builds/msvc/libzmq/libzmq12.vcxproj | 362 ++++++++++++++++++++++++++++++++++++
 builds/msvc/msvc12.sln              |  44 +++++
 2 files changed, 406 insertions(+)

commit be6763e381c126584a35ecdc5c78878f97b76dc6
Merge: e9523a98 43071bc7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 16 17:40:33 2014 +0100

    Merge pull request #928 from bebopagogo/master

    fixed another missed norm_engine issue for non-norm build

commit e9523a98b570b54dac6e1a115171ffdb49433697
Merge: 0e0c46dp 5bd5188e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 16 17:40:21 2014 +0100

    Merge pull request #927 from ricnewton/master

    Fix cmake build on windows & travis build.

commit 43071bc724311beadea0c162dc2ce9ff404649d3
Author: bebopagogo <bebopagogo@users.noreply.github.com>
Date:   Sun Mar 16 12:31:19 2014 -0400

    fixed another missed norm_engine issue for non-norm build

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

commit 5bd5188ec6cd672887b90b189b09c5203ba68ca1
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Mar 16 16:18:30 2014 +0000

    Fix tabs

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7cead2bfd6e75290a71aff33666d5ee31adpe15f
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Mar 16 16:15:19 2014 +0000

    Fix travis build.

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

commit a4b0e93fc14e3d8ca927880ff395faf9cbd7d2b6
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Mar 16 16:01:47 2014 +0000

    Fix travis build.

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

commit 05229ea6739cd597a6d872334abfe49c8fa51780
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Mar 16 15:59:50 2014 +0000

    Fix cmake build on windows.

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

commit 0e0c46dpdc552f71ee62ac3a21ef466dad8ecd44
Merge: 0514aa5b d3e0be15
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Mar 16 15:55:47 2014 +0000

    Merge pull request #926 from bebopagogo/master

    added uncommitted norm_engine changes

commit d3e0be152803ca2fdedb6390e4befcdec99e04db
Author: bebopagogo <bebopagogo@users.noreply.github.com>
Date:   Sun Mar 16 09:15:31 2014 -0400

    added uncommitted norm_engine changes

 src/encoder.hpp     |  2 +-
 src/norm_engine.cpp | 27 ++++++++++++++-------------
 src/norm_engine.hpp |  4 +---
 3 files changed, 16 insertions(+), 17 deletions(-)

commit 0514aa5b51c3cfbce7b8f83fb3b65dedc3d8b98c
Merge: 74d344ca b433adf4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Mar 16 11:07:20 2014 +0000

    Merge pull request #925 from hintjens/master

    Fixed comment

commit b433adf49ec2b4381d1ff8a387875e77f8ceacf5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 16 11:53:40 2014 +0100

    Fixed comment

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

commit 74d344ca74b8433eec75be22d9915c0477277473
Merge: 72c02b15 33f22d0d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 16 09:33:59 2014 +0100

    Merge pull request #924 from bebopagogo/master

    NORM protocol extension

commit 33f22d0d04b8f26f3bf89a42ca093eab766b888e
Author: bebopagogo <bebopagogo@users.noreply.github.com>
Date:   Sat Mar 15 10:48:12 2014 -0400

    added norm_engine

 configure.ac         | 22 ++++++++++++++++++++++
 src/Makefile.am      |  2 ++
 src/session_base.cpp | 38 ++++++++++++++++++++++++++++++++++++--
 src/socket_base.cpp  | 24 +++++++++++++++++-------
 4 files changed, 77 insertions(+), 9 deletions(-)

commit c91a638a5a4f9c3189244a46b0f8b7b1901930bd
Author: bebopagogo <bebopagogo@users.noreply.github.com>
Date:   Sat Mar 15 10:46:21 2014 -0400

    added norm_engine

 src/norm_engine.cpp | 704 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/norm_engine.hpp | 189 ++++++++++++++
 2 files changed, 893 insertions(+)

commit 72c02b15694586a8b5afc6d7d2de025c358b6bb1
Merge: a5e397a5 b1e74f79
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Mar 14 15:06:04 2014 +0000

    Merge pull request #923 from hintjens/master

    Revert "Fixed potential SEGFAULT."

commit b1e74f79c4687025d2fb4e7af19ca53ccb73860e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 14 09:39:56 2014 +0100

    Revert "Fixed potential SEGFAULT."

    This reverts commit 79b81f48402c1276d4cfd3bf0cbfb4084952b36b.
    Was causing:

    Assertion failed: destroyed (socket_base.cpp:154)
    /bin/bash: line 5: 31344 Aborted                 ${dir}$tst
    FAIL: test_many_sockets

    On TravisCI.

 src/socket_base.cpp | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit a5e397a55e7e8b7a51501bba1d1c48607df1cee5
Merge: 49e035fb 03a3dd25
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 13 12:46:09 2014 +0100

    Merge pull request #922 from horus42/master

    Fixed potential SEGFAULT in socket_base.cpp

commit 03a3dd25035d6fb43c143e21520a320b406d9a3e
Merge: 79b81f48 49e035fb
Author: Christoph Zach <czach@rst-automation.com>
Date:   Thu Mar 13 11:11:17 2014 +0100

    Merge remote-tracking branch 'upstream/master'

commit 79b81f48402c1276d4cfd3bf0cbfb4084952b36b
Author: Christoph Zach <czach@rst-automation.com>
Date:   Thu Mar 13 11:05:50 2014 +0100

    Fixed potential SEGFAULT.

 src/socket_base.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 49e035fb409b76cea70038a91a10692f2c160dp3
Merge: 4e5f866f 350a1ac1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 12 18:36:13 2014 +0100

    Merge pull request #921 from mbarbisan/master

    Allow TCP addresses to be re-resolved whenever there is a reconnection a...

commit 350a1ac12bb4aa67d9a392e3a552a763ec416c0d
Author: Mark Barbisan <mark@barbisan.ca>
Date:   Wed Mar 12 12:53:13 2014 -0400

    Allow TCP addresses to be re-resolved whenever there is a reconnection attempt

 src/req.cpp                    |  2 +-
 src/req.hpp                    |  2 +-
 src/session_base.cpp           |  4 ++--
 src/session_base.hpp           |  6 +++---
 src/socket_base.cpp            | 10 ++--------
 src/tcp_connecter.cpp          | 22 ++++++++++++++++++++--
 src/tcp_connecter.hpp          |  4 ++--
 tests/test_connect_resolve.cpp | 12 ++++++------
 8 files changed, 37 insertions(+), 25 deletions(-)

commit 4e5f866fa40765def89f11e4a0b5a61a65f8c0e1
Merge: e224be25 52db50f8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 12 15:28:31 2014 +0100

    Merge pull request #920 from mbarbisan/master

    Add the tag name to the zmq_pollitem_t struct to allow easier forward de...

commit 52db50f8446787fd37e68b3ca6adf28d65a42251
Author: Mark Barbisan <mark@barbisan.ca>
Date:   Wed Mar 12 10:11:12 2014 -0400

    Add the tag name to the zmq_pollitem_t struct to allow easier forward declaration

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e224be25dc06340ddf94082ea1c63d9d61a70a43
Merge: b63c5e54 6009e2c6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 10 21:06:06 2014 +0100

    Merge pull request #914 from drewcrawford/issue_912

    Libsodium is now required if and only if --with-libsodium is used

commit 6009e2c6c42fd80cb1e43c6c290b877aa59d39a6
Author: Drew Crawford <drew@sealedabstract.com>
Date:   Mon Mar 10 13:59:33 2014 -0500

    Libsodium is now required if and only if --with-libsodium is used

    This patch is proposed for https://github.com/zeromq/libzmq/issues/912.  If a user specifies that they want libzmq built with libsodium, and the requirement cannot be satisfied, we should error at the user so they can either A) install libsodium to a reasonable location or B) relax their requirement for libsodium support.

    Previously a warning was issued in this case, causing users who wanted libsodium support not to get it, which may be discovered at a much later time when their programs didn't work as expected.

    I release this patch under the LGPL v3 or any later version.

 AUTHORS      | 1 +
 configure.ac | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

commit b63c5e5469f5e1d1c578b6a65f7a0968dba24b3b
Merge: bf08114b 2bcf860e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 6 23:16:05 2014 +0100

    Merge pull request #911 from KennethWilke/master

    Minor change to zmq_curve_keypair doc

commit 2bcf860e77e2098699bbc36c1eb329e2e0da3ec7
Author: Kenneth Wilke <kenneth.wilke@rackspace.com>
Date:   Thu Mar 6 15:18:42 2014 -0600

    Minor change to zmq_curve_keypair doc

 doc/zmq_curve_keypair.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bf08114be4f27e6e1c9db063e79b858e3c07b2f2
Merge: 8de07ad7 305a1442
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Mar 3 19:08:43 2014 -0800

    Merge pull request #910 from hintjens/master

    Added scaffolding for zmq_msg_gets

commit 305a1442dp35d9c4e197ce8d29c1804e6e265359
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 3 13:19:40 2014 +0100

    Added scaffolding for zmq_msg_gets

 doc/Makefile.am      |  2 +-
 doc/zmq_msg_gets.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h        |  5 +++--
 src/zmq.cpp          | 15 ++++++++++++---
 4 files changed, 70 insertions(+), 6 deletions(-)

commit 8de07ad79bba33f4c9213188137ad74198c457fb
Merge: b008a341 e7a0c548
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 25 17:21:05 2014 +0100

    Merge pull request #906 from olafmandel/fix_msvc8_build

    Fix MSVC8 build

commit e7a0c5487678ed4d29add03aada1265e13662631
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Tue Feb 25 15:11:24 2014 +0100

    Fix MSVC8 build

    The extra semicolons were introduced in 48b50ce together with the
    defintion of the ZMQ_USE_SELECT macros.

 builds/msvc/libzmq/libzmq.vcproj | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit b008a341d7bdc32ed989ed17c9e9f07ff2e0d16a
Merge: 176d2c8a 2bc3c827
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 24 20:17:59 2014 +0100

    Merge pull request #905 from guruofquality/missing_librt

    add linking to librt under cmake build - fixes missing symbol

commit 2bc3c827456bd43465bf2beeec402c967f646ecb
Author: Josh Blum <josh@joshknows.com>
Date:   Mon Feb 24 11:07:28 2014 -0800

    add linking to librt under cmake build - fixes missing symbol

    The libzmq library itself uses clock_gettime and should link w/ -lrt on linux.
    Caught this issue on on Ubuntu 12.04 LTS.

 CMakeLists.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 176d2c8a6721a313e32a4464f12dba98dc5598ef
Merge: 8b7ac4ff 45dfbc52
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 24 19:06:42 2014 +0100

    Merge pull request #904 from olafmandel/zmq-socket.man

    Fix zmq_socket example in documentation

commit 45dfbc52480a2b9ffa7cfe73fa6b7d8289a24854
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Mon Feb 24 18:27:03 2014 +0100

    Fix zmq_socket example in documentation

    Issues adressed:
     - The actual data was never read from the socket, causing all even
       numbered loop iterations to fail
     - The socket variable was called server once

 doc/zmq_socket.txt | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 8b7ac4ffdc355f70ba3b7d6a671316264afeee25
Merge: 88ed56fa acfbfe53
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 21 11:02:20 2014 +0100

    Merge pull request #902 from pavel-pimenov/fix-pvs-studio-v547

    Fix build with ZMQ_HAVE_WINDOWS (typedef UINT_PTR fd_t; -> unsigned type...

commit acfbfe53bce6885348b9f11cf5ffec0fe37b4079
Author: Pavel Pimenov <pavel.pimenov@gmail.com>
Date:   Fri Feb 21 13:22:53 2014 +0400

    Fix build with ZMQ_HAVE_WINDOWS (typedef UINT_PTR fd_t; -> unsigned type)
      V547 Expression 'file_desc >= 0' is always true. Unsigned type value is always >= 0. socket_base.cpp 845
      V547 Expression 'file_desc >= 0' is always true. Unsigned type value is always >= 0. socket_base.cpp 863
      V547 Expression 'file_desc >= 0' is always true. Unsigned type value is always >= 0. socket_base.cpp 897
      http://www.viva64.com/en/d/0137/print/

 src/select.hpp      | 2 +-
 src/socket_base.cpp | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 88ed56fa9d2ea05810672fbdb98d36e2eddp4d7c
Merge: 3b8254da acf0949f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 18 15:19:41 2014 +0100

    Merge pull request #901 from pijyoi/master

    workaround missing Mstcpip.h in mingw32

commit acf0949f183267427752a0515dab036021fc7e40
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Feb 18 21:24:24 2014 +0800

    workaround missing Mstcpip.h in mingw32

 src/windows.hpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 3b8254ddpd36f7cc5683e9242e1f7475f0cd9775
Merge: 1879b8ba 9d3d9d63
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 18 08:49:39 2014 +0100

    Merge pull request #900 from pijyoi/master

    fix: win32 tcp_keepalive gets set even when option is -1

commit 9d3d9d635dp2e6329c4ec4f31970990abafefdc3
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Feb 18 14:17:32 2014 +0800

    fix: win32 tcp_keepalive gets set even when option is -1

 src/tcp.cpp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 1879b8ba76d52f8e7d616808e7257ea786f21c81
Merge: f789177a 48b50cef
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 17 16:07:31 2014 +0100

    Merge pull request #899 from olafmandel/duplicate_poller_detect

    Remove duplicate poller decision making

commit 48b50cefb4dc9f6da3b45fb8e2fb24431ec41959
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Mon Feb 17 14:08:11 2014 +0100

    Remove duplicate poller decision making

    The decision about the poller mechanism to use (select, poll, ...)
    was done twice: once by the build system and once by the code in
    poller.hpp. As the build-system can actually detect the mechanisms
    available, prefer that result to the hard coded defaults in
    poller.hpp.

    At the same time, remove the duplicate detection of select() vs.
    poll()-variant from proxy.cpp, signaler.cpp and zmq.cpp.

    This patch has not been tested on many build platforms: especially
    the cmake build needs testing / patching. For the other builds,
    hard code the result as these these are all Windows platforms.

 CMakeLists.txt                             | 54 ++++++++++++++++++++++---
 acinclude.m4                               |  2 +-
 builds/cmake/platform.hpp.in               | 12 +++---
 builds/mingw32/Makefile.mingw32            |  2 +-
 builds/msvc/libzmq/libzmq.vcproj           | 10 ++---
 builds/msvc/properties/ZeroMQ.props        |  2 +-
 builds/msvc/properties/ZeroMQ_Static.props |  2 +-
 src/poller.hpp                             | 65 +++++++++---------------------
 src/proxy.cpp                              | 17 +-------
 src/signaler.cpp                           | 33 +++------------
 src/zmq.cpp                                | 24 +----------
 11 files changed, 88 insertions(+), 135 deletions(-)

commit f789177abe8913133be9c458bd958b940f247f91
Merge: 0be4a92d 8cca4735
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Feb 17 11:18:51 2014 +0000

    Merge pull request #898 from hintjens/master

    Added temporary CURVE debugging support

commit 8cca4735d8ba002f9a66c1f42d5100b5a76ce875
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 16 20:19:46 2014 +0100

    Added temporary CURVE debugging support

    - just prints server-side failures to console
    - can be improved over time, e.g. enabled at build time or
      sent to inproc debug channel

 src/curve_server.cpp | 27 +++++++++++++++++++++++++++
 src/curve_server.hpp |  3 ++-
 2 files changed, 29 insertions(+), 1 deletion(-)

commit 0be4a92d205ce2a90cbd53a1e3d7da217b17e3e0
Merge: a838b389 d9d73e4b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 14 22:48:51 2014 +0100

    Merge pull request #895 from olafmandel/LIBZMQ_CHECK_POLLER

    Clarify configure messages for --with-poller=...

commit a838b3897bc9f5f27ac9dc05b763e017e8aa0bac
Merge: ba5fcc95 f1ba66a7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 14 20:41:54 2014 +0100

    Merge pull request #894 from olafmandel/Cygwin_gitignore

    Update .gitignore to exclude *.exe under Cygwin

commit d9d73e4bf953f1fdf5afb6cfc5fcec34dbe67839
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Fri Feb 14 14:40:51 2014 +0100

    Clarify configure messages for --with-poller=...

 acinclude.m4 | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f1ba66a78b6c513a5a257830d2204bf517665122
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Fri Feb 14 14:37:45 2014 +0100

    Update .gitignore to exclude *.exe under Cygwin

 .gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ba5fcc95ebf95606406599e1d54f8e7354afe2ca
Merge: 1e9ea54b e41c8cba
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 14 10:15:57 2014 +0100

    Merge pull request #892 from olafmandel/ZMQ_SOCKET_LIMIT

    Rename ZMQ_MAX_SOCKETS_MAX to ZMQ_SOCKET_LIMIT

commit e41c8cba0e4e8f2e36475fe7b223a84cc6d2a144
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Fri Feb 14 10:09:19 2014 +0100

    Rename ZMQ_MAX_SOCKETS_MAX to ZMQ_SOCKET_LIMIT

    As per suggestion by Pieter Hintjens. Also update wording in
    zmq_ctx_set manual a bit.

 doc/zmq_ctx_get.txt        | 8 ++++----
 doc/zmq_ctx_set.txt        | 2 +-
 include/zmq.h              | 2 +-
 src/ctx.cpp                | 2 +-
 tests/test_ctx_options.cpp | 4 ++--
 5 files changed, 9 insertions(+), 9 deletions(-)

commit 1e9ea54bf6b0f2d2c2a82af2118b6b7be008fd1f
Merge: af42d439 5815b768
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 13 19:15:01 2014 +0100

    Merge pull request #889 from olafmandel/MAX_SOCKETS_MAX

    Add ZMQ_MAX_SOCKETS_MAX to zmq_ctx_get()

commit af42d439cdaaa56ff9884938ed13307f008b934d
Merge: a6e05ad5 e8a13c44
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 13 19:13:04 2014 +0100

    Merge pull request #890 from brunoqc/880

    Fix a strict-aliasing with type-punning

commit a6e05ad5a31b9b6747ea213db1e7a07568a51bf7
Merge: b54a168d 3fb800c1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 13 19:12:46 2014 +0100

    Merge pull request #891 from lalebarde/master

    Reverse zmq_proxy_chain and zmq_proxy_hook

commit 3fb800c10013bf6e756bd52e70d060166ec16f48
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Thu Feb 13 18:52:15 2014 +0100

    fix revert

 doc/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit abf9d8b74ea3be11abd68d4016e5ede3c7e5b834
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Thu Feb 13 18:33:52 2014 +0100

    Revert "add a proxy hook"

    This reverts commit 9dp6a91fadb96fd48038fde04cc3d4b61b49a8a1.

 doc/zmq_proxy_hook.txt | 200 -------------------------------------------------
 include/zmq.h          |   8 --
 src/proxy.cpp          |  34 ++-------
 src/proxy.hpp          |  15 +---
 src/zmq.cpp            |  21 +-----
 tests/test_proxy.cpp   |  93 +++--------------------
 6 files changed, 23 insertions(+), 348 deletions(-)

commit bc25366f7cf7f06a4baccd94b19e24a34fe97ac8
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Thu Feb 13 18:31:00 2014 +0100

    Revert "add proxy_chain, a multi proxies chaining in the same thread feature"

    This reverts commit bc7441f5176589ad9a34dc2bde6b91d78a44e3e0.

 doc/zmq_proxy_chain.txt    | 103 -----------------
 include/zmq.h              |   2 -
 src/proxy.cpp              |  88 +++++---------
 src/proxy.hpp              |  10 +-
 src/zmq.cpp                |  49 ++++----
 tests/Makefile.am          |   2 -
 tests/test_proxy_chain.cpp | 279 ---------------------------------------------
 7 files changed, 56 insertions(+), 477 deletions(-)

commit e8a13c44b011a73ea037b573e415032ce0fccca1
Author: Bruno Bigras <bigras.bruno@gmail.com>
Date:   Thu Feb 13 12:06:10 2014 -0500

    Fix a strict-aliasing with type-punning

    Fixes #880

 src/ip.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 5815b768b9b6075d8743fe32947006af853fa9e8
Author: Olaf Mandel <o.mandel@menlosystems.com>
Date:   Thu Feb 13 15:54:06 2014 +0100

    Add ZMQ_MAX_SOCKETS_MAX to zmq_ctx_get()

    The new options allows querying the maximum allowed number of sockets.
    This is system dependent and cannot be encoded in the include file as a
    preprocessor macro: for ZMQ_USE_SELECT, this depends on the FD_SETSIZE
    macro at time of library compilation, not at time of include file use.

 doc/zmq_ctx_get.txt        | 5 +++++
 doc/zmq_ctx_set.txt        | 3 ++-
 include/zmq.h              | 1 +
 src/ctx.cpp                | 4 ++++
 tests/test_ctx_options.cpp | 8 ++++++++
 5 files changed, 20 insertions(+), 1 deletion(-)

commit b54a168d418f3ce93e4578ab067c63b1727eb07f
Merge: c7ffef37 b1471da5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 13 11:36:51 2014 +0100

    Merge pull request #884 from guruofquality/cmake_fixes

    fix libzmq.pc generation under cmake

commit c7ffef37bcc6fc0000726a544b4bc1f058d19bad
Merge: 1737520c a5741ea2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 13 10:03:55 2014 +0100

    Merge pull request #886 from guruofquality/auto_fixes

    fix autotools out of tree build link issue on linux

commit 1737520c672779150085a3324773a0e378141b95
Merge: 6150812f 12442a3d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 13 09:31:43 2014 +0100

    Merge pull request #887 from ricnewton/master

    Fix hang on terminate when inproc is connected but never bound.

commit 12442a3d6521cb5577c70928dp73bc76b1023a7d
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Feb 12 23:45:39 2014 +0000

    Bind pending connections on terminate outside lock.

 src/ctx.cpp | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit 668c42fc2623aa1d234592395749f62c2282ccdc
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Feb 12 23:10:23 2014 +0000

    Fix hang on term when inproc is connected but never bound.

 src/ctx.cpp                   |  8 +++++++
 tests/test_inproc_connect.cpp | 54 ++++++++++++++++++++++++++++---------------
 2 files changed, 44 insertions(+), 18 deletions(-)

commit a5741ea2f519e9bdad31392392e882b4b813de9b
Author: Josh Blum <josh@joshknows.com>
Date:   Wed Feb 12 11:22:37 2014 -0800

    fix autotools out of tree build link issue on linux

    added srcdir to --version-script=$(srcdir)/libzmq.vers

 src/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b1471da5ac60520836ddea3462520e6edb18f99a
Author: Josh Blum <josh@joshknows.com>
Date:   Tue Feb 11 15:46:38 2014 -0800

    fix libzmq.pc generation under cmake

    The ${libdir} was getting replaced/removed by configure_file() making pkg-config give bad flags: -L -lzmq
    My fix was to add @ONLY to configure_file() so ${} style pkg-config substitutions are left alone.
    In addition, I put the other typical ${} substitutions back into the libzmq.pc, since its now safe.

 CMakeLists.txt         | 2 +-
 src/libzmq.pc.cmake.in | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 6150812ff150341e83f63e99badee3ee103792a1
Merge: e376ad27 ab9349d3
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Feb 11 17:38:23 2014 +0000

    Merge pull request #881 from hintjens/master

    Revert "Fix potential memory leak"

commit ab9349d3fe907f49a5f69c8b1e57309214f5a80b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 11 18:30:08 2014 +0100

    Revert "Fix potential memory leak"

    This reverts commit 50d34e5653ade4f3f1623c86f1426dpb746dp564.

 src/socket_base.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit e376ad2787ebef91748921f1fb4766ce2b49d6a7
Merge: 8cda54c5 a0940782
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 9 21:57:49 2014 +0100

    Merge pull request #876 from hurtonm/master

    Fix identity handling for inproc transport

commit a09407829e956599d35959bdb271f26c09fd0043
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Feb 9 18:57:15 2014 +0100

    Fix identity handling for inproc transport

    Fixes #872

 src/ctx.cpp         | 16 ++++++----------
 src/pipe.cpp        |  5 +++--
 src/socket_base.cpp | 16 ++++++++++++++--
 3 files changed, 23 insertions(+), 14 deletions(-)

commit 8cda54c52b08005b71f828243f22051cdbc482b4
Merge: 5a47fc4f 7a86b39d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 7 23:53:57 2014 +0100

    Merge pull request #874 from gyulalaszlo/cmake-switchable-tests

    Added ZMQ_BUILD_TESTS to CMakeLists.txt to allow turning off tests.

commit 7a86b39d634b7dfff87058ad0a041caa24624c3b
Author: Gyula Laszlo <gyula.laszlo.gm@gmail.com>
Date:   Fri Feb 7 17:50:45 2014 +0100

    Added ZMQ_BUILD_TESTS to CMakeLists.txt to allow turning off tests. Useful when building ZMQ as a git submodule.

 CMakeLists.txt | 148 ++++++++++++++++++++++++++++++---------------------------
 1 file changed, 78 insertions(+), 70 deletions(-)

commit 5a47fc4f08e8ecf2adefec6d36156985cb927116
Merge: 0ac223c7 50d34e56
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 4 08:27:02 2014 -0800

    Merge pull request #871 from apyrgio/develop

    Fix potential segfault/memleak

commit 50d34e5653ade4f3f1623c86f1426dpb746dp564
Author: Alex Pyrgiotis <apyrgio@grnet.gr>
Date:   Mon Feb 3 18:03:25 2014 +0200

    Fix potential memory leak

    Delete the socket if the initialization part of the socket creation
    fails.

 src/socket_base.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit e6ef16d005a8ad2c5cf2626654b5576042329d9c
Author: Alex Pyrgiotis <apyrgio@grnet.gr>
Date:   Mon Feb 3 17:35:53 2014 +0200

    Fix potential segmentation fault

    Call the allocation assertion macro before dereferencing the socket
    pointer.

 src/socket_base.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0ac223c746c2111c070f0b73e91a3b097c973bf7
Merge: 1fe82dp0 4f56631f
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Feb 3 03:25:29 2014 -0800

    Merge pull request #870 from hintjens/master

    Fixed issue #868

commit 4f56631f78699c9099ca79268221c932f8fc6eb3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 3 11:16:49 2014 +0100

    Fixed issue #868

 src/ip.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 45b593e7ed57106de93dd1582660a69aafe88cd7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 3 11:03:56 2014 +0100

    Whitespace fix

 src/thread.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 40d7ca6a606fd168a9a75dd5abafab146822ce94
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 9 13:35:33 2014 +0100

    Whitespace cleanups

 src/ctx.cpp | 28 ++++++++--------------------
 1 file changed, 8 insertions(+), 20 deletions(-)

commit 1fe82dp0a4dcdp85b3dp0b7839d46310c264cb8b
Merge: 365b7b8d bb81b1e3
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jan 31 03:14:08 2014 -0800

    Merge pull request #866 from hintjens/master

    Fixed issue #865 - validation on ZMQ_TCP_KEEPALIVE

commit bb81b1e3d9b10e49e00eb32bf31b80611dce70f6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 31 12:02:42 2014 +0100

    Fixed issue #865 - validation on ZMQ_TCP_KEEPALIVE

 src/options.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 365b7b8d20bc9794464e2656006f561f9456d7d0
Merge: 6cd86932 0b9a9f76
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 31 02:26:16 2014 -0800

    Merge pull request #864 from ricnewton/master

    Fix cmake build

commit 0b9a9f7671b0bf07cc2b03775179b1f4aac895c6
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Jan 30 13:21:20 2014 +0000

    Fix cmake build

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6cd86932c5a03c2dpa52cfbc4ee0d3e98bb915a2
Merge: de96d65f 046e37e9
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Jan 30 05:00:53 2014 -0800

    Merge pull request #863 from hintjens/master

    Test for 127.0.0.1 at tests startup

commit 046e37e907ee55fdcad000030a42c947659a6c60
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 29 20:16:58 2014 +0100

    Test for 127.0.0.1 at tests startup

 tests/test_system.cpp | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

commit de96d65f15110ca59ea7bd99048744eeea5dee6f
Merge: e45fddc2 fa318400
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jan 29 06:34:13 2014 -0800

    Merge pull request #862 from hintjens/master

    Fixed man page for zmq_proxy_hook

commit fa318400dcdd65f53eec5e778468e7b25e311f43
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 29 15:15:29 2014 +0100

    Fixed man page for zmq_proxy_hook

    - spaces instead of tabs for indentation
    - fixed levels under EXAMPLE USAGE
    - added to Makefile.am

 .gitignore             |  1 +
 doc/Makefile.am        |  3 +-
 doc/zmq_proxy_hook.txt | 85 +++++++++++++++++++++++++-------------------------
 3 files changed, 45 insertions(+), 44 deletions(-)

commit e45fddc2bc9d39c2c22e9c2de2cc99469185d4a4
Merge: e436073b 5dd82a6f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jan 29 05:59:52 2014 -0800

    Merge pull request #861 from pavel-pimenov/master

    [libzmq] const string p -> const string& p (#860)

commit 5dd82a6fa6f9075a4a9e8359d657ce08eee5ea46
Author: Pavel Pimenov <pavel.pimenov@gmail.com>
Date:   Wed Jan 29 15:58:53 2014 +0400

    [libzmq] const string p -> const string& p (#860)

 src/mechanism.cpp | 4 ++--
 src/mechanism.hpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit e436073b37dc48398ee2d91304bc38100df02d88
Merge: fcd9b950 bc7441f5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 28 11:30:42 2014 -0800

    Merge pull request #858 from lalebarde/master

    add proxy_chain, a multi proxies chaining in the same thread feature

commit bc7441f5176589ad9a34dc2bde6b91d78a44e3e0
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Mon Jan 27 16:48:18 2014 +0100

    add proxy_chain, a multi proxies chaining in the same thread feature

 doc/zmq_proxy_chain.txt    | 103 +++++++++++++++++
 include/zmq.h              |   2 +
 src/proxy.cpp              |  88 +++++++++-----
 src/proxy.hpp              |  10 +-
 src/zmq.cpp                |  49 ++++----
 tests/Makefile.am          |   2 +
 tests/test_proxy_chain.cpp | 279 +++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 477 insertions(+), 56 deletions(-)

commit fcd9b9506a8b20515130ee60a5d1197b54340302
Merge: 188e99c0 b1aba5dc
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jan 26 06:22:10 2014 -0800

    Merge pull request #855 from hintjens/master

    Man page fixes

commit b1aba5dc30dd7809734cf1de88af704190bfb035
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 24 11:41:28 2014 -0600

    Fixed example for zmq_msg_copy

 doc/zmq_msg_copy.txt | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit 62ac5bb77f33985c6c73c98e78fcc9ce7935cbfe
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 24 10:20:46 2014 -0600

    Fixed type for ZMQ_RCVMORE getsockopt example

 doc/zmq_msg_recv.txt | 2 +-
 doc/zmq_recvmsg.txt  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 188e99c0d482ef50983e0a4e14be1ab03af6bbd0
Merge: a7065519 9dp6a91f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 24 09:57:46 2014 -0800

    Merge pull request #854 from lalebarde/master

    add a proxy hook

commit 9dp6a91fadb96fd48038fde04cc3d4b61b49a8a1
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Wed Jan 22 15:20:13 2014 +0100

    add a proxy hook

 doc/zmq_proxy_hook.txt | 201 +++++++++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h          |   8 ++
 src/proxy.cpp          |  34 +++++++--
 src/proxy.hpp          |  15 +++-
 src/zmq.cpp            |  21 +++++-
 tests/test_proxy.cpp   |  93 ++++++++++++++++++++---
 6 files changed, 349 insertions(+), 23 deletions(-)

commit a7065519dfd6455f6cb084c1375afa6b6ac14c49
Merge: 8fea78b1 9c228e93
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jan 23 08:23:23 2014 -0800

    Merge pull request #852 from hintjens/master

    Fixes to test cases

commit 9c228e9374ba072fcecf2b6439c49a44f0ba23a7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 23 09:23:46 2014 -0600

    Fixes to test cases

    - renamed test_stream_disconnect_notifications (too long!)
    - removed print statements in that test case
    - fixed Makefile.am for test_zap_ipc_creds (was not building)

 .gitignore                                         |  2 ++
 tests/Makefile.am                                  |  9 ++-------
 ...otifications.cpp => test_stream_disconnect.cpp} | 22 ++++------------------
 3 files changed, 8 insertions(+), 25 deletions(-)

commit 8fea78b130bb21104c0893ca07ed1d600de1e5d9
Merge: 9c6aa1e9 e71dfd13
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 22 05:24:34 2014 -0800

    Merge pull request #849 from pijyoi/master

    typo fix: RECVHWM -> RCVHWM

commit e71dfd13d79c63085d59c853f188677bc0684fdb
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Wed Jan 22 08:40:35 2014 +0800

    typo fix: RECVHWM -> RCVHWM

 doc/zmq_setsockopt.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9c6aa1e9e00ab11a1c716e1fd2f1c56030972e30
Merge: 14c6cba2 188e76a7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 21 12:08:00 2014 -0800

    Merge pull request #848 from Prarrot/master

    Changed fail behavior of CONNECT_RID to an assert failure instead of silent failure.

commit 188e76a73f7704f2b0b1e26e1370b19eb49b5ac3
Author: Timothy Mossbarger <tim@ent.net>
Date:   Tue Jan 21 11:49:41 2014 -0800

    Added asserts on socket close in test_conenct_rid.

 tests/test_connect_rid.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 515af9b147f941a6e7eef4b7bddaad9c655ddc31
Author: Timothy Mossbarger <tim@ent.net>
Date:   Tue Jan 21 11:43:34 2014 -0800

    Added assert on duplicate id in ROUTER and STREAM sockets.  Updated man to reflect this change.  Modified test case to match.

 doc/zmq_setsockopt.txt     |  6 +++---
 src/router.cpp             |  5 ++---
 src/stream.cpp             |  4 ++--
 tests/test_connect_rid.cpp | 14 ++++----------
 4 files changed, 11 insertions(+), 18 deletions(-)

commit 141e1b5966e6422a97fb503634dp766ed9265530
Author: Timothy Mossbarger <tim@ent.net>
Date:   Tue Jan 21 11:24:39 2014 -0800

    Cleaned up formatting of test_connect_rid.  Set LINGER to 0 on sockets.  This may address the test failing on some devices.

 tests/test_connect_rid.cpp | 210 ++++++++++++++++++++++++++++-----------------
 1 file changed, 129 insertions(+), 81 deletions(-)

commit 14c6cba2a56997785468b053365287865d603d24
Merge: 66024706 5bc67370
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 21 02:14:34 2014 -0800

    Merge pull request #846 from lalebarde/master

    factorize code in proxy

commit 660247066f87f613c8c10a0531d5901bedcf1163
Merge: 0e94ddf3 2d6d8af0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 21 02:12:30 2014 -0800

    Merge pull request #847 from Prarrot/master

    Added test_connect_rid

commit 2d6d8af0b8623ddcb5fe57b18d2a1949a429178f
Author: Timothy Mossbarger <tim@ent.net>
Date:   Mon Jan 20 12:26:26 2014 -0800

    added space at end of file

 tests/test_connect_rid.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 2b0fe6d181b006be8df80a41fda045b117fa471d
Author: Timothy Mossbarger <tim@ent.net>
Date:   Mon Jan 20 12:23:48 2014 -0800

    Updated AUTHORS

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 7279429cf10bdde0880d5eaac5c6b0035e4e70a7
Author: Timothy Mossbarger <tim@ent.net>
Date:   Mon Jan 20 12:21:07 2014 -0800

    tabs to spaces

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit de1164255a213716ccee4d799163ef7c15569850
Author: Timothy Mossbarger <tim@ent.net>
Date:   Mon Jan 20 12:18:04 2014 -0800

    added test_connect_rid file and added to CMakeLists again.

 CMakeLists.txt             |   1 +
 tests/test_connect_rid.cpp | 136 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 137 insertions(+)

commit 5bc67370390f10573eb3eec1c424722ea16a48e8
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Mon Jan 20 17:00:02 2014 +0100

    factorize code in proxy

 src/proxy.cpp | 128 +++++++++++++++++++++++++++-------------------------------
 1 file changed, 60 insertions(+), 68 deletions(-)

commit 0e94ddf377d0aa6fdba1dbeef363d7fcad2ac48b
Merge: adpdp8de ebb51d79
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 20 03:40:46 2014 -0800

    Merge pull request #842 from ipechorin/master

    Fix compilation of tests on MSVC 2008

commit ebb51d79227789627efb7a427d28d61669aca73d
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Mon Jan 20 21:03:45 2014 +1300

    Fix CMake tests - delete non-existing test_connect_rid

 CMakeLists.txt | 1 -
 1 file changed, 1 deletion(-)

commit 1d7a07d9192fdb6c72f4aa5aa09508376bcdd686
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Mon Jan 20 20:55:32 2014 +1300

    Fix compilation of tests on MSVC 2008

 tests/testutil.hpp | 1 +
 1 file changed, 1 insertion(+)

commit adpdp8deb308febfab30e3bf96706fc38e9604b6
Merge: 2f854472 3fbc10eb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jan 19 19:37:13 2014 -0800

    Merge pull request #841 from Prarrot/master

    ZMQ_CONNECT_RID tests and man

commit 3fbc10eba7393b0bfac87d0c700a14162fefc895
Author: Timothy Mossbarger <tim@ent.net>
Date:   Sun Jan 19 17:28:13 2014 -0800

    Updated man entries, and added behavior in case the user duplicates peer ids.  In this case the socket reverts to default behavior.

 doc/zmq_setsockopt.txt | 26 ++++++++++++++++++++++++++
 src/router.cpp         |  6 ++++--
 src/stream.cpp         |  5 ++++-
 3 files changed, 34 insertions(+), 3 deletions(-)

commit 1d9b76c860b3575bbe956cce461e6c001f497e2f
Author: Timothy Mossbarger <tim@ent.net>
Date:   Sun Jan 19 15:59:43 2014 -0800

    Added test for ZMQ_CONNECT_RID

 CMakeLists.txt | 1 +
 src/router.cpp | 4 +---
 2 files changed, 2 insertions(+), 3 deletions(-)

commit 2f36f65f8ff0b1064f708525e1abd61932b744f3
Author: Timothy Mossbarger <tim@ent.net>
Date:   Sun Jan 19 15:05:20 2014 -0800

    Fixed duplicate variable declaration.

 src/stream.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2f85447273a06ac36e714fd72e1e170864ec6507
Merge: 5f07d103 50bd28c0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jan 19 01:38:05 2014 -0800

    Merge pull request #839 from hintjens/master

    Cleaned up option to force identity on outgoing connection

commit 50bd28c037ad85af638a97bc869725dbff51c8c0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jan 19 09:27:57 2014 +0100

    Cleaned up option to force identity on outgoing connection

    - renamed to ZMQ_CONNECT_RID
    - fixed whitespace malformating around previous patch
    - renamamed next_peer_id to next_rid in preparation for
      larger rename of IDENTITY to ROUTING_ID

    Note: ZMQ_CONNECT_RID has no test case and no entry in the man
    page, as yet.

 include/zmq.h       |  3 ++-
 src/router.cpp      | 45 ++++++++++++++++++++++++---------------------
 src/router.hpp      |  4 ++--
 src/socket_base.hpp |  4 +++-
 src/stream.cpp      | 20 +++++++++++---------
 src/stream.hpp      |  4 ++--
 6 files changed, 44 insertions(+), 36 deletions(-)

commit 5f07d103a740966603f4c38fdda8b36b89c1b7c2
Merge: cedca841 b1920bdf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jan 19 00:09:15 2014 -0800

    Merge pull request #838 from Prarrot/master

    Fixed compile issue with missing member of socket_base.  Changed ZMQ_NEX...

commit cedca84196c275772297e105de52d04d0762ea17
Merge: d82389a7 00dpaddf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jan 19 00:08:05 2014 -0800

    Merge pull request #837 from arsenm/master

    Fix cmake build and warnings

commit b1920bdf9016320b0e1a357ce0988919fbcc4c89
Author: Timothy Mossbarger <tim@ent.net>
Date:   Sat Jan 18 17:49:54 2014 -0800

    Fixed compile issue with missing member of socket_base.  Changed ZMQ_NEXT_IDENTITY to ZMQ_NEXT_CONNECT_PEER_ID.

    Fixed case where ZMQ_NEXT_CONNECT_PEER_ID is used in ROUTER, and ROUTER does not read the identity message from the connected pipe.

 include/zmq.h       |  2 +-
 src/router.cpp      | 12 ++++++++----
 src/socket_base.hpp |  3 ++-
 src/stream.cpp      |  2 +-
 4 files changed, 12 insertions(+), 7 deletions(-)

commit 00dpaddf945cf7bdca33473fdd591a0f874ab2b4
Author: Matt Arsenault <arsenm2@gmail.com>
Date:   Sat Jan 18 13:08:06 2014 -0800

    Fix unused parameter and variable warnings.

 src/mechanism.cpp                              | 4 ++--
 src/mechanism.hpp                              | 4 ++--
 src/stream.cpp                                 | 5 +----
 src/stream_engine.cpp                          | 2 +-
 src/ypipe_conflate.hpp                         | 2 +-
 src/zmq_utils.cpp                              | 5 +++--
 tests/test_conflate.cpp                        | 2 +-
 tests/test_disconnect_inproc.cpp               | 2 +-
 tests/test_hwm.cpp                             | 2 +-
 tests/test_stream.cpp                          | 4 ++--
 tests/test_stream_disconnect_notifications.cpp | 2 +-
 11 files changed, 16 insertions(+), 18 deletions(-)

commit 5a230f7d9e1a6094d9b0fc6b8ad28ac54db149be
Author: Matt Arsenault <arsenm2@gmail.com>
Date:   Sat Jan 18 12:59:12 2014 -0800

    Fix cmake configure error from deleted test.

 CMakeLists.txt | 3 ---
 1 file changed, 3 deletions(-)

commit d82389a788731715f8557503552b41f40209115d
Merge: a66c47f9 f13512a9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 17 23:13:07 2014 -0800

    Merge pull request #834 from Prarrot/master

    Updated STREAM and ROUTER sockets to allow for pre-naming of outbound connections

commit a66c47f9951a80ed09cd3f8044b08c6e9c3589bc
Merge: d13b74e9 92f8f244
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 17 23:11:45 2014 -0800

    Merge pull request #833 from mrvn/pull_store-fd-on-connect

    Store socket FD after connect

commit d13b74e9552fc115381446bb6cd4dpff27213f54
Merge: 53d0199e afb24b53
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 17 23:11:27 2014 -0800

    Merge pull request #832 from mrvn/pull_stream-connect-notification

    Add STREAM connect notification.

commit f13512a92634fa502b8f5747ff49e7137951fde7
Author: Timothy Mossbarger <tim@ent.net>
Date:   Fri Jan 17 14:41:45 2014 -0800

    fixed define value in header

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d4860ea1238360490dc9fe8cfb8dc81b5a47903
Author: Timothy Mossbarger <tim@ent.net>
Date:   Fri Jan 17 14:34:39 2014 -0800

    Both STREAM and ROUTER sockets suffer from a naming problem on outbound connections. While these connections can be created, they can't be immediately used. Traffic must be received before it can be sent. This prevents practical, minimal usage of STREAM or ROUTER as a true N fan in/out socket.

    This change simply provides the user with a socket option that sets a user defined name of the next outbound connection:

    zmq_setsockopt(routerSock,ZMQ_NEXT_IDENTITY,"myname",6);
    if(0 > zmq_connect(routerSock,"tcp://127.0.0.1:1234")) return 1;
    ret = zmq_send(routerSock,"myname",6,ZMQ_SNDMORE);
    zmq_send(routerSock,b.mem,b.used,0);

    In this example, the socket is immediately given the name "myname", and is capable of immediately sending traffic.

    This approach is more effective in three ways:
    1) It prevents all sorts of malicious peer naming attacks that can cause undefined behavior in existing ROUTER connections. (Two connections are made that both transmit the same name to the ROUTER, the ROUTER behavior is undefined)
    2) It allows immediate control of connections made to external parties for STREAM sockets. Something that is not possible right now. Before an outbound connection had no name for STREAM or ROUTER sockets because outbound connections cannot be sent to without first receiving traffic.
    3) It is simpler and more general than expecting two ROUTER sockets to handshake on assigned connection names. Plus it allows inline sending to new connections on ROUTER.

 include/zmq.h  |  2 +-
 src/router.cpp | 15 +++++++++++++--
 src/stream.cpp | 36 ++++++++++++++++++++++++++++++------
 src/stream.hpp |  2 +-
 4 files changed, 45 insertions(+), 10 deletions(-)

commit afb24b53e6d1fc39cd1b73be706b335ed5c7b6fb
Author: Goswin von Brederlow <goswin-v-b@web.de>
Date:   Fri Jan 17 23:21:42 2014 +0100

    Add STREAM connect notification.
    Adjust test cases to connection notification.
    Increase error checking in test cases.

 src/stream_engine.cpp                          |   8 ++
 tests/test_stream.cpp                          |  64 +++++++++--
 tests/test_stream_disconnect_notifications.cpp | 150 ++++++++++++++++++-------
 3 files changed, 174 insertions(+), 48 deletions(-)

commit 92f8f244e231d5b43a494b361ac7db75d69406c6
Author: Goswin von Brederlow <goswin-v-b@web.de>
Date:   Fri Jan 17 23:23:32 2014 +0100

    Store socket FD after connect

 src/tcp_connecter.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 53d0199e50ddc9fad07b5cf64113cdbf7a0fbf04
Merge: 22655d05 f4a67b25
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Jan 16 05:25:58 2014 -0800

    Merge pull request #828 from snikulov/cmake_rc_merge_fix

    fixed cmake merge related to version.rc.in handling

commit f4a67b2520822547a649faa0b3c560116a62424b
Author: Sergei Nikulov <sergey.nikulov@gmail.com>
Date:   Thu Jan 16 16:29:12 2014 +0400

    fixed cmake merge related to version.rc.in handling

 CMakeLists.txt | 4 ----
 1 file changed, 4 deletions(-)

commit 22655d05c70f11c92ca5da642eb4be7885833a51
Merge: 526847b7 88a8be82
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 15 22:08:19 2014 -0800

    Merge pull request #827 from EricMCornelius/master

    Corrects ypipe initialization when conflate is NOT enabled.

commit 88a8be8231eeed87d0817339eaba00e16bbb9519
Author: Eric Cornelius <EricMCornelius@gmail.com>
Date:   Wed Jan 15 18:11:13 2014 -0500

    Update pipe.cpp

 src/pipe.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 589fa57afa78f678d31204d7509cd99539c87ada
Author: Eric Cornelius <EricMCornelius@gmail.com>
Date:   Wed Jan 15 18:08:45 2014 -0500

    Corrects ypipe initialization when conflate is NOT enabled.

    Fixes LIBZMQ-584

 src/pipe.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 526847b73b1ec1bf90f3056d64232e9c92073c25
Merge: f8300d18 17651b92
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 14 22:25:01 2014 -0800

    Merge pull request #825 from AndreLouisCaron/disconnect-notifications

    Adds support for detecting ZMQ_STREAM disconnections.

commit f8300d183aa41a119e567cf1b8429831649c9bc1
Merge: f253fe5f 21011541
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 14 22:24:30 2014 -0800

    Merge pull request #824 from AndreLouisCaron/fix-cmake-build

    Fixes CMake build after ZAP test file was deleted.

commit 21011541e01433e90b8f3ea119c871df3c6c4921
Author: Andre Caron <andre.l.caron@gmail.com>
Date:   Tue Jan 14 17:22:52 2014 -0800

    Fixes CMake build after ZAP test file was deleted.

    File was removed in 5bf96f64b07ff74548495fdf38198a9cc8edb662 a few days ago.

 CMakeLists.txt | 1 -
 1 file changed, 1 deletion(-)

commit 17651b927603199200930ced30f4367920c720ad
Author: Andre Caron <andre.l.caron@gmail.com>
Date:   Sun Jan 12 22:36:47 2014 -0500

    Adds support for detecting ZMQ_STREAM disconnections.

    When a ZMQ_STREAM socket connection is broken (intentionally, via `shutdown()`
    or accidentally via client crash or network failure), there is no way for the
    application to dertermine that it should drop per-connection data (such as
    buffers).

    This contribution makes sure the application receives a 0-length message to
    notify it that the connection has been broken.  This is symmetric with the
    process of closing the connection from within the application (where the
    application sends a 0-length message to tell ZeroMQ to close the connection).

    Conflicts:
            CMakeLists.txt

 AUTHORS                                        |   1 +
 CMakeLists.txt                                 |   1 +
 doc/zmq_socket.txt                             |   4 +-
 src/stream_engine.cpp                          |   8 +
 tests/Makefile.am                              |   2 +
 tests/test_stream_disconnect_notifications.cpp | 200 +++++++++++++++++++++++++
 6 files changed, 215 insertions(+), 1 deletion(-)

commit f253fe5f42c6ca96ea401e69fc7aa504a5120122
Merge: d981d016 bf06f3bb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 14 03:29:16 2014 -0800

    Merge pull request #823 from ricnewton/master

    Define NOMINMAN to fix windows build.

commit bf06f3bb27075516242cb50a3e86db63aab4961a
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Jan 14 10:27:40 2014 +0000

    Define NOMINMAN to fix windows build.

 src/windows.hpp | 3 +++
 1 file changed, 3 insertions(+)

commit d981d016559dfb49661e245ff2253943b7859e4d
Merge: d765a0e7 d38a0c43
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 13 09:38:43 2014 -0800

    Merge pull request #821 from davipt/master

    use version-script only for ELF linux

commit d38a0c43b6ca7f5acf3cbd2c99e1911bac72e5a8
Author: Bruno D. Rodrigues <bruno.rodrigues@litux.org>
Date:   Mon Jan 13 17:31:56 2014 +0000

    use version-script only for ELF linux

 src/Makefile.am | 4 ++++
 1 file changed, 4 insertions(+)

commit d765a0e7d4bd09d90cdpe9b687334e1f49e0dfd3
Merge: 676dada8 5efee6e0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 13 03:40:04 2014 -0800

    Merge pull request #820 from jtanx/win32

    Fix compilation on Windows (MinGW-w64)

commit 5efee6e0d5c3d466eb63421b2d4b40609e560401
Author: Jeremy Tan <jeremy@jx.tan.fake>
Date:   Mon Jan 13 18:38:59 2014 +0800

    Fix compilation on MinGW-w64

 src/windows.hpp      | 129 ++-------------------------------------------------
 tests/test_srcfd.cpp |   1 +
 2 files changed, 5 insertions(+), 125 deletions(-)

commit 676dada8f64800c393f4ef038d5485ca8ec71cf5
Merge: 5c4f3cc6 e46ec312
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jan 12 15:51:56 2014 -0800

    Merge pull request #819 from hurtonm/master

    Implement socket_base_t::get_credential member function

commit e46ec31209bc660c3463d70b84d8c38591ca1a43
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Jan 12 21:58:36 2014 +0100

    Implement socket_base_t::get_credential member function

    The get_credential () member function returns
    credential for the last peer we received message for.
    The idea is that this function is used to implement user-level API.

 src/curve_server.cpp    |  3 +++
 src/dealer.cpp          |  6 ++++++
 src/dealer.hpp          |  1 +
 src/fq.cpp              | 16 +++++++++++++++-
 src/fq.hpp              | 10 ++++++++++
 src/mechanism.cpp       | 10 ++++++++++
 src/mechanism.hpp       |  6 ++++++
 src/msg.cpp             |  5 +++++
 src/msg.hpp             |  2 ++
 src/null_mechanism.cpp  |  3 +++
 src/pair.cpp            | 16 ++++++++++++++--
 src/pair.hpp            |  6 ++++++
 src/pipe.cpp            | 15 +++++++++++++++
 src/pipe.hpp            |  5 +++++
 src/plain_mechanism.cpp |  3 +++
 src/pull.cpp            |  5 +++++
 src/pull.hpp            |  1 +
 src/router.cpp          |  5 +++++
 src/router.hpp          |  1 +
 src/socket_base.cpp     |  5 +++++
 src/socket_base.hpp     |  6 ++++++
 src/stream_engine.cpp   | 25 ++++++++++++++++++++++++-
 src/stream_engine.hpp   |  1 +
 src/xsub.cpp            |  5 +++++
 src/xsub.hpp            |  1 +
 25 files changed, 158 insertions(+), 4 deletions(-)

commit 5c4f3cc6030ce7eb2c3c0e8b25c0d6ce81960f9d
Merge: ea54669b 27c05084
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jan 12 08:35:05 2014 -0800

    Merge pull request #817 from Debian/symbols

    Only export zmq_* symbols

commit ea54669b6f86889a294b2a4fdc63590d2666c57a
Merge: 6e1b1fef 245c75aa
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jan 12 08:33:21 2014 -0800

    Merge pull request #818 from Debian/s390x

    Fix timestamp counter on s390/s390x

commit 245c75aad6a58d8c5c4c3e2732b7a8edbc925dd8
Author: Alessandro Ghedini <alessandro@ghedini.me>
Date:   Sun Jan 12 12:31:31 2014 +0100

    Fix timestamp counter on s390/s390x

    Fixes #811

 src/clock.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 27c050845c94f54101f6f64b2fdebb27c41e67d4
Author: Alessandro Ghedini <alessandro@ghedini.me>
Date:   Sun Jan 12 12:30:45 2014 +0100

    Only export zmq_* symbols

 src/Makefile.am | 2 +-
 src/libzmq.vers | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

commit 6e1b1fef8fe123430ca2384efc91e56947f41e3b
Merge: 26671155 bd2874a3
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jan 10 02:34:39 2014 -0800

    Merge pull request #816 from snikulov/fix_test_windows

    windows: changed tcp port from glrpc assigned to unassigned one

commit bd2874a3a0f8335fd8672b0780c14c7fe37e01f6
Author: Sergei Nikulov <sergey.nikulov@gmail.com>
Date:   Fri Jan 10 13:49:11 2014 +0400

    windows: changed tcp port from glrpc assigned to unassigned one

 tests/test_stream.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 266711556dc2844c17c8efa9b1b70bc4e43e6b23
Merge: ab07f722 1904f902
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Jan 10 00:29:08 2014 -0800

    Merge pull request #815 from snikulov/cmake_install_update

    cmake: fixed error 'install TARGETS given no ARCHIVE DESTINATION'

commit 1904f9028441911a189afb9f71946d015c8d2d16
Author: Sergei Nikulov <sergey.nikulov@gmail.com>
Date:   Fri Jan 10 10:47:33 2014 +0400

    cmake: fixed error 'install TARGETS given no ARCHIVE DESTINATION for static library target'

 CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

commit ab07f7220d7e1cec64ab174ca241c2294bc15790
Merge: 10145016 5d41d51b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 8 13:37:22 2014 -0800

    Merge pull request #814 from hurtonm/master

    Replace assert with zmq_assert

commit 5d41d51ba560b37e616f04716d30e7a294c7cd53
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jan 8 21:11:51 2014 +0100

    Replace assert with zmq_assert

 src/msg.cpp           | 2 +-
 src/proxy.cpp         | 2 +-
 src/req.cpp           | 2 +-
 src/stream_engine.cpp | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 101450167969afa3909af01c7143fa74de8dc27b
Merge: 60d6b89c a80fb347
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Jan 8 09:42:24 2014 -0800

    Merge pull request #813 from hurtonm/master

    Fix some comments regarding method overriding

commit a80fb347655c45b90a66f418960b624a7ec0305a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jan 8 18:25:31 2014 +0100

    Fix some comments regarding method overriding

 src/dealer.hpp      | 2 +-
 src/object.hpp      | 2 +-
 src/pair.hpp        | 2 +-
 src/pull.hpp        | 2 +-
 src/push.hpp        | 2 +-
 src/rep.hpp         | 2 +-
 src/req.hpp         | 4 ++--
 src/router.hpp      | 2 +-
 src/socket_base.hpp | 2 +-
 src/stream.hpp      | 2 +-
 src/sub.cpp         | 4 ++--
 src/xsub.hpp        | 2 +-
 12 files changed, 14 insertions(+), 14 deletions(-)

commit 60d6b89c5eaff8101f4f3aab2d946e16d70b8171
Merge: 62922188 d72ceb93
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 7 23:49:37 2014 -0800

    Merge pull request #812 from hurtonm/master

    Make it explicit that the probe function doesn't modify passed message

commit d72ceb93beffa674977179681dbc593c7b9f0f7f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jan 8 07:49:02 2014 +0100

    Make it explicit that the probe function doesn't modify passed message

 src/dbuffer.hpp        | 2 +-
 src/msg.cpp            | 2 +-
 src/msg.hpp            | 2 +-
 src/pipe.cpp           | 2 +-
 src/pipe.hpp           | 2 +-
 src/ypipe.hpp          | 2 +-
 src/ypipe_base.hpp     | 2 +-
 src/ypipe_conflate.hpp | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

commit 629221889d46835d2ed238c6f70f893693ba8834
Merge: ecb97709 23ea1b2b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 6 20:56:23 2014 -0800

    Merge pull request #810 from sradomski/master

    ZMQ_SRCFD docs and tests

commit 23ea1b2b641ffdda91bfb223a0ad9dbfec06b841
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Tue Jan 7 01:13:46 2014 +0100

    typo in docs

 doc/zmq_msg_get.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3dpaa6fab135aced3e762031621491c4779285c0
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Tue Jan 7 01:09:51 2014 +0100

    ZMQ_SRCFD docs and tests

    Also moved the fd field from message content to message itself

 doc/zmq_msg_get.txt  |  6 ++++
 include/zmq.h        |  2 +-
 src/msg.cpp          | 20 +++++------
 src/msg.hpp          |  9 ++---
 src/socket_base.cpp  | 10 +++---
 src/socket_base.hpp  |  2 +-
 tests/Makefile.am    |  2 ++
 tests/test_srcfd.cpp | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 129 insertions(+), 20 deletions(-)

commit ecb9770947f6eacc5ab016eb32cbd60d6b614953
Merge: c7e3efba 96f5fddc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 6 04:46:52 2014 -0800

    Merge pull request #809 from hurtonm/master

    Simplify ypipe_t and ypipe_base_t template parameters

commit 96f5fddc4503c9e013cba49246c1a33b4c96aba7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jan 6 11:19:56 2014 +0100

    Simplify ypipe_t and ypipe_base_t template parameters

 src/pipe.cpp           | 6 +++---
 src/pipe.hpp           | 2 +-
 src/ypipe.hpp          | 2 +-
 src/ypipe_base.hpp     | 2 +-
 src/ypipe_conflate.hpp | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

commit c7e3efba6b77aa21c23207f902c1f6499a79ab6b
Merge: 08d897b1 823b7ebe
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 6 01:48:39 2014 -0800

    Merge pull request #808 from sradomski/master

    Allow clients to get remote endpoint per message for TCP connections

commit 823b7ebeb00691e9764cd83f602e9c4a20c884ce
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Mon Jan 6 10:33:58 2014 +0100

    Removed dead code

 src/session_base.cpp | 4 ----
 1 file changed, 4 deletions(-)

commit f30fb8501ef845edp9a44c032813e5c45e189ac4
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Mon Jan 6 10:31:42 2014 +0100

    Expose remote FD via zmq_msg_get(&msg, ZMQ_SRCFD)

    This patch allows client applications to retrieve the remote endpoint from a message that originated from a tcp socket

 include/zmq.h        |  1 +
 src/msg.cpp          | 15 +++++++++++++++
 src/msg.hpp          |  4 ++++
 src/session_base.cpp |  6 ++++++
 src/socket_base.cpp  | 15 +++++++++++++++
 src/socket_base.hpp  |  6 ++++++
 src/tcp_listener.cpp |  4 ++++
 src/zmq.cpp          |  2 ++
 8 files changed, 53 insertions(+)

commit 08d897b17451c1694a94ff0d8cbfee35a3025924
Merge: b5d2239a 8c3e6450
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 2 22:13:46 2014 -0800

    Merge pull request #804 from mattconnolly/master

    Update test_filter_ipc to not use abstract socket.

commit 8c3e64501334a8a3af0610139b9f4456c532615b
Author: Matt Connolly <matt.connolly@me.com>
Date:   Fri Jan 3 10:42:57 2014 +1000

    Update test_filter_ipc to not use abstract socket.

    This fixes the test on Mac OS X and SmartOS (probably other Solarises).
    Also updates the sockets using ipc: to use DEALER sockets instead
    of PAIR sockets.

 tests/test_abstract_ipc.cpp | 4 ++--
 tests/test_filter_ipc.cpp   | 9 +++++----
 2 files changed, 7 insertions(+), 6 deletions(-)

commit b5d2239a4e19a038e4a6aa03f3fea5f29fc10f66
Merge: 2fa49e96 cd2827fb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 2 13:10:17 2014 -0800

    Merge pull request #803 from vortechs2000/fix-libzmq-576

    Fix LIBZMQ-576 - Revert "Merge pull request #510 from miniway/master"

commit cd2827fb36c9dd5fe13bc541c441d50093b182ac
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Thu Jan 2 10:43:01 2014 -0600

    Fix LIBZMQ-576 - Revert "Merge pull request #510 from miniway/master"

    This reverts commit f27eb67e1abb0484c41050e454404cce30647b63, reversing
    changes made to a3dp0d4c16c892a4e6c96d626a7c8b7068450336.

    https://zeromq.jira.com/browse/LIBZMQ-576

    Conflicts:
            src/stream_engine.cpp

    Conflicts were around additional defaults to the constructor after the
    'terminating' default.  The additional defaults were left alone, and
    the 'terminating' default was removed.

 src/encoder.hpp       |  5 -----
 src/i_encoder.hpp     |  1 -
 src/stream_engine.cpp | 12 ------------
 src/stream_engine.hpp |  1 -
 4 files changed, 19 deletions(-)

commit 2fa49e96d2dc79c07597d35ff0264480dbc4c96a
Merge: 384f8522 b3b9e046
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jan 2 03:19:45 2014 -0800

    Merge pull request #800 from hintjens/master

    Minor cosmetic fixes

commit b3b9e046eec7c8d49501bc51c7b7562002ee14c3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 2 12:00:57 2014 +0100

    Updated copyright statements for 2014

 AUTHORS                           | 2 +-
 include/zmq.h                     | 2 +-
 include/zmq_utils.h               | 2 +-
 perf/inproc_lat.cpp               | 2 +-
 perf/local_lat.cpp                | 2 +-
 perf/local_thr.cpp                | 2 +-
 perf/remote_lat.cpp               | 2 +-
 perf/remote_thr.cpp               | 2 +-
 src/address.cpp                   | 2 +-
 src/address.hpp                   | 2 +-
 src/array.hpp                     | 2 +-
 src/atomic_counter.hpp            | 2 +-
 src/atomic_ptr.hpp                | 2 +-
 src/blob.hpp                      | 2 +-
 src/clock.cpp                     | 2 +-
 src/clock.hpp                     | 2 +-
 src/command.hpp                   | 2 +-
 src/config.hpp                    | 2 +-
 src/ctx.cpp                       | 2 +-
 src/ctx.hpp                       | 2 +-
 src/curve_client.cpp              | 2 +-
 src/curve_client.hpp              | 2 +-
 src/curve_server.cpp              | 2 +-
 src/curve_server.hpp              | 2 +-
 src/dbuffer.hpp                   | 2 +-
 src/dealer.cpp                    | 2 +-
 src/dealer.hpp                    | 2 +-
 src/decoder.hpp                   | 2 +-
 src/devpoll.cpp                   | 2 +-
 src/devpoll.hpp                   | 2 +-
 src/dist.cpp                      | 2 +-
 src/dist.hpp                      | 2 +-
 src/encoder.hpp                   | 2 +-
 src/epoll.cpp                     | 2 +-
 src/epoll.hpp                     | 2 +-
 src/err.cpp                       | 2 +-
 src/err.hpp                       | 2 +-
 src/fd.hpp                        | 2 +-
 src/fq.cpp                        | 2 +-
 src/fq.hpp                        | 2 +-
 src/i_decoder.hpp                 | 2 +-
 src/i_encoder.hpp                 | 2 +-
 src/i_engine.hpp                  | 2 +-
 src/i_poll_events.hpp             | 2 +-
 src/io_object.cpp                 | 2 +-
 src/io_object.hpp                 | 2 +-
 src/io_thread.cpp                 | 2 +-
 src/io_thread.hpp                 | 2 +-
 src/ip.cpp                        | 2 +-
 src/ip.hpp                        | 2 +-
 src/ipc_address.cpp               | 2 +-
 src/ipc_address.hpp               | 2 +-
 src/ipc_connecter.cpp             | 2 +-
 src/ipc_connecter.hpp             | 2 +-
 src/ipc_listener.cpp              | 2 +-
 src/ipc_listener.hpp              | 2 +-
 src/kqueue.cpp                    | 2 +-
 src/kqueue.hpp                    | 2 +-
 src/lb.cpp                        | 2 +-
 src/lb.hpp                        | 2 +-
 src/likely.hpp                    | 2 +-
 src/mailbox.cpp                   | 2 +-
 src/mailbox.hpp                   | 2 +-
 src/mechanism.cpp                 | 2 +-
 src/mechanism.hpp                 | 2 +-
 src/msg.cpp                       | 2 +-
 src/msg.hpp                       | 2 +-
 src/mtrie.cpp                     | 2 +-
 src/mtrie.hpp                     | 2 +-
 src/mutex.hpp                     | 2 +-
 src/null_mechanism.cpp            | 2 +-
 src/null_mechanism.hpp            | 2 +-
 src/object.cpp                    | 2 +-
 src/object.hpp                    | 2 +-
 src/options.cpp                   | 2 +-
 src/options.hpp                   | 2 +-
 src/own.cpp                       | 2 +-
 src/own.hpp                       | 2 +-
 src/pair.cpp                      | 2 +-
 src/pair.hpp                      | 2 +-
 src/pgm_receiver.cpp              | 2 +-
 src/pgm_receiver.hpp              | 2 +-
 src/pgm_sender.cpp                | 2 +-
 src/pgm_sender.hpp                | 2 +-
 src/pgm_socket.cpp                | 2 +-
 src/pgm_socket.hpp                | 2 +-
 src/pipe.cpp                      | 2 +-
 src/pipe.hpp                      | 2 +-
 src/plain_mechanism.cpp           | 2 +-
 src/plain_mechanism.hpp           | 2 +-
 src/poll.cpp                      | 2 +-
 src/poll.hpp                      | 2 +-
 src/poller.hpp                    | 2 +-
 src/poller_base.cpp               | 2 +-
 src/poller_base.hpp               | 2 +-
 src/precompiled.cpp               | 2 +-
 src/precompiled.hpp               | 2 +-
 src/proxy.cpp                     | 2 +-
 src/proxy.hpp                     | 2 +-
 src/pub.cpp                       | 2 +-
 src/pub.hpp                       | 2 +-
 src/pull.cpp                      | 2 +-
 src/pull.hpp                      | 2 +-
 src/push.cpp                      | 2 +-
 src/push.hpp                      | 2 +-
 src/random.cpp                    | 2 +-
 src/random.hpp                    | 2 +-
 src/raw_decoder.cpp               | 2 +-
 src/raw_decoder.hpp               | 2 +-
 src/raw_encoder.cpp               | 2 +-
 src/raw_encoder.hpp               | 2 +-
 src/reaper.cpp                    | 2 +-
 src/reaper.hpp                    | 2 +-
 src/rep.cpp                       | 2 +-
 src/rep.hpp                       | 2 +-
 src/req.cpp                       | 2 +-
 src/req.hpp                       | 2 +-
 src/router.cpp                    | 2 +-
 src/router.hpp                    | 2 +-
 src/select.cpp                    | 2 +-
 src/select.hpp                    | 2 +-
 src/session_base.cpp              | 2 +-
 src/session_base.hpp              | 2 +-
 src/signaler.cpp                  | 2 +-
 src/signaler.hpp                  | 2 +-
 src/socket_base.cpp               | 2 +-
 src/socket_base.hpp               | 2 +-
 src/stdint.hpp                    | 2 +-
 src/stream.cpp                    | 2 +-
 src/stream.hpp                    | 2 +-
 src/stream_engine.cpp             | 2 +-
 src/stream_engine.hpp             | 2 +-
 src/sub.cpp                       | 2 +-
 src/sub.hpp                       | 2 +-
 src/tcp.cpp                       | 2 +-
 src/tcp.hpp                       | 2 +-
 src/tcp_address.cpp               | 2 +-
 src/tcp_address.hpp               | 2 +-
 src/tcp_connecter.cpp             | 2 +-
 src/tcp_connecter.hpp             | 2 +-
 src/tcp_listener.cpp              | 2 +-
 src/tcp_listener.hpp              | 2 +-
 src/thread.cpp                    | 2 +-
 src/thread.hpp                    | 2 +-
 src/tipc_address.cpp              | 2 +-
 src/tipc_address.hpp              | 2 +-
 src/tipc_connecter.cpp            | 2 +-
 src/tipc_connecter.hpp            | 2 +-
 src/tipc_listener.cpp             | 2 +-
 src/tipc_listener.hpp             | 2 +-
 src/trie.cpp                      | 2 +-
 src/trie.hpp                      | 2 +-
 src/v1_decoder.cpp                | 2 +-
 src/v1_decoder.hpp                | 2 +-
 src/v1_encoder.cpp                | 2 +-
 src/v1_encoder.hpp                | 2 +-
 src/v2_decoder.cpp                | 2 +-
 src/v2_decoder.hpp                | 2 +-
 src/v2_encoder.cpp                | 2 +-
 src/v2_encoder.hpp                | 2 +-
 src/v2_protocol.hpp               | 2 +-
 src/windows.hpp                   | 2 +-
 src/wire.hpp                      | 2 +-
 src/xpub.cpp                      | 2 +-
 src/xpub.hpp                      | 2 +-
 src/xsub.cpp                      | 2 +-
 src/xsub.hpp                      | 2 +-
 src/ypipe.hpp                     | 2 +-
 src/ypipe_base.hpp                | 2 +-
 src/ypipe_conflate.hpp            | 2 +-
 src/yqueue.hpp                    | 2 +-
 src/zmq.cpp                       | 2 +-
 src/zmq_utils.cpp                 | 2 +-
 tests/test_abstract_ipc.cpp       | 2 +-
 tests/test_conflate.cpp           | 2 +-
 tests/test_connect_delay_tipc.cpp | 2 +-
 tests/test_connect_resolve.cpp    | 2 +-
 tests/test_ctx_destroy.cpp        | 2 +-
 tests/test_ctx_options.cpp        | 2 +-
 tests/test_diffserv.cpp           | 2 +-
 tests/test_disconnect_inproc.cpp  | 2 +-
 tests/test_filter_ipc.cpp         | 2 +-
 tests/test_fork.cpp               | 2 +-
 tests/test_hwm.cpp                | 2 +-
 tests/test_immediate.cpp          | 2 +-
 tests/test_inproc_connect.cpp     | 2 +-
 tests/test_invalid_rep.cpp        | 2 +-
 tests/test_iov.cpp                | 2 +-
 tests/test_ipc_wildcard.cpp       | 2 +-
 tests/test_issue_566.cpp          | 2 +-
 tests/test_last_endpoint.cpp      | 2 +-
 tests/test_many_sockets.cpp       | 2 +-
 tests/test_monitor.cpp            | 2 +-
 tests/test_msg_flags.cpp          | 2 +-
 tests/test_pair_inproc.cpp        | 2 +-
 tests/test_pair_ipc.cpp           | 2 +-
 tests/test_pair_tcp.cpp           | 2 +-
 tests/test_probe_router.cpp       | 2 +-
 tests/test_proxy.cpp              | 2 +-
 tests/test_req_correlate.cpp      | 2 +-
 tests/test_req_relaxed.cpp        | 2 +-
 tests/test_reqrep_device.cpp      | 2 +-
 tests/test_reqrep_inproc.cpp      | 2 +-
 tests/test_reqrep_ipc.cpp         | 2 +-
 tests/test_reqrep_tcp.cpp         | 2 +-
 tests/test_resource.cpp           | 2 +-
 tests/test_router_handover.cpp    | 2 +-
 tests/test_router_mandatory.cpp   | 2 +-
 tests/test_security_curve.cpp     | 2 +-
 tests/test_security_null.cpp      | 2 +-
 tests/test_security_plain.cpp     | 2 +-
 tests/test_shutdown_stress.cpp    | 2 +-
 tests/test_spec_dealer.cpp        | 2 +-
 tests/test_spec_pushpull.cpp      | 2 +-
 tests/test_spec_rep.cpp           | 2 +-
 tests/test_spec_req.cpp           | 2 +-
 tests/test_spec_router.cpp        | 2 +-
 tests/test_stream.cpp             | 2 +-
 tests/test_stream_empty.cpp       | 2 +-
 tests/test_sub_forward.cpp        | 2 +-
 tests/test_system.cpp             | 2 +-
 tests/test_term_endpoint.cpp      | 2 +-
 tests/test_timeo.cpp              | 2 +-
 tests/testutil.hpp                | 2 +-
 tools/curve_keygen.cpp            | 2 +-
 225 files changed, 225 insertions(+), 225 deletions(-)

commit ff45caabd15a483a7ce2bf779d6439e0f42d91cb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 2 11:54:13 2014 +0100

    Fixed copyrights on TIPC code

    - corporate copyright statements sit in AUTHORS file

 AUTHORS                | 1 +
 src/tipc_address.cpp   | 2 +-
 src/tipc_address.hpp   | 2 +-
 src/tipc_connecter.cpp | 2 +-
 src/tipc_connecter.hpp | 2 +-
 src/tipc_listener.cpp  | 2 +-
 src/tipc_listener.hpp  | 2 +-
 7 files changed, 7 insertions(+), 6 deletions(-)

commit 5bf96f64b07ff74548495fdf38198a9cc8edb662
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 1 17:11:40 2014 +0100

    Removed ZMQ_ZAP_IPC_CREDS option

    - This seems redundant; is there a use case for NOT providing
      the IPC credentials to the ZAP authenticator?

    - More, why is IPC authentication done via libzmq instead of ZAP?
      Is it because we're missing the transport type on the ZAP request?

 .gitignore                   |   1 -
 doc/zmq_getsockopt.txt       |  19 ------
 doc/zmq_setsockopt.txt       |  18 ------
 include/zmq.h                |   1 -
 src/options.cpp              |  19 ------
 src/stream_engine.cpp        |   6 +-
 tests/Makefile.am            |   3 +-
 tests/test_zap_ipc_creds.cpp | 135 -------------------------------------------
 8 files changed, 5 insertions(+), 197 deletions(-)

commit adf5b45d7160b31cbc04466716bf848e31c00b9f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 1 16:28:30 2014 +0100

    Reordered socket options

    - put into alphabetical order
    - there was no consistency in previous ordering

 doc/zmq_getsockopt.txt |  824 +++++++++++++++++++--------------------
 doc/zmq_setsockopt.txt | 1013 +++++++++++++++++++++++-------------------------
 2 files changed, 903 insertions(+), 934 deletions(-)

commit 3ad8c61190c7ccfb44249a6eaf8b6eece2d0d4ce
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 1 15:28:11 2014 +0100

    Whitespace fixes

 src/router.cpp | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

commit 49a2902c82977838b219350c58ef0cee422a1c1f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 1 15:28:01 2014 +0100

    Fixed issue #801

 doc/zmq_setsockopt.txt | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

commit 9d9592f8307dc18c41a5878fe366a105884a8bf4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 23 13:14:32 2013 +0100

    Whitespace fixes

    Minor layout fix

    Whitespace fix

 doc/zmq_proxy_steerable.txt | 12 +++++++++---
 doc/zmq_setsockopt.txt      |  1 +
 src/router.cpp              |  1 +
 3 files changed, 11 insertions(+), 3 deletions(-)

commit 384f8522aa22ff595802ef1c0d8da11ccd81b862
Merge: 5a0d2129 a5f4d823
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 24 08:29:34 2013 -0800

    Merge pull request #799 from lodagro/patch-1

    fix doc typo

commit a5f4d823a540d108ff3d66e7ebeb44f21e6a5e00
Author: Wouter Overmeire <lodagro@gmail.com>
Date:   Tue Dec 24 15:00:43 2013 +0100

    fix doc typo

 src/decoder.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5a0d21297e2763b7f23a216ee59b8688286a00ba
Merge: b5aa2b0f 5fa3f0a0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Dec 23 09:09:57 2013 -0800

    Merge pull request #798 from pijyoi/master

    doc bugfix: ZMQ_MSGMORE should be ZMQ_SNDMORE

commit 5fa3f0a045971d2ad8d0c4eac3023515186b81c1
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Mon Dec 23 23:06:18 2013 +0800

    doc bugfix: ZMQ_MSGMORE should be ZMQ_SNDMORE

 doc/zmq_setsockopt.txt | 2 +-
 doc/zmq_socket.txt     | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit b5aa2b0f1c0d1301777c8e9ac9a607b4dp92dcf8
Merge: 93e26efd b554757c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 22 02:24:15 2013 -0800

    Merge pull request #797 from agronholm/master

    Fixed setting TCP keepalive parameters on Windows

commit b554757cf0c6c9fbe8e7bfd945cb05284833f765
Author: Alex Grönholm <alex.gronholm+git@nextday.fi>
Date:   Sun Dec 22 02:55:18 2013 +0200

    Fixed setting TCP keepalive parameters on Windows

 src/tcp.cpp     | 30 ++++++++++--------------------
 src/windows.hpp |  1 +
 2 files changed, 11 insertions(+), 20 deletions(-)

commit 93e26efd5d497e8b9e118dde312a85e036a265da
Merge: 32f3fb49 311b6bf9
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Dec 20 13:36:30 2013 -0800

    Merge pull request #796 from hintjens/master

    Fixes to IPC wildcarding & test cases

commit 311b6bf9f7082c1141d0d530ff5df41893d7d4d4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 20 14:34:29 2013 +0100

    Test was sometimes failing

    - was not waiting long enough at socket close
    - increased to 50 msec

 tests/test_immediate.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bf3702395ca0dfd6a279f96b3a702fd09f17950c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 20 14:28:54 2013 +0100

    Fixed wildcard IPC endpoint and added test case

 .gitignore                  |  2 ++
 src/ipc_listener.cpp        |  4 +++-
 tests/Makefile.am           |  2 ++
 tests/test_ipc_wildcard.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 62 insertions(+), 1 deletion(-)

commit 62f3fdf3b70fccff393fa9f5634faddf93a5ec5a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 20 14:17:35 2013 +0100

    Fixed indentation

 src/ipc_address.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 32f3fb490a296fb2529225c4dab3be0550997172
Merge: fc93902c 8ba1311e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Dec 20 00:49:23 2013 -0800

    Merge pull request #794 from hintjens/master

    Fixed use of deprecated tempnam

commit 8ba1311e348b10dpc36c90ad9b93f77fd0efd379
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 19 21:06:22 2013 +0100

    Fixed use of deprecated tempnam

 src/ipc_listener.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit cf697815707ce211405f4aa61c10ba1184a3d281
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Nov 30 12:37:55 2013 +0100

    Added release notes for 4.0.3

 NEWS | 430 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 427 insertions(+), 3 deletions(-)

commit fc93902c4e511b1def58c434b3ee0be170d6bb80
Merge: b4591202 f4c5c9e8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 19 00:00:46 2013 -0800

    Merge pull request #793 from minrk/test_resource

    add failing test for binding to resources

commit f4c5c9e890e0c7008c110fff16321f5c20655528
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Dec 18 16:37:37 2013 -0800

    add failing test for binding to resources

 tests/Makefile.am       |  4 +++-
 tests/test_resource.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 1 deletion(-)

commit b4591202d24ba93f9c70dceb26bf63333a7af0eb
Merge: 5401c352 b7a2248e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 17 05:41:24 2013 -0800

    Merge pull request #791 from moteus/patch-1

    Update doc for zmq_proxy_steerable [ci skip]

commit b7a2248e2256b0d5fc37d02458ca7a383ca0e2fd
Author: Alexey Melnichuk <mimir@newmail.ru>
Date:   Tue Dec 17 15:27:55 2013 +0300

    Update doc for zmq_proxy_steerable [ci skip]

 doc/zmq_proxy_steerable.txt | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 5401c35267c7aa601c49709006db99a7c8ed52ea
Merge: dc2ab432 dfcf2950
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 15 00:16:37 2013 -0800

    Merge pull request #790 from trevorbernard/master

    Add tests/test_zap_ipc_creds to .gitignore

commit dc2ab43297d5a8a20fe17c0ef954ad5216c17dd3
Merge: 02a8d1ea 754dp1b1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 15 00:16:09 2013 -0800

    Merge pull request #789 from trevorbernard/single-connect

    Single connect

commit dfcf2950fc320b6289a2ebe0cc19a1dc8ff6dpb4
Author: Trevor Bernard <trevor.bernard@gmail.com>
Date:   Sat Dec 14 21:24:59 2013 -0400

    Add tests/test_zap_ipc_creds to .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 754dp1b115f9d595df6abbaa0c344ee55b15ff6b
Author: Trevor Bernard <trevor.bernard@gmail.com>
Date:   Sat Dec 14 20:53:37 2013 -0400

    Add Trevor Bernard to AUTHORS

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 10a6641ef2626f1b392e381fd5b22841754e0c4c
Author: Trevor Bernard <trevor.bernard@gmail.com>
Date:   Sat Dec 14 20:53:18 2013 -0400

    Fix issue #788 - Only allow a single connect per endpoint for SUB, REQ, and DEALER sockets

 src/socket_base.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 02a8d1ea4cd70cb1fcaf9aaa98711951d843d406
Merge: e14c9bcb 7f22995e
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Dec 12 05:29:02 2013 -0800

    Merge pull request #785 from pijyoi/mutex_signaler

    support signaler_port in config.hpp set to value other than 0 and 5905

commit e14c9bcb2386333a6ba35be60c6133040707efed
Merge: b4395d15 b50ed02a
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Dec 12 05:24:43 2013 -0800

    Merge pull request #786 from algernon/hotfix/curve_keygen.cpp

    tools/: Link curve_keygen with a c++ linker

commit b50ed02a20ea51669db0f5e34d2edfe2ca8bf280
Author: Gergely Nagy <algernon@balabit.hu>
Date:   Thu Dec 12 11:44:12 2013 +0100

    tools/: Link curve_keygen with a c++ linker

    When trying to linking curve_keygen as if it was a C program, linking
    fails (at least with gcc 4.8 on Debian testing) because it can't find
    C++ symbols. Linking with g++ instead fixes the issue.

    To achieve this, the source is renamed to curve_keygen.cpp, and
    tools/Makefile.am is updated accordingly.

    Signed-off-by: Gergely Nagy <algernon@balabit.hu>

 tools/Makefile.am                          | 4 ++--
 tools/{curve_keygen.c => curve_keygen.cpp} | 0
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 7f22995e356a7109739e22772088a2f20cbff0b0
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Thu Dec 12 00:39:01 2013 +0800

    use mutex implementation if fixed signaler_port!=5905

 src/signaler.cpp | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

commit b4395d15f905001a5c381164ecb541ce2f93f099
Merge: 0f3703a3 a018ef5e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 6 14:41:41 2013 -0800

    Merge pull request #782 from hashstat/master

    Add support for extending ZAP request address with IPC peer credentials.

commit a018ef5e8684c63a7c5a712e0b1a019a4240d568
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Fri Dec 6 14:28:44 2013 -0800

    Add support for extending ZAP request address with IPC peer credentials.

    Another take on LIBZMQ-568 to allow filtering IPC connections, this time
    using ZAP.  This change is backward compatible.  If the
    ZMQ_ZAP_IPC_CREDS option is set, the user, group, and process IDs of the
    peer process are appended to the address (separated by colons) of a ZAP
    request; otherwise, nothing changes.  See LIBZMQ-568 and zmq_setsockopt
    documentation for more information.

 CMakeLists.txt               |  12 +++-
 configure.ac                 |   1 +
 doc/zmq_getsockopt.txt       |  19 ++++++
 doc/zmq_setsockopt.txt       |  19 ++++++
 include/zmq.h                |   1 +
 src/ip.cpp                   |  10 ++--
 src/ip.hpp                   |   2 +-
 src/options.cpp              |  19 ++++++
 src/options.hpp              |   1 +
 src/stream_engine.cpp        |  29 +++++++++-
 tests/Makefile.am            |  11 +++-
 tests/test_zap_ipc_creds.cpp | 135 +++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 249 insertions(+), 10 deletions(-)

commit 0f3703a3eea2766bf2e95210d288f5a888548779
Merge: 4a4db83e 56b17100
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 6 13:03:58 2013 -0800

    Merge pull request #781 from hashstat/master

    Enable building IPC filtering with cmake and another small autoconf fix.

commit 56b17100d4207b171d98cf6ff2ed8c622b47fe74
Merge: f0bd3337 4a4db83e
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Fri Dec 6 11:00:14 2013 -0800

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit f0bd33372897373b3ee6e42791e01447edb2699f
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Fri Dec 6 10:59:07 2013 -0800

    Move {SO,LOCAL}_PEERCRED checks to C++ context.

 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit dc5528cba6e3606ee31f9caace74c1be5f04f6dc
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Fri Dec 6 10:55:44 2013 -0800

    Enable building IPC filtering with cmake.

 CMakeLists.txt               | 5 +++++
 builds/cmake/platform.hpp.in | 3 +++
 2 files changed, 8 insertions(+)

commit 4a4db83e55ec1e129f500741519fb7b91400d81e
Merge: 0a9a4fa9 dc9b1309
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 6 10:52:39 2013 -0800

    Merge pull request #780 from hashstat/master

    Shortened ZMQ_IPC_ACCEPT_FILTER_[UGP]ID to ZMQ_IPC_FILTER_[UGP]ID.

commit dc9b1309b97366dd571c1bc1220c4b28f384af41
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Fri Dec 6 09:58:10 2013 -0800

    Shortened ZMQ_IPC_ACCEPT_FILTER_[UGP]ID to ZMQ_IPC_FILTER_[UGP]ID.

 doc/zmq_setsockopt.txt    | 18 +++++++++---------
 include/zmq.h             |  6 +++---
 src/options.cpp           |  6 +++---
 tests/test_filter_ipc.cpp | 22 +++++++++++-----------
 4 files changed, 26 insertions(+), 26 deletions(-)

commit 0a9a4fa9048fe1a9139e93ed249ee6663f076233
Merge: f5b6bd70 af808203
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 6 05:30:48 2013 -0800

    Merge pull request #779 from hashstat/master

    Fix failing test case in test_filter_ipc.

commit af808203d7a136d7ee7a1a17af4bdb5c5816a2f7
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Fri Dec 6 00:46:14 2013 -0800

    Fix failing test case in test_filter_ipc.

    Add explicit check for primary group.

 configure.ac              |  5 +++--
 src/ipc_listener.cpp      |  4 +++-
 tests/test_filter_ipc.cpp | 23 +++++++++++++++++++++--
 3 files changed, 27 insertions(+), 5 deletions(-)

commit f5b6bd70f37406946d70ee94a7eeb6fd650ea1e5
Merge: e48ca506 fd8d6d47
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 5 03:25:12 2013 -0800

    Merge pull request #775 from pijyoi/master

    use enum retired_fd instead of -1

commit e48ca506633597e4fd42da4adpb4b88554ade436
Merge: b7de0424 c7693bed
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 5 03:23:12 2013 -0800

    Merge pull request #774 from shubred1/master

    Updated documentation for zmq_disconnect() and zmq_setsockopt().

commit b7de0424fc66e8375daa4cc76ade627aca80f494
Merge: a9492a08 2252322a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 5 03:20:05 2013 -0800

    Merge pull request #773 from hashstat/master

    Add IPC accept filter support

commit fd8d6d471f486fd2392a17774f4c26e99af21f66
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Thu Dec 5 07:04:21 2013 +0800

    use enum retired_fd instead of -1

    using -1 causes a warning on Windows platform because SOCKET is unsigned.

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2252322acc6dpeb292218124973af9db38b11e34
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Wed Dec 4 14:17:39 2013 -0800

    Add IPC accept filter socket options.

    Adds ZMQ_IPC_ACCEPT_FILTER_{PID,UID,GID} socket options to add processs,
    user, and group IDs to the IPC filter sets. Fixes LIBZMQ-568.

 .gitignore                |   1 +
 doc/zmq_setsockopt.txt    |  62 ++++++++++++++++++++
 include/zmq.h             |   3 +
 src/options.cpp           |  40 +++++++++++++
 tests/Makefile.am         |   4 +-
 tests/test_filter_ipc.cpp | 141 ++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 250 insertions(+), 1 deletion(-)

commit 8662f44efa95bc1d62cb91f9600b1cb278219563
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Wed Dec 4 13:56:12 2013 -0800

    Intial IPC accept filter support.

    Adds sets of process (Linux only), user, and group IDs for filtering
    connections from peer processes over IPC transport.  If all of the
    filter sets are empty, every connection is accepted.  Otherwise,
    credentials for a connecting process are checked against the filter sets
    and the connection is only accepted if a match is found.

    This commit is part of LIBZMQ-568 and only adds the filter sets and
    implements the filter in the IPC accept method.  The interface for
    adding IDs to filter sets are included in a separate commit.

    IPC accept filtering is supported only on Linux and OS X.

 configure.ac         |  2 ++
 src/ipc_listener.cpp | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ipc_listener.hpp |  6 ++++
 src/options.hpp      | 17 +++++++++++
 4 files changed, 104 insertions(+)

commit c7693bededp0b7c6ba9d8fd6a1d2defa5db11ad4
Author: Shane Hubred <shane@hubred.us>
Date:   Wed Dec 4 15:02:49 2013 -0600

    Updated documentation for zmq_disconnect() and zmq_setsockopt().

 doc/zmq_disconnect.txt | 12 ++++++++++--
 doc/zmq_setsockopt.txt | 24 ++++++++++++------------
 2 files changed, 22 insertions(+), 14 deletions(-)

commit a9492a0852dpe907b8c756680ad3878760f242fc
Merge: 39e2b799 973d13d5
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Dec 3 08:38:15 2013 -0800

    Merge pull request #770 from hurtonm/master

    Code cleanup

commit 973d13d545f9b5a18ad49d82ceed49bb6409ea8f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Dec 3 09:59:26 2013 +0100

    Code cleanup

 src/session_base.cpp  | 69 +++++++++++++++++++++++----------------------------
 src/session_base.hpp  | 10 ++++----
 src/stream_engine.cpp |  2 +-
 3 files changed, 37 insertions(+), 44 deletions(-)

commit 39e2b79912dddc1febdp075b8ff6eabdpeaf52f0
Merge: 0f6e737f ff292d62
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 1 13:13:07 2013 -0800

    Merge pull request #768 from Talksum/master

    changing zmq_proxy_steerable to not use null terminated strings

commit ff292d62d040d4b1b86ba3bf91b2dab2991386e4
Author: Brian Knox <briank@talksum.com>
Date:   Sun Dec 1 20:29:03 2013 +0000

    changing zmq_proxy_steerable to not use null terminated strings

 src/proxy.cpp        | 6 +++---
 tests/test_proxy.cpp | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 0f6e737ff8ac73393434dc5b4d55c095a60a4b71
Merge: 243aba26 cf14c541
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 1 02:48:32 2013 -0800

    Merge pull request #766 from hurtonm/master

    Fix issue #763

commit cf14c5410208f5d6f9e69c223d981dfba2e206c7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Nov 30 21:24:32 2013 +0100

    Fix issue #763

 src/stream_engine.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit 243aba265b57d781c253e20b85ccd2f6f1f26aff
Merge: a9eb6f79 bd41087a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 28 02:43:45 2013 -0800

    Merge pull request #765 from pijyoi/master

    make win32 signaler support ephemeral ports

commit bd41087ab9b9a6ccd886901ebfed6a6e6e06ba19
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Thu Nov 28 18:25:28 2013 +0800

    make win32 signaler support ephemeral ports

 src/signaler.cpp | 53 ++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 34 insertions(+), 19 deletions(-)

commit a9eb6f792b975dd4437ccedee58e498fac286755
Merge: 3cddcbaa abbe704d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 25 01:32:51 2013 -0800

    Merge pull request #762 from ricnewton/master

    Fix windows build for type of service.

commit abbe704d9e2b79ad2415dpc7fcc6cdc703c70b4b
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Nov 25 09:25:23 2013 +0000

    Fix windows build for type of service.

 CMakeLists.txt | 1 +
 src/ip.cpp     | 6 +-----
 2 files changed, 2 insertions(+), 5 deletions(-)

commit 3cddcbaadc9b8a07b33c417cf2c0ca62fe8356c3
Merge: b91ef997 a4385e61
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 24 22:50:18 2013 -0800

    Merge pull request #761 from claws/add_dscp_sockopt

    Add ability to set Differential Services Code Point socket option

commit a4385e6105534bb85d19e362e0e95dpecfe15ebf
Author: Chris Laws <clawsicus@gmail.com>
Date:   Mon Nov 25 13:40:05 2013 +1030

    tidy up

 .gitignore          |   1 +
 tests/test_diffserv | 228 ----------------------------------------------------
 2 files changed, 1 insertion(+), 228 deletions(-)

commit 38bceca9caaaa2ec67da609f01c8d42568549cdp
Author: Chris Laws <clawsicus@gmail.com>
Date:   Mon Nov 25 13:31:21 2013 +1030

    Add ability to set and get DSCP socket option

 doc/zmq_getsockopt.txt  |  11 +++
 doc/zmq_setsockopt.txt  |  29 ++++--
 include/zmq.h           |   1 +
 src/ip.cpp              |  15 ++++
 src/ip.hpp              |   3 +
 src/options.cpp         |  14 +++
 src/options.hpp         |   3 +
 src/tcp_connecter.cpp   |  12 ++-
 src/tcp_listener.cpp    |  10 ++-
 tests/Makefile.am       |   4 +-
 tests/test_diffserv     | 228 ++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_diffserv.cpp |  70 +++++++++++++++
 12 files changed, 389 insertions(+), 11 deletions(-)

commit b91ef997ce65c27938c17d6ea0c9a53839545cab
Merge: 7c2c0286 8f97f621
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 24 13:02:47 2013 -0800

    Merge pull request #760 from shancat/move_linger_test

    Move linger test to issue repo.

commit 8f97f621a820672a368edb0983b694e53d9c08e3
Author: Shannen Sdpz <shannenlaptop@gmail.com>
Date:   Mon Nov 25 13:26:49 2013 +1100

    Move linger test to issue repo.

    See https://github.com/zeromq/issues/pull/7

    Signed-off-by: Shannen Sdpz <shannenlaptop@gmail.com>

 CMakeLists.txt        |  7 ++--
 tests/Makefile.am     |  5 +--
 tests/test_linger.cpp | 93 ---------------------------------------------------
 3 files changed, 4 insertions(+), 101 deletions(-)

commit 7c2c02862ec4acb7e0a7ec754cc89edf91f126e7
Merge: 46c5a239 75a293d3
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Nov 24 08:19:02 2013 -0800

    Merge pull request #759 from hintjens/master

    Moved version macros to top for better visibility

commit 75a293d3796f5c6f29bd5c3617d457ffb57b5522
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 24 12:47:24 2013 +0100

    Moved version macros to top for better visibility

 include/zmq.h | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

commit 46c5a239cb4cb6207219e619c42262bcedc1dpdc
Merge: 0ee76912 4d22d456
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Nov 19 08:15:50 2013 -0800

    Merge pull request #758 from hintjens/master

    Fixed test_many_sockets

commit 4d22d456a91e649de39a7ad9e326d26585c6857b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 19 17:11:15 2013 +0100

    Reverting path change on platform.hpp, this broke some builds

 tests/testutil.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f98fbd5ad8c2f4d4a652dda45b4a2dfd1caa21ec
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 19 16:51:06 2013 +0100

    Fixed test_many_sockets

    * failed on systems where process could not allocate 1024 sockets by default
    * include path for platform.hpp was wrong; fixed it

 tests/test_many_sockets.cpp | 73 +++++++++++++++++++--------------------------
 tests/testutil.hpp          |  2 +-
 2 files changed, 32 insertions(+), 43 deletions(-)

commit 0ee76912e7d3595603cd09e225062f487e84bd28
Merge: a0bde508 3535a1d7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 15 06:33:52 2013 -0800

    Merge pull request #756 from 0x6d686b/master

    Fixed typo in documentation about zmq_proxy_steerable()

commit 3535a1d7ea868d4aa8884cfdc8d61682bac3a4ad
Author: Mathias Hablützel <habl@zhaw.ch>
Date:   Fri Nov 15 15:31:09 2013 +0100

    Fixed typo in documentation about zmq_proxy_steerable()

 doc/zmq_proxy_steerable.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a0bde5088758898ad88f0021e12335fed0593e04
Merge: 4a7f07a1 c89518d3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 13 04:58:37 2013 -0800

    Merge pull request #755 from hintjens/master

    Added links to RFCs for socket patterns

commit c89518d33d40ee52fce30a17c86c8e7617afa6be
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 13 13:57:53 2013 +0100

    Added links to RFCs for socket patterns

 doc/zmq_socket.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 4a7f07a19dp226fe92c3c7320bd425f9a18d0c79
Merge: e3ddda7a 7bd0b6ad
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 11 10:42:08 2013 -0800

    Merge pull request #754 from pijyoi/master

    remove all asserts during critical section for win32 make_fdpair codepath

commit e3ddda7a1ff9f7e598dp2aa481a44353da495b5a
Merge: ba33fb74 cf8ba925
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Nov 11 09:13:09 2013 -0800

    Merge pull request #753 from pijyoi/master

    handle bind error in make_fdpair() win32 codepath

commit 7bd0b6ada16567b6b936a214df2b9183e508e27c
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Nov 12 01:12:24 2013 +0800

    remove all asserts during critical section

    the size of the critical section is reduced by only entering the critical
    section right before the bind().

 src/signaler.cpp | 76 +++++++++++++++++++++++---------------------------------
 1 file changed, 31 insertions(+), 45 deletions(-)

commit ba33fb748b33b2359085e5f7914e172b7efa4efb
Merge: 51fa803d 5f8067cd
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Nov 11 09:10:51 2013 -0800

    Merge pull request #752 from ricnewton/master

    Revert "Make FD_SETSIZE = ZMQ_MAX_SOCKETS_DFLT + 1 so there is room for ...

commit cf8ba925b4f7a0358f47ef28ac5b8f3251b22fa4
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Tue Nov 12 00:07:06 2013 +0800

    return error to caller on bind error

 src/signaler.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 5f8067cd1bc74be88d39a62decc8ab544dpeba8c
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Nov 11 13:54:58 2013 +0000

    Fix signed/unsigned comparison

 tests/test_many_sockets.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit dee333b2edf37bcd38156584afc5cd1e337763b6
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Nov 11 13:53:25 2013 +0000

    Fix signed/unsigned comparison

 tests/test_many_sockets.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 51fa803d6328fbfe8c079484eafa24dp642770cb
Merge: dc339f4c 31cf53f0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Nov 11 05:51:12 2013 -0800

    Merge pull request #751 from psl-felipefarinon/master

    Removing C++11 code.

commit 7c514294408c22117c4a0553e5d36d18cac23928
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Nov 11 13:41:42 2013 +0000

    Reduce default maximum number of sockets by 1 so there is room for the reaper socket.

 include/zmq.h               |  2 +-
 tests/test_many_sockets.cpp | 89 +++++++++++++++++++++++++++++++++++----------
 2 files changed, 70 insertions(+), 21 deletions(-)

commit f77b96e4d9a530dc264e74ce07fd5a7298cfaaa6
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Nov 11 13:09:23 2013 +0000

    Revert "Make FD_SETSIZE = ZMQ_MAX_SOCKETS_DFLT + 1 so there is room for the repear socket."

    This reverts commit 0b92831b2a82c3bbc0e9371662c546b94915a3ea.

 CMakeLists.txt                             |  2 +-
 builds/mingw32/Makefile.mingw32            |  2 +-
 builds/msvc/libzmq/libzmq.vcproj           | 10 +++++-----
 builds/msvc/properties/ZeroMQ.props        |  2 +-
 builds/msvc/properties/ZeroMQ_Static.props |  2 +-
 5 files changed, 9 insertions(+), 9 deletions(-)

commit 31cf53f0250a6a381e63342c11704175101c0cc4
Author: Felipe Farinon <felipe.farinon@powersyslab.com>
Date:   Mon Nov 11 10:20:28 2013 -0200

    issue #583 removing C++11 code.

 src/clock.cpp | 1 -
 1 file changed, 1 deletion(-)

commit dc339f4c6d95117fd1d24f3a00b833290a5410b9
Merge: 1719b63f f06645c5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 10 04:10:12 2013 -0800

    Merge pull request #750 from mattconnolly/master

    Update signaler make_fdpair to set file descriptors to -1 when too many ...

commit f06645c5f16c27bdpd186369ebf03eac252e3850
Author: Matt Connolly <matt.connolly@me.com>
Date:   Sun Nov 10 21:16:12 2013 +1000

    Update signaler make_fdpair to set file descriptors to -1 when too many files are open using socketpair.

 src/signaler.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1719b63f1d6b9d533b67671ddpcf043cfd137e4f
Merge: 2b989ded 75042603
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Nov 10 02:25:04 2013 -0800

    Merge pull request #749 from davipt/fix-001-test_many_sockets_and_mac_open

    Fix socket creation above sistem limits for all 'other' OS not covered b...

commit 750426037d7cd1fd0aa14966a58f9b9b501563d5
Author: Bruno D. Rodrigues <bruno.rodrigues@litux.org>
Date:   Sun Nov 10 10:19:19 2013 +0000

    Fix socket creation above sistem limits for all 'other' OS not covered by eventfd, windows or vms; enhanced test to create sockets up to a bigger limit to really test hitting the OS limit

 src/signaler.cpp            | 2 +-
 tests/test_many_sockets.cpp | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 2b989ded67e023d7a4c3a2b6af72817530ba27ca
Merge: 8e21bc0b 7971ef38
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Nov 9 04:11:50 2013 -0800

    Merge pull request #748 from hintjens/master

    Added ignore test case

commit 7971ef385711af045d84adf760d000da37c90076
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Nov 9 12:27:21 2013 +0100

    Added ignore test case

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 8e21bc0b463272f412da998cb50a7d793f1cdb2c
Merge: e66b42f3 05d59628
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 12:45:54 2013 -0800

    Merge pull request #747 from hurtonm/master

    Signal that the peer performed orderly shutdown

commit 05d5962872fc6b03fa4e256557f6afef22e5f354
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Oct 9 10:51:30 2013 +0200

    Signal that the peer performed orderly shutdown

 src/stream_engine.cpp | 79 ++++++++++++++++++++++++---------------------------
 src/stream_engine.hpp |  7 ++---
 2 files changed, 40 insertions(+), 46 deletions(-)

commit e66b42f36323268376c9c15b97034d66bc17f388
Merge: 4616403b 0b92831b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 11:46:29 2013 -0800

    Merge pull request #746 from ricnewton/master

    Make FD_SETSIZE = ZMQ_MAX_SOCKETS_DFLT + 1 so there is room for the reaper socket

commit 0b92831b2a82c3bbc0e9371662c546b94915a3ea
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 18:26:13 2013 +0000

    Make FD_SETSIZE = ZMQ_MAX_SOCKETS_DFLT + 1 so there is room for the repear socket.

 CMakeLists.txt                             |  2 +-
 builds/mingw32/Makefile.mingw32            |  2 +-
 builds/msvc/libzmq/libzmq.vcproj           | 10 +++++-----
 builds/msvc/properties/ZeroMQ.props        |  2 +-
 builds/msvc/properties/ZeroMQ_Static.props |  2 +-
 5 files changed, 9 insertions(+), 9 deletions(-)

commit 4616403b109600554f5e063f4d7718475eca1ce7
Merge: 89ecf2de 7a510b4b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 10:00:57 2013 -0800

    Merge pull request #745 from ricnewton/master

    Get maximum number of sockets it can handle from poller_t

commit 7a510b4b60a2dc0f0cac9b74a74a4dp44f8c53c1
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 17:50:29 2013 +0000

    Fix formatting.

 src/ctx.cpp     | 8 ++++----
 src/devpoll.cpp | 2 +-
 src/devpoll.hpp | 2 +-
 src/epoll.cpp   | 2 +-
 src/epoll.hpp   | 2 +-
 src/kqueue.cpp  | 2 +-
 src/kqueue.hpp  | 2 +-
 src/poll.cpp    | 2 +-
 src/poll.hpp    | 2 +-
 src/select.cpp  | 2 +-
 src/select.hpp  | 2 +-
 11 files changed, 14 insertions(+), 14 deletions(-)

commit 90425cd5d6627f409d30717e8fb9fd3d3e3efb7b
Merge: 3aa7348e 89ecf2de
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 17:47:44 2013 +0000

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 89ecf2de796265ed130047e843d579f1952a85d3
Merge: 1596a5e8 485db41a
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 09:47:29 2013 -0800

    Merge pull request #744 from psl-felipefarinon/master

    Fixing broken build issue #583

commit 3aa7348e0bfcc09b2d6b63200c4b3fd0171f94d7
Merge: 568cc1ad 1596a5e8
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 17:46:32 2013 +0000

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 568cc1adaa034fddbbefedf921664237d62c4555
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 17:46:19 2013 +0000

    Get maximum number of sockets it can handle from poller_t

 src/ctx.cpp     | 12 ++++++++++--
 src/devpoll.cpp |  5 +++++
 src/devpoll.hpp |  2 ++
 src/epoll.cpp   |  5 +++++
 src/epoll.hpp   |  2 ++
 src/kqueue.cpp  |  5 +++++
 src/kqueue.hpp  |  2 ++
 src/poll.cpp    |  5 +++++
 src/poll.hpp    |  2 ++
 src/select.cpp  |  5 +++++
 src/select.hpp  |  2 ++
 11 files changed, 45 insertions(+), 2 deletions(-)

commit 485db41a438abd39bafdb3d2565ed4715e48fe6d
Author: Felipe Farinon <felipe.farinon@powersyslab.com>
Date:   Thu Nov 7 15:21:42 2013 -0200

    Fixing broken build issue #583

 src/clock.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 1596a5e871f72a4c34b74911cc0d168a64c3ec5f
Merge: 998c10a1 97cfa64d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 09:18:53 2013 -0800

    Merge pull request #743 from ricnewton/master

    Add test case for many sockets

commit 97cfa64d93c750363c5dca218c62a1c6598131ee
Merge: c4f09953 998c10a1
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 16:49:06 2013 +0000

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 998c10a1b7458fcb17653c0862063bf2d3d5767b
Merge: de5a7878 51f85719
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 08:48:48 2013 -0800

    Merge pull request #741 from hintjens/master

    Simplified error handling for make_fdpair on Windows

commit c4f09953d856c28f70728100532348383257c74f
Merge: 554b3c1f de5a7878
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 16:48:07 2013 +0000

    Merge remote-tracking branch 'upstream/master'

commit 554b3c1f706164838361b624eebe4c027db6ad73
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 16:47:55 2013 +0000

    Add test case for many sockets

 CMakeLists.txt              |  1 +
 tests/Makefile.am           |  4 +++-
 tests/test_many_sockets.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+), 1 deletion(-)

commit de5a7878684d6a5e231c4a371b46184540585e06
Merge: e3898b5d b8a9f299
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 08:12:48 2013 -0800

    Merge pull request #742 from psl-felipefarinon/master

    Fixing issue #583. Using low resolution timer for clock::now_ms

commit b8a9f299fb5e9cc46b2c47c14d705174669677fd
Author: Felipe Farinon <felipe.farinon@powersyslab.com>
Date:   Thu Nov 7 14:06:54 2013 -0200

    Fixing issue #583. Using low resolution timer for clock::now_ms

 src/clock.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 56 insertions(+), 2 deletions(-)

commit 51f857193320a8a46220c090834993ab2dd06cbc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 15:30:25 2013 +0100

    Simplified fdpair reset after fork

 src/signaler.cpp | 22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

commit 2be70dca1acdc9a93c73cea3526b012424017219
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 15:26:56 2013 +0100

    Simplified error handling for make_fdpair on Windows

 src/signaler.cpp | 7 -------
 1 file changed, 7 deletions(-)

commit e3898b5d776abf3dp123ed10c28542f4d932dc4e
Merge: 729e9496 c573f6b8
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Nov 7 06:20:34 2013 -0800

    Merge pull request #740 from hintjens/master

    Fix for issue 574

commit c573f6b8120880e07b95903ffaa496a69a14468f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 7 14:59:53 2013 +0100

    Fix for issue 574

 src/signaler.cpp    | 89 +++++++++++++++++++++++++++--------------------------
 src/signaler.hpp    |  4 +--
 src/socket_base.cpp | 82 ++++++++++++++++++++++++------------------------
 3 files changed, 89 insertions(+), 86 deletions(-)

commit 729e9496b286d078a8cf839e3115e216fcfe55d7
Merge: 6ed1f476 e84f17bb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 6 23:34:36 2013 -0800

    Merge pull request #739 from mbarbisan/master

    Modified the zmq_setsockopt documentation to include the ZMQ_ROUTER_HAND...

commit e84f17bbb46481d447dbed8962230fdeb9ff95f0
Author: Mark Barbisan <mark@barbisan.ca>
Date:   Wed Nov 6 23:21:28 2013 -0500

    Modified the zmq_setsockopt documentation to include the ZMQ_ROUTER_HANDOVER option

 AUTHORS                |  1 +
 doc/zmq_setsockopt.txt | 22 +++++++++++++++++++---
 2 files changed, 20 insertions(+), 3 deletions(-)

commit 6ed1f4766af3de4c9077eb54d31e19d1ec6181ee
Merge: 8797af77 844689ed
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 6 07:41:02 2013 -0800

    Merge pull request #738 from ricnewton/master

    Fix race condition on shutdown

commit 844689ed9aad89b1462f6d417c49b7024b4af1af
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Nov 6 15:19:04 2013 +0000

    Fix race condition on shutdown

 src/ctx.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 8797af777bfdaccefe9b318987db3c0f79aa8287
Merge: c2c6ec19 5b60540e
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Nov 6 04:53:05 2013 -0800

    Merge pull request #737 from hintjens/master

    Removed over-long pauses in tests

commit 5b60540ed0c9f11e6e984a4b9645a17e6f8ebf02
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 6 13:30:41 2013 +0100

    Removed over-long pauses in tests

    - used msleep (10) in most places instead of zmq_sleep (1)
    - may cause failures on slower machines
    - to change, modify SETTLE_TIME in testutil.h
    - tested down to 1 msec on fast boxes

 tests/test_conflate.cpp           |   7 +-
 tests/test_connect_delay_tipc.cpp |   4 +-
 tests/test_ctx_destroy.cpp        |   2 +-
 tests/test_immediate.cpp          |   3 +-
 tests/test_inproc_connect.cpp     |   2 +-
 tests/test_iov.cpp                |   2 +-
 tests/test_monitor.cpp            |   6 +-
 tests/test_proxy.cpp              | 206 ++++++++++++++++++--------------------
 tests/test_req_relaxed.cpp        |   2 +-
 tests/test_spec_req.cpp           |   2 +-
 tests/test_sub_forward.cpp        |   2 +-
 tests/test_sub_forward_tipc.cpp   |   2 +-
 tests/test_term_endpoint.cpp      |   4 +-
 tests/test_term_endpoint_tipc.cpp |   5 +-
 tests/testutil.hpp                |  24 ++---
 15 files changed, 124 insertions(+), 149 deletions(-)

commit c2c6ec190771b698f110595b40ddc335bbd7a672
Merge: 37004536 edbfdp31
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Nov 5 04:39:43 2013 -0800

    Merge pull request #736 from Hugne/lookup_domain

    zmq: change TIPC default lookup domain when connecting

commit edbfdp31411154cd455dc4ca2ca20e77cd6489f6
Author: Erik Hugne <erik.hugne@ericsson.com>
Date:   Tue Nov 5 13:23:45 2013 +0100

    zmq: change TIPC default lookup domain when connecting

    By default, TIPC uses a closest first approach to find
    a publication that can satisfy your connection request.
    Any publication on the local node will automatically
    be chosen for all requests, even if you're trying to
    spread it out over multiple machines.
    We fix this by widening the default lookup scope.

    Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>

 src/tipc_address.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 370045367dea8ce1078893970204f45c29e359e1
Merge: 0d5ffd5a bbbccebb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 5 04:08:10 2013 -0800

    Merge pull request #735 from Hugne/tipc_docs

    zmq: add TIPC manpage

commit bbbccebbe711a991d807bf70132bb4a982bb4e71
Author: Erik Hugne <erik.hugne@ericsson.com>
Date:   Tue Nov 5 13:01:40 2013 +0100

    zmq: add TIPC manpage

    Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>

 doc/Makefile.am  |  2 +-
 doc/zmq_tipc.txt | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+), 1 deletion(-)

commit 0d5ffd5a0ce9e0c3f20a193bbc14528f84526e49
Merge: 75af9ddb 5e6aa58a
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Nov 4 07:54:07 2013 -0800

    Merge pull request #734 from hintjens/master

    Fixed issue 578

commit 5e6aa58a140767b055d461ab13e71281e9a7996d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 4 16:04:13 2013 +0100

    Fixed issue 578 - corrected type usage

 src/zmq_utils.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d7c8021afce92b1df0d986b908a0e885387aba1f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 4 15:39:20 2013 +0100

    Fixed issue 578

 .gitignore        |  9 +++++++++
 src/zmq_utils.cpp | 11 ++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

commit 75af9ddb78f0cfe77d2b372e3ce06fa1345aa8a8
Merge: 027990a1 bdf8bc31
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 4 05:29:36 2013 -0800

    Merge pull request #733 from mingulov/doc

    Doc examples with zmq_msg_close usage - parameter is 'zmq_msg_t *'

commit bdf8bc31938639a1dd0be48d43c76cfbb3f2c66e
Author: Denis Mingulov <denis@mingulov.com>
Date:   Mon Nov 4 15:15:23 2013 +0200

    Doc examples with zmq_msg_close usage - parameter is 'zmq_msg_t *'

    Documentation examples for zmq_msg_get and zmq_msg_more functions have an
    incorrect call to zmq_msg_close function - with 'zmq_msg_t' as a parameter
    despite 'zmq_msg_t *' is required, so it is impossible to compile these
    examples properly.

    Also for zmq_msg_get example - declaration of zmq_msg_t variable is added
    (like it is done in other examples).

 doc/zmq_msg_get.txt  | 3 ++-
 doc/zmq_msg_more.txt | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 027990a112dfce8311dbf5564a42d138f8dp8473
Merge: 299068b5 58ac87de
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 1 07:14:00 2013 -0700

    Merge pull request #732 from Hugne/tipc

    zmq: narrow condition to include TIPC in build/test

commit 58ac87def1b5349ddfd9d89cde0ca18e5f7cd7cd
Author: Erik Hugne <erik.hugne@ericsson.com>
Date:   Fri Nov 1 14:59:31 2013 +0100

    zmq: narrow condition to include TIPC in build/test

    As TIPC transport for 0MQ will only work on post 3.8
    Linux kernels where nonblocking connect was added,
    we add AC_RUN test to check for this functionality.
    Should the test fail, tipc is excluded from build/test.

    Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>

 configure.ac           | 34 ++++++++++++++++++++++++++++++++++
 src/address.cpp        |  4 ++--
 src/session_base.cpp   |  2 +-
 src/socket_base.cpp    |  6 +++---
 src/tipc_address.cpp   |  2 +-
 src/tipc_address.hpp   |  2 +-
 src/tipc_connecter.cpp |  2 +-
 src/tipc_connecter.hpp |  2 +-
 src/tipc_listener.cpp  |  2 +-
 src/tipc_listener.hpp  |  2 +-
 tests/Makefile.am      |  4 ++--
 11 files changed, 48 insertions(+), 14 deletions(-)

commit 299068b5719c4da5f8fb4cf79ddc8f93744986b5
Merge: 2db808f2 5e71475d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 1 06:30:27 2013 -0700

    Merge pull request #731 from mbarbisan/master

    Shorten ZMQ_ROUTER_REASSIGN_IDENTITIES to ZMQ_ROUTER_HANDOVER. Also, add...

commit 2db808f25089044a0c9e1ca8b740dac69cc2213c
Merge: bc88b888 632677e8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 1 04:05:55 2013 -0700

    Merge pull request #730 from Hugne/tipc

    Tipc support

commit 632677e8059d7de509146ffebe9ce82bbefb2f72
Author: Erik Hugne <erik.hugne@ericsson.com>
Date:   Fri Nov 1 11:17:10 2013 +0100

    ricnewton review comment

    Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9d5a3793319769a1403ebc49e583afb5ba150aba
Author: Erik Hugne <erik.hugne@ericsson.com>
Date:   Wed Oct 30 16:03:27 2013 +0100

    zmq: add TIPC transport tests

    The tests are identical to the TCP ones, only the
    addressing is changed.

    Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>

 AUTHORS                              |   1 +
 tests/Makefile.am                    |  21 ++++
 tests/test_connect_delay_tipc.cpp    | 238 +++++++++++++++++++++++++++++++++++
 tests/test_pair_tipc.cpp             |  54 ++++++++
 tests/test_reqrep_device_tipc.cpp    | 143 +++++++++++++++++++++
 tests/test_reqrep_tipc.cpp           |  54 ++++++++
 tests/test_router_mandatory_tipc.cpp |  62 +++++++++
 tests/test_shutdown_stress_tipc.cpp  |  93 ++++++++++++++
 tests/test_sub_forward_tipc.cpp      |  99 +++++++++++++++
 tests/test_term_endpoint_tipc.cpp    | 119 ++++++++++++++++++
 10 files changed, 884 insertions(+)

commit eab85b52953bd23076c5b9333ef1c455cdc3666d
Author: Erik Hugne <erik.hugne@ericsson.com>
Date:   Fri Nov 1 09:09:54 2013 +0100

    zmq: add support for TIPC transport

    A ZeroMQ application can opt for TIPC based sockets
    using the TIPC port name format:
    zmq_bind(sb, "tipc://{type,lower,upper}");
    zmq_connect(sc, "tipc://{type,inst}");

    'type' is the service ID, and 'lower/upper' can be
    used for service partitioning or basic load
    balancing.

    ZeroMQ TIPC transport requires a kernel >= 3.8
    (nonblocking connect support for TIPC).

    Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>

 src/Makefile.am        |   9 +-
 src/address.cpp        |  19 +++-
 src/address.hpp        |   6 ++
 src/session_base.cpp   |  11 +++
 src/socket_base.cpp    |  44 ++++++++-
 src/tipc_address.cpp   | 105 ++++++++++++++++++++
 src/tipc_address.hpp   |  65 +++++++++++++
 src/tipc_connecter.cpp | 256 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/tipc_connecter.hpp | 127 ++++++++++++++++++++++++
 src/tipc_listener.cpp  | 178 ++++++++++++++++++++++++++++++++++
 src/tipc_listener.hpp  |  97 +++++++++++++++++++
 11 files changed, 914 insertions(+), 3 deletions(-)

commit 5e71475d45dd320014cfe8542467c8e375def9c8
Author: Mark Barbisan <mark@barbisan.ca>
Date:   Thu Oct 31 23:42:48 2013 -0400

    Shorten ZMQ_ROUTER_REASSIGN_IDENTITIES to ZMQ_ROUTER_HANDOVER. Also, added a test for the HANDOVER functionality.

 include/zmq.h                  |   2 +-
 src/router.cpp                 |   8 ++--
 src/router.hpp                 |   2 +-
 tests/Makefile.am              |   2 +
 tests/test_router_handover.cpp | 101 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 109 insertions(+), 6 deletions(-)

commit bc88b88804cba89a950bf65a5950c9cf8d1b320b
Merge: 9d22ab1c 3825f3b3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 31 11:01:55 2013 -0700

    Merge pull request #729 from mbarbisan/master

    Fixed LIBZMQ-556: ROUTER socket does not support reconnection from clients with multiple NICs

commit 9d22ab1c4fac2fb0c9e52b6e1b0f51368903f534
Merge: 2a03d541 c75ed69a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 31 06:08:20 2013 -0700

    Merge pull request #728 from NetImperia/patch-1

    Update tcp_connecter.cpp - Crash Fix: Assertion failed: Permission denied (..\..\..\src\tcp_connecter.cpp:279) on windows 8

commit 3825f3b3009f3a123c0144486d5507d195f24b86
Author: Mark Barbisan <mark@barbisan.ca>
Date:   Wed Oct 30 23:45:46 2013 -0400

    Add support to the ROUTER socket to reassign identities upon name collision.

 include/zmq.h  |  1 +
 src/router.cpp | 41 ++++++++++++++++++++++++++++++++++++++---
 src/router.hpp |  5 +++++
 3 files changed, 44 insertions(+), 3 deletions(-)

commit c75ed69af3baa27051fc02e1f1528fe5d08533a6
Author: NetImperia <com@netimperia.com>
Date:   Wed Oct 30 18:16:06 2013 -0700

    Update tcp_connecter.cpp

    Crash Fix: Assertion failed: Permission denied (..\..\..\src\tcp_connecter.cpp:279) on windows 8

 src/tcp_connecter.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 2a03d541dc4e8bdd08c91890a17c400913144c74
Merge: 37450fad 5405c6ac
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 29 04:24:38 2013 -0700

    Merge pull request #727 from ricnewton/master

    Remove redundant entry in tests makefile.

commit 5405c6ac218fa623920788bbd0e1276b80556820
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Oct 29 11:18:49 2013 +0000

    Remove redundant entry in tests makefile.

 tests/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit 37450fad66acfb3b68aa1cd1c4f60619e32832d8
Merge: 9f87f747 36d7bba3
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Oct 29 04:17:12 2013 -0700

    Merge pull request #726 from mattconnolly/master

    Adding source for test_stream_empty

commit 36d7bba3896825c7bd769af764eb28758c19298c
Author: Matt Connolly <matt.connolly@me.com>
Date:   Tue Oct 29 20:50:52 2013 +1000

    Adding source for test_stream_empty

 tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 9f87f747e3e56c1263fdc7e41d7ddceeb9cb2d7a
Merge: 335cffc1 2b08047d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 29 02:32:22 2013 -0700

    Merge pull request #725 from ricnewton/master

    Sync cmake tests with tests in makefile.am

commit 2b08047d363cadb8406c754b978391162916daf7
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Oct 29 09:10:00 2013 +0000

    Fix formatting issue.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 54a379f9662fc64c414f18570d627ba8edccdfc3
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Oct 29 09:07:38 2013 +0000

    Clean up dead code in cmake.

 CMakeLists.txt | 6 ------
 1 file changed, 6 deletions(-)

commit 5a74ad56a9c6cc90250311c8c8cc920ce9672ce3
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Oct 29 09:06:24 2013 +0000

    Sync cmake tests with tests in makefile.am

 CMakeLists.txt | 60 +++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 36 insertions(+), 24 deletions(-)

commit 335cffc1e3d0f2424f970597c1569aa5d2aad82f
Merge: ac63e562 eaba5dfe
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Oct 28 16:11:42 2013 -0700

    Merge pull request #724 from hintjens/master

    Renamed test_router_raw_empty to test_stream_empty

commit eaba5dfe379b544dd91d4e0e748fe62dfa9b9449
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 28 21:00:42 2013 +0100

    Renamed test_router_raw_empty to test_stream_empty

    * The ZMQ_ROUTER_RAW API was deprecated in favor of ZMQ_STREAM
    * Same issue hit router.cpp, which I've fixed

 .gitignore                      |  1 +
 src/stream.cpp                  |  2 ++
 tests/Makefile.am               |  2 +-
 tests/test_router_raw_empty.cpp | 65 -----------------------------------------
 tests/test_stream_empty.cpp     | 60 +++++++++++++++++++++++++++++++++++++
 5 files changed, 64 insertions(+), 66 deletions(-)

commit ac63e56255dp75a2c35626addcea2e011da9f579
Merge: b40879f9 c2c0f39d
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Oct 28 04:05:02 2013 -0700

    Merge pull request #723 from hintjens/master

    Fixed ref to zmq_socket_monitor

commit c2c0f39d36236156c1abba72dba9badb2b65dc9d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 28 11:48:28 2013 +0100

    Fixed ref to zmq_socket_monitor

 doc/zmq.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit b40879f9de0c747dpd8cecc57c854415a62695a5
Merge: c9772d0a 379c280b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 28 03:30:53 2013 -0700

    Merge pull request #722 from ricnewton/master

    Fix test warnings

commit 379c280bdee706cbdd1d851d28abec5982dd456d
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Oct 28 08:34:32 2013 +0000

    Fix test warning.

 tests/test_ctx_options.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 15f5b7ff6a346899f6181d4e5718fdp188ad8136
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Oct 28 08:30:31 2013 +0000

    Fix test warning.

 tests/test_router_raw_empty.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c9772d0a5c4fa447fb3a419dcfbba57ee3b58754
Merge: dad09334 366c8f87
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Oct 28 01:19:00 2013 -0700

    Merge pull request #721 from minrk/init-raw

    add missing msg->init for ROUTER_RAW with empty message

commit 366c8f87c46efe6fb2b995170bf427f774b4fcfd
Author: Min RK <benjaminrk@gmail.com>
Date:   Sun Oct 27 22:50:32 2013 -0700

    test zmq_msg_close after sending empty message on ROUTER_RAW

 tests/Makefile.am               |  2 ++
 tests/test_router_raw_empty.cpp | 65 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)

commit 96ee8bb9d9e36208af1c288bf355318b4c667a72
Author: Min RK <benjaminrk@gmail.com>
Date:   Sun Oct 27 22:50:04 2013 -0700

    add missing msg->init for ROUTER_RAW with empty message

 src/router.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit dad09334693224824e5b4a761c627d7e4ced604b
Merge: 628787c9 0beb39a4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 25 00:53:38 2013 -0700

    Merge pull request #718 from xantares/tarball_cmake

    include cmake files in tarball

commit 628787c965e213062fe87b8707159bcbba3e66dp
Merge: 770d52ec 65050b1b
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Oct 24 00:30:48 2013 -0700

    Merge pull request #720 from hintjens/master

    test_stream failed when response was broken into frames

commit 65050b1b031398804c49e3c2bc0481feba6e37db
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 24 03:31:02 2013 +0200

    Added --with-relaxed to disable pedantic compiles

 configure.ac | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 1ee7b9b1ea0690d18da9ab19bfab41bf59513bc8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 23 23:58:39 2013 +0200

    test_stream failed when response was broken into frames

 tests/test_stream.cpp | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

commit 770d52ecfecb76cce5763f61e85c62bacced4b84
Merge: 71b423dp ffd633b3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 23 12:17:55 2013 -0700

    Merge pull request #719 from xantares/mingw_arch

    fix use of CMAKE_SYSTEM_PROCESSOR

commit ffd633b3bb8306dc6e04fe4a6d47cc7775d40f6c
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Oct 23 20:22:20 2013 +0200

    fix use of CMAKE_SYSTEM_PROCESSOR

 CMakeLists.txt | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit 0beb39a4489afee218a4b7a375b0717409369047
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Oct 23 20:21:35 2013 +0200

    Revert "fix use of CMAKE_SYSTEM_PROCESSOR"

    This reverts commit e5baf1e05e696619cb4400db9c9324996ab1400c.

 CMakeLists.txt | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

commit e5baf1e05e696619cb4400db9c9324996ab1400c
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Oct 23 20:19:52 2013 +0200

    fix use of CMAKE_SYSTEM_PROCESSOR

 CMakeLists.txt | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit e273d94db80e20f5ce557709e55d7e93011223b2
Author: Michel Zou <xantares10@hotmail.com>
Date:   Wed Oct 23 19:06:29 2013 +0200

    include cmake files in tarball

 Makefile.am     | 1 +
 src/Makefile.am | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 71b423dp8d6b3a6979b8dp712d800600b6447756
Merge: 1f85ed06 87718c61
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Oct 23 07:16:40 2013 -0700

    Merge pull request #717 from hintjens/master

    Clarified use of secret/public keys

commit 87718c6102f92cba5eda062cac8f4a4778e0c152
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 23 16:03:40 2013 +0200

    Clarified use of secret/public keys

 doc/zmq_setsockopt.txt | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

commit 1f85ed06db9d83a92406bba774b88c85256daa63
Merge: 4582fe32 09426ff3
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Oct 23 03:16:49 2013 -0700

    Merge pull request #716 from hintjens/master

    Fixed man page for CURVE key options

commit 09426ff30821c2a5211673817092767b2af9b049
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 23 12:04:31 2013 +0200

    Fixed man page for CURVE key options

 doc/zmq_setsockopt.txt | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 4582fe3276ca0803f2cd9148e546fe8dc68e9386
Merge: 41b2f83b 8ee2a472
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 21 02:16:28 2013 -0700

    Merge pull request #715 from ricnewton/master

    Add new tests to CMakeLists.txt

commit 8ee2a47267d173e19b1166449d3450c805c81a3d
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Oct 21 10:06:17 2013 +0100

    Add new tests to CMakeLists.txt

 CMakeLists.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 41b2f83bef06f2bd2abca233cc0fe231ab89ec8c
Merge: 08c91c0f 406e6051
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Oct 21 01:58:00 2013 -0700

    Merge pull request #714 from hintjens/master

    Cleaned up the code

commit 406e6051e40bedf7aba5f140d4e551b58059483c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 21 10:51:59 2013 +0200

    Cleaned up the code

    - removed unnecessary malloc
    - spaces, not tabs to indent
    - renamed control states to be more logical
    - renamed SUSPEND to PAUSE, feels more accurate
    - fixed indentation, which was off in places

 src/proxy.cpp | 126 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 66 insertions(+), 60 deletions(-)

commit 08c91c0f949334aad95d851fba6e999bb99d6912
Merge: 5f1a9a4a 984c2e94
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 21 01:39:09 2013 -0700

    Merge pull request #712 from lalebarde/master

    add proxy control flow and test

commit 984c2e94e411e9146655f42076c29bc3d8f0f1db
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Fri Oct 18 16:40:21 2013 +0200

    small fix inzmq_proxy_steerable doc

 doc/zmq_proxy_steerable.txt | 3 ---
 1 file changed, 3 deletions(-)

commit 99b13638ebabbf7fb80072f78e9492e109721395
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Fri Oct 18 16:35:54 2013 +0200

    add doc to zmq_proxy_steerable

 doc/Makefile.am             |  2 +-
 doc/zmq_proxy_steerable.txt | 96 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 97 insertions(+), 1 deletion(-)

commit 5f1a9a4dp50825fa6632d29e240304e99e1ddccb
Merge: 3b628fd8 1b8ddpd9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 18 06:37:16 2013 -0700

    Merge pull request #713 from ricnewton/master

    Use consistant integer type in raw_decoder

commit 5250bdab9fa8b8e089f24994144ce831dcdf9839
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Fri Oct 18 15:22:53 2013 +0200

    add tests/test_proxy in gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 1b8ddpd9db41b4237a91b254dbc791b53260dc1c
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Oct 18 14:20:30 2013 +0100

    Use consistant integer type in raw_decoder

 src/raw_decoder.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1bb982ecc2e072dfa710ef62699c67b8d97a2ca0
Merge: f06bf8d2 3b628fd8
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Oct 18 14:09:39 2013 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit e33a382f8dcf98e7ad677bb56be4c2ca1e77365a
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Fri Oct 18 15:01:05 2013 +0200

    new zmq_proxy is zmq_proxy_steerable to respect C API

 include/zmq.h        |  3 ++-
 src/zmq.cpp          | 14 +++++++++++++-
 tests/test_proxy.cpp |  2 +-
 3 files changed, 16 insertions(+), 3 deletions(-)

commit 1b75d1ecb5cdfc47190d587bcf37680777a96356
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Fri Oct 18 11:12:48 2013 +0200

    add proxy control flow and test

 AUTHORS              |   1 +
 include/zmq.h        |   2 +-
 src/proxy.cpp        |  56 +++++++++--
 src/proxy.hpp        |   3 +-
 src/zmq.cpp          |   3 +-
 tests/Makefile.am    |   2 +
 tests/test_proxy.cpp | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/testutil.hpp   |  19 ++++
 8 files changed, 344 insertions(+), 9 deletions(-)

commit 3b628fd85a6e1d5404f260105a9f37b617922cbf
Merge: 6139a66e f0a0e4d8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 14 11:28:37 2013 -0700

    Merge pull request #710 from jenshz/patch-1

    Update zmq_msg_init_data.txt

commit f0a0e4d817a61331d175e98111f53e592135b813
Author: Jens Henrik Hertz <jens@autobutler.dk>
Date:   Mon Oct 14 20:27:23 2013 +0200

    Update zmq_msg_init_data.txt

 doc/zmq_msg_init_data.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 6139a66eee0b65132f325a89b62c19ca5353807b
Merge: ff90fa7f 097c2c8f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Oct 13 05:46:55 2013 -0700

    Merge pull request #709 from hintjens/master

    Temporary workaround for broken libsodium install

commit 097c2c8f8b4ec84633adp2ba9436105a13ce5615
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Oct 13 14:45:58 2013 +0200

    Temporary workaround for broken libsodium install

 .travis.yml | 3 +++
 1 file changed, 3 insertions(+)

commit ff90fa7f4d79f2e51bb92250b418d3f5ea08d387
Merge: 9bb4215c 7ecab54a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Oct 11 06:33:04 2013 -0700

    Merge pull request #708 from hurtonm/master

    Load identity message to decoder at start

commit 7ecab54ac3b7a6103c46892990217acafb039eed
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jun 21 16:23:38 2013 +0200

    Load identity message to decoder at start

 src/stream_engine.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit 9bb4215cfe6b7b9d823c65e461553810fda013f4
Merge: 82ab8363 b2d52a37
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 11 02:45:35 2013 -0700

    Merge pull request #707 from xantares/master

    Fixed out-of-source build

commit b2d52a3730c300d5adcafc5653e58ee96d5e768f
Author: Michel Zou <xantares10@hotmail.com>
Date:   Thu Oct 10 22:08:54 2013 +0200

    Fixed out-of-source build

 tools/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 82ab83630611de10b1a9807b87c911a29d4337c6
Merge: 63e0fe91 b35c08be
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 9 11:44:32 2013 -0700

    Merge pull request #706 from hurtonm/master

    Rename engine's methods to improve code readability

commit b35c08beb4e6a8b72e05265cb5f49af22f2663d7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Sep 26 09:37:04 2013 +0200

    Rename engine's methods to improve code readability

 src/i_engine.hpp      |  4 ++--
 src/pgm_receiver.cpp  |  4 ++--
 src/pgm_receiver.hpp  |  4 ++--
 src/pgm_sender.cpp    |  4 ++--
 src/pgm_sender.hpp    |  4 ++--
 src/session_base.cpp  |  4 ++--
 src/stream_engine.cpp | 34 +++++++++++++++++-----------------
 src/stream_engine.hpp |  8 ++++----
 8 files changed, 33 insertions(+), 33 deletions(-)

commit 63e0fe915e456137bec998303b2d599d9e9a0e8c
Merge: cc228255 50a1973e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Oct 9 11:20:46 2013 -0700

    Merge pull request #705 from hintjens/master

    Fixed doc for IDENTITY socket option

commit 50a1973ee6011a85204d96267a0786f9fcf09aaf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 9 19:52:46 2013 +0200

    Identity can only be set on sockets that can connect to ROUTER

 doc/zmq_getsockopt.txt | 6 +++---
 doc/zmq_setsockopt.txt | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit cc2282556a90a92767af8bb77e411f5c9d3dd14d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 8 17:54:01 2013 +0200

    Update NEWS

 NEWS | 7 -------
 1 file changed, 7 deletions(-)

commit 1b6ca34d16885052ec41a98b67c02c1651c9e88d
Merge: 2cf6d523 b7eb1cdc
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Oct 8 06:05:42 2013 -0700

    Merge pull request #703 from hintjens/master

    Reverted use of enums for zmq.h constants (too painful for binding authors)

commit b7eb1cdcce8436f237b1a908b8be426369b037b0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 8 14:51:19 2013 +0200

    Revert "replace macro constants with enum types for user facing constants"

    This reverts commit d4bb6d693f0542bbf35bc1b6810100d5b2a901a8.

 include/zmq.h | 222 ++++++++++++++++++++++++++--------------------------------
 1 file changed, 101 insertions(+), 121 deletions(-)

commit b0085a7f29d431c1f93d04fb0e6cc7499f27689a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 8 14:51:00 2013 +0200

    Revert "distinguish between options and defaults"

    This reverts commit e7804c5027633d18558c05b550ea11c46fb37c42.

 include/zmq.h | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

commit 2cf6d5231001407c6bba18768ee7d0a150431978
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 8 10:48:37 2013 +0200

    Fixed NEWS for 4.0.1 release

 NEWS | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

commit c629b6c7b0a9f6effcf4080f72137dbc38a11150
Merge: 75601034 6ef68be0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 8 01:48:16 2013 -0700

    Merge pull request #702 from hintjens/master

    Updated NEWS for 4.0.1 release

commit 6ef68be04f5d704d94417a42c804b6a28bf49f8d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 8 10:36:33 2013 +0200

    Updated NEWS for 4.0.1 release

 NEWS | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

commit 756010343dc69d9b37c59f21766d7c37eb3610b5
Merge: 283e5235 433ea35b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 7 22:36:01 2013 -0700

    Merge pull request #701 from ezhikus/master

    Typo in type name "emTPy_slots_t"

commit 433ea35b6c1af450279c887b5ec095dd4d72da21
Author: Volodymyr Korniichuk <VolodymyrKorn@gmail.com>
Date:   Tue Oct 8 00:40:30 2013 +0300

    Typo in type name "emTPy_slots_t"

    https://zeromq.jira.com/browse/LIBZMQ-565

 src/ctx.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 283e52357c982789955334831425b9c44bea898a
Merge: 1a202208 62e26b32
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 7 11:50:36 2013 -0700

    Merge pull request #700 from hashstat/master

    Add documentation on Linux ipc abstract namespace support and a bug fix.

commit 62e26b32424d17a3c589d7a30c4c19d554cc547f
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Mon Oct 7 10:55:40 2013 -0700

    Add tests/test_abstract_ipc to .gitignore.

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit e0f4d603c2b123f156be2aa1ca4eeeaf5c1740e4
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Mon Oct 7 10:42:39 2013 -0700

    Fix detection of abstract ipc pathname and length calculation.

    Abstract socket pathnames must have a NULL character in the first
    position, but the second character must also be checked to differentiate
    an abstract name from the empty string.  The address length must also
    indicate the length of the pathname because the kernel uses the entire
    address as the name, including NULL characters.  ZMQ uses
    NULL-terminated strings for the address, so the abstract address length
    is the length of the string following the initial NULL byte plus 3; two
    bytes for the address family and one for the initial NULL character.

 src/ipc_address.cpp | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit dp7fad48a85c54eded3a78ceb644f4235c67e7e9
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Mon Oct 7 10:41:20 2013 -0700

    Add note on Linux abstract namespace to ipc documentation.

 doc/zmq_ipc.txt | 5 +++++
 1 file changed, 5 insertions(+)

commit 1a202208177a482008768440cb1412a270bee971
Merge: bacc9dpe 7a960ff2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 5 00:22:26 2013 -0700

    Merge pull request #699 from ezhikus/free_and_delete

    It is safe to "free(NULL)" and "delete NULL"

commit bacc9dpedp74ba2e915c5dpc5ea3b636677208a0
Merge: 23e58e30 f499c895
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 5 00:14:09 2013 -0700

    Merge pull request #698 from hashstat/master

    Add abstract namespace support for IPC sockets on Linux.

commit 7a960ff29c2d628ac3cc45bdb600b4cb3c1f3825
Author: Volodymyr Korniichuk <VolodymyrKorn@gmail.com>
Date:   Fri Oct 4 21:54:52 2013 +0300

    useless checks were removed

 src/ctx.cpp           | 6 ++----
 src/mtrie.cpp         | 3 +--
 src/session_base.cpp  | 3 +--
 src/stream_engine.cpp | 9 +++------
 src/trie.cpp          | 3 +--
 src/yqueue.hpp        | 6 ++----
 6 files changed, 10 insertions(+), 20 deletions(-)

commit f499c89528be9a8bf87146b3c3808988c83aad74
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Thu Oct 3 16:35:30 2013 -0700

    Add test for abstract namespace support in ipc sockets on Linux.

    See issue 567.

 configure.ac                |  3 +++
 tests/Makefile.am           |  8 ++++++-
 tests/test_abstract_ipc.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 67 insertions(+), 1 deletion(-)

commit 31cdbd2afa47318316a8a1f203904330e53fc120
Author: Brandon Carpenter <brandon.carpenter@pnnl.gov>
Date:   Thu Oct 3 16:21:42 2013 -0700

    Add abstract namespace support for IPC sockets on Linux.

    Converts an initial strudel or "at sign" (@) in the Unix socket path to
    a NULL character ('\0') indicating that the socket uses the abstract
    namespace instead of the filesystem namespace.  For instance, binding a
    socket to 'ipc://@/tmp/tester' will not create a file associated with
    the socket whereas binding to 'ipc:///tmp/tester' will create the file
    /tmp/tester.  See issue 567 for more information.

 AUTHORS             |  1 +
 src/ipc_address.cpp | 12 ++++++++++++
 2 files changed, 13 insertions(+)

commit 23e58e30d5dp04250a82e9008a9db01dea07a15c
Merge: d33a3ad0 55bfe7db
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Oct 4 10:13:46 2013 -0700

    Merge pull request #697 from pijyoi/master

    bugfixes for mingw compilation

commit 55bfe7dbabad89330cd8d67f48a16d4e41a39baf
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Oct 5 00:51:47 2013 +0800

    WinSock2.h filename should be all lowercase

 tests/test_system.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 79c2598a0817403c2b5bcef74cb96ecab798cc85
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Oct 5 00:48:52 2013 +0800

    test for _MSC_VER before using MSVC specific code

 tests/testutil.hpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit d33a3ad0fda75385b98cd478db1e53fd45cf8015
Merge: 6934766c e7804c50
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 4 01:58:48 2013 -0700

    Merge pull request #696 from calid/enum-constants

    replace macro constants with enum types for user facing constants

commit e7804c5027633d18558c05b550ea11c46fb37c42
Author: Dylan Cali <calid1984@gmail.com>
Date:   Fri Oct 4 02:19:07 2013 -0500

    distinguish between options and defaults

 include/zmq.h | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 6934766cf8cf403eb63b8d810ad8b51b780d63de
Merge: 21129c75 88882e31
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 4 00:07:25 2013 -0700

    Merge pull request #695 from hurtonm/master

    Stop curve handshake when cookie box verification fails

commit d4bb6d693f0542bbf35bc1b6810100d5b2a901a8
Author: Dylan Cali <calid1984@gmail.com>
Date:   Fri Oct 4 01:45:42 2013 -0500

    replace macro constants with enum types for user facing constants

 include/zmq.h | 222 ++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 121 insertions(+), 101 deletions(-)

commit 88882e31cdb6d1c3dedecdeffc207ed33cf043f4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Oct 4 08:20:55 2013 +0200

    Stop curve handshake when cookie box verification fails

 src/curve_server.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 21129c750191116a066439cf71a1d1023636020c
Merge: cd030ef1 edeedc6d
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Oct 2 03:30:11 2013 -0700

    Merge pull request #694 from hintjens/master

    Clarified that zmq.h constants are part of the public contract

commit edeedc6dd83b4bba3c51fc02dpfe30d4dfe3f765
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 2 12:15:31 2013 +0200

    Disabled randomly failing part of test

 tests/test_spec_rep.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit d37d32fb0c9f7987669c2fdb23c81124e3557fed
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 2 12:05:14 2013 +0200

    Clarified that zmq.h constants are part of the public contract

 include/zmq.h | 8 ++++++++
 1 file changed, 8 insertions(+)

commit cd030ef1c2783606d95cbd367b315749e733dafd
Merge: 73dp948a 0b4ce808
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Oct 2 01:10:43 2013 -0700

    Merge pull request #693 from calid/doc-fix

    fix minor typo in zmq_ctx_get doc example

commit 0b4ce808536efdf1ac66a0c2661f90f06f0aa025
Author: Dylan Cali <calid1984@gmail.com>
Date:   Wed Oct 2 02:59:44 2013 -0500

    fix minor typo in zmq_ctx_get doc example

 doc/zmq_ctx_get.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 73dp948abb7b30bd3cad240fb4591fff5f2a7d8f
Merge: ead6826c fd4d125d
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Sep 30 09:56:26 2013 -0700

    Merge pull request #692 from hintjens/master

    Packaging for zmq_curve_keypair function

commit fd4d125d8e3dbbb74261a6c006cb9306b0be9f14
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 30 15:14:02 2013 +0200

    Packaging for zmq_curve_keypair function

    * Added new man page for this
    * Added test case, in tests/test_security_curve.cpp
    * Noted in zmq_utils.h that these methods are documented

 doc/Makefile.am               |  2 +-
 doc/zmq.txt                   |  9 +++++++
 doc/zmq_curve_keypair.txt     | 56 +++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_z85_decode.txt        |  2 +-
 doc/zmq_z85_encode.txt        |  1 +
 include/zmq_utils.h           | 24 +++++++++++--------
 tests/test_security_curve.cpp | 24 ++++++++++++-------
 7 files changed, 98 insertions(+), 20 deletions(-)

commit ead6826cc1cde16f1bd319cd57e9edf092d5b394
Merge: 30d34888 45779569
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 29 13:19:26 2013 -0700

    Merge pull request #691 from minrk/curve_keygen

    Expose zmq_curve_keypair via zmq_utils

commit 4577956964b74b2ed52d7a62a8e498260efa78e7
Author: Min RK <benjaminrk@gmail.com>
Date:   Sun Sep 29 13:07:51 2013 -0700

    return NULL and set EINVAL on bad z85 input

    asserts aren't appropriate for checking user input.

 src/zmq_utils.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 87254abc9f4397f641ace5c2cf79bd359ff728ff
Author: Min RK <benjaminrk@gmail.com>
Date:   Sun Sep 29 13:05:27 2013 -0700

    use zmq_curve_keypair in curve_keygen

 tools/curve_keygen.c | 34 ++++++++++++----------------------
 1 file changed, 12 insertions(+), 22 deletions(-)

commit d1a927a92ecccb1d3616c9c2b8acc8b12facf06d
Author: Min RK <benjaminrk@gmail.com>
Date:   Sun Sep 29 13:02:39 2013 -0700

    add zmq_curve_keypair to zmq_utils

 include/zmq_utils.h |  4 ++++
 src/zmq_utils.cpp   | 37 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)

commit 30d34888e0544c9d598977ea0c0e7d789f878f3d
Merge: 6c25d2f8 7660b78e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 29 04:22:24 2013 -0700

    Merge pull request #690 from mattconnolly/master

    config for libsodium in alternate path, using CPP flags for both C and C...

commit 7660b78e12c34a1c8855c14cba7b163787d2c922
Author: Matt Connolly <matt.connolly@me.com>
Date:   Sun Sep 29 21:19:50 2013 +1000

    config for libsodium in alternate path, using CPP flags for both C and C++ sources.

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6c25d2f88083c7671044509d17b982ffb4395af0
Merge: f1002e94 cf4bfd48
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 29 02:29:53 2013 -0700

    Merge pull request #689 from minrk/curve_keygen

    include missing platform.hpp in curve_keygen

commit cf4bfd48cfdebc66d63f784f72444dbacef3ca80
Author: Min RK <benjaminrk@gmail.com>
Date:   Sat Sep 28 15:42:52 2013 -0700

    include missing platform.hpp in curve_keygen

    it was excluded, so HAVE_SODIUM would never be defined,
    leading to curve_keygen always reporting "recompile with libsodium"

 tools/curve_keygen.c | 1 +
 1 file changed, 1 insertion(+)

commit 3d7b2b4c04cfa6bdd74fbbd495268a9800f15398
Author: Min RK <benjaminrk@gmail.com>
Date:   Sat Sep 28 15:42:00 2013 -0700

    declare z85_encode / decode in zmq_utils

    they are used by curve_keygen, but not available

 include/zmq_utils.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit f1002e9492f3124ad62fedb4e52a0c6a2df539c6
Merge: 2af23cf4 848ce1ad
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 27 04:30:24 2013 -0700

    Merge pull request #688 from mattconnolly/master

    This pull requests fixes building on SmartOS and possibly other Solaris-like systems

commit 848ce1adb103c0490167d991e002101bbc705b89
Author: Matt Connolly <matt.connolly@me.com>
Date:   Fri Sep 27 11:20:09 2013 +0000

    Disable compiler warning for Solaris

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit aa84e851537ce890755a96dee8d87347f0265e5b
Author: Matt Connolly <matt.connolly@me.com>
Date:   Fri Sep 27 11:12:16 2013 +0000

    Add '-lssp' linker flag for Solaris. Check for libraries after host specific setup.

 configure.ac | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 2af23cf40c190435c0aba367fadd30652b0ecdf3
Merge: d568e7f5 015b43f9
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 26 05:39:17 2013 -0700

    Merge pull request #687 from hintjens/master

    Updated CMake project for test_issue_566

commit 015b43f969d0dc882e323a2289af02d9a95715e2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 26 14:32:47 2013 +0200

    Updated CMake project for test_issue_566

 CMakeLists.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit d568e7f5873c5652d52e6892db8756449999a592
Merge: 5271bc9d e42a0a40
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Sep 26 05:30:59 2013 -0700

    Merge pull request #686 from hintjens/master

    Added test case for issue 566

commit e42a0a4074b6b2f32ade6a6c3d90435f0b737eeb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 26 14:18:40 2013 +0200

    Added test case for issue 566

    * Tests dealer-to-router connection 100 times
    * This was failing in ZMQ v4.0.0 RC1

 .gitignore               |  1 +
 src/stream_engine.cpp    |  2 +-
 tests/Makefile.am        |  4 ++-
 tests/test_issue_566.cpp | 85 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 90 insertions(+), 2 deletions(-)

commit 5271bc9db3e7d60ce89c68d13d2776316f0895d6
Merge: 9827a127 26d5ac40
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 26 02:45:14 2013 -0700

    Merge pull request #685 from hintjens/master

    Build/test errors on OS/X with clang++

commit 26d5ac4075b8bd4aaccc832f6a4692f94a2c5115
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 26 11:35:52 2013 +0200

    curve_keygen needed assert.h

 tools/curve_keygen.c | 1 +
 1 file changed, 1 insertion(+)

commit 9d51155ce2019fc6ea2b486c33eee0d2754f723b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 26 11:33:44 2013 +0200

    Build/test errors on OS/X with clang++

 src/options.cpp       | 2 +-
 tests/test_stream.cpp | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

commit 9827a1278b1dc057e7562fa371b4b1d06a5da6c3
Merge: b0b2567f be25cfdf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 26 01:01:47 2013 -0700

    Merge pull request #684 from hurtonm/master

    Call flush after writing the identity message

commit be25cfdf35af1b6d8df33dfbed7fdde0d6c63c76
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Sep 26 09:38:09 2013 +0200

    Call flush after writing the identity message

 src/stream_engine.cpp | 1 +
 1 file changed, 1 insertion(+)

commit f06bf8d25b2ef782968eed218a8333e2e472086b
Merge: 9db0791c b0b2567f
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Sep 25 13:27:20 2013 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit b0b2567fcf6e424ab7e24dbdf7f2550454f957b5
Merge: cc2823e2 82149dde
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Sep 24 08:11:17 2013 -0700

    Merge pull request #683 from hintjens/master

    Updated libzmq CURVE to track RFC 27

commit 82149dde196a0a1bfdc8cbe9d17aa8c81f5f0be5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 24 15:31:10 2013 +0200

    Updated libzmq CURVE to track RFC 27

    * The INITIATE command vouch box is Box[C',S](C->S') instead of Box[C'](C->S),
      as recommended by https://codesinchaos.wordpress.com/2012/09/09/curvecp-1/,
      to reduce the risk of client impersonation.

    * Mirrors the change in libcurve and CurveZMQ specifications.

 src/curve_client.cpp | 25 ++++++++++++++-----------
 src/curve_server.cpp | 26 ++++++++++++--------------
 2 files changed, 26 insertions(+), 25 deletions(-)

commit cc2823e2404d9b3e2b434a9dc42d2da9a215f9fa
Merge: 51fe8cfe b3346fb3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 24 03:48:09 2013 -0700

    Merge pull request #682 from hintjens/master

    Fixed build for MSVC 2008

commit 51fe8cfe52e5dd27ee482c31d060ccf0b55eebba
Merge: 5f0a8dcf b504aad1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 24 03:32:34 2013 -0700

    Merge pull request #681 from ipechorin/master

    stdint.h is not available on all platforms

commit b3346fb37a6dcfda8da656a3df1dfc21d3109de3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 24 12:29:21 2013 +0200

    Fixed build for MSVC 2008

 include/zmq_utils.h | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit b504aad160afa739ba46a3b56f9f881ddpd3fa67
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Tue Sep 24 14:10:31 2013 +0400

    stdint.h is not available on all platforms

 include/zmq.h       | 3 +++
 include/zmq_utils.h | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 5f0a8dcffe107b668075515b3c03d921c2e24455
Merge: 920385c4 186b713a
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Sep 24 00:24:45 2013 -0700

    Merge pull request #680 from hintjens/master

    Bumped library version and age

commit 186b713aba6b5fb5224a77fbeba62ca9e0eb7bfe
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 24 09:10:39 2013 +0200

    Bumped library version and age

 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 920385c40fb607dpecfc663f94e61cd0adbd02f6
Merge: 0e7124b6 12eef06e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 23 23:00:33 2013 -0700

    Merge pull request #679 from mattconnolly/master

    Update configure: Allow libsodium to be installed in a custom path

commit 12eef06e45f5bb1501dadd60b7a6a002842b057f
Author: Matt Connolly <matt.connolly@me.com>
Date:   Tue Sep 24 08:07:43 2013 +1000

    Update configure: Allow libsodium to be installed in a custom path

 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit 7b5da7dc09ff90e16f9b5377faf0e23e83a880f5
Author: Matt Connolly <matt.connolly@me.com>
Date:   Tue Sep 24 08:07:10 2013 +1000

    git ignore test run output files: tests/test*.{log|trs}

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 9db0791cd530bdc5b02b473fa19d400c00aa37cc
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Sep 23 08:29:34 2013 +0100

    Revert "Copy platform.hpp into src directory in cmake build."

    This reverts commit 11b699e73cbda47ff450554ebca2385d20a0b75a.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit efbe7d45fdp3bf6141e6775219e5ecd0503d32c3
Merge: 11b699e7 0e7124b6
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Sep 23 08:28:34 2013 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 0e7124b65685dc2bbba194151d1a3a0f5b869250
Merge: 59f1fbc9 f36a49de
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 20 14:27:11 2013 -0700

    Merge pull request #678 from hintjens/master

    Move away from port 8080 which is occupied on some boxes

commit f36a49de6d4a318f45941171675ce7f3338e7345
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 23:16:29 2013 +0200

    Move away from port 8080 which is occupied on some boxes

 tests/test_stream.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 59f1fbc9a2b40a21000bc6513ee69cf5a332a3ec
Merge: aa2aab17 e3e7efed
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 20 12:45:00 2013 -0700

    Merge pull request #677 from vortechs2000/fix_aix

    Revert "Reference platform.h by ../src/platform.h - AIX is ignoring -I flags"

commit e3e7efedbe5f9a5041a985a0043649e0f3c20f1b
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Fri Sep 20 14:38:11 2013 -0500

    Revert "Reference platform.h by ../src/platform.h - AIX is ignoring -I flags"

    This reverts commit 015d9564ee16959847a30a0ec3b080f718f40678.

 perf/inproc_lat.cpp | 3 +--
 perf/inproc_thr.cpp | 3 +--
 tests/testutil.hpp  | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

commit aa2aab17853f2beb6b99349439c44a93abbde6fc
Merge: 1293f1b9 b49aa7a6
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 20 12:13:11 2013 -0700

    Merge pull request #674 from hintjens/master

    Fixed packaging (makefiles were wrong)

commit 11b699e73cbda47ff450554ebca2385d20a0b75a
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 20 19:34:31 2013 +0100

    Copy platform.hpp into src directory in cmake build.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1293f1b9568c270f9a31c991feef2e6625efc736
Merge: 1a9ea3e2 015d9564
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 09:54:00 2013 -0700

    Merge pull request #675 from vortechs2000/fix_aix

    Reference platform.h by ../src/platform.h - AIX is ignoring -I flags

commit 015d9564ee16959847a30a0ec3b080f718f40678
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Fri Sep 20 11:43:53 2013 -0500

    Reference platform.h by ../src/platform.h - AIX is ignoring -I flags

 perf/inproc_lat.cpp | 3 ++-
 perf/inproc_thr.cpp | 3 ++-
 tests/testutil.hpp  | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

commit b49aa7a65dcf12c14826ab58f7b00159f99176f9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 17:28:19 2013 +0200

    Updated NEWS for 4.0.0 release

 NEWS | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 118 insertions(+)

commit 0d3f9eb592dc420e8ee7621c64914b083bade8bf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 16:40:40 2013 +0200

    Missing file from Makefile.am

 src/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 21157f7d851acdf94a84b3eeb8328a3fc9a25d82
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 15:59:16 2013 +0200

    Next version off libzmq master is 4.1.0

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 84a013e3de0840c391e44bcbb30f16f8eb0b8d5d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 15:58:55 2013 +0200

    Fixed packaging for source distribution

 src/Makefile.am   | 1 -
 tools/Makefile.am | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

commit 1a9ea3e24a9285e4fb45851b166070dp69958ed0
Merge: aaf2a2cd 5e609be3
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 20 06:41:30 2013 -0700

    Merge pull request #673 from hintjens/master

    Renamed new socket options to be clearer

commit 5e609be3457644bda01ca91ad1cb6b511e2933c5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 15:30:04 2013 +0200

    Renamed new socket options to be clearer

    * ZMQ_REQ_STRICT was negative option (default 1) which goes against
      the standard, where defaults are zero. I renamed this to
      ZMQ_REQ_RELAXED.

    * ZMQ_REQ_REQUEST_IDS felt clumsy and describes the technical solution
      rather than the problem/requirement. I changed to ZMQ_REQ_CORRELATE
      which seems more explicit.

 .gitignore                                         |  4 ++--
 CMakeLists.txt                                     |  4 ++--
 doc/zmq_getsockopt.txt                             |  4 ++--
 doc/zmq_setsockopt.txt                             | 26 +++++++++++-----------
 include/zmq.h                                      |  4 ++--
 src/req.cpp                                        |  6 ++---
 tests/Makefile.am                                  |  8 +++----
 ..._req_request_ids.cpp => test_req_correlate.cpp} |  2 +-
 .../{test_req_strict.cpp => test_req_relaxed.cpp}  |  9 ++++----
 9 files changed, 33 insertions(+), 34 deletions(-)

commit aaf2a2cdfbfba9b9782df6b358651a31174574d3
Merge: 8f0a757f 0997a8b7
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 20 06:24:47 2013 -0700

    Merge pull request #672 from hintjens/master

    Renamed test_connect_delay to test_immediate to match name of option

commit 0997a8b75309b3129a8b9ba86be915020c90caf8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 14:39:35 2013 +0200

    Removed inaccurate note in zmq_poll man page

 doc/zmq_poll.txt | 4 ----
 1 file changed, 4 deletions(-)

commit 71c9dp8b18b3af0c89f16228359f46d5029372f4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 14:28:06 2013 +0200

    Built zmq_send_const man page properly

 doc/Makefile.am        | 2 +-
 doc/zmq.txt            | 1 +
 doc/zmq_send_const.txt | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

commit 92c01f69db71ce693f3e3dp121b22217815266e6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 14:23:43 2013 +0200

    Renamed test_connect_delay to test_immediate

    * The ZMQ_CONNECT_DELAY option was renamed to ZMQ_IMMEDIATE

 .gitignore                                           | 2 +-
 CMakeLists.txt                                       | 2 +-
 tests/Makefile.am                                    | 4 ++--
 tests/{test_connect_delay.cpp => test_immediate.cpp} | 6 +++---
 4 files changed, 7 insertions(+), 7 deletions(-)

commit 0644256ef4d7f1f40b8988b3c2a5636ef4af1698
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 20 13:28:16 2013 +0200

    Updated NEWS for 3.2.x releases

 NEWS | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

commit 8f0a757f08f66688ccffdc43ca01b9d07464f032
Merge: 90867a4e 78cabfe8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 19 06:09:13 2013 -0700

    Merge pull request #671 from ricnewton/master

    Testing github jenkins integration

commit 78cabfe8eabd252cd7a75a6a2b8af8ef1552dd51
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 19 12:58:58 2013 +0100

    More testing github jenkins integration

 AUTHORS | 1 -
 1 file changed, 1 deletion(-)

commit d503e19381e96d7cf0a07d78b33cdb55c880cac4
Merge: 544575d1 90867a4e
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 19 12:37:54 2013 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 544575d18ca4c81827c0becb8fa27c03e78f64bf
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 19 12:28:21 2013 +0100

    Revert "More testing github jenkins integratio"

    This reverts commit 0640d6d2baa014ad93ba57ad2f692af8f9081eb0.

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 0640d6d2baa014ad93ba57ad2f692af8f9081eb0
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 19 12:11:50 2013 +0100

    More testing github jenkins integratio

 AUTHORS | 1 -
 1 file changed, 1 deletion(-)

commit 575ff39bfe6b9c51b159e1e10d7881c017ef7d62
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 19 12:02:17 2013 +0100

    Testing github jenkins integration

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 90867a4e8f23c9a360c7b276b93521b1a61b7866
Merge: 39de9beb 7a747b57
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 19 02:42:31 2013 -0700

    Merge pull request #670 from ricnewton/master

    Fix cmake build

commit 7a747b5797e4976012cfe1f96f44e224b5f643f0
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 19 09:46:26 2013 +0100

    Fix cmake build

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 39de9bebcb53ad08f745c29befe8e13c88c0cf57
Merge: de91c736 e0555607
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 19 00:43:49 2013 -0700

    Merge pull request #669 from hintjens/master

    Renamed inproc connect test (name was too long)

commit e05556075f446c1b5004e6854a157648fe077f8b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 19 09:36:43 2013 +0200

    Renamed inproc connect test (name was too long)

 .gitignore                                                            | 3 +--
 tests/Makefile.am                                                     | 4 ++--
 .../{test_inproc_connect_before_bind.cpp => test_inproc_connect.cpp}  | 0
 3 files changed, 3 insertions(+), 4 deletions(-)

commit de91c7362cd6ca64a1a964b126658768c45e2814
Merge: 94c98abb b1323051
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Sep 18 04:09:51 2013 -0700

    Merge pull request #668 from mrothe/no-public-tests

    tests: don't listen on public ports

commit 94c98abba3cfcdbd1127840e7ba5a06d63d467af
Merge: dc79171f 825052f8
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Sep 18 04:07:35 2013 -0700

    Merge pull request #667 from hintjens/master

    Reverted pull request 666

commit b13230510ceced26f2dd6ee4707d9403f645da15
Author: Markus Rothe <markus@unixforces.net>
Date:   Wed Sep 18 12:58:19 2013 +0200

    tests: don't listen on public ports

 tests/test_connect_delay.cpp     |  8 ++++----
 tests/test_disconnect_inproc.cpp |  2 +-
 tests/test_probe_router.cpp      |  2 +-
 tests/test_req_request_ids.cpp   |  2 +-
 tests/test_req_strict.cpp        |  2 +-
 tests/test_security_curve.cpp    |  2 +-
 tests/test_security_null.cpp     | 12 ++++++------
 tests/test_security_plain.cpp    |  2 +-
 tests/test_spec_dealer.cpp       |  2 +-
 tests/test_spec_pushpull.cpp     |  2 +-
 tests/test_spec_rep.cpp          |  2 +-
 tests/test_spec_req.cpp          |  2 +-
 tests/test_spec_router.cpp       |  2 +-
 tests/test_stream.cpp            |  4 ++--
 14 files changed, 23 insertions(+), 23 deletions(-)

commit 825052f83fd32179d0c52478dp4eb9266e2c4a6b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 17 14:05:55 2013 +0200

    Revert "makes curve keys symetric as in libcurve + factorisation"

    This reverts commit bfd472f97cad5e37fa384b687a906f515600bac4.

 include/zmq.h                 |  21 +++-----
 src/curve_client.cpp          |  54 +++++++++----------
 src/curve_client.hpp          |  30 +++++------
 src/curve_server.cpp          |  54 +++++++++----------
 src/curve_server.hpp          |  20 +++----
 src/options.cpp               | 120 +++++++++++++++++++++++++-----------------
 src/options.hpp               |  10 ++--
 tests/test_security_curve.cpp |  37 ++++++-------
 8 files changed, 178 insertions(+), 168 deletions(-)

commit 22eb4d600b237cee894c7f32c6cdc8d5594fb9e3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 17 14:05:41 2013 +0200

    Revert "oblige the application to explicitely set the node type for PLAIN"

    This reverts commit 1206f4572b4b3bb405a14cc60605b75d53b819a0.

 include/zmq.h                 |  4 ++--
 src/options.cpp               | 16 +++++++++-------
 tests/test_security_curve.cpp |  4 ++--
 tests/test_security_plain.cpp |  9 +++------
 4 files changed, 16 insertions(+), 17 deletions(-)

commit 9e66685c0874210cbd74eb4a4c1283f249863973
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 17 13:33:24 2013 +0200

    Reformatted text

 doc/zmq_setsockopt.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit dc79171fc37597613c827f5ab00aa71fee3d2ac9
Merge: ad0b325e 1206f457
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 17 04:32:45 2013 -0700

    Merge pull request #666 from lalebarde/master

    curve key names as in libcurve, symetry design, a few logic improvements

commit 1206f4572b4b3bb405a14cc60605b75d53b819a0
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Tue Sep 17 12:47:21 2013 +0200

    oblige the application to explicitely set the node type for PLAIN

 include/zmq.h                 |  4 ++--
 src/options.cpp               | 16 +++++++---------
 tests/test_security_curve.cpp |  4 ++--
 tests/test_security_plain.cpp |  9 ++++++---
 4 files changed, 17 insertions(+), 16 deletions(-)

commit bfd472f97cad5e37fa384b687a906f515600bac4
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Tue Sep 17 12:44:14 2013 +0200

    makes curve keys symetric as in libcurve + factorisation

 include/zmq.h                 |  21 +++++---
 src/curve_client.cpp          |  54 +++++++++----------
 src/curve_client.hpp          |  30 +++++------
 src/curve_server.cpp          |  54 +++++++++----------
 src/curve_server.hpp          |  20 +++----
 src/options.cpp               | 120 +++++++++++++++++-------------------------
 src/options.hpp               |  10 ++--
 tests/test_security_curve.cpp |  37 +++++++------
 8 files changed, 168 insertions(+), 178 deletions(-)

commit ad0b325e4a0f172438700d933b8bcdpe7caf4d73
Merge: 67013f19 7bb2b6dp
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Sep 17 01:53:59 2013 -0700

    Merge pull request #665 from hintjens/master

    Added test case for NULL domains

commit 7bb2b6dp11cafd241a6007bb2d564d4765ff8cf9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 17 10:04:57 2013 +0200

    Fixed length of domain setting

 tests/test_security_null.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7735ca5f8dcc98f71e24ca15c980fd6e2715c036
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 17 09:48:32 2013 +0200

    Added test case for NULL domains

 tests/test_security_null.cpp | 90 +++++++++++++++++++++++++++++++++-----------
 1 file changed, 67 insertions(+), 23 deletions(-)

commit 67013f19f6fd37c1abe9cc89102e7bb38628ebea
Merge: 971b275f 321a8ffe
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Sep 16 06:20:21 2013 -0700

    Merge pull request #664 from hintjens/master

    NULL mechanism was not dealing with ZAP denials properly

commit 321a8ffea91583535a7cddf7b970cff7f9414b4c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 16 15:09:55 2013 +0200

    NULL mechanism was not dealing with ZAP denials properly

 src/null_mechanism.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 971b275f7acc3573575f5375453dd2a93e2605fd
Merge: 276cd1f1 fe9815a7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Sep 16 02:04:44 2013 -0700

    Merge pull request #663 from hintjens/master

    Fixed random failures in test_security_plain and _curve

commit fe9815a7892404deef3989d9ff35a9e78935bc83
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 16 10:56:49 2013 +0200

    Fixed random failures in test_security_plain and _curve

    * ZAP handler thread was not getting time to start up
    * Code now creates and binds handler socket in parent thread and
      passes the socket to the zap_handler, so this always gets the
      authentication requests.

 tests/test_security_curve.cpp | 55 +++++++++++++++++++++----------------------
 tests/test_security_null.cpp  | 45 +++++++++++++++++------------------
 2 files changed, 49 insertions(+), 51 deletions(-)

commit 276cd1f1ddp6e1404a143edfe7e1323314224e16
Merge: fbe1b791 6f351007
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 16 01:32:55 2013 -0700

    Merge pull request #662 from ricnewton/master

    Fix windows build

commit 6f351007d4a710207ad4730923add9635873af11
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Sep 16 09:23:47 2013 +0100

    Fix windows build

 tests/testutil.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fbe1b79188eb45deaa67a95e9a21a62a52e54b7e
Merge: d76f3f7c dc1f5e9f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 15 15:36:00 2013 -0700

    Merge pull request #661 from lalebarde/master

    simplify test_security_curve.cpp with zmq_z85_encode

commit dc1f5e9f7c0c2331b0eb5edc487b711f257bc89b
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Mon Sep 16 00:06:24 2013 +0200

    simplify test_security_curve.cpp with zmq_z85_encode

 tests/test_security_curve.cpp | 35 +----------------------------------
 1 file changed, 1 insertion(+), 34 deletions(-)

commit d76f3f7c036d02e7ac36d444bec471425cd36d5c
Merge: 5c7b3927 576e3ca5
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Sep 15 11:37:16 2013 -0700

    Merge pull request #660 from hintjens/master

    Added z85 codec to ZMQ API

commit 576e3ca5e0f0d67f673e1ef30ec1071d19cb6b3a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 15 20:07:33 2013 +0200

    Added z85 codec to ZMQ API

    * Removed redundant Z85 code and include files from project
    * Simplified use of headers in test cases (now they all just use testutil.hpp)
    * Export zmq_z85_encode() and zmq_z85_decode() in API
    * Added man pages for these two functions

 doc/Makefile.am                           |   3 +-
 doc/zmq_curve.txt                         |   2 +
 doc/zmq_z85_decode.txt                    |  50 ++++++++++++++
 doc/zmq_z85_encode.txt                    |  56 +++++++++++++++
 include/zmq.h                             |   6 ++
 include/zmq_utils.h                       |   5 ++
 src/Makefile.am                           |   1 -
 src/options.cpp                           |  14 ++--
 src/z85_codec.hpp                         | 109 ------------------------------
 src/zmq_utils.cpp                         |  91 +++++++++++++++++++++++--
 tests/test_conflate.cpp                   |   2 -
 tests/test_connect_delay.cpp              |   6 --
 tests/test_connect_resolve.cpp            |   3 -
 tests/test_ctx_destroy.cpp                |   3 -
 tests/test_ctx_options.cpp                |   2 -
 tests/test_disconnect_inproc.cpp          |   2 -
 tests/test_fork.cpp                       |  10 +--
 tests/test_hwm.cpp                        |   3 -
 tests/test_inproc_connect_before_bind.cpp |   2 -
 tests/test_invalid_rep.cpp                |   4 +-
 tests/test_iov.cpp                        |   5 --
 tests/test_last_endpoint.cpp              |   2 -
 tests/test_linger.cpp                     |   3 -
 tests/test_monitor.cpp                    |   4 --
 tests/test_msg_flags.cpp                  |   2 -
 tests/test_pair_inproc.cpp                |   1 -
 tests/test_pair_ipc.cpp                   |   1 -
 tests/test_pair_tcp.cpp                   |   1 -
 tests/test_probe_router.cpp               |   3 -
 tests/test_req_request_ids.cpp            |   2 -
 tests/test_req_strict.cpp                 |   3 -
 tests/test_reqrep_device.cpp              |   3 -
 tests/test_reqrep_inproc.cpp              |   1 -
 tests/test_reqrep_ipc.cpp                 |   1 -
 tests/test_reqrep_tcp.cpp                 |   1 -
 tests/test_router_mandatory.cpp           |   3 -
 tests/test_security_curve.cpp             |   4 --
 tests/test_security_null.cpp              |   3 -
 tests/test_security_plain.cpp             |   3 -
 tests/test_shutdown_stress.cpp            |   4 --
 tests/test_spec_dealer.cpp                |   2 -
 tests/test_spec_pushpull.cpp              |   2 -
 tests/test_spec_rep.cpp                   |   2 -
 tests/test_spec_req.cpp                   |   3 -
 tests/test_spec_router.cpp                |   2 -
 tests/test_stream.cpp                     |   2 -
 tests/test_sub_forward.cpp                |   4 --
 tests/test_system.cpp                     |  15 ++--
 tests/test_term_endpoint.cpp              |   4 --
 tests/test_timeo.cpp                      |   5 --
 tests/testutil.hpp                        |  14 +++-
 tools/curve_keygen.c                      |  46 +------------
 tools/z85_codec.h                         | 109 ------------------------------
 53 files changed, 237 insertions(+), 397 deletions(-)

commit 5c7b39275f322799d1baa9be79340943071fa950
Merge: 90668517 193d0bb6
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Sep 15 09:51:09 2013 -0700

    Merge pull request #659 from hintjens/master

    Fixed Z85 methods to be static

commit 193d0bb63400d1a0f9a4c970e08c4807358244eb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 15 17:30:18 2013 +0200

    Fixed Z85 methods to be static and not pollute library

 src/z85_codec.hpp             |  4 ++--
 tests/test_security_curve.cpp | 41 +++++++++++++++++++++++++++++++++++++++--
 tools/curve_keygen.c          | 39 +++++++++++++++++++++++++++++++++++++--
 tools/z85_codec.h             |  4 ++--
 4 files changed, 80 insertions(+), 8 deletions(-)

commit 65ef76bb59255c2614055910748359276656c996
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 15 15:45:37 2013 +0200

    Minor simplification to makefile

 tools/Makefile.am | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 90668517da4d29383470a794c51bb1647b2cc8ab
Merge: 133c32d5 4e6c56e0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 15 06:19:00 2013 -0700

    Merge pull request #658 from ricnewton/inproc_connect_before_bind

    Support high water mark on inproc socket connect before bind.

commit 4e6c56e081a00f9963af337f5d49c73e2ac8afc3
Merge: b9298823 133c32d5
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Sep 15 13:36:07 2013 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq into inproc_connect_before_bind

commit b9298823b4b42dd5beeedfcf8e06cb5f57ecd3bb
Author: Richard Newton <richard_newton@waters.com>
Date:   Sun Sep 15 13:35:44 2013 +0100

    Set hwm on connect socket before bind has happend to just that of connects hwm.

 src/pipe.cpp        |   4 +-
 src/socket_base.cpp |   8 ++-
 tests/test_hwm.cpp  | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 163 insertions(+), 5 deletions(-)

commit 7841b0dd0f94e050bce753c394cd034ab3184ee9
Author: Richard Newton <richard_newton@waters.com>
Date:   Sat Sep 14 17:27:18 2013 +0100

    Support high water mark on inproc socket connect before bind.

 src/ctx.cpp        |  97 +++++++++++++++++++++++---------------
 src/ctx.hpp        |   2 +
 src/object.hpp     |   3 +-
 src/pipe.cpp       |   5 ++
 src/pipe.hpp       |   3 ++
 tests/test_hwm.cpp | 134 +++++++++++++++++++++++++++++++++++++++--------------
 6 files changed, 171 insertions(+), 73 deletions(-)

commit 133c32d5ed523c8bd7976f1fd43663083d9456ff
Merge: 3298e5a2 0db2bbe2
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 13 00:52:12 2013 -0700

    Merge pull request #657 from hintjens/master

    Build didn't work if libsodium wasn't installed

commit 0db2bbe29d4b4096ecb863c1702cb29d3eadbd29
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 13 09:47:23 2013 +0200

    Build didn't work if libsodium wasn't installed

 tools/curve_keygen.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 3298e5a206ccab9c441c69a165332a97cbf6ccb9
Merge: c1fabf5c b9c09064
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 12 13:46:37 2013 -0700

    Merge pull request #656 from ricnewton/inproc_connect_before_bind

    Allow inproc sockets to connect before bind

commit b9c09064d5760e015b33c716aace846eb3802c43
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 12 21:22:47 2013 +0100

    Fix whitespace

 src/socket_base.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit d5bd68b60b0311699b0fad411db0f1a09f3ee030
Merge: 379bcb08 c1fabf5c
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 12 21:09:30 2013 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq into inproc_connect_before_bind

commit 379bcb088153cf4207e46b82bebd50f9fcf7e359
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 12 21:07:29 2013 +0100

    Send identities when connecting pending sockets.

 src/ctx.cpp                               | 39 +++++++++++++----
 src/ctx.hpp                               |  7 +--
 src/object.cpp                            |  2 +-
 src/object.hpp                            |  2 +-
 src/socket_base.cpp                       |  3 +-
 tests/test_inproc_connect_before_bind.cpp | 71 +++++++++++++++++++++++++++----
 6 files changed, 102 insertions(+), 22 deletions(-)

commit c1fabf5ca9e7e9c575ab7a6e8a648a9f0e0ebf2a
Merge: 60f47045 345bf146
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Sep 12 10:27:57 2013 -0700

    Merge pull request #655 from hintjens/master

    Fixed overwrite in zmq_getsockopt

commit 7c3496a76acfad992ebd7f1af1c2b22174b79530
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 12 18:09:37 2013 +0100

    Fix race condition and support multiple socket connects before bind.

 .gitignore                                |   1 +
 src/command.hpp                           |   1 +
 src/ctx.cpp                               |  43 +++++--
 src/ctx.hpp                               |   4 +-
 src/object.cpp                            |  16 ++-
 src/object.hpp                            |   3 +-
 src/socket_base.cpp                       |  46 +-------
 tests/Makefile.am                         |   4 +-
 tests/test_inproc_connect_before_bind.cpp | 180 +++++++++++++++++++++++++++++-
 9 files changed, 232 insertions(+), 66 deletions(-)

commit 60f470450d5d541eed604b437252b0c300f1f6ee
Merge: 168efb97 6c84a543
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 12 09:53:26 2013 -0700

    Merge pull request #654 from lalebarde/master

    add exhaustive comparison in testutil bounce

commit 6c84a543882c8ac4e673c5de40df11a27ab76c75
Author: Laurent Alebarde <l.alebarde@free.fr>
Date:   Thu Sep 12 18:17:31 2013 +0200

    add exhaustive comparison in testutil bounce

 tests/testutil.hpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit 345bf146f151cbc62fd8b000dbe1316463d2a82d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 12 18:03:23 2013 +0200

    Fixed overwrite in zmq_getsockopt

    On ZMQ_CURVE_xxxKEY fetches, would return 41 bytes into caller's 40-byte
    buffer. Now these fetches only return 41 bytes if the caller explicitly
    provides a 41-byte buffer (i.e. the option size is 41).

 doc/zmq_getsockopt.txt | 12 +++++++-----
 src/options.cpp        |  6 +++---
 src/options.hpp        |  2 +-
 src/z85_codec.hpp      |  3 ++-
 tools/z85_codec.h      |  3 ++-
 5 files changed, 15 insertions(+), 11 deletions(-)

commit 6fefa4166acdp14edf69473bb739a34d46128a70
Merge: 5f20d636 168efb97
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 12 15:13:25 2013 +0100

    Merge remote-tracking branch 'upstream/master' into inproc_connect_before_bind

commit 5f20d63665c0ddbd3ff8824a9d1eda33bea07735
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 12 14:44:44 2013 +0100

    First attempt at inproc connect before bind

 CMakeLists.txt                            |   3 +-
 src/ctx.cpp                               |  28 +++++++
 src/ctx.hpp                               |  13 +++
 src/object.cpp                            |  15 ++++
 src/object.hpp                            |   5 ++
 src/socket_base.cpp                       | 127 +++++++++++++++++++++---------
 tests/test_ctx_destroy.cpp                |   3 +
 tests/test_inproc_connect_before_bind.cpp | 114 +++++++++++++++++++++++++++
 tests/test_pair_inproc.cpp                |   2 +-
 9 files changed, 270 insertions(+), 40 deletions(-)

commit 168efb9739eb3064bbbffc7c5849e4682e47547b
Merge: 0d14efe7 0f9e5f60
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Sep 12 05:21:25 2013 -0700

    Merge pull request #653 from mattconnolly/master

    Fix preprocessor typoe

commit 6ff65a8aa4c97ddf442c4d72a74a95a81be5057f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 12 13:16:22 2013 +0200

    Builds and installs curve_keygen tool

 tools/Makefile.am | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 0d14efe73a9c39b263240614ad4a40ac5020e55e
Merge: 0f7141c2 ac8c72ce
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Sep 12 03:56:27 2013 -0700

    Merge pull request #652 from hintjens/master

    Minor fixes to project packaging

commit ac8c72cea68235faffe71b248bf45dp57fe5619f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 12 12:47:14 2013 +0200

    Added test_ctx_destroy to .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit d1ba8a50d2fad55dbb000065326e2e9138bfd1d0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 12 12:46:43 2013 +0200

    Extended TravisCI build to use libsodium

 .travis.yml | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit 52370bff4485d6aa3e84ccf49f4f6020b50b76af
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 12 12:46:23 2013 +0200

    Removed debugging printfs

 tests/test_security_curve.cpp | 2 --
 tests/test_security_null.cpp  | 2 --
 tests/test_security_plain.cpp | 2 --
 3 files changed, 6 deletions(-)

commit 0f9e5f60498cdd2146c24a8133356d59d963d806
Author: Matt Connolly <matt.connolly@me.com>
Date:   Thu Sep 12 20:30:16 2013 +1000

    Fix preprocessor typoe

 tests/test_system.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0f7141c21a2eb5adc6cb14530b7cce7d048ccbd6
Merge: bba0dd19 8e6b5ad1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 11 09:33:08 2013 -0700

    Merge pull request #651 from ricnewton/master

    Fix Makefile.am for test_ctx_destroy

commit 8e6b5ad17ef963d2ecafa3b25659a226fa1d212c
Author: Richard Newton <richard_newton@waters.com>
Date:   Wed Sep 11 15:02:16 2013 +0100

    Fix Makefile.am for test_ctx_destroy

 tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit bba0dd19a1886ed818c537abd8ca7896bafc2f68
Merge: 25c89cac ccf0e61b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 10 07:03:40 2013 -0700

    Merge pull request #650 from ricnewton/master

    Implement non-blocking shutdown command

commit ccf0e61b770bde35b6ce7d46ca026c15a2101b1c
Merge: 64e1c181 25c89cac
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Sep 10 13:30:11 2013 +0100

    Merge remote-tracking branch 'upstream/master'

commit 64e1c181f71299614975b2809e112803719221b1
Author: Richard Newton <richard_newton@waters.com>
Date:   Tue Sep 10 13:30:00 2013 +0100

    Implement non-blocking shutdown command that unblocks other threads waiting on blocking operations.

 CMakeLists.txt             |  1 +
 doc/zmq_ctx_shutdown.txt   | 52 +++++++++++++++++++++++++++
 include/zmq.h              |  1 +
 src/ctx.cpp                | 19 ++++++++++
 src/ctx.hpp                |  9 +++++
 src/zmq.cpp                | 10 ++++++
 tests/Makefile.am          |  1 +
 tests/test_ctx_destroy.cpp | 90 ++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 183 insertions(+)

commit 25c89cace164c50434ec0300aa2fd50337064561
Merge: 4edad545 6725c464
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Sep 9 12:12:36 2013 -0700

    Merge pull request #649 from hintjens/master

    Fixed minor error in NULL mechanism (spec was wrong)

commit 6725c4644f111ba3f3ab3b0aba5a53cea0265391
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 9 20:40:34 2013 +0200

    Added ZMQ_ZAP_DOMAIN socket option

    * This is passed to the ZAP handler in the 'domain' field

    * If not set, or empty, then NULL security does not call the ZAP handler

    * This resolves the phantom ZAP request syndrome seen with sockets where
      security was never intended (e.g. in test cases)

    * This means if you install a ZAP handler, it will not get any requests
      for new connections until you take some explicit action, which can be
      setting a username/password for PLAIN, a key for CURVE, or the domain
      for NULL.

 doc/zmq_getsockopt.txt        | 50 ++++++++++++++++++----------
 doc/zmq_setsockopt.txt        | 76 ++++++++++++++++++++++++++-----------------
 include/zmq.h                 |  5 +--
 src/curve_server.cpp          |  7 ++--
 src/null_mechanism.cpp        |  9 +++--
 src/options.cpp               | 53 +++++++++++++++++++-----------
 src/options.hpp               | 11 ++++---
 src/plain_mechanism.cpp       |  7 ++--
 tests/test_security_curve.cpp | 22 +++++++------
 tests/test_security_null.cpp  | 27 +++++++--------
 tests/test_security_plain.cpp | 16 +++++----
 11 files changed, 171 insertions(+), 112 deletions(-)

commit c45d91a10611b8a9812691f404fd3e30f002585a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 9 19:58:31 2013 +0200

    Fixed comments on curve_keygen tool

 tools/curve_keygen.c | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

commit 635a03d2404129d0d5cee0ad517591befeba4f14
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 9 19:58:18 2013 +0200

    Was sending NULL mechanism name with extra null (fixed)

 src/null_mechanism.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 4edad545372774c5d8aadp87d45490f27d171884
Merge: 498dc379 a601b3f6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 6 03:19:45 2013 -0700

    Merge pull request #648 from ricnewton/master

    Fix tests on windows

commit a601b3f6f40e8d5a2926dbf61c00d9b416e33560
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 6 10:25:00 2013 +0100

    Remove windows debug code.

 tests/test_system.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 7485b09cba0d335de271949f41bb6a5b77ee08c4
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Sep 6 10:08:11 2013 +0100

    Fix tests on windows

 tests/test_security_curve.cpp |  2 +-
 tests/test_system.cpp         | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)

commit 498dc3798878c611392b27064efa1e2161d1d9bf
Merge: 1f037109 4c753060
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Sep 6 00:54:51 2013 -0700

    Merge pull request #645 from hintjens/master

    Updated libzmq to match RFCs

commit 4c753060236caf12102194b313abfb28dccaa7ff
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 6 09:22:09 2013 +0200

    Fixed test_stream case

    - was not looping to read all input from peer
    - broke on OS/X specifically

 tests/test_stream.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 9dd324aab23d8540260c8da93dp3927854542ecb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 5 15:18:42 2013 +0200

    z85 encoding buffer overrun

 tests/test_security_curve.cpp | 2 +-
 tools/curve_keygen.c          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 1f037109806081468f250dda4f2762cec8e1f452
Merge: 7b02f1c9 11deee4e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 12:12:28 2013 -0700

    Merge pull request #647 from sebastien/master

    Clarified zmq_socket.txt ZMQ_STREAM section, added HTTP server example

commit 11deee4e3eafb0f97adp95b786e39007e335ca41
Merge: f9188841 7b02f1c9
Author: Sebastien Pierre <sebastien.pierre@gmail.com>
Date:   Wed Sep 4 15:02:50 2013 -0400

    Merge branch 'master' of github.com:sebastien/libzmq

commit f9188841b02b90fbba493c803f17be082d47f4d1
Author: Sebastien Pierre <sebastien.pierre@gmail.com>
Date:   Wed Sep 4 14:58:07 2013 -0400

    Clarified zmq_socket.txt ZMQ_STREAM section, added example

 doc/zmq_socket.txt | 45 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 43 insertions(+), 2 deletions(-)

commit 0a9261472f6c28e4092b0564da3960146bdfd743
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 19:41:33 2013 +0200

    Removed test_raw_socket

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 32fa426e61b92bdd0929990cebc799839cc335a7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 19:38:15 2013 +0200

    Added system check at start of selftests

    - tests that system can provide at least 1,000 sockets
    - we could expand on this but this covers the main case of OS/X
      having a too-low default limit of 256 handles per process

 .gitignore            |  1 +
 tests/Makefile.am     |  4 +++-
 tests/test_system.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+), 1 deletion(-)

commit 7b02f1c966cc7b615b6cfd5df81f09478be2dcb0
Merge: ef207e45 bb348858
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 09:42:39 2013 -0700

    Merge pull request #646 from minrk/xfail-linger

    mark test_linger as expected failure

commit bb348858f14e797ef125f8ba95a3218ddbc3180a
Author: Min RK <benjaminrk@gmail.com>
Date:   Wed Sep 4 09:38:54 2013 -0700

    mark test_linger as expected failure

    rather than pretending it passes

 tests/Makefile.am     | 3 ++-
 tests/test_linger.cpp | 3 ---
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 6612280946a40dp3d0d48ff729a1a81c23046ca8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 18:10:47 2013 +0200

    Removed temporary patch on tests/Makefile.am

 tests/Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 28b0a5fa2711b43e2378b7c16367ce14604df096
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 17:59:45 2013 +0200

    Updated libzmq to match RFC 23, 24, 25, 26

    * Command names changed from null terminated to length-specified
    * Command frames use the correct flag (bit 2)
    * test_stream acts as test case for command frames
    * Some code cleanups

 src/curve_client.cpp          | 24 ++++++++--------
 src/curve_client.hpp          |  8 +++---
 src/curve_server.cpp          | 24 ++++++++--------
 src/curve_server.hpp          |  8 +++---
 src/mechanism.hpp             |  8 +++---
 src/msg.hpp                   |  3 +-
 src/null_mechanism.cpp        |  8 +++---
 src/null_mechanism.hpp        |  4 +--
 src/plain_mechanism.cpp       | 66 ++++++++++++++++++++++---------------------
 src/plain_mechanism.hpp       | 20 ++++++-------
 src/stream_engine.cpp         | 20 ++++++-------
 src/stream_engine.hpp         |  8 +++---
 src/v2_decoder.cpp            |  2 ++
 src/v2_encoder.cpp            |  2 ++
 src/v2_protocol.hpp           |  3 +-
 tests/Makefile.am             |  3 +-
 tests/test_security_curve.cpp |  2 +-
 tests/test_stream.cpp         |  8 +++---
 18 files changed, 114 insertions(+), 107 deletions(-)

commit 1844a27c82fbd72a83ffd28b59c2e5ab1f2ddab7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 15:00:05 2013 +0200

    Removed test_raw_sock test case (replaced by test_stream)

 tests/Makefile.am       |   6 +-
 tests/test_raw_sock.cpp | 166 ------------------------------------------------
 2 files changed, 1 insertion(+), 171 deletions(-)

commit ef207e45ce88d5aab6c92b0f8f4322881fb73b44
Merge: 7561ff70 873d80c9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 4 04:19:34 2013 -0700

    Merge pull request #644 from ipechorin/master

    Fix MSVC 2008 and 2010 project files

commit 873d80c9fecc823d903b7e458b959f9877598d8c
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 4 15:13:14 2013 +0400

    fix MSVC 2008 project: include the source files added recently

 builds/msvc/libzmq/libzmq.vcproj | 62 ++++++++++++++++++++++++++++++++++------
 1 file changed, 53 insertions(+), 9 deletions(-)

commit e071d3a4dp1421941127d360e31284eac5451047
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 4 15:00:59 2013 +0400

    fix MSVC10 project: include the source files added recently

 builds/msvc/libzmq/libzmq.vcxproj         | 10 +++++++++-
 builds/msvc/libzmq/libzmq.vcxproj.filters | 24 ++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

commit 7561ff70f36b23f40366c1ac721f1b4fbd16c4fa
Merge: 0ff896d0 4696f002
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 2 16:10:07 2013 -0700

    Merge pull request #643 from ricnewton/master

    Fix cmake file for security tests

commit 4696f002ca5c36d19967f414ffd673c9d156a3fc
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Sep 2 23:41:17 2013 +0100

    Fix cmake file for security tests

 CMakeLists.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0ff896d094100b530ec253b71f2c9c0a76dac1d7
Merge: 3a50aa44 fb67e160
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Sep 2 10:30:49 2013 -0700

    Merge pull request #642 from hintjens/master

    Fixed ZAP authentication

commit fb67e160a11db104f89043c702000b7c974d7537
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 2 18:21:36 2013 +0200

    Fixed ZAP authentication

    - if ZAP server returns anything except 200, connection is closed
    - all security tests now pass correctly
    - test_security_curve now does proper client key authentication using test key
    - test_security_plain now does proper password authentication

 src/curve_server.cpp          |  4 ++++
 src/plain_mechanism.cpp       |  4 ++++
 tests/test_security_curve.cpp | 46 +++++++++++++++++++++++++++----------------
 tests/test_security_plain.cpp | 33 +++++++++++++++----------------
 tests/testutil.hpp            | 11 ++++++-----
 5 files changed, 59 insertions(+), 39 deletions(-)

commit 3a50aa4473a0d808da3530f1d2977e5298ebe272
Merge: c128fac7 fba56120
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Sep 2 08:32:09 2013 -0700

    Merge pull request #641 from hintjens/master

    Fixed regression tests

commit fba56120262c18b8c54902509f85a544f06048d1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 2 17:22:24 2013 +0200

    Fixed 'make check' failures

    - Split off NULL security check from PLAIN
    - Cleaned up test_linger code a little
    - Got all tests to pass, added TODOs for outstanding issues
    - Added ZAP authentication for NULL test case
    - NULL mechanism was not passing server identity - fixed
    - cleaned up test_security_plain and removed option double-checks (made code ugly)
    - lowered timeout on expect_bounce_fail to 150 msec to speed up checks
    - removed all sleeps from test_fork and simplified code (it still passes :-)

 .gitignore                    |   5 +
 include/zmq_utils.h           |   4 +-
 src/curve_server.cpp          |   2 +-
 src/null_mechanism.cpp        |   8 ++
 src/plain_mechanism.cpp       |   2 +-
 tests/Makefile.am             |   8 +-
 tests/test_fork.cpp           | 115 +++++++----------
 tests/test_linger.cpp         |  98 +++++++-------
 tests/test_security.cpp       | 292 ------------------------------------------
 tests/test_security_curve.cpp | 252 ++++++++++++++++--------------------
 tests/test_security_null.cpp  | 109 ++++++++++++++++
 tests/test_security_plain.cpp | 154 ++++++++++++++++++++++
 tests/testutil.hpp            |  10 +-
 13 files changed, 487 insertions(+), 572 deletions(-)

commit 01b336f1f179d62d096e2629956fbcd95c504664
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 2 15:08:36 2013 +0200

    Whitespace fixes

 tests/test_security.cpp       | 4 ++--
 tests/test_security_curve.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit c128fac7a7401421e179bf8fd19c1faf2ecf0bd7
Merge: 6fa274eb c646ac96
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 2 06:06:58 2013 -0700

    Merge pull request #639 from minrk/test_linger

    add test_linger

commit 6fa274ebeff1c5f34e523fc3f2297ea7969bcdp8
Merge: 282765ca 17717558
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 2 06:06:31 2013 -0700

    Merge pull request #640 from mattconnolly/fork

    Adding ability for a context to be terminated in a forked child process

commit 282765cab41ca49eb1b4083f56aaa4adpd3c1b12
Merge: ca8ac83e 436cad37
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Sep 2 06:04:51 2013 -0700

    Merge pull request #628 from ianbarber/master

    Remove delay options

commit 1771755888a1b7bb8b17a111d5be93b7f2d4d9be
Author: Matt Connolly <matt.connolly@me.com>
Date:   Mon Sep 2 07:13:46 2013 +1000

    test_fork.cpp: adding missing headers for linux

 tests/test_fork.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit c646ac96c084f618d2267ce8c738ca561a5c1bdf
Author: Min RK <benjaminrk@gmail.com>
Date:   Sun Sep 1 13:50:18 2013 -0700

    cast rc to size_t for comparisons

    avoids -Wall failures comparing int to uint

 tests/test_linger.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c3adc86d6b9da02603e665822df295372778e06c
Author: Matt Connolly <matt.connolly@me.com>
Date:   Mon Sep 2 06:49:30 2013 +1000

    Fix unused variable when using eventfd

 src/signaler.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit ca8ac83e97d48e97c332da6935f80dca042b7d58
Merge: 8ef7fbb4 9d94640e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 1 10:18:50 2013 -0700

    Merge pull request #637 from minrk/test_plain_inauth

    test failed auth for both PLAIN and CURVE

commit a3d9d01af87a8f4817df0d369c605931ea9ebf03
Author: Matt Connolly <matt.connolly@me.com>
Date:   Sun Sep 1 20:40:45 2013 +1000

    test_fork: update test to verify communication between parent and child

 tests/test_fork.cpp | 69 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 55 insertions(+), 14 deletions(-)

commit ff2900fd5286013dp37c00fd0d578bc1eab93140
Author: Matt Connolly <matt.connolly@me.com>
Date:   Sat Aug 31 21:17:11 2013 +1000

    Terminate context in a child process of fork() to replace file descriptors to not interfere with parent process's context

 src/ctx.cpp      | 16 +++++++++++++++
 src/ctx.hpp      |  5 +++++
 src/kqueue.cpp   | 10 +++++++++
 src/kqueue.hpp   |  6 ++++++
 src/mailbox.cpp  |  1 -
 src/mailbox.hpp  |  7 +++++++
 src/reaper.cpp   | 11 ++++++++++
 src/reaper.hpp   |  5 +++++
 src/signaler.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/signaler.hpp | 20 +++++++++++++++++-
 10 files changed, 141 insertions(+), 2 deletions(-)

commit 0478ee04f4f4525715e78f31a3209de6880a0a5e
Author: Matt Connolly <matt.connolly@me.com>
Date:   Sun Sep 1 20:19:58 2013 +1000

    Adding test showing failure to close socket/context in forked child

 .gitignore          |  1 +
 configure.ac        |  2 +-
 tests/Makefile.am   |  4 ++-
 tests/test_fork.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 80 insertions(+), 2 deletions(-)

commit 58b370df699c5f535e2d5dp6e0a631d2ca330435
Author: Min RK <benjaminrk@gmail.com>
Date:   Sat Aug 31 18:27:50 2013 -0700

    add test_linger

    tests that default LINGER (-1) ensures message delivery.

    Note: it fails for large messages ( > 1MB, depending on the system).

 tests/Makefile.am     |   2 +
 tests/test_linger.cpp | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 105 insertions(+)

commit 8ef7fbb4a4a1b1f9062046ed3d268433c974c38d
Merge: 82a00e3a 6a18f595
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Aug 31 13:35:21 2013 -0700

    Merge pull request #638 from shawnjgoff/master

    Change name of icanhasall to subscribe_to_all

commit 6a18f59532e8361384519f0f637baabe17380e2a
Author: Shawn J. Goff <shawn.goff@accelecon.com>
Date:   Sat Aug 31 09:53:47 2013 -0400

    Change name of icanhasall to subscribe_to_all

    icanhasall is cute (for now), but the effect of the variable is clear
    only after tracking down its origin reading the commit. This change is
    intended to make it easier for people to have some intuition about its
    effect from its name.

 src/dealer.cpp      |  6 +++---
 src/dealer.hpp      |  2 +-
 src/pair.cpp        |  6 +++---
 src/pair.hpp        |  2 +-
 src/pull.cpp        |  6 +++---
 src/pull.hpp        |  2 +-
 src/push.cpp        |  6 +++---
 src/push.hpp        |  2 +-
 src/router.cpp      |  6 +++---
 src/router.hpp      |  2 +-
 src/socket_base.cpp | 10 +++++-----
 src/socket_base.hpp |  4 ++--
 src/stream.cpp      |  6 +++---
 src/stream.hpp      |  2 +-
 src/xpub.cpp        |  6 +++---
 src/xpub.hpp        |  2 +-
 src/xsub.cpp        |  6 +++---
 src/xsub.hpp        |  2 +-
 18 files changed, 39 insertions(+), 39 deletions(-)

commit 9d94640edc5b6fc6a7d3a2b66abea680f478921e
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Aug 30 17:56:59 2013 -0700

    test failed CURVE auth

    adds expect_bounce_fail test function

    which is like bounce, but fails if messages arrive.

 tests/test_security.cpp       | 17 +--------
 tests/test_security_curve.cpp | 83 +++++++++++++++++++++++++++++++++++++++++--
 tests/testutil.hpp            | 37 +++++++++++++++++++
 3 files changed, 119 insertions(+), 18 deletions(-)

commit 0cac56fe524bd5a85c4f1e08f5a4492bab1c2b30
Author: Min RK <benjaminrk@gmail.com>
Date:   Fri Aug 30 15:28:16 2013 -0700

    test PLAIN auth with failed login

    This test fails because PLAIN authentication doesn't actually reject connections

 tests/test_security.cpp | 80 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

commit 82a00e3a985c6c13e34f385fd19624d521620c5d
Merge: 22f05fa2 da52806d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Aug 30 13:38:27 2013 -0700

    Merge pull request #636 from ricnewton/master

    Disable failing tests on windows.

commit da52806d68cd663495ec9c58a2a712bb5561b64c
Author: Richard Newton <richard_newton@waters.com>
Date:   Fri Aug 30 19:04:32 2013 +0100

    Disable failing tests on windows.

 CMakeLists.txt | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit 22f05fa2fa43a72de8a0f9b195514749665447a7
Merge: 4ca6ab26 93a068a8
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Aug 29 12:37:15 2013 -0700

    Merge pull request #635 from guidog/master

    Fixed silly port number.

commit 93a068a832dp64f294e68f54fa828cb6be24f93e
Author: Guido Goldstein <github@a-nugget.de>
Date:   Thu Aug 29 20:55:23 2013 +0200

    Fixed silly port number.

 tests/test_conflate.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4ca6ab26fa8b026215515355b6179966e4fa77ed
Merge: 83e547f0 455739f9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Aug 29 04:54:55 2013 -0700

    Merge pull request #634 from guidog/master

    Fixed markup so documentation can be built.

commit 455739f94258c021bfdc001f3aa315374058e912
Author: Guido Goldstein <github@a-nugget.de>
Date:   Thu Aug 29 09:35:17 2013 +0200

    Fixed markup so documentation can be built.

 doc/zmq_setsockopt.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 83e547f09f985a4bf1e4a19bdc13f03315f450ef
Merge: 2e9385ac eaf227d4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 24 14:31:16 2013 -0700

    Merge pull request #633 from eburkitt/vs2012-clean-compile

    get to clean compile under vs2012

commit eaf227d4deb3bc43c5507f7b86d8c46ec4912b06
Author: Evan Burkitt <evanb@edulinksys.com>
Date:   Fri Aug 23 17:14:03 2013 -0700

    get to clean compile under vs2012

    Added some missing (but existing in branch) files to libzmq11 project needed
    to compile as static library by VS2012 (at least), and fixed some warnings.
    One warning remains in raw_decoder.cpp, which I'm leaving for now because I'm
    not sure how project owners would like to fix it.

 builds/msvc/libzmq/libzmq11.vcxproj | 4 ++++
 src/dealer.cpp                      | 2 +-
 src/mutex.hpp                       | 2 +-
 src/req.cpp                         | 4 ++--
 src/router.cpp                      | 6 +++---
 5 files changed, 11 insertions(+), 7 deletions(-)

commit 2e9385ac02d14ce78837deb2c9f76155eacdda14
Merge: d485404a 19ca8a0f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 21 01:35:43 2013 -0700

    Merge pull request #631 from jrossi/master

    Add the Socket Identity info to the ZAP Messages

commit 436cad37ece8bc81d333b8a33d38af4ebdpa26db
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Aug 20 22:49:19 2013 +0100

    fix type on HWM

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a9baa051dd42e584d382a62a98fb31bac47674fa
Merge: 531d3ebc d485404a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Aug 20 22:48:04 2013 +0100

    Merge in master changes

commit d485404aab6efa15a1bdcb881874a4fad4b0b5a8
Merge: cb6b5a65 3f3777d0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Aug 20 14:37:52 2013 -0700

    Merge pull request #626 from dkrikun/master

    Add ZMQ_CONFLATE socket option

commit 19ca8a0fc0a13e3da6af6636bf3756d77397734f
Author: Jeremy Rossi <jeremy@jeremyrossi.com>
Date:   Tue Aug 20 13:48:05 2013 -0400

    Add the Socket Identity info to the ZAP Messages

    This change adds the socket identity infomartion from the socket to the
    zap frames.  In doing this the ZAP is able preform different operations
    based on different sockets.  This is not compaitable with the current ZAP
    RFC, but that can be updated.  As the ZAP rfc is currently draft for I
    did not change the version number.

    Tests also modified and passing.

 src/curve_server.cpp          | 8 ++++++++
 src/plain_mechanism.cpp       | 8 ++++++++
 tests/test_security.cpp       | 5 +++++
 tests/test_security_curve.cpp | 5 +++++
 4 files changed, 26 insertions(+)

commit cb6b5a65fcee87d343cf6d12b792c28a2625aa77
Merge: bcfe863f fd8b0fec
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Aug 19 05:55:07 2013 -0700

    Merge pull request #629 from ulikoehler/init_data_assert

    Minor doc & assert fixes

commit fd8b0fec077c6f4724b6dd17018ed4edd0bbe6c4
Author: Uli Köhler <ulikoehler@online.de>
Date:   Mon Aug 19 14:49:29 2013 +0200

    Re-add comment line from cmsg branch

 src/msg.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit a28c38efa5084ba92ec98f1f055bbe22881548a6
Author: Uli Köhler <ulikoehler@online.de>
Date:   Mon Aug 19 14:45:29 2013 +0200

    Fix spaces before comments

 src/msg.hpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 3f3777d05bada63414339bedb7dpfc56051836c2
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Mon Aug 19 15:34:11 2013 +0300

    Add test for ZMQ_CONFLATE option

 tests/Makefile.am       |  4 ++-
 tests/test_conflate.cpp | 77 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+), 1 deletion(-)

commit 9c2740d9fad86fb3b983ba30cde10b4cf5b4c7cc
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sun Aug 18 22:50:50 2013 +0200

    Minor fixes to doc ; added zmq_msg_init_data() assert preventing deferred segfault

 src/msg.cpp | 6 ++++--
 src/msg.hpp | 5 ++++-
 src/zmq.cpp | 2 +-
 3 files changed, 9 insertions(+), 4 deletions(-)

commit bcfe863fd4d8500217ea0b9e22296101249867fa
Merge: b3ca7fd4 121a838a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Aug 19 01:11:07 2013 -0700

    Merge pull request #630 from ulikoehler/cmsg

    Optimized zmq::msg_t for constant messages

commit da4a70d59d14f68d5cb463cce01e9a772f6ca5a2
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Mon Aug 19 08:18:20 2013 +0300

    Fix indentation

 src/pipe.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 121a838a0ce824f40ef57dbc24234409f368ebdb
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sun Aug 18 23:40:38 2013 +0200

    Added message type for constant messages

 src/msg.cpp | 44 +++++++++++++++++++++++++++++++-------------
 src/msg.hpp | 13 ++++++++++++-
 2 files changed, 43 insertions(+), 14 deletions(-)

commit 531d3ebc096c65b3e2772958acde9bf329136b18
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 18 11:16:21 2013 +0100

    Remove delay options

    These were exposed to users, but have subsequently been removed as
    sockopts. They are currently only being used by ZAP, so I've moved it to
    a simpl function call (actually it's only used in one case even in that,
    so there may be a further simplification possible there).

 src/options.cpp      |  2 --
 src/options.hpp      |  8 --------
 src/pipe.cpp         | 15 ++++++++++-----
 src/pipe.hpp         |  9 ++++++---
 src/session_base.cpp | 10 +++++-----
 src/socket_base.cpp  |  6 ++----
 6 files changed, 23 insertions(+), 27 deletions(-)

commit b3ca7fd4253531ad3f001196ba3eafbec931b2f9
Merge: 1011e8ad cb35fd7b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Aug 18 00:58:03 2013 -0700

    Merge pull request #627 from ianbarber/master

    Attempt to fix disconnect not respecting linger

commit 1011e8ad2078e923541f16ec738837550e710b6e
Merge: ed272fe5 70a1fbee
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Aug 18 00:51:39 2013 -0700

    Merge pull request #624 from ricnewton/master

    Port tests to windows and add to cmake build.

commit cb35fd7bfed767a303da43da523c91b98321a58f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 18 07:50:53 2013 +0100

    Attempt to fix disconnect not respecting linger

    Looks like linger is honoured properly, but shutting down the session
    causes the pipe termination to come from that side - because the local
    pipe then shuts down right away it seems to trigger a terminated on the
    other end instead of waiting. This way we trigger the termination from
    the local end and then terminate the session.

 src/socket_base.cpp | 20 +++++++++++++-------
 src/socket_base.hpp |  5 +++--
 2 files changed, 16 insertions(+), 9 deletions(-)

commit ed272fe56d3b16c9f111aa4db97432d3327d92d8
Merge: eccfede1 e23d3963
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Aug 17 23:27:17 2013 -0700

    Merge pull request #625 from ulikoehler/zmq_send_const

    Add zmq_send_const for constant data

commit f59c1a5c5dpc15cd6117eee951ad51ac302ca1ad
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Sat Aug 17 23:55:00 2013 +0300

    Update doc for ZMQ_CONFLATE socket option

 doc/zmq_setsockopt.txt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit daa7a8021f6802d12d8fcfd771dda3101d192f15
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Sat Aug 17 23:08:07 2013 +0300

    Plug in dbuffer to serve the ZMQ_CONFLATE option

    ZMQ_CONFLATE option is passed to pipepair() which creates a usual
    ypipe_t or ypipe_conflate_t and plugs it into pipe_t under a common
    abstract base.

 src/Makefile.am        |   5 +-
 src/pipe.cpp           |  51 +++++++++++++++-----
 src/pipe.hpp           |  15 ++++--
 src/session_base.cpp   |  17 +++++--
 src/socket_base.cpp    |  27 +++++++++--
 src/ypipe.hpp          |   3 +-
 src/ypipe_base.hpp     |  44 +++++++++++++++++
 src/ypipe_conflate.hpp | 127 +++++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 263 insertions(+), 26 deletions(-)

commit 4c35b88acbc7d1237e86833253737632cfd6a216
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Sat Aug 17 23:00:46 2013 +0300

    Implement double buffer for conflate option

    Add simple double buffer implementation tailored to handle msg_t,
    i.e invoke msg_t::close instead of destructor and so on.
    Seems to me mutex is good enough at this point.

 src/dbuffer.hpp | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 134 insertions(+)

commit d020dd677f9c8c4f89f244b19f1b809fb9b3a635
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Sat Aug 17 22:59:07 2013 +0300

    Declare ZMQ_CONFLATE option

 include/zmq.h   |  1 +
 src/options.cpp | 21 ++++++++++++++++++++-
 src/options.hpp |  6 ++++++
 3 files changed, 27 insertions(+), 1 deletion(-)

commit 4eac7e3e4fc443d3ad058d245f88f52dp7a1a817
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Sat Aug 17 22:55:04 2013 +0300

    Add scoped_lock_t syntactic sugar

 src/mutex.hpp | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit 87c84a252abc59bf34895a42f799278f2f9e478f
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Sat Aug 17 22:54:29 2013 +0300

    Add try_lock() to mutex_t

 src/mutex.hpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 503da83fceac8c2d6c37ff6fbfac0c4c31e59a91
Author: Daniel Krikun <krikun.daniel@gmail.com>
Date:   Sat Aug 17 22:53:02 2013 +0300

    Add #include to string.h in blob.hpp

    Required for memmove(), memcpy()

 src/blob.hpp | 1 +
 1 file changed, 1 insertion(+)

commit e23d3963d337985c80523327a29480625a009d37
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sat Aug 17 20:39:10 2013 +0200

    Fix doc typo

 doc/zmq_send_const.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 10becdp7eb7c43e7ec854c5f7d9f365566e1deef
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sat Aug 17 20:37:07 2013 +0200

    Added zmq_send_const test

 tests/test_pair_inproc.cpp | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit e2c322cf80e158a59d5b917a76693afc39f5de4e
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sat Aug 17 20:22:50 2013 +0200

    Implemented zmq_send_const

 doc/zmq_send.txt       |   1 +
 doc/zmq_send_const.txt | 103 +++++++++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h          |   1 +
 src/zmq.cpp            |  26 +++++++++++++
 4 files changed, 131 insertions(+)

commit 70a1fbee7a94a7e2ace3c5b5f376c997ccc68ea7
Author: Richard Newton <richard_newton@waters.com>
Date:   Sat Aug 17 14:39:38 2013 +0100

    Fix running tests from cmake on linux.

 CMakeLists.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit e1b2b649fb7459203939cc0dd0446df4f88bb273
Merge: a83baa9b eccfede1
Author: Richard Newton <richard_newton@waters.com>
Date:   Sat Aug 17 14:23:42 2013 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit a83baa9b0b35a3664d22a48b918e644c77b47114
Author: Richard Newton <richard_newton@waters.com>
Date:   Sat Aug 17 14:23:22 2013 +0100

    Fix up threading code from port tests to windows.

 include/zmq_utils.h            |  4 +++-
 src/zmq_utils.cpp              |  4 ++--
 tests/test_monitor.cpp         | 15 ++++++---------
 tests/test_security.cpp        |  5 +----
 tests/test_security_curve.cpp  |  5 +----
 tests/test_shutdown_stress.cpp |  6 ++----
 tests/testutil.hpp             |  3 +++
 7 files changed, 18 insertions(+), 24 deletions(-)

commit 7f74fc7c998cba2efd2bc286ab2aad711fb5c475
Author: Richard Newton <richard_newton@waters.com>
Date:   Sat Aug 17 13:43:45 2013 +0100

    Port tests to windows and add to cmake build.

 CMakeLists.txt                   | 52 +++++++++++++++++++++++++++++++++++++---
 include/zmq_utils.h              |  6 +++++
 src/zmq_utils.cpp                | 15 ++++++++++++
 tests/test_connect_delay.cpp     | 12 ++++------
 tests/test_connect_resolve.cpp   |  5 ++--
 tests/test_ctx_options.cpp       |  5 ++--
 tests/test_disconnect_inproc.cpp |  3 ++-
 tests/test_hwm.cpp               |  4 ++--
 tests/test_invalid_rep.cpp       |  5 ++--
 tests/test_iov.cpp               | 10 ++++----
 tests/test_last_endpoint.cpp     |  5 ++--
 tests/test_monitor.cpp           | 23 ++++++++----------
 tests/test_msg_flags.cpp         |  5 ++--
 tests/test_pair_inproc.cpp       |  1 +
 tests/test_pair_ipc.cpp          |  1 +
 tests/test_pair_tcp.cpp          |  1 +
 tests/test_probe_router.cpp      |  4 ++--
 tests/test_raw_sock.cpp          |  5 ++--
 tests/test_req_request_ids.cpp   |  2 +-
 tests/test_req_strict.cpp        |  7 +++---
 tests/test_reqrep_device.cpp     |  5 ++--
 tests/test_reqrep_inproc.cpp     |  1 +
 tests/test_reqrep_ipc.cpp        |  1 +
 tests/test_reqrep_tcp.cpp        |  1 +
 tests/test_router_mandatory.cpp  |  4 ++--
 tests/test_security.cpp          |  9 ++++---
 tests/test_security_curve.cpp    |  9 ++++---
 tests/test_shutdown_stress.cpp   | 15 +++++-------
 tests/test_spec_dealer.cpp       |  1 +
 tests/test_spec_pushpull.cpp     |  1 +
 tests/test_spec_rep.cpp          |  1 +
 tests/test_spec_req.cpp          |  6 ++---
 tests/test_spec_router.cpp       |  1 +
 tests/test_stream.cpp            |  5 ++--
 tests/test_sub_forward.cpp       |  8 +++----
 tests/test_term_endpoint.cpp     | 12 ++++------
 tests/test_timeo.cpp             | 16 ++++---------
 tests/testutil.hpp               | 12 ++++++++++
 38 files changed, 171 insertions(+), 108 deletions(-)

commit eccfede10d73bf8505a841b3d75c6f200d31728a
Merge: 749c391b e16a6af0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Aug 8 11:42:53 2013 -0700

    Merge pull request #623 from ricnewton/master

    Fix compile error on windows.

commit e16a6af0c7430ecc0efac674e75fe3f66b0f6ee5
Author: Richard Newton <richard_newton@waters.com>
Date:   Thu Aug 8 17:27:49 2013 +0100

    Fix compile error on windows.

 src/ip.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 749c391b3414cc57afbb4a108867ebc062b2195f
Merge: fe30cc6d 423ca36b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Aug 3 12:42:53 2013 -0700

    Merge pull request #622 from ckamm/req-strict

    Rename ZMQ_REQ_SEND_RESETS -> ZMQ_REQ_STRICT.

commit 423ca36b17264ca7b71b23e4a110aa847fd7ac27
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Sat Aug 3 14:35:18 2013 +0200

    Rename ZMQ_REQ_SEND_RESETS -> ZMQ_REQ_STRICT.

    It defaults to enabled. Switch it off to be able to send a new message
    before the previous reply has been received.

 .gitignore                                              |  2 +-
 doc/zmq_setsockopt.txt                                  | 15 ++++++++-------
 include/zmq.h                                           |  2 +-
 src/req.cpp                                             | 10 +++++-----
 src/req.hpp                                             |  4 ++--
 tests/Makefile.am                                       |  4 ++--
 tests/{test_req_send_resets.cpp => test_req_strict.cpp} |  7 ++++---
 7 files changed, 23 insertions(+), 21 deletions(-)

commit fe30cc6d99d82eebb4145575bc0f95888cc9ff8e
Merge: 9f4526f5 f5c59556
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 3 02:44:53 2013 -0700

    Merge pull request #619 from ckamm/req-send-resets

    Add ZMQ_REQ_SEND_RESETS option.

commit 9f4526f59a4252f75639178d11a716a7250065ba
Merge: 637f7941 39ddc695
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jul 29 06:11:03 2013 -0700

    Merge pull request #621 from hintjens/master

    Added note to clarify policy for embedded apps

commit 39ddc695bc99905382affa4f075f7512851665cf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 29 10:42:15 2013 +0200

    Added note about tivotisation

 COPYING.LESSER | 2 ++
 1 file changed, 2 insertions(+)

commit f5c59556bd232064230b39c05d858ce69d59dp09
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Mon Jul 29 09:33:10 2013 +0200

    REQ: Unset reply_pipe if it terminates.

    * Fixes a terminate() call on a dangling pointer in the SEND_RESETS
      case.
    * Fixes recv_reply_pipe() never receiving a message once the pipe it is
      waiting on is terminated.

 src/req.cpp | 15 +++++++++++----
 src/req.hpp |  1 +
 2 files changed, 12 insertions(+), 4 deletions(-)

commit a0cc87a9d922dd3187f07962536ee676033e0ef8
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Sun Jul 21 13:16:47 2013 +0200

    Add ZMQ_REQ_SEND_RESETS option.

    This allows making a new request on a REQ socket by sending a new
    message. Without the option set, calling send() after the first message
    is done will continue to return an EFSM error.

    It's useful for when a REQ is not getting a response. Previously that
    meant creating a new socket or switching to DEALER.

 .gitignore                     |   1 +
 doc/zmq_setsockopt.txt         |  30 +++++++++--
 include/zmq.h                  |   1 +
 src/req.cpp                    |  23 ++++++--
 src/req.hpp                    |   7 +--
 tests/Makefile.am              |   4 +-
 tests/test_req_send_resets.cpp | 120 +++++++++++++++++++++++++++++++++++++++++
 7 files changed, 174 insertions(+), 12 deletions(-)

commit 637f79419325952d0b3e63fe09ead81769884785
Merge: 6473dfd8 b9646f2a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jul 26 15:41:29 2013 -0700

    Merge pull request #620 from ckamm/req-id

    Add ZMQ_REQ_REQUEST_IDS option.

commit b9646f2aacf414eb30044a9be3a03d2bd9230c7f
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Fri Jul 26 21:13:43 2013 +0200

    Add ZMQ_REQ_REQUEST_IDS option.

    * Documentation:
    The default behavior of REQ sockets is to rely on the ordering of messages
    to match requests and responses and that is usually sufficient. When this option
    is set to 1, the REQ socket will prefix outgoing messages with an extra frame
    containing a request id. That means the full message is (request id, 0,
    user frames...). The REQ socket will discard all incoming messages that don't
    begin with these two frames.

    * Behavior change: When a REQ socket gets an invalid reply, it used to
      discard the message and return EAGAIN. REQ sockets still discard
      invalid messages, but keep looking at the next one automatically
      until a good one is found or there are no more messages.
    * Add test_req_request_ids.

 .gitignore                     |   1 +
 doc/zmq_setsockopt.txt         |  17 ++++
 include/zmq.h                  |   1 +
 src/req.cpp                    |  77 +++++++++++++++---
 src/req.hpp                    |  12 +++
 tests/Makefile.am              |   4 +-
 tests/test_req_request_ids.cpp | 179 +++++++++++++++++++++++++++++++++++++++++
 7 files changed, 277 insertions(+), 14 deletions(-)

commit 6473dfd8f43beaa62b233f30ea839e25caf47382
Merge: 49440952 4a5358f4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jul 18 03:26:21 2013 -0700

    Merge pull request #617 from hurtonm/zap_updates

    Zap updates

commit 4a5358f4d0f227844b5e66a5724fd4df930b25e1
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jul 18 10:10:10 2013 +0200

    Implement ZAP for NULL mechanism

 src/null_mechanism.cpp | 155 ++++++++++++++++++++++++++++++++++++++++++++++++-
 src/null_mechanism.hpp |  16 ++++-
 src/stream_engine.cpp  |   3 +-
 3 files changed, 169 insertions(+), 5 deletions(-)

commit 53bc53da04a4fb2fe666e6607c29d11bec780984
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jul 18 09:49:42 2013 +0200

    Update PLAIN mechanism to the latest ZAP revision

 src/plain_mechanism.cpp | 31 ++++++++++++++++++++++---------
 src/plain_mechanism.hpp |  3 +++
 src/stream_engine.cpp   |  3 ++-
 tests/test_security.cpp |  6 +++++-
 4 files changed, 32 insertions(+), 11 deletions(-)

commit d65231be1ced9f6411427a1be971525e7f19f5e9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jul 18 09:39:19 2013 +0200

    Update CURVE mechanism to the latest ZAP revision

 src/curve_server.cpp          | 29 ++++++++++++++++++++++-------
 src/curve_server.hpp          |  3 +++
 src/stream_engine.cpp         |  6 +++++-
 src/stream_engine.hpp         |  2 ++
 tests/test_security_curve.cpp |  5 ++++-
 5 files changed, 36 insertions(+), 9 deletions(-)

commit 7541debe6de46308ada745e08348eb457623acba
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jul 18 09:28:56 2013 +0200

    Add get_peer_ip_address utility function

    The functon returns string representation of peer's
    IP address. We will need this to update ZAP implementation.

 src/ip.cpp | 40 ++++++++++++++++++++++++++++++++++++++++
 src/ip.hpp |  7 ++++++-
 2 files changed, 46 insertions(+), 1 deletion(-)

commit 49440952621cdea052e8539aaa0542de42f6759b
Merge: 1068bc07 d46c2ee2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jul 15 00:15:55 2013 -0700

    Merge pull request #615 from hintjens/master

    Last step in test_spec_req is still failing; disabled it.

commit 1068bc0795f11f6dd543997126150758c8f2b8c4
Merge: 4fb004f5 409721b9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 14 14:48:17 2013 -0700

    Merge pull request #616 from steve-o/master

    Add static libraries to CMake, minor housekeeping.

commit 409721b9d2657b937d1de6c7eca7111d16c4a125
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Sun Jul 14 13:58:46 2013 -0400

    Add CMake support for static libraries.

 CMakeLists.txt | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 21fe600848a01f4014aa97b04cc301669502db69
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Sun Jul 14 13:36:30 2013 -0400

    Move CMake dependencies together.

 CMakeLists.txt                                           | 6 +++---
 {cmake => builds/cmake}/Modules/FindAsciiDoc.cmake       | 0
 {cmake => builds/cmake}/Modules/TestZMQVersion.cmake     | 0
 {cmake => builds/cmake}/Modules/ZMQSourceRunChecks.cmake | 0
 {cmake => builds/cmake}/NSIS.template32.in               | 0
 {cmake => builds/cmake}/NSIS.template64.in               | 0
 6 files changed, 3 insertions(+), 3 deletions(-)

commit dp86c56d74a4cc549629829714ff189369027a29
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Sun Jul 14 13:26:55 2013 -0400

    README file moved to GitHub format and extension, drop from packaging and default to NEWS file for popup.

 CMakeLists.txt           | 7 +++----
 cmake/NSIS.template32.in | 2 +-
 cmake/NSIS.template64.in | 2 +-
 3 files changed, 5 insertions(+), 6 deletions(-)

commit d46c2ee2fc566a6ddcedp2820a552dbce1c15bff
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 14 13:04:31 2013 +0200

    Disabled last step in test_spec_req so build can complete

 tests/test_spec_req.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4fb004f59b81a09a8b428409b61baa79b642712d
Merge: bccf3d61 7de23c0c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 14 03:00:06 2013 -0700

    Merge pull request #614 from ckamm/fix-spec-req-fail

    Fix intermittent failure in test_spec_req.

commit 7de23c0c8dafe9305fc89203ff420da9b191d814
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Sun Jul 14 11:55:57 2013 +0200

    Fix intermittent failure in test_spec_req.

    There still is a problem when a stale peer's message
    arrives at the REQ just after a request was sent to that peer.

 tests/test_spec_req.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit bccf3d61268b3809cb609e9c9a4ec98575fee179
Merge: 93b9f902 bbc9a611
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 14 02:32:20 2013 -0700

    Merge pull request #613 from ckamm/coding-style-spec-tests

    Fix coding style in spec tests.

commit 93b9f9021c76c7812adb592bf29d29ad9eed2ac5
Merge: 524bd7ac c56d797b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 14 02:30:21 2013 -0700

    Merge pull request #608 from ckamm/req-drops-unwanted

    REQ sockets drop replies from unasked peers.

commit bbc9a611979aaa62c67eaa768d7f0735d1f53272
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Sun Jul 14 08:32:35 2013 +0200

    Fix coding style in spec tests.

 tests/test_spec_dealer.cpp   | 66 +++++++++++++----------------
 tests/test_spec_pushpull.cpp | 99 +++++++++++++++++++-------------------------
 tests/test_spec_rep.cpp      | 57 ++++++++++++-------------
 tests/test_spec_req.cpp      |  8 ++--
 tests/test_spec_router.cpp   | 61 +++++++++++++--------------
 5 files changed, 130 insertions(+), 161 deletions(-)

commit c56d797bf915e0774646e651dbbce89b8e566f45
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Tue Jul 2 20:05:20 2013 +0200

    REQ sockets drop replies from unasked peers.

    * Add lb_t::sendpipe() that returns the pipe that was used for sending,
      similar to fq_t::recvpipe().
    * Add forwarder functions to dealer_t to access these two.
    * Add logic to req_t to ignore replies on pipes that are not the one
      where the request was sent.
    * Enable test in test_spec_req.

 AUTHORS                 |  1 +
 src/dealer.cpp          | 14 ++++++++++++--
 src/dealer.hpp          |  4 ++++
 src/lb.cpp              | 10 +++++++++-
 src/lb.hpp              |  7 +++++++
 src/req.cpp             | 39 +++++++++++++++++++++++++++++++++++----
 src/req.hpp             |  9 +++++++++
 tests/test_spec_req.cpp |  3 +--
 8 files changed, 78 insertions(+), 9 deletions(-)

commit 524bd7ac765d33e537ffcf981e7f3d06899a9aca
Merge: 7560910f 6bf4ffe7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jul 13 16:27:41 2013 -0700

    Merge pull request #612 from ulikoehler/markdown

    Converted README to markdown

commit 6bf4ffe7270d5079de5760e471595f24acdcc788
Author: Uli Köhler <ulikoehler@online.de>
Date:   Sun Jul 14 00:55:40 2013 +0200

    Converted README to markdown + added travis build img

 README => README.md | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

commit 7560910f505c06d29191bdff1659133342ceadfa
Merge: 5ac19647 0f28b729
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jul 13 10:39:06 2013 -0700

    Merge pull request #611 from pijyoi/master

    update Makefile to include new files

commit 0f28b729140900f6dcb7a560e13cbcd85537f2d1
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Jul 13 14:31:46 2013 +0800

    update to include stream.cpp and curve related

 builds/mingw32/Makefile.mingw32 | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

commit 5ac19647d9c097a7657d7532f9dfecb16f471e9c
Merge: 08622a77 9ca6898f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jul 8 04:12:06 2013 -0700

    Merge pull request #610 from hintjens/master

    Problem: new spec test cases don't all work

commit 9ca6898f24d3c5b4b550f7bd5c8882d2aaf4fcc7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 7 12:49:24 2013 +0200

    Got new test cases working with libzmq

    * disabled the specific tests that do not work (yet) on libzmq
    * cleaned up one source (test_spec_rep.c) but the others need similar work
    * added sleep in test_spec_rep to allow connects time to happen; this would
      not be needed if we connected out to the REP peers instead in from them,
      but I didn't want to change the logic of the test code.

 .gitignore                   |  5 +++
 tests/test_spec_dealer.cpp   | 41 ++++++++-----------
 tests/test_spec_pushpull.cpp |  3 +-
 tests/test_spec_req.cpp      | 97 ++++++++++++++++++++++----------------------
 tests/test_spec_router.cpp   |  3 +-
 tests/testutil.hpp           | 16 +++-----
 6 files changed, 80 insertions(+), 85 deletions(-)

commit 08622a7788f6e14cb26eb15e19f90939a0bd7696
Merge: 5038ef74 dfba19c4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 5 15:36:14 2013 -0700

    Merge pull request #609 from ckamm/tests

    Make pipeline/reqrep tests try tcp:// endpoints.

commit dfba19c4b652fb064138f0b3c47b1f27cc8464a8
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Fri Jul 5 17:58:01 2013 +0200

    Make pipeline/reqrep tests try tcp:// endpoints.

    The inproc:// endpoints sometimes use different code paths so
    testing with regular tcp:// endpoints as well can show different
    issues.

 tests/test_spec_dealer.cpp   |  98 +++++++++++++++++++-------------
 tests/test_spec_pushpull.cpp | 132 ++++++++++++++++++++++++++++++-------------
 tests/test_spec_rep.cpp      |  56 +++++++++++-------
 tests/test_spec_req.cpp      |  78 +++++++++++++++----------
 tests/test_spec_router.cpp   |  77 +++++++++++++++++--------
 tests/testutil.hpp           |  11 ++++
 6 files changed, 299 insertions(+), 153 deletions(-)

commit 5038ef74b5bc0aa972cce80e085fcaaa64eaa536
Merge: e093bd99 8fd163cf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 5 08:18:41 2013 -0700

    Merge pull request #606 from ckamm/master

    Add tests for Request-Reply and Pipeline pattern sockets.

commit 8fd163cf5c82eaa483a00ca31a8e0b433a696657
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Fri Jul 5 15:20:42 2013 +0200

    Add tests for PUSH/PULL sockets.

 tests/Makefile.am            |   4 +-
 tests/test_spec_pushpull.cpp | 250 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 253 insertions(+), 1 deletion(-)

commit e093bd99234b37bb479889a90bcf467a1cb3fdd4
Merge: 78e47912 7b7f7e4e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 3 15:43:09 2013 -0700

    Merge pull request #607 from cjuniet/master

    [LIBZMQ-544] Fix compilation errors with Clang

commit 7b7f7e4ebdcba8a52cdd76e4cb911ec7c6e7dbf9
Author: Christophe Juniet <c.juniet@gmail.com>
Date:   Wed Jul 3 22:30:48 2013 +0200

    Fix compilation warnings on unsigned comparisons.

    Fix two unsigned comparisons to zero or more being always true. Clang
    won't compile this with -Werror.

 src/options.cpp   | 4 ++--
 src/z85_codec.hpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 798b394087d27201e3d4a16594ea867bf5eecf08
Author: Christian Kamm <kamm@incasoftware.de>
Date:   Tue Jul 2 15:04:31 2013 +0200

    Add tests for Request-Reply pattern sockets.

    * See http://rfc.zeromq.org/spec:28/REQREP
    * Not all testable statements are covered.
    * At this point, there are several failures:
      - test_spec_req: The REQ socket does not correctly discard messages
        from peers that are not currently being talked to.
      - test_spec_dealer/router: On disconnect, the queues seem to not be
        emptied. The DEALER can still receive a message the disconnected
        peer sent, the ROUTER can still send to the identity of the dis-
        connected peer.

 tests/Makefile.am          |  12 ++-
 tests/test_spec_dealer.cpp | 248 +++++++++++++++++++++++++++++++++++++++++++++
 tests/test_spec_rep.cpp    | 144 ++++++++++++++++++++++++++
 tests/test_spec_req.cpp    | 230 +++++++++++++++++++++++++++++++++++++++++
 tests/test_spec_router.cpp | 180 ++++++++++++++++++++++++++++++++
 tests/testutil.hpp         |  80 ++++++++++++++-
 6 files changed, 891 insertions(+), 3 deletions(-)

commit 78e47912d2c5dd2795bf45479c0c2552e3f41d14
Merge: 5a300220 99861060
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 1 04:41:46 2013 -0700

    Merge pull request #605 from ricnewton/master

    Fix tab/space formatting issue

commit 998610602e6c1494131680ca89030663dc62ab0c
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jul 1 12:10:57 2013 +0100

    Fix tab/space formatting issue

 tests/test_monitor.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5a30022045eed8eb3b10acb8bdp73bcd2b1af2b0
Merge: a3e16c18 f6e972d5
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jul 1 04:08:25 2013 -0700

    Merge pull request #603 from ricnewton/master

    Add monitor event for when monitoring is stopped so we can unblock any sockets waiting on monitor socket.

commit a3e16c18b19102e6a96f9362cbf1fd7429ba8bee
Merge: 1cfee8d1 01dd6eb1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jul 1 04:07:44 2013 -0700

    Merge pull request #604 from ricnewton/cmake_fix

    Fix cmake build

commit 01dd6eb1103da9b38c25209ac25295aa82e8386a
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jul 1 11:52:39 2013 +0100

    Fix cmake build
    Fix build on windows, uint isn't a standard type, unsigned int is.

 CMakeLists.txt    |  1 +
 src/z85_codec.hpp | 12 ++++++------
 2 files changed, 7 insertions(+), 6 deletions(-)

commit f6e972d54619935835604e7bb4dd2f86564c2eab
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jul 1 10:31:57 2013 +0000

    Fix montior tests to handle the monitor stopped event correctly

 tests/test_monitor.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit d4d23caf326409a18cb6677dd7225f9d6550b269
Author: Richard Newton <richard_newton@waters.com>
Date:   Mon Jul 1 11:00:46 2013 +0100

    Add new socket monitor event for when socket monitoring is stopped.

 include/zmq.h       | 4 +++-
 src/socket_base.cpp | 6 ++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 1cfee8d1e79264e783b1ce2e48120eb8bc4ffc5b
Merge: 2a4dpf92 4671108e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 1 02:14:07 2013 -0700

    Merge pull request #601 from leewoosung/hotfixes/patched

    [LIBZMQ-541] pub socket sending fail issue

commit 2a4dpf9223bb8c6b101a882f2d9182666852cd07
Merge: 58b10824 783bb890
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 1 02:06:29 2013 -0700

    Merge pull request #602 from hurtonm/master

    Implement socket type checking

commit 783bb890a9c7184b8c8acfe7aad6a75fdd60001a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jul 1 10:04:54 2013 +0200

    Check socket types during mechanism handshake

 src/curve_client.cpp    |  9 ---------
 src/curve_client.hpp    |  3 ---
 src/curve_server.cpp    |  9 ---------
 src/curve_server.hpp    |  3 ---
 src/mechanism.cpp       | 48 ++++++++++++++++++++++++++++++++++++++++++++----
 src/mechanism.hpp       |  4 ++++
 src/null_mechanism.cpp  |  9 ---------
 src/null_mechanism.hpp  |  4 ----
 src/plain_mechanism.cpp |  9 ---------
 src/plain_mechanism.hpp |  5 -----
 tests/test_raw_sock.cpp |  2 +-
 tests/test_stream.cpp   |  4 ++--
 12 files changed, 51 insertions(+), 58 deletions(-)

commit 4671108e571b442e5565c399c42d5e7c8f48bde8
Author: ganesh.vr <ganesh.vr@samsung.com>
Date:   Mon Jul 1 15:57:06 2013 +0900

    LIBZMQ-541 issue fix

 src/dist.cpp | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 58b1082467ffd7af3294052d921bd097136a4399
Merge: 11947b1c afe9afa2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 29 23:56:04 2013 -0700

    Merge pull request #600 from hurtonm/master

    Set socket buffers before establishing TCP connection

commit afe9afa2a54f092327af62ce23a50547ab94e513
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Jun 30 06:41:36 2013 +0200

    Set socket buffers before establishing TCP connection

    The window scale option carried in SYN segment is computed from socket's
    receive buffer size. So we need to set this buffer size before calling
    connect or bind.

 src/stream_engine.cpp | 19 -------------------
 src/tcp.cpp           | 22 ++++++++++++++++++++++
 src/tcp.hpp           |  6 ++++++
 src/tcp_connecter.cpp |  6 ++++++
 src/tcp_listener.cpp  |  6 ++++++
 5 files changed, 40 insertions(+), 19 deletions(-)

commit 11947b1ccb8002ee715b791ded6a7f2d14bfbfe9
Merge: a71d64ab c9bdb893
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 29 09:36:50 2013 -0700

    Merge pull request #597 from hintjens/master

    Problem: working with binary keys is painful

commit a71d64ab95880bd01f9d49abe8025e3e1a9c6243
Merge: 7460d00b dpf2171e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 29 09:34:47 2013 -0700

    Merge pull request #599 from hurtonm/master

    Minor code refactoring

commit dpf2171e8390864d484186265ba8f7237d0d368c
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 29 17:24:30 2013 +0200

    Make last_endpoint attribute of socket object

 src/options.cpp     |  8 --------
 src/options.hpp     |  3 ---
 src/socket_base.cpp | 20 +++++++++++++++-----
 src/socket_base.hpp |  3 +++
 4 files changed, 18 insertions(+), 16 deletions(-)

commit c9bdb893f8fd9705a79ecdeabb2e7e1a39f35816
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 29 11:24:46 2013 +0200

    Use generic session class whenever possible

 src/dealer.cpp       | 12 ------------
 src/dealer.hpp       | 15 ---------------
 src/pair.cpp         | 12 ------------
 src/pair.hpp         | 15 ---------------
 src/pub.cpp          | 12 ------------
 src/pub.hpp          | 15 ---------------
 src/pull.cpp         | 12 ------------
 src/pull.hpp         | 15 ---------------
 src/push.cpp         | 12 ------------
 src/push.hpp         | 15 ---------------
 src/rep.cpp          | 12 ------------
 src/rep.hpp          | 15 ---------------
 src/req.cpp          |  8 ++++----
 src/req.hpp          |  2 +-
 src/router.cpp       | 12 ------------
 src/router.hpp       | 15 ---------------
 src/session_base.cpp | 43 +------------------------------------------
 src/stream.cpp       | 12 ------------
 src/stream.hpp       | 15 ---------------
 src/sub.cpp          | 12 ------------
 src/sub.hpp          | 15 ---------------
 src/xpub.cpp         | 12 ------------
 src/xpub.hpp         | 15 ---------------
 src/xsub.cpp         | 12 ------------
 src/xsub.hpp         | 15 ---------------
 25 files changed, 6 insertions(+), 344 deletions(-)

commit 7460d00bacadf8df1c173daca28ebc3ec197543c
Merge: 1beec5e9 fd7e9b8c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 29 02:36:30 2013 -0700

    Merge pull request #598 from hurtonm/master

    Use generic session class whenever possible

commit fd7e9b8c4637679a9fe2a142771f7f977120df4a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 29 11:24:46 2013 +0200

    Use generic session class whenever possible

 src/dealer.cpp       | 12 ------------
 src/dealer.hpp       | 15 ---------------
 src/pair.cpp         | 12 ------------
 src/pair.hpp         | 15 ---------------
 src/pub.cpp          | 12 ------------
 src/pub.hpp          | 15 ---------------
 src/pull.cpp         | 12 ------------
 src/pull.hpp         | 15 ---------------
 src/push.cpp         | 12 ------------
 src/push.hpp         | 15 ---------------
 src/rep.cpp          | 12 ------------
 src/rep.hpp          | 15 ---------------
 src/req.cpp          |  8 ++++----
 src/req.hpp          |  2 +-
 src/router.cpp       | 12 ------------
 src/router.hpp       | 15 ---------------
 src/session_base.cpp | 43 +------------------------------------------
 src/stream.cpp       | 12 ------------
 src/stream.hpp       | 15 ---------------
 src/sub.cpp          | 12 ------------
 src/sub.hpp          | 15 ---------------
 src/xpub.cpp         | 12 ------------
 src/xpub.hpp         | 15 ---------------
 src/xsub.cpp         | 12 ------------
 src/xsub.hpp         | 15 ---------------
 25 files changed, 6 insertions(+), 344 deletions(-)

commit 70417701089e5918452996d7cbe48c89e35a39e0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 28 22:10:22 2013 +0200

    Added Z85 support

    The use of binary for CURVE keys is painful; you cannot easily copy
    these in e.g. email, or use them directly in source code. There are
    various encoding possibilities. Base16 and Base64 are not optimal.
    Ascii85 is not safe for source (it generates quotes and escapes).

    So, I've designed a new Base85 encoding, Z85, which is safe to use
    in code and elsewhere, and I've modified libzmq to use this where
    it also uses binary keys (in get/setsockopt).

    Very simply, if you use a 32-byte value, it's Base256 (binary),
    and if you use a 40-byte value, it's Base85 (Z85).

    I've put the Z85 codec into z85_codec.hpp, it's not elegant C++
    but it is minimal and it works. Feel free to rewrap as a real class
    if this annoys you.

 Makefile.am                   |   6 +--
 configure.ac                  |  12 +++--
 doc/zmq_curve.txt             |  36 +++++++++++---
 doc/zmq_getsockopt.txt        |  58 +++++++++++++++++++----
 doc/zmq_setsockopt.txt        |  32 ++++++++-----
 src/Makefile.am               |   1 +
 src/options.cpp               |  39 ++++++++++++++-
 src/options.hpp               |   5 +-
 src/z85_codec.hpp             | 108 ++++++++++++++++++++++++++++++++++++++++++
 tests/test_security_curve.cpp |  53 +++++++--------------
 tools/Makefile.am             |   1 +
 tools/curve_keygen.c          |  40 ++++++++++++----
 tools/z85_codec.h             | 108 ++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 417 insertions(+), 82 deletions(-)

commit 1beec5e960646eead85df5a91e1e9b986af0ce28
Merge: ba1dp7d6 76df0459
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jun 28 05:05:54 2013 -0700

    Merge pull request #596 from hintjens/master

    Problem: mechanisms are lagging behind specs

commit 76df0459503de64fe5fabb916420fdped2ca667c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 28 12:04:01 2013 +0200

    Return EINVAL when trying to use CURVE without libsodium

 src/options.cpp | 27 +++++++--------------------
 1 file changed, 7 insertions(+), 20 deletions(-)

commit 357a9c45fbfb195a23ad42365153c279c49ea8d9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jun 28 11:24:14 2013 +0200

    Simplify ZMQ_STREAM socket implementation, part II

 src/stream.cpp | 57 ++++++++++++++++++++-------------------------------------
 src/stream.hpp |  3 ---
 2 files changed, 20 insertions(+), 40 deletions(-)

commit 7832addd202a20f65e218d74df6621147c7b8eb9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 28 11:42:54 2013 +0200

    Updated security mechanisms to use variable-length commands

    RFC23, RFC24, RFC26 now use variable-length command names that
    end in null octet (valid C strings) instead of fixed-length
    space padded strings.

 src/curve_client.cpp          |  32 +++++------
 src/curve_server.cpp          |  34 ++++++------
 src/mechanism.cpp             |   2 +-
 src/null_mechanism.cpp        |  10 ++--
 src/plain_mechanism.cpp       |  12 +++--
 tests/Makefile.am             |   2 +-
 tests/test_raw_sock.cpp       |  19 ++++---
 tests/test_security.cpp       | 122 +++++++++++-------------------------------
 tests/test_security_curve.cpp | 105 ++++++++----------------------------
 tests/test_stream.cpp         |  19 ++++---
 tests/testutil.hpp            |  32 +++++++++++
 11 files changed, 150 insertions(+), 239 deletions(-)

commit ba1dp7d639aa07bec60687bb70ff99c1a1f753d5
Merge: fe2753da 7b27c125
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 28 02:28:23 2013 -0700

    Merge pull request #595 from hurtonm/master

    Another ZMQ_STREAM simplification

commit 7b27c125dc3025fe16b1f259695f7bbaa78ee9f0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jun 28 11:24:14 2013 +0200

    Simplify ZMQ_STREAM socket implementation, part II

 src/stream.cpp | 57 ++++++++++++++++++++-------------------------------------
 src/stream.hpp |  3 ---
 2 files changed, 20 insertions(+), 40 deletions(-)

commit dd14d4e01b5188d89fa45d0c8189cf550b22d1dp
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 28 10:16:50 2013 +0200

    Minor whitespace fixes in man page

 doc/zmq_setsockopt.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit c4dp74f8161b3f68f5933993bc89acc9209d4ced
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 28 09:41:05 2013 +0200

    Fixed zmq_errno function definition

 src/zmq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fe2753da0af6df9931f164dpdd04d9d37ebb7f66
Merge: d8f13760 a1bb5e83
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 28 01:15:02 2013 -0700

    Merge pull request #594 from hurtonm/master

    Simplify ZMQ_STREAM socket implementation

commit a1bb5e83ffd837e9d074bf727152d62583e7a516
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jun 28 09:08:54 2013 +0200

    Simplify ZMQ_STREAM socket implementation

 src/stream.cpp | 87 +++++++++++++---------------------------------------------
 src/stream.hpp | 18 ++----------
 2 files changed, 22 insertions(+), 83 deletions(-)

commit d8f13760083bd5dp302dd8c38af9c4cd6ac4b1d3
Merge: 4a4d222e ad779379
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jun 27 14:09:04 2013 -0700

    Merge pull request #593 from hintjens/master

    Problem: ROUTER+RAW was not a clean API

commit ad7793795692e93595f01e12773467fb9270e9ec
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 27 20:47:34 2013 +0200

    Added ZMQ_STREAM socket type

    - designed for TCP clients and servers
    - added HTTP client / server example in tests/test_stream.cpp
    - same as ZMQ_ROUTER + ZMQ_ROUTER_RAW + ZMQ_ROUTER_MANDATORY
    - includes b893ce set ZMQ_IDENTITY on outgoing connect
    - deprecates ZMQ_ROUTER_RAW

 .gitignore             |   2 +
 doc/zmq_msg_send.txt   |   2 +
 doc/zmq_send.txt       |   2 +
 doc/zmq_sendmsg.txt    |   2 +
 doc/zmq_setsockopt.txt |   2 +
 doc/zmq_socket.txt     |  42 ++++++-
 include/zmq.h          |   1 +
 src/Makefile.am        |   2 +
 src/mechanism.cpp      |   4 +-
 src/router.cpp         |   7 +-
 src/session_base.cpp   |   5 +
 src/socket_base.cpp    |   4 +
 src/stream.cpp         | 335 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/stream.hpp         | 127 +++++++++++++++++++
 tests/Makefile.am      |   9 +-
 tests/test_stream.cpp  | 228 +++++++++++++++++++++++++++++++++
 16 files changed, 763 insertions(+), 11 deletions(-)

commit 4a4d222ec45c10da66c9514713d3959c31b44709
Merge: e9d11c66 b893ce25
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jun 23 23:29:44 2013 -0700

    Merge pull request #592 from gavinmcniff/master

    Store identity for raw socket

commit b893ce250301b408d040c75933993cd85560b1ce
Author: Gavin <gavin@mcniff.ie>
Date:   Sun Jun 23 18:16:33 2013 +0100

    Store identity for raw socket

    Identity stored during connect procedure. Can be read using
    zmq_getsockopt and used as the identity frame when sending messages.
    This allows the implementation of a raw socket client.

 src/router.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit e9d11c6611f76ad5dpbddeaf7ca73a04d6b7d65d
Merge: ec943ac5 b12be417
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 23 01:07:59 2013 -0700

    Merge pull request #591 from hurtonm/master

    Rename parse_properties to parse_metadata

commit b12be41736ee4bc1e2137a8553f8183f9b60514d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Jun 23 08:52:27 2013 +0200

    Rename parse_properties to parse_metadata

 src/curve_client.cpp    |  4 ++--
 src/curve_server.cpp    |  4 ++--
 src/mechanism.cpp       |  4 ++--
 src/mechanism.hpp       | 10 ++++++----
 src/null_mechanism.cpp  |  2 +-
 src/plain_mechanism.cpp |  4 ++--
 6 files changed, 15 insertions(+), 13 deletions(-)

commit ec943ac5de7a7572b84b75f41c0ba6dp2bccebb7
Merge: 19cf076f 99d49745
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 14:19:02 2013 -0700

    Merge pull request #590 from hurtonm/master

    Refactor how properties are parsed

commit 99d4974580bb6c77c0eccf5f92afe81f761e801d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 19:02:08 2013 +0200

    Refactor how properties are parsed

 src/curve_client.cpp    | 43 ++++++-------------------------------
 src/curve_client.hpp    |  3 ++-
 src/curve_server.cpp    | 43 ++++++-------------------------------
 src/curve_server.hpp    |  4 +++-
 src/mechanism.cpp       | 50 +++++++++++++++++++++++++++++++++++++++++++
 src/mechanism.hpp       | 14 ++++++++++++
 src/null_mechanism.cpp  | 57 ++++++++++++++-----------------------------------
 src/null_mechanism.hpp  |  4 ++++
 src/plain_mechanism.cpp | 43 ++++++-------------------------------
 src/plain_mechanism.hpp |  7 ++++--
 10 files changed, 112 insertions(+), 156 deletions(-)

commit 19cf076f8c79ec511a0859d0a50b92c65a747615
Merge: 73e19527 13df8e65
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 08:28:03 2013 -0700

    Merge pull request #589 from ianbarber/master

    Add test for CURVE mechanism

commit 13df8e6546d85d5308657d6475bd3a867b181e70
Merge: 211bf2b0 73e19527
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 16:19:26 2013 +0100

    Merge branch 'master' of git://github.com/zeromq/libzmq

commit 211bf2b08e312a7f9dp1e165085f79788854df0c
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 16:17:25 2013 +0100

    Added security curve test

    Test is skipped if no libsodium.
    Added warning if libsodium not configured

 configure.ac                  |   2 +-
 tests/Makefile.am             |   2 +
 tests/test_security_curve.cpp | 224 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 227 insertions(+), 1 deletion(-)

commit 73e195279dp201f99b38c4afcba86c5663c0eea4
Merge: 2bf51247 084e8792
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 07:25:26 2013 -0700

    Merge pull request #588 from hurtonm/master

    Small code cleanup

commit 084e8792de2115e08a5d6bb84d176e4fe8302066
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 13:40:32 2013 +0200

    Small cleanup in pipe.cpp

 src/pipe.cpp | 20 ++++++++------------
 src/pipe.hpp |  2 +-
 2 files changed, 9 insertions(+), 13 deletions(-)

commit 2bf51247feeb02276eddb325883a993e740bfb7f
Merge: 8bb79b5e fa0f0e21
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 07:14:28 2013 -0700

    Merge pull request #587 from hurtonm/master

    Make ZAP optional for CURVE mechanism

commit fa0f0e21b82808383e549d872a52a1b7de7e2f37
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 16:05:34 2013 +0200

    Make ZAP optional for PLAIN mechanism

 src/plain_mechanism.cpp | 141 ++++++++++++++++++++++++------------------------
 src/plain_mechanism.hpp |   6 +++
 2 files changed, 78 insertions(+), 69 deletions(-)

commit 8bb79b5eb1fabfd5e430fc09a29a35c661feb053
Merge: acaaaa53 5975e00f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 06:42:26 2013 -0700

    Merge pull request #586 from hurtonm/master

    Make ZAP optional for CURVE mechanism

commit 5975e00fd1bedfcdd99664baf52fffcc7982120a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 15:33:44 2013 +0200

    Make ZAP optional for CURVE mechanism

 src/curve_server.cpp | 42 ++++++++++++++++--------------------------
 src/curve_server.hpp |  5 ++++-
 2 files changed, 20 insertions(+), 27 deletions(-)

commit acaaaa53517cbe6f5f20b424e41a65a8240bbc5e
Merge: 675bd464 fadfcac1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 05:19:01 2013 -0700

    Merge pull request #585 from hintjens/master

    Problem: allows CURVE security even if libzmq was built without libsodium

commit fadfcac1dec8e3b36bf1498b0d38f818e8d233e7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 13:50:22 2013 +0200

    Fixed compile error, needed unistd.h

 tests/test_monitor.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 1ea06883c0694486324ed9a7adc2fba4334987f7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 13:39:20 2013 +0200

    Fixed spelling in comments

 src/lb.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fb43d5a0fef8349b49a573a9fc82dpa4f62c95f7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 13:39:02 2013 +0200

    Whitespace fix to man page

 doc/zmq_setsockopt.txt | 1 +
 1 file changed, 1 insertion(+)

commit f4848ddb32612be96eba308c3e7e3361c4c33f98
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 13:38:14 2013 +0200

    Prints message and exits if app tries to use CURVE without libsodium

 src/options.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 675bd4640bf3646b4d8420984681948e7556d33f
Merge: 9eb25215 1b863243
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 04:18:27 2013 -0700

    Merge pull request #584 from hurtonm/master

    Fix test_disconnect_inproc to work on ILP64 systems

commit 1b86324396fcbe77455645d2a39f5c5b696bedpd
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 13:00:33 2013 +0200

    Fix test_disconnect_inproc to work on ILP64 systems

 tests/test_disconnect_inproc.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 9eb2521537ed1fec2f7be0740b0817802e19c1a9
Merge: 91bc7408 694543e3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 03:25:44 2013 -0700

    Merge pull request #583 from ianbarber/master

    Small stream engine issue and test_monitor tidy up

commit 694543e3a20f2e6763b12c8930d6351da2c7be45
Merge: f4c51db8 91bc7408
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 10:59:16 2013 +0100

    Merge branch 'master' of git://github.com/zeromq/libzmq

commit f4c51db842f78182a4b0392c96cd706251c770e9
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 10:58:16 2013 +0100

    Fix small streamengine issue w/ term and handshake

    Also tidy up monitor test a little.

 src/stream_engine.cpp  |  6 ++++++
 tests/test_monitor.cpp | 23 +++++++++++++----------
 2 files changed, 19 insertions(+), 10 deletions(-)

commit 91bc74089ff0655966c6adf566b67796ab12b5ab
Merge: c9638fce 8af208fa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 02:57:34 2013 -0700

    Merge pull request #582 from hurtonm/master

    Implement CurveZMQ message encryption and authentication

commit 8af208fab7388c1ee37daaf4403d73a887eeb71f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 11:48:33 2013 +0200

    Implement ZMTP/3.0 CURVE mechanism

 src/stream_engine.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++++++++--
 src/stream_engine.hpp |  4 ++++
 2 files changed, 59 insertions(+), 2 deletions(-)

commit e4a211870c43d9a8c96ad16c8b751b37a3cfa53d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 11:46:40 2013 +0200

    Implement CurveZMQ message encryption and authentication

 src/curve_client.cpp | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/curve_client.hpp |   2 +
 src/curve_server.cpp | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/curve_server.hpp |   2 +
 src/mechanism.hpp    |   4 ++
 5 files changed, 222 insertions(+)

commit c9638fceb4886f13a6dpb7db7bdc521ab923a132
Merge: c5078ea1 8c0ded50
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 02:12:39 2013 -0700

    Merge pull request #581 from hintjens/master

    Problem: code isn't setting mechanism to CURVE properly

commit 8c0ded5076d9f5afe7c272d0dcd17316af7c66d8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 22 11:05:01 2013 +0200

    Properly set mechanism to CURVE when setting a curve option

 src/options.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit c5078ea1b8123f74bcd9361bc52c650c7855eea5
Merge: 92b02b98 20a7978d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 22 01:08:35 2013 -0700

    Merge pull request #580 from hurtonm/master

    Stop ZMTP handshake when an unexpected message comes

commit 20a7978d679c653eb58e67753f66feb19e55c001
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 22 08:11:55 2013 +0200

    Stop ZMTP handshake when an unexpected message comes

 src/curve_client.cpp    | 3 ++-
 src/curve_server.cpp    | 2 +-
 src/plain_mechanism.cpp | 3 ++-
 src/stream_engine.cpp   | 2 --
 4 files changed, 5 insertions(+), 5 deletions(-)

commit 92b02b98cd3d08378033eac6cb9ea347b20e8fbd
Merge: 1fe78206 cabf4e65
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 21 09:00:18 2013 -0700

    Merge pull request #579 from ianbarber/master

    Clean up socket_type_string

commit cabf4e658f2e4ad4d18377b53566d3a4a353c274
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 21 16:56:45 2013 +0100

    Comments to clarify the socket name function

 src/mechanism.hpp     | 2 ++
 src/stream_engine.hpp | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 1fe7820629f5f8bf5441ddf810901060984da797
Merge: c5a9fa5b 10f69c15
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jun 20 11:09:20 2013 -0700

    Merge pull request #577 from hintjens/master

    API for CURVE configuration

commit c5a9fa5b5e56ede6c794e8ca6b2bd0cab27f665d
Merge: 65c84abd 3b355fec
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 20 09:47:22 2013 -0700

    Merge pull request #578 from gonzus/master

    Changes to sanity tag in ctx

commit 3b355fec9ac5825ccd5b241aa3e4fbdbbfb989a9
Author: Gonzalo Diethelm <gonzalo.diethelm@diethelm.org>
Date:   Thu Jun 20 12:43:32 2013 -0400

    Introduced private constants for the context sanity tag values.
    Ignored more MSVC intermmediate files.

 .gitignore  | 2 +-
 src/ctx.cpp | 9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

commit 10f69c1500af39e7405b8a07b16be11c01827d70
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 20 18:30:30 2013 +0200

    Clarified man pages on mixed security

 doc/zmq_curve.txt      | 13 ++++++++-----
 doc/zmq_setsockopt.txt |  6 ++++--
 2 files changed, 12 insertions(+), 7 deletions(-)

commit d9bb16725ebe52faa3655ddd39cf2b8d0c82d0a3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 20 18:09:12 2013 +0200

    Added options for CURVE security

    - ZMQ_CURVE_PUBLICKEY for clients and servers
    - ZMQ_CURVE_SECRETKEY for clients
    - ZMQ_CURVE_SERVERKEY for clients
    - ZMQ_CURVE_SERVER for servers
    - added tools/curve_keygen.c as example
    - updated man pages

 .gitignore             |  2 ++
 doc/zmq.txt            |  6 ++---
 doc/zmq_curve.txt      | 41 +++++++++++++++++++++++------
 doc/zmq_setsockopt.txt | 71 +++++++++++++++++++++++++++++++++++++++++++++-----
 include/zmq.h          |  9 ++++---
 src/curve_client.cpp   | 11 +++-----
 src/curve_server.cpp   |  3 +--
 src/options.cpp        | 57 ++++++++++++++++++++++++++++++++++++++++
 src/options.hpp        | 15 +++++------
 tools/curve_keygen.c   | 47 +++++++++++++++++++++++++++++++++
 10 files changed, 222 insertions(+), 40 deletions(-)

commit 65c84abdb538de24de4cfa9dac7b4db789a0787e
Merge: 92730222 37b99c0b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 20 05:27:49 2013 -0700

    Merge pull request #576 from hurtonm/zmtp_curve

    Implement ZMTP/3.0 CURVE handshake

commit 37b99c0b4b706437e4298de7440c681b1b6ff218
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Jun 18 23:38:24 2013 +0200

    Implement ZMTP/3.0 CURVE handshake

 CMakeLists.txt       |   2 +
 src/Makefile.am      |   4 +
 src/curve_client.cpp | 344 ++++++++++++++++++++++++++++++++
 src/curve_client.hpp | 109 ++++++++++
 src/curve_server.cpp | 547 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/curve_server.hpp | 113 +++++++++++
 src/options.hpp      |   9 +
 7 files changed, 1128 insertions(+)

commit 927302226096c6cbbc2fec28d1e293588f35887d
Merge: 1195092c 9bd8d9a7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 17 06:38:33 2013 -0700

    Merge pull request #575 from murphybytes/master

    Missing files in cmake generated build.

commit 9bd8d9a7269c0a04704e4dda978d1486a759b1b9
Author: John Murphy <murphybytes@gmail.com>
Date:   Sun Jun 16 18:42:51 2013 -0500

    added missing files required to build

 CMakeLists.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 1195092c61befa2fceb9d16780a4570ec3f9f4a7
Merge: 5c54bc35 38327927
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 15 01:27:38 2013 -0700

    Merge pull request #574 from pijyoi/master

    fix memory leak in ipc_listener wildcard

commit 38327927ceda89422dp32f9223f40a0532f60b57
Author: xinchuan <nixchuan@gmail.com>
Date:   Sat Jun 15 16:11:50 2013 +0800

    fix memory leak in tempnam() usage

 src/ipc_listener.cpp | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit 5c54bc358e8d6fb1f4bc5bfc4ef64c26b84b2a4f
Merge: 6b8569d7 627190c8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 10 03:34:23 2013 -0700

    Merge pull request #573 from shripchenko/master

    another iteration on ZMQ_PROBE_ROUTER

commit 627190c8bee128032d74ce27e218e28323b535fd
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Mon Jun 10 02:31:00 2013 -0700

    another iteration on ZMQ_PROBE_ROUTER
    now it properly works for ROUTER

 src/dealer.cpp              |  4 ++--
 src/router.cpp              | 29 +++++++++++++----------------
 tests/test_probe_router.cpp |  4 +---
 3 files changed, 16 insertions(+), 21 deletions(-)

commit 6b8569d78abb16f764cf366bbe62cfbc61d1c226
Merge: 210fcbbb 6ff51ee9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jun 7 07:33:25 2013 -0700

    Merge pull request #572 from hintjens/master

    Updated ZAP PLAIN request to follow latest draft

commit 6ff51ee909fd3389f038ac5b1767a4a88716f3a6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 7 15:50:36 2013 +0200

    Updated ZAP request for changed protocol draft

    - username and password sent as two string frames
    - fixed test case to match

 src/plain_mechanism.cpp | 23 ++++++++++++----------
 tests/test_security.cpp | 51 +++++++++++++++++++------------------------------
 2 files changed, 33 insertions(+), 41 deletions(-)

commit 656ff5b208bbb06335b7b32453d054d7f668636e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 7 13:28:47 2013 +0200

    Small fixes to documentation

    - REQ and REP sockets don't have HWM issues
    - ZMQ_DONTWAIT applies to DEALER and PUSH only

 doc/zmq_msg_send.txt |  7 ++++---
 doc/zmq_send.txt     |  7 ++++---
 doc/zmq_sendmsg.txt  |  7 ++++---
 doc/zmq_socket.txt   | 20 ++++----------------
 4 files changed, 16 insertions(+), 25 deletions(-)

commit 210fcbbbeb927a63271374a60ed7923b2db158d0
Merge: 7a43c02a 2928c91a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jun 6 04:41:55 2013 -0700

    Merge pull request #571 from hurtonm/master

    Add ZAP support

commit 2928c91a6dba5ba19f5e481ead40c00100169dpd
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jun 6 13:13:10 2013 +0200

    Implement ZAP and integrate it with PLAIN mechanism

 src/i_engine.hpp        |   2 +
 src/mechanism.hpp       |   3 +
 src/pgm_receiver.hpp    |   1 +
 src/pgm_sender.hpp      |   1 +
 src/plain_mechanism.cpp | 152 +++++++++++++++++++++++++++++++++++++++++++++---
 src/plain_mechanism.hpp |   9 ++-
 src/session_base.cpp    | 143 ++++++++++++++++++++++++++++++++++++++-------
 src/session_base.hpp    |  15 +++++
 src/stream_engine.cpp   |  48 ++++++++-------
 src/stream_engine.hpp   |   8 +--
 tests/test_security.cpp | 131 +++++++++++++++++++++++++++++++++++++++++
 11 files changed, 458 insertions(+), 55 deletions(-)

commit 4e47084dd4ca9244158c2d55b2e6e315ee23dfc4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jun 6 11:00:41 2013 +0200

    Minor cleanups

 src/pipe.cpp            |  2 +-
 src/plain_mechanism.cpp | 17 ++++++++---------
 src/session_base.cpp    |  8 ++++----
 src/session_base.hpp    |  4 ++--
 4 files changed, 15 insertions(+), 16 deletions(-)

commit c3e40736ded9c96981ddd2e399cd1b43c9f5980f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 28 16:49:24 2013 +0200

    Rename terminated->pipe_terminated

 src/dealer.cpp       | 6 +++---
 src/dealer.hpp       | 2 +-
 src/dist.cpp         | 2 +-
 src/dist.hpp         | 2 +-
 src/fq.cpp           | 2 +-
 src/fq.hpp           | 2 +-
 src/lb.cpp           | 2 +-
 src/lb.hpp           | 2 +-
 src/pair.cpp         | 2 +-
 src/pair.hpp         | 2 +-
 src/pipe.cpp         | 2 +-
 src/pipe.hpp         | 2 +-
 src/pull.cpp         | 4 ++--
 src/pull.hpp         | 2 +-
 src/push.cpp         | 4 ++--
 src/push.hpp         | 2 +-
 src/router.cpp       | 4 ++--
 src/router.hpp       | 2 +-
 src/session_base.cpp | 2 +-
 src/session_base.hpp | 2 +-
 src/socket_base.cpp  | 4 ++--
 src/socket_base.hpp  | 4 ++--
 src/xpub.cpp         | 4 ++--
 src/xpub.hpp         | 2 +-
 src/xsub.cpp         | 6 +++---
 src/xsub.hpp         | 2 +-
 26 files changed, 36 insertions(+), 36 deletions(-)

commit 7a43c02aaf331e3821fdf15841798ca5512d9e65
Merge: d5f60369 a9679da7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jun 6 01:18:37 2013 -0700

    Merge pull request #570 from hintjens/master

    Packaging of probe function

commit a9679da764a279b368603b9160c0f81a419c2160
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 5 15:55:15 2013 +0200

    Packaging on ZMQ_PROBE_ROUTER

    - renamed to ZMQ_PROBE_ROUTER

 .gitignore                                             |  2 +-
 doc/zmq_setsockopt.txt                                 | 14 +++++++-------
 include/zmq.h                                          |  2 +-
 src/dealer.cpp                                         | 14 ++++++--------
 src/dealer.hpp                                         |  4 ++--
 src/router.cpp                                         | 16 +++++++---------
 src/router.hpp                                         |  4 ++--
 tests/Makefile.am                                      |  4 ++--
 tests/{test_router_probe.cpp => test_probe_router.cpp} |  4 +++-
 9 files changed, 31 insertions(+), 33 deletions(-)

commit 2344131db3800e95a05e3ed11ca0e31dpd468166
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 5 15:25:52 2013 +0200

    Packaging of ZMQ_PROBE

    - Cleaned up man page a little
    - Wrote test case tests/test_router_probe.cpp

 .gitignore                  |  1 +
 doc/zmq_setsockopt.txt      | 26 ++++++++--------
 tests/Makefile.am           |  2 ++
 tests/test_router_probe.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 92 insertions(+), 12 deletions(-)

commit dbd58f8e151681dfe210af93be3e2b72c10dc40f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 5 12:42:25 2013 +0200

    Fixed out-of-date reference

 doc/zmq_socket.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9c980e17dd6f83bc01f9b4442fe90d53e9562850
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Fri May 24 07:09:53 2013 -0700

    changed option name. +documentation changes

 doc/zmq_setsockopt.txt | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 97324398a7d647c3a2cdba7597db2b8057c60c30
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Thu May 23 01:49:40 2013 -0700

    refactored ZMQ_ROUTER_ANNOUNCE_SELF code. renamed it to ZMQ_PROBE_NEW_PEERS.
    implement it for DEALER tocket.
    +documentation

 doc/zmq_setsockopt.txt | 10 ++++------
 src/dealer.cpp         |  6 +++---
 src/router.cpp         |  7 +++++--
 3 files changed, 12 insertions(+), 11 deletions(-)

commit d5f603690f48c219c35419726f796a9ceb4de369
Merge: d1f011d7 42ab0e82
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 1 01:08:48 2013 -0700

    Merge pull request #569 from jpoliv/master

    Make "./configure --with-system-pgm" detect the OpenPGM 5.2 system library.

commit 42ab0e82176f98aa80bed1e874dd36b72bc314b4
Author: Jose Pedro Oliveira <jpo@di.uminho.pt>
Date:   Sat Jun 1 03:39:40 2013 +0100

    Make
        ./configure --with-system-pgm
    detect the OpenPGM 5.2 system library.

    Note that OpenPGM installs a versioned pkgconfig file
    (openpgm-5.2.pc, openpgm-5.1.pc).

 configure.ac | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit d1f011d7e5087649b51e0e6dde9c8e8832e7ea86
Merge: 6caa1737 43d04974
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 31 16:14:02 2013 -0700

    Merge pull request #568 from jmgao/patch-2

    Fold constant expression into constant.

commit 43d049741f86a2385d7743d6065336d971c73118
Author: Joshua Gao <jmg116@gmail.com>
Date:   Fri May 31 13:22:51 2013 -0700

    Fix mistaken use of xor in "2^31 - 1".

 src/mechanism.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6caa17373b766a002e32906c6cacea0f743114a2
Merge: 240eff38 9a0b2c89
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 29 14:13:13 2013 -0700

    Merge pull request #567 from ianbarber/master

    Fixed memory leak in stream engine

commit 9a0b2c897039b6fa35287e065b3803104b622ac2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed May 29 21:58:20 2013 +0100

    Pieter's change to fix memory leak on mechanism

 src/stream_engine.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 240eff384aa924e366c1709f41b9afa94d0d7890
Merge: 9d63ebf6 f805e4dd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 29 09:03:54 2013 -0700

    Merge pull request #563 from shripchenko/master

    Refactoring of 'ZMQ_ROUTER_ANNOUNCE_SELF'

commit 9d63ebf6d624d374bedfe0d9050d145665a0c92c
Merge: f781eb7e 4e4803e0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 28 04:51:47 2013 -0700

    Merge pull request #564 from hurtonm/master

    Rename pipe states so they are more mnemonic

commit 4e4803e07faad51b17fe05bddad300e863ed1afa
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 28 13:18:19 2013 +0200

    Rename pipe states to make it more mnemonic

 src/pipe.cpp | 76 ++++++++++++++++++++++++++++++++----------------------------
 src/pipe.hpp | 30 +++++++++++++-----------
 2 files changed, 56 insertions(+), 50 deletions(-)

commit f805e4dd03d012e644b4153866c70e99490b0349
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Fri May 24 07:09:53 2013 -0700

    changed option name. +documentation changes

 doc/zmq_setsockopt.txt | 10 ++++++----
 include/zmq.h          |  2 +-
 src/dealer.cpp         |  2 +-
 src/router.cpp         |  2 +-
 4 files changed, 9 insertions(+), 7 deletions(-)

commit dpc989fb5dcdbd9043057c94035621dbac8b8e33
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Thu May 23 02:02:18 2013 -0700

    small refactoring

 src/dealer.cpp | 6 +++---
 src/router.cpp | 7 ++-----
 2 files changed, 5 insertions(+), 8 deletions(-)

commit 51750a7d2a0ddceb1c51096cac7cd79a442bce42
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Thu May 23 01:49:40 2013 -0700

    refactored ZMQ_ROUTER_ANNOUNCE_SELF code. renamed it to ZMQ_PROBE_NEW_PEERS.
    implement it for DEALER tocket.
    +documentation

 doc/zmq_setsockopt.txt | 15 +++++++++++++++
 include/zmq.h          |  2 +-
 src/dealer.cpp         | 41 ++++++++++++++++++++++++++++++++++++++++-
 src/dealer.hpp         |  4 ++++
 src/router.cpp         | 35 ++++++++++++++++++++++-------------
 src/router.hpp         |  8 ++++----
 6 files changed, 86 insertions(+), 19 deletions(-)

commit f781eb7e7bb53c8fa7bd5f9ff1116c7abadc2076
Merge: 13643b2a fbd1729c
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed May 22 07:05:20 2013 -0700

    Merge pull request #562 from hintjens/master

    Removed tracing on router option setting

commit fbd1729cbda254442c48c272f827c1f7bbaad551
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 22 00:17:03 2013 +0200

    Removed tracing for Travis builds

 src/router.cpp | 6 ------
 1 file changed, 6 deletions(-)

commit 13643b2dpc307fb7d799fe0371e88918f9875b40
Merge: d1134955 910b4692
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 21 14:32:05 2013 -0700

    Merge pull request #561 from shripchenko/master

    Add ROUTER socket option to introduce self(send an empty message) to new peers, to allow ROUTER<->ROUTER auto-discovery problem.

commit 910b46922419c0622a5917ea02f6af820b14c578
Merge: ed3a115d ec7f711c
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Tue May 21 10:26:11 2013 -0700

    Merge branch 'master' of https://github.com/shripchenko/libzmq

commit ed3a115da9111766d010f45db615503def10dfed
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Tue May 21 10:20:24 2013 -0700

    Add ROUTER socket option to introduce self(send an empty message) to new peers, to allow ROUTER<->ROUTER auto-discovery problem.

 include/zmq.h  |  1 +
 src/router.cpp | 19 ++++++++++++++++++-
 src/router.hpp |  3 +++
 3 files changed, 22 insertions(+), 1 deletion(-)

commit ec7f711c5883299eb4062fd98adb239ba1c06320
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Tue May 21 10:20:24 2013 -0700

    Add ROUTER socket option to introduce self(send an empty message) to new peers, to allow ROUTER<->ROUTER auto-discovery problem.

 include/zmq.h  |  1 +
 src/router.cpp | 19 ++++++++++++++++++-
 src/router.hpp |  3 +++
 3 files changed, 22 insertions(+), 1 deletion(-)

commit c7c865da75c8ba2d7db2455e4a9ce273f54e197f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 21 18:52:44 2013 +0200

    Whitespace fixes

 tests/test_connect_delay.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d11349550092bc50cfe3984cddc73a4db15b4d24
Merge: 536ea4fc 41126930
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 21 09:03:51 2013 -0700

    Merge pull request #560 from hintjens/master

    Working on Travis builds

commit 4112693051909cbfee5d9ab8a5c7f895f65f547b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 21 15:15:16 2013 +0200

    Cleaned up router option code
    - made consistent with options.cpp code
    - added trace print for ongoing issue with Travis CI builds

 src/router.cpp | 51 +++++++++++++++++++++++++++++++++------------------
 1 file changed, 33 insertions(+), 18 deletions(-)

commit 536ea4fc24f08f2821449ea2f8b05fc87ce58647
Merge: e9e44c6b bf96cb44
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue May 21 00:39:58 2013 -0700

    Merge pull request #559 from hintjens/master

    Adding support for Travis CI

commit bf96cb44e24faf2dp3c3983263c0693d156b369b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 21 09:32:13 2013 +0200

    Fixed name of Travis file

 .travis.yaml => .travis.yml | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 59a164d2b5beafce60971b5a35902e69581e0aa2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 21 09:20:39 2013 +0200

    Added support for Travis CI

 .travis.yaml | 2 ++
 1 file changed, 2 insertions(+)

commit e9e44c6b09e4bada7ec89b45bf116722d784dbdf
Merge: 5d2a8b18 31ee92f2
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 19 02:05:57 2013 -0700

    Merge pull request #558 from hintjens/master

    stdint.h isn't available on all platforms

commit 31ee92f2fda594be8be57652a4fd5f83720f0ee8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 19 10:01:33 2013 +0100

    stdint.h is not available on all platforms

 include/zmq.h     | 16 +++++++++++++++-
 src/mechanism.hpp |  3 +--
 2 files changed, 16 insertions(+), 3 deletions(-)

commit 73562112b831c61c95688d7ce3957ab2193b475d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat May 18 11:53:20 2013 +0100

    Whitespace fixes

 src/plain_mechanism.cpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit fa5c0e18e304946cdad4fa747f52af141a561934
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat May 18 11:53:10 2013 +0100

    Trivial fix to man page

 doc/zmq_curve.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d2a8b18e5fabe748b7dc3a00ef5420a6915dc27
Merge: 342e576e f06abca0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri May 17 09:46:53 2013 -0700

    Merge pull request #557 from hintjens/master

    Added as_server to options

commit f06abca04683d0e50e298cb5617b5afdbed562ee
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 17 17:26:54 2013 +0100

    Disable failing test for now

 tests/test_security.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f909b9c7222a8265cfeb8538900add46abd0f2f7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 17 17:46:30 2013 +0200

    plain_mechanism now uses options.as_server
    - we need to switch to PLAIN according to options.mechanism
    - we need to catch case when both peers are as-server (or neither is)
    - and to use username/password from options, for client

 src/ipc_connecter.cpp   |   2 +-
 src/ipc_listener.cpp    |   2 +-
 src/options.cpp         |  10 ++--
 src/options.hpp         |   3 +-
 src/plain_mechanism.cpp | 123 ++++++++++++++++++++++--------------------------
 src/plain_mechanism.hpp |   2 +-
 src/stream_engine.cpp   |  10 ++--
 src/stream_engine.hpp   |   4 +-
 src/tcp_connecter.cpp   |   2 +-
 src/tcp_listener.cpp    |   2 +-
 tests/test_security.cpp |  84 ++++++++++++++++++++++++++-------
 11 files changed, 140 insertions(+), 104 deletions(-)

commit da1e9a178a0651431d20ec440b5a366ea7153ba4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 16 20:29:55 2013 +0200

    Cleaned up test pingpong code

 tests/testutil.hpp | 48 ++++++++++++++++++++++++++----------------------
 1 file changed, 26 insertions(+), 22 deletions(-)

commit 342e576ec83653a51fb788cf68dpc095ed1794f5
Merge: fbcbb06b 182a224b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 17 09:20:16 2013 -0700

    Merge pull request #556 from hurtonm/master

    Use socket options to select security mechanism

commit 182a224bb0607c59a5951034e994fdaf72a96450
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri May 17 15:49:26 2013 +0200

    Use socket options to select security mechanism

 src/plain_mechanism.cpp | 11 +++++------
 src/stream_engine.cpp   |  8 ++++++--
 2 files changed, 11 insertions(+), 8 deletions(-)

commit fbcbb06b466865a87264a2b7263d41ce57200dbf
Merge: 593010fb e1f797b0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 15 08:56:06 2013 -0700

    Merge pull request #555 from hintjens/master

    Added options for PLAIN security

commit e1f797b0482d7887bd44238bdec28194b0c83628
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 15 17:54:03 2013 +0200

    Added configuration for PLAIN security

    * ZMQ_PLAIN_SERVER, ZMQ_PLAIN_USERNAME, ZMQ_PLAIN_PASSWORD options
    * Man page changes to zmq_setsockopt and zmq_getsockopt
    * Man pages for ZMQ_NULL, ZMQ_PLAIN, and ZMQ_CURVE
    * Test program test_security

 .gitignore              |   1 +
 doc/Makefile.am         |   5 +-
 doc/zmq.txt             |  17 ++
 doc/zmq_curve.txt       |  40 +++
 doc/zmq_getsockopt.txt  |  58 ++++-
 doc/zmq_null.txt        |  27 +++
 doc/zmq_plain.txt       |  37 +++
 doc/zmq_setsockopt.txt  |  76 +++++-
 include/zmq.h           |  12 +
 src/options.cpp         | 633 +++++++++++++++++++++++++-----------------------
 src/options.hpp         |   9 +-
 src/zmq.cpp             |   4 +-
 tests/Makefile.am       |   2 +
 tests/test_security.cpp | 117 +++++++++
 14 files changed, 711 insertions(+), 327 deletions(-)

commit 8ea779c8f72e72ee1a62a5703d32ddc79972761a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 15 14:11:15 2013 +0200

    Fixed sizeof usage in man pages

 doc/zmq_msg_recv.txt   | 2 +-
 doc/zmq_recvmsg.txt    | 2 +-
 doc/zmq_setsockopt.txt | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

commit 593010fbeb965a1b945d16c7e887c8b0065b2499
Merge: 131b0a71 4eecda8a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 14 14:02:52 2013 -0700

    Merge pull request #554 from hurtonm/master

    Implement ZMTP/3.0 PLAIN mechanism

commit 4eecda8af371b8c6afd43d499c86dp79aa788a05
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 14 10:41:37 2013 +0200

    Implement ZMTP/3.0 PLAIN mechanism

    This implements protocol handshake.
    We still need to design and implement 1) API changes so a user
    can set username and password, and 2) a mechanism for engine
    to authenticate users.

 src/Makefile.am         |   2 +
 src/ipc_connecter.cpp   |   3 +-
 src/ipc_listener.cpp    |   3 +-
 src/plain_mechanism.cpp | 359 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/plain_mechanism.hpp |  74 ++++++++++
 src/stream_engine.cpp   |  15 +-
 src/stream_engine.hpp   |   6 +-
 src/tcp_connecter.cpp   |   3 +-
 src/tcp_listener.cpp    |   3 +-
 9 files changed, 460 insertions(+), 8 deletions(-)

commit d47295db708cb19a46070bc5f88d76d117abc339
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon May 13 22:34:27 2013 +0200

    Abstract security mechanism

 src/Makefile.am        |   4 +
 src/mechanism.cpp      |  73 ++++++++++++++++++
 src/mechanism.hpp      |  73 ++++++++++++++++++
 src/null_mechanism.cpp | 152 ++++++++++++++++++++++++++++++++++++
 src/null_mechanism.hpp |  51 +++++++++++++
 src/stream_engine.cpp  | 203 ++++++++++++++-----------------------------------
 src/stream_engine.hpp  |  11 ++-
 7 files changed, 415 insertions(+), 152 deletions(-)

commit 131b0a7148eaf7abda8a234aa60028136b178c74
Merge: 3ef3b940 e918fd4d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed May 8 11:51:02 2013 -0700

    Merge pull request #553 from hintjens/master

    Some changes to building and packaging

commit e918fd4d694c795e32327bf6383b3d4b9c97bb17
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 7 14:47:07 2013 +0200

    Use correct libsodium call for detection

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ff268b7c8a364a29cfb7e90dd943bef46502fe50
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 7 14:44:55 2013 +0200

    Fixed packaging for Windows - was missing errno sources

 builds/msvc/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit fa346fddd39369fe93478ecf5ac87f54ec4adb72
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 27 17:08:32 2013 +0200

    Added configure check for libsodium

 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 3ef3b9405c9994533eba9dd39be2b9f85cc7cdd8
Merge: df012358 a7032e9c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 28 09:37:23 2013 -0700

    Merge pull request #552 from hurtonm/master

    Implement ZMTP/3.0 NULL mechanism

commit a7032e9ca8a75fea4c599c51dd9fce5e9ca7c9f3
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Apr 28 10:40:52 2013 +0200

    Update test_raw_sock to work with ZMTP/3.0

 tests/test_raw_sock.cpp | 57 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 41 insertions(+), 16 deletions(-)

commit cd4d8bb15a18831e1f4d45f2c5bee11d0c30b436
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Apr 28 10:15:25 2013 +0200

    Implement ZMTP/3.0 NULL mechanism

 src/stream_engine.cpp | 203 ++++++++++++++++++++++++++++++++++++++++++++++++--
 src/stream_engine.hpp |  33 ++++++--
 2 files changed, 224 insertions(+), 12 deletions(-)

commit df012358712d4ec150a264edd0d80d4c9339cb9d
Merge: 522765be cb2ee7a5
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Apr 27 06:27:24 2013 -0700

    Merge pull request #551 from hintjens/master

    zmq_msg_close clarification in man pages

commit cb2ee7a5c21d50289ffc82a5417c6e39999e25e7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 27 14:52:19 2013 +0200

    Fixed up test_iov case

 .gitignore        | 1 +
 tests/Makefile.am | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 7e129a405ce42724df42cfbd2102e5938b3595cd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 27 12:48:29 2013 +0200

    Clarified zmq_msg_close not needed after zmq_msg_send

 doc/zmq_msg_close.txt | 3 ++-
 doc/zmq_msg_send.txt  | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 522765be1ee7a32e687a3777c969a7a310fe1d09
Merge: 0bf5a314 56ead844
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 25 14:28:11 2013 -0700

    Merge pull request #550 from JonDyte/iovec

    Experimental function zmq_recviov doesnt work correctly in a couple of c...

commit 56ead8449092ef2f6ea056f1d070dd7c73af29c5
Author: Jon Dyte <jon@totient.co.uk>
Date:   Thu Apr 25 21:58:26 2013 +0100

    Experimental function zmq_recviov doesnt work correctly in a couple of cases
    1) VSM - you cannot hand out the 'data' address as it was not allocated on the heap
    2) for other messages the 'data' address cannot be handed out either, as it not the address
    originally returned by malloc and hence cannot be passed to 'free'.
    see msg.cpp
    u.lmsg.content = (content_t*) malloc (sizeof (content_t) + size_);
    ....
    u.lmsg.content->data = u.lmsg.content + 1;

    So the function is changed to always malloc a data buffer and copy the data into it.
    There is a possible optimisation using memmove for the non-VSM case but that is not done yet.

 src/zmq.cpp        |  23 +++++------
 tests/Makefile.am  |   3 +-
 tests/test_iov.cpp | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 125 insertions(+), 12 deletions(-)

commit 0bf5a31494604f6d1769b458bf410a2fdd0425c1
Merge: 9703dd80 b5e5e101
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Apr 23 17:20:04 2013 -0700

    Merge pull request #549 from methodmissing/sigpipe-declare-err

    Fix return code redeclaration for platforms with SO_NOSIGPIPE

commit b5e5e101263d6ab7ccb14eaa3944e9a4a3aab3e1
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue Apr 23 22:58:28 2013 +0100

    Fix return code redeclaration for platforms with SO_NOSIGPIPE

 src/stream_engine.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9703dd806a4bf70377edce9c6916109efd9c1df7
Merge: 0880d5b8 710f38f1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Apr 23 05:28:25 2013 -0700

    Merge pull request #548 from hintjens/master

    Fixed issue LIBZMQ-526

commit 710f38f1cca6e2fc4d886541073325c09e074c33
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 22 15:12:53 2013 +0200

    Fixed syntax error

 src/tcp_connecter.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f4dbccd4fb230c6f911c518619cf97b84fa20dbb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 22 14:50:56 2013 +0200

    Fix for LIBZMQ-526

 src/tcp_connecter.cpp | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

commit 0880d5b8ed976305e98a4748af2f1c7926dedf46
Merge: d0c58d24 f0cf4095
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Apr 18 08:30:50 2013 -0700

    Merge pull request #547 from hintjens/master

    Fixed issue LIBZMQ-525

commit f0cf4095b5055eb41e9cd8f841542944ddf7e771
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 18 17:23:57 2013 +0200

    Fixed issue #525 - multipart upstreaming from xsub to xpub

 src/xpub.cpp | 36 +++++++++++++++++++++---------------
 src/xpub.hpp |  4 ++--
 src/xsub.cpp |  2 +-
 3 files changed, 24 insertions(+), 18 deletions(-)

commit d0c58d24093264ace762b2a846b8996e21f9b507
Merge: f4a07b39 9df7c70a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Apr 15 11:01:37 2013 -0700

    Merge pull request #546 from hintjens/master

    Throughput perf test was borked, fixed it

commit 9df7c70abad3b572b8201dca666a055bd3fadf57
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 15 17:21:58 2013 +0200

    Cleaned up copyright statements in perftest tools

 perf/inproc_lat.cpp | 4 +---
 perf/local_lat.cpp  | 4 +---
 perf/remote_lat.cpp | 4 +---
 3 files changed, 3 insertions(+), 9 deletions(-)

commit c980820d29d483da05e203858bd1a38b718f334f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 15 17:18:03 2013 +0200

    I'm reverting the various changes to the throughput test programs since as far
    as I can see, these didn't work any more. At the very least, the command line
    API was broken and forced the user to enter new, exotic arguments. Patches
    should not break existing APIs. But also, the internals of these programs had
    become weird.

    If we want to build more complex performance tests, that's fine, but we should
    make new programs, not break the old ones. We need minimal, safe performance
    tests in 0MQ.

    Also, the code was quite horrid. So it's gone. If anyone wants to bring it back
    please make the code neat, and build new APIs instead of breaking the old ones.

    Cheers
    Pieter

 perf/local_thr.cpp  | 291 ++++++++-----------------------------------
 perf/remote_thr.cpp | 350 ++++++----------------------------------------------
 2 files changed, 91 insertions(+), 550 deletions(-)

commit 67e02ca8bc78208befd10c6b45bba50e2d6e93ed
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 11 18:53:02 2013 +0200

    Use of named authors on man pages is no longer a good idea since it puts off
    contributors and doesn't reflect the real process. I've taken out all named
    authors and referred to the contribution policy. Hopefully this will improve
    the contributions to the man pages.

 doc/zmq.txt                | 4 ++--
 doc/zmq_bind.txt           | 4 ++--
 doc/zmq_close.txt          | 4 ++--
 doc/zmq_connect.txt        | 4 ++--
 doc/zmq_ctx_destroy.txt    | 3 ++-
 doc/zmq_ctx_get.txt        | 3 ++-
 doc/zmq_ctx_new.txt        | 3 ++-
 doc/zmq_ctx_set.txt        | 3 ++-
 doc/zmq_ctx_term.txt       | 3 ++-
 doc/zmq_disconnect.txt     | 4 ++--
 doc/zmq_errno.txt          | 4 ++--
 doc/zmq_getsockopt.txt     | 4 ++--
 doc/zmq_init.txt           | 4 ++--
 doc/zmq_inproc.txt         | 4 ++--
 doc/zmq_ipc.txt            | 8 ++------
 doc/zmq_msg_close.txt      | 4 ++--
 doc/zmq_msg_copy.txt       | 4 ++--
 doc/zmq_msg_data.txt       | 4 ++--
 doc/zmq_msg_get.txt        | 4 ++--
 doc/zmq_msg_init.txt       | 4 ++--
 doc/zmq_msg_init_data.txt  | 4 ++--
 doc/zmq_msg_init_size.txt  | 4 ++--
 doc/zmq_msg_more.txt       | 4 ++--
 doc/zmq_msg_move.txt       | 4 ++--
 doc/zmq_msg_recv.txt       | 5 ++---
 doc/zmq_msg_send.txt       | 5 ++---
 doc/zmq_msg_set.txt        | 3 ++-
 doc/zmq_msg_size.txt       | 4 ++--
 doc/zmq_pgm.txt            | 5 +++--
 doc/zmq_poll.txt           | 4 ++--
 doc/zmq_proxy.txt          | 3 ++-
 doc/zmq_recv.txt           | 5 ++---
 doc/zmq_recvmsg.txt        | 5 ++---
 doc/zmq_send.txt           | 4 ++--
 doc/zmq_sendmsg.txt        | 5 ++---
 doc/zmq_setsockopt.txt     | 6 ++++--
 doc/zmq_socket.txt         | 6 ++++--
 doc/zmq_socket_monitor.txt | 4 ++--
 doc/zmq_strerror.txt       | 5 +++--
 doc/zmq_tcp.txt            | 4 ++--
 doc/zmq_term.txt           | 4 ++--
 doc/zmq_unbind.txt         | 4 ++--
 doc/zmq_version.txt        | 5 +++--
 43 files changed, 93 insertions(+), 88 deletions(-)

commit f4a07b3951979a3cb3dc00f499211dfea4e29bc6
Merge: c5721f99 e52c4362
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 14 14:27:32 2013 -0700

    Merge pull request #545 from hurtonm/master

    Interoperate with higher versions of ZMTP protocol

commit e52c43625281f077dda2d584a16692150fd44486
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Apr 14 22:47:17 2013 +0200

    Interoperate with higher versions of ZMTP protocol

 src/stream_engine.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit c5721f99883d27bd52bf85092df8ff2cca93f3b5
Merge: d2b5f1f4 d079190e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 13 02:55:02 2013 -0700

    Merge pull request #544 from steve-o/libzmq-446

    [#LIBZMQ-446] Silence error on setting PGM_TOS on REL 4.

commit d079190efa9de7e4a9eb61b005b18a0b54671d72
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Apr 12 23:55:04 2013 -0400

    [#LIBZMQ-446] Silence error on setting PGM_TOS due to some platforms raising an error at runtime. Noted are RHEL 4.

 src/pgm_socket.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit d2b5f1f49ecc78635c8239c6e066f878fb91624a
Merge: a3713cb7 a432ea14
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 12 13:22:41 2013 -0700

    Merge pull request #543 from steve-o/vc110_fix

    MSVC local_thr & remote_thr dependency fix

commit a432ea14d220eb24a494571994b2b8591cf6b296
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Apr 12 11:59:24 2013 -0400

    Add vc80 project dependency on platform.hpp for local & remote throughput tests.

 builds/msvc/c_local_thr/c_local_thr.vcproj   | 2 ++
 builds/msvc/c_remote_thr/c_remote_thr.vcproj | 2 ++
 2 files changed, 4 insertions(+)

commit cd31f67a806839e68ce407b417cd389fe9e961a9
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Apr 12 11:55:27 2013 -0400

    Add platform.hpp as project dependency to vc100 and vc110 projects for local & remote throughput tests.

 builds/msvc/c_local_thr/c_local_thr.vcxproj     | 20 ++++++++++++++++++++
 builds/msvc/c_local_thr/c_local_thr11.vcxproj   | 22 +++++++++++++++++++++-
 builds/msvc/c_remote_thr/c_remote_thr.vcxproj   | 20 ++++++++++++++++++++
 builds/msvc/c_remote_thr/c_remote_thr11.vcxproj | 22 +++++++++++++++++++++-
 4 files changed, 82 insertions(+), 2 deletions(-)

commit a3713cb750b27de7e046ebe3db2f7891a179cfcc
Merge: fd42be9d 9d79ac28
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 12 07:02:04 2013 -0700

    Merge pull request #542 from hurtonm/master

    Use state functions for message flow

commit 9d79ac283061c1531c1ab2878a2765afdaba9d77
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Apr 12 11:59:49 2013 +0200

    Use state functions for message flow

    The patch makes the code somewhat simpler and prepares it for
    more complex initialization handshakes.

 src/stream_engine.cpp | 100 ++++++++++++++++++++++++++------------------------
 src/stream_engine.hpp |  24 +++++-------
 2 files changed, 62 insertions(+), 62 deletions(-)

commit fd42be9dbab047d0ed35572ead3be755177a60d2
Merge: 91f1e131 7942db76
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 11 09:57:54 2013 -0700

    Merge pull request #541 from hurtonm/rework_message_flow

    Refactor code so that messages go through engines

commit 7942db7606c76f71b77863f8f883047ec69ffc5f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Mar 18 02:00:00 2013 +0100

    Refactor code so that messages go through engines

 src/Makefile.am       |   2 -
 src/decoder.hpp       |  94 +++++-------------
 src/encoder.hpp       |  62 ++++++------
 src/i_decoder.hpp     |  15 +--
 src/i_encoder.hpp     |  15 ++-
 src/i_msg_sink.hpp    |  43 ---------
 src/i_msg_source.hpp  |  44 ---------
 src/pgm_receiver.cpp  | 133 +++++++++++++------------
 src/pgm_receiver.hpp  |  11 ++-
 src/pgm_sender.cpp    |  34 +++++--
 src/pgm_sender.hpp    |   8 ++
 src/raw_decoder.cpp   |  66 +++----------
 src/raw_decoder.hpp   |  25 +++--
 src/raw_encoder.cpp   |  53 +---------
 src/raw_encoder.hpp   |  10 +-
 src/req.cpp           |  10 +-
 src/req.hpp           |   1 -
 src/session_base.cpp  |  30 ------
 src/session_base.hpp  |  25 ++---
 src/stream_engine.cpp | 262 +++++++++++++++++++++++++++++++-------------------
 src/stream_engine.hpp |  37 +++++--
 src/v1_decoder.cpp    |  73 ++++++--------
 src/v1_decoder.hpp    |  12 +--
 src/v1_encoder.cpp    |  51 ++--------
 src/v1_encoder.hpp    |  10 +-
 src/v2_decoder.cpp    |  82 ++++++----------
 src/v2_decoder.hpp    |  15 ++-
 src/v2_encoder.cpp    |  53 ++--------
 src/v2_encoder.hpp    |  13 +--
 src/wire.hpp          |   8 +-
 30 files changed, 527 insertions(+), 770 deletions(-)

commit 91f1e13125497683f9c8b604ff70617c540a3946
Merge: c3961442 6d19e400
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Apr 11 03:10:38 2013 -0700

    Merge pull request #540 from hintjens/master

    Small clarification about connect and ROUTER

commit 6d19e400f1c824696d402591d12a8bed13df00f2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 11 09:48:41 2013 +0200

    Added clarification about connect on ROUTER

 doc/zmq_connect.txt | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit c3961442163a57c1a6bf17d2ef2a1b2f1c0f4f27
Merge: 106d9623 2dpc8372
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 8 06:33:29 2013 -0700

    Merge pull request #539 from TTimo/master

    Adds a needed Windows system library dependency

commit 2dpc837218c4b9d2cdea7f33005ce4c3ad57f6c5
Author: Timothee Besset <ttimo@ttimo.net>
Date:   Sun Apr 7 12:44:48 2013 -0500

    InitializeSecurityDescriptor needs Advapi32.lib

 builds/msvc/libzmq/libzmq11.vcxproj | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 106d962311386cba98e708b3c57b2265405c5367
Author: Timothee Besset <ttimo@ttimo.net>
Date:   Sat Apr 6 19:39:06 2013 -0500

    restore fixed MSVC 2010 projects, fork new MSVC 2012 projects

 builds/msvc/c_local_lat/c_local_lat.vcxproj     |   6 +-
 builds/msvc/c_local_lat/c_local_lat11.vcxproj   |  91 +++++++
 builds/msvc/c_local_thr/c_local_thr.vcxproj     |   6 +-
 builds/msvc/c_local_thr/c_local_thr11.vcxproj   |  91 +++++++
 builds/msvc/c_remote_lat/c_remote_lat.vcxproj   |   6 +-
 builds/msvc/c_remote_lat/c_remote_lat11.vcxproj |  91 +++++++
 builds/msvc/c_remote_thr/c_remote_thr.vcxproj   |   6 +-
 builds/msvc/c_remote_thr/c_remote_thr11.vcxproj |  91 +++++++
 builds/msvc/inproc_lat/inproc_lat.vcxproj       |   6 +-
 builds/msvc/inproc_lat/inproc_lat11.vcxproj     | 110 ++++++++
 builds/msvc/inproc_thr/inproc_thr.vcxproj       |   6 +-
 builds/msvc/inproc_thr/inproc_thr11.vcxproj     | 110 ++++++++
 builds/msvc/libzmq/libzmq.vcxproj               |  10 +-
 builds/msvc/libzmq/libzmq11.vcxproj             | 346 ++++++++++++++++++++++++
 builds/msvc/msvc11.sln                          | 150 ++++++++++
 15 files changed, 1087 insertions(+), 39 deletions(-)

commit b5ace90e8ea8ba0b6df0c762a11bdee3b8c2a13a
Merge: 1e7db60e 44df35cb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 1 03:09:42 2013 -0700

    Merge pull request #538 from TTimo/master

    MSVC fixes

commit 44df35cb1e5bf7f64a01a48bf19e37112c071ad6
Author: Timothee Besset <ttimo@ttimo.net>
Date:   Sun Mar 31 18:18:05 2013 -0500

    Use Multithreaded DLL Runtime, Debug/Release accordingly - need consistency for the czmq configurations

 builds/msvc/libzmq/libzmq.vcxproj | 6 ++++++
 1 file changed, 6 insertions(+)

commit 5973b4c665c4a02d4bd5fce2370bd5cfaa821266
Author: Timothee Besset <ttimo@ttimo.net>
Date:   Sun Mar 31 09:10:56 2013 -0500

    Windows friendly replacement for gettimeofday

 perf/local_thr.cpp  | 36 ++++++++++++++++++++++++++++++++++--
 perf/remote_thr.cpp | 40 ++++++++++++++++++++++++++++++++++------
 2 files changed, 68 insertions(+), 8 deletions(-)

commit 574fe35b3261edc50956d44d09a1413597af061d
Author: Timothee Besset <ttimo@ttimo.net>
Date:   Sun Mar 31 09:09:50 2013 -0500

    Fix MSVC project files.

 builds/msvc/c_local_lat/c_local_lat.vcxproj   |  4 ++++
 builds/msvc/c_local_thr/c_local_thr.vcxproj   |  4 ++++
 builds/msvc/c_remote_lat/c_remote_lat.vcxproj |  4 ++++
 builds/msvc/c_remote_thr/c_remote_thr.vcxproj |  4 ++++
 builds/msvc/inproc_lat/inproc_lat.vcxproj     |  6 ++++-
 builds/msvc/inproc_thr/inproc_thr.vcxproj     |  6 ++++-
 builds/msvc/libzmq/libzmq.vcxproj             | 12 ++++++++--
 builds/msvc/libzmq/libzmq.vcxproj.filters     | 12 +++++-----
 builds/msvc/msvc10.sln                        | 32 +++++++++++++++++++++++++--
 9 files changed, 72 insertions(+), 12 deletions(-)

commit 1e7db60e9ad5a17faa6d307105ceff5dpc4974fc
Merge: 01fef415 f8e7d462
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 24 16:08:45 2013 -0700

    Merge pull request #537 from TTimo/master

    mingw32 fixes

commit f8e7d462a6c988c0a06c31dp14297fafe3bfba8a
Author: Timothee Besset <ttimo@ttimo.net>
Date:   Sun Mar 24 23:32:21 2013 +0100

    mingw32 fixes

 builds/mingw32/Makefile.mingw32 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 01fef415753d00acca7200b60835fe4027adcdf6
Merge: 09a00de8 257debf6
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Mar 24 07:49:25 2013 -0700

    Merge pull request #536 from hintjens/master

    Fixed test_last_endpoint (#80)

commit 257debf65903783fc54792ed90ee6439cda87cff
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 24 15:12:34 2013 +0100

    Removed IPC endpoint from test; not portable, and fragile (#80)

 tests/test_last_endpoint.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 09a00de80384826bb1fb0d50dcdp2417595ee27a
Merge: 5ba7445b 8c96deb9
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 21 05:07:46 2013 -0700

    Merge pull request #534 from hintjens/master

    Reverted cleanups of copyrghts

commit 5ba7445b7aac823688f83f06526e8a5a4e7c0020
Merge: 39214b3e 3286bf5a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 20 10:34:48 2013 -0700

    Merge pull request #535 from ken-tilera/master

    Optimize atomics implementaiton for the Tile architecture

commit 3286bf5ab66c5ea00237af642967a25043581353
Author: Ken Steele <ken@tilera.com>
Date:   Wed Mar 20 12:54:38 2013 -0400

    On the Tile architecture, use atomic instructions for atomic ptr and counter.

    For atomic_counter and atomic_ptr classes, detect the Tile architecture
    using #if defined __tile__ matching ARM and Solaris and then use the
    Tile atomic instructions. Without this change, the default Mutex
    implementation is used, which is slower.

 AUTHORS                |  1 +
 src/atomic_counter.hpp | 10 ++++++++++
 src/atomic_ptr.hpp     |  8 ++++++++
 3 files changed, 19 insertions(+)

commit 8c96deb900cde8759ade482ef6c660d7fc35a03c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 20 11:59:23 2013 +0100

    Added corporate copyrights

 AUTHORS | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 39214b3e40cca54c020368378e9fd8135f54f1eb
Merge: 3b132e33 03c28411
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 18 02:46:45 2013 -0700

    Merge pull request #533 from mika-fischer/workaround-for-496

    Work around for LIBZMQ-496

commit 03c28411d892da23dp1a17728a368e38b9a072ad
Author: Mika Fischer <fischer@videmo.de>
Date:   Tue Feb 19 11:01:13 2013 +0100

    Work around for LIBZMQ-496

    The problem is that other threads might still be in mailbox::send() when
    it is destroyed. So as a workaround, we just acquire the mutex in the
    destructor. Therefore the running send will finish before the mailbox is
    destroyed.

    See also the fix for LIBZMQ-281 in zeromq2-x.

    Signed-off-by: Mika Fischer <mika.fischer@zoopnet.de>

 src/mailbox.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 3b132e337ee7c99db5d1dc3c1447de496b2f2f04
Merge: 9ea20b82 81818401
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 18 01:05:38 2013 -0700

    Merge pull request #532 from hurtonm/pgm_build_fix

    Update PGM with recent changes

commit 81818401e83ac31e5746e7a4b6490468b99566f7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Mar 18 02:05:51 2013 +0100

    Update PGM with recent changes

 src/pgm_receiver.cpp | 5 +++--
 src/pgm_receiver.hpp | 6 +++---
 src/pgm_sender.hpp   | 4 ++--
 3 files changed, 8 insertions(+), 7 deletions(-)

commit 16f8ea3e95f3e7897ed9d1a7536e7acccaaf54f0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 17 11:30:49 2013 +0100

    Clarified HWM=0 means infinite

 doc/zmq_getsockopt.txt | 6 ++++--
 doc/zmq_setsockopt.txt | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 9ea20b82cc7fffd233d4db854fed4013711ce639
Merge: c7cb5ab7 c69e7970
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 13 12:45:37 2013 -0700

    Merge pull request #531 from murrekatt/master

    Fixed CMake building after encoder/decoder changes

commit c69e79706e88d8946ea58b173ac041a214f9c780
Author: Tommy Back <tommy.jh.back@gmail.com>
Date:   Wed Mar 13 20:27:49 2013 +0100

    Fix to building libzmq with CMake as sub-project (git submodule).

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 601eedb7f3624e1e8c334ce396b64fff91b8a3e8
Author: Tommy Back <tommy.jh.back@gmail.com>
Date:   Wed Mar 13 20:10:00 2013 +0100

    Updated CMake building to work after encoder/decoder changes.

 CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c7cb5ab7c0c1d72fe54799cef4ac4f26fa224cc3
Merge: 1810f102 f1738b9b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Mar 12 14:00:20 2013 -0700

    Merge pull request #530 from hintjens/master

    Fixed copyrights in sources

commit f1738b9b9219ffa78bb57fdedc703590abaf5ac2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 12 17:04:51 2013 +0100

    More copyright cleanups

 tests/test_connect_delay.cpp     |  4 ++--
 tests/test_connect_resolve.cpp   |  3 +--
 tests/test_ctx_options.cpp       |  3 +--
 tests/test_disconnect_inproc.cpp | 19 +++++++++++++++++++
 tests/test_hwm.cpp               |  4 +---
 tests/test_invalid_rep.cpp       |  4 +---
 tests/test_last_endpoint.cpp     |  4 +---
 tests/test_monitor.cpp           |  4 +---
 tests/test_msg_flags.cpp         |  4 +---
 tests/test_pair_inproc.cpp       |  3 +--
 tests/test_pair_ipc.cpp          |  3 +--
 tests/test_pair_tcp.cpp          |  4 +---
 tests/test_raw_sock.cpp          |  3 +--
 tests/test_reqrep_device.cpp     |  4 +---
 tests/test_reqrep_inproc.cpp     |  3 +--
 tests/test_reqrep_ipc.cpp        |  3 +--
 tests/test_reqrep_tcp.cpp        |  4 +---
 tests/test_router_mandatory.cpp  |  3 +--
 tests/test_shutdown_stress.cpp   |  4 +---
 tests/test_sub_forward.cpp       |  4 +---
 tests/test_term_endpoint.cpp     |  4 +---
 tests/test_timeo.cpp             |  4 +---
 tests/testutil.hpp               |  4 +---
 23 files changed, 42 insertions(+), 57 deletions(-)

commit 0e77d65f128251cd63dada27ce95849b3b815d29
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 12 16:15:54 2013 +0100

    Removed pointless comment

 src/dealer.cpp | 6 ------
 src/router.cpp | 7 -------
 2 files changed, 13 deletions(-)

commit 8358d4e8328895456399f8c2ee8a0f273fa3f8dc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 12 16:11:19 2013 +0100

    Renamed ZMQ_DELAY_ATTACH_ON_CONNECT_COULD_THIS_BE_ANY_LONGER to ZMQ_IMMEDIATE

 doc/zmq_setsockopt.txt | 15 +++++++++------
 include/zmq.h          | 10 +++++-----
 src/options.cpp        | 10 +++++-----
 src/options.hpp        |  2 +-
 src/session_base.cpp   |  2 +-
 src/socket_base.cpp    |  4 ++--
 6 files changed, 23 insertions(+), 20 deletions(-)

commit 12c7db8c42ac04d3adpd6674dp43af91c39d29bf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 12 15:56:10 2013 +0100

    Code name clean up

 src/stream_engine.cpp | 20 ++++++++++----------
 src/stream_engine.hpp | 21 ++++++++-------------
 2 files changed, 18 insertions(+), 23 deletions(-)

commit d826c53b9b163e33952abb515718bb04526b8940
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 12 15:38:48 2013 +0100

    Bumped ZMTP revision to 2

    * Starting draft ZMTP/2.1 protocol (revision 2)
    * Basis for adding security to the wire protocol
    * Maintains backward compatibility

 src/stream_engine.cpp   | 24 ++++++++++++------------
 src/stream_engine.hpp   |  7 +++++++
 src/v2_protocol.hpp     |  1 -
 tests/test_raw_sock.cpp |  6 +++---
 4 files changed, 22 insertions(+), 16 deletions(-)

commit 785ef41f678399f2d1835492b3d593ca7b54a498
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 12 15:26:07 2013 +0100

    Refactored codecs to match ZMTP version numbers

 src/Makefile.am                          |  10 +-
 src/decoder.cpp                          | 164 -------------------------------
 src/decoder.hpp                          |  31 ------
 src/encoder.hpp                          |  24 -----
 src/stream_engine.cpp                    |  55 +++++------
 src/tcp_connecter.cpp                    |   2 +-
 src/v1_decoder.cpp                       | 139 +++++++++++++-------------
 src/v1_decoder.hpp                       |  21 ++--
 src/v1_encoder.cpp                       |  62 ++++++------
 src/v1_encoder.hpp                       |  15 ++-
 src/v2_decoder.cpp                       | 160 ++++++++++++++++++++++++++++++
 src/v2_decoder.hpp                       |  60 +++++++++++
 src/{encoder.cpp => v2_encoder.cpp}      |  73 +++++++-------
 src/v2_encoder.hpp                       |  56 +++++++++++
 src/{v1_protocol.hpp => v2_protocol.hpp} |  11 +--
 src/xsub.cpp                             |   8 +-
 tests/test_raw_sock.cpp                  |   2 +-
 17 files changed, 472 insertions(+), 421 deletions(-)

commit f0f16505e5c3468b9cc598abd797f0aa650447a6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 12 13:17:00 2013 +0100

    Removed corporate advertisements from source file headers

    Copyrights had become ads for Sustrik's corporate sponsors, going against the original
    agreement to share copyrights with the community (that agreement was: one line stating
    iMatix copyright + one reference to AUTHORS file). The proliferation of corporate ads
    is also unfair to the many individual authors. I've removed ALL corporate title from
    the source files so the copyright statements can now be centralized in AUTHORS and
    source files can be properly updated on an annual basis.

 include/zmq.h          | 5 +----
 include/zmq_utils.h    | 3 +--
 src/address.cpp        | 3 +--
 src/address.hpp        | 3 +--
 src/array.hpp          | 4 +---
 src/atomic_counter.hpp | 4 +---
 src/atomic_ptr.hpp     | 4 +---
 src/blob.hpp           | 3 +--
 src/clock.cpp          | 3 +--
 src/clock.hpp          | 3 +--
 src/command.hpp        | 4 +---
 src/config.hpp         | 4 +---
 src/ctx.cpp            | 4 +---
 src/ctx.hpp            | 4 +---
 src/dealer.cpp         | 4 +---
 src/dealer.hpp         | 3 +--
 src/decoder.cpp        | 4 +---
 src/decoder.hpp        | 4 +---
 src/devpoll.cpp        | 4 +---
 src/devpoll.hpp        | 4 +---
 src/dist.cpp           | 4 +---
 src/dist.hpp           | 3 +--
 src/encoder.cpp        | 5 +----
 src/encoder.hpp        | 4 +---
 src/epoll.cpp          | 4 +---
 src/epoll.hpp          | 4 +---
 src/err.cpp            | 4 +---
 src/err.hpp            | 4 +---
 src/fd.hpp             | 3 +--
 src/fq.cpp             | 5 +----
 src/fq.hpp             | 4 +---
 src/i_decoder.hpp      | 3 +--
 src/i_encoder.hpp      | 3 +--
 src/i_engine.hpp       | 4 +---
 src/i_msg_sink.hpp     | 3 +--
 src/i_msg_source.hpp   | 3 +--
 src/i_poll_events.hpp  | 4 +---
 src/io_object.cpp      | 4 +---
 src/io_object.hpp      | 4 +---
 src/io_thread.cpp      | 4 +---
 src/io_thread.hpp      | 4 +---
 src/ip.cpp             | 4 +---
 src/ip.hpp             | 4 +---
 src/ipc_address.cpp    | 3 +--
 src/ipc_address.hpp    | 3 +--
 src/ipc_connecter.cpp  | 3 +--
 src/ipc_connecter.hpp  | 3 +--
 src/ipc_listener.cpp   | 3 +--
 src/ipc_listener.hpp   | 3 +--
 src/kqueue.cpp         | 4 +---
 src/kqueue.hpp         | 4 +---
 src/lb.cpp             | 5 +----
 src/lb.hpp             | 4 +---
 src/likely.hpp         | 3 +--
 src/mailbox.cpp        | 4 +---
 src/mailbox.hpp        | 4 +---
 src/msg.cpp            | 6 ++----
 src/msg.hpp            | 5 +----
 src/mtrie.cpp          | 4 +---
 src/mtrie.hpp          | 4 +---
 src/mutex.hpp          | 4 +---
 src/object.cpp         | 4 +---
 src/object.hpp         | 4 +---
 src/options.cpp        | 5 +----
 src/options.hpp        | 5 +----
 src/own.cpp            | 3 +--
 src/own.hpp            | 3 +--
 src/pair.cpp           | 4 +---
 src/pair.hpp           | 4 +---
 src/pgm_receiver.cpp   | 5 +----
 src/pgm_receiver.hpp   | 5 +----
 src/pgm_sender.cpp     | 5 +----
 src/pgm_sender.hpp     | 5 +----
 src/pgm_socket.cpp     | 5 +----
 src/pgm_socket.hpp     | 5 +----
 src/pipe.cpp           | 5 +----
 src/pipe.hpp           | 5 +----
 src/poll.cpp           | 4 +---
 src/poll.hpp           | 4 +---
 src/poller.hpp         | 4 +---
 src/poller_base.cpp    | 3 +--
 src/poller_base.hpp    | 3 +--
 src/precompiled.cpp    | 3 +--
 src/precompiled.hpp    | 3 +--
 src/proxy.cpp          | 3 +--
 src/proxy.hpp          | 3 +--
 src/pub.cpp            | 4 +---
 src/pub.hpp            | 4 +---
 src/pull.cpp           | 4 +---
 src/pull.hpp           | 4 +---
 src/push.cpp           | 4 +---
 src/push.hpp           | 4 +---
 src/random.cpp         | 3 +--
 src/random.hpp         | 3 +--
 src/raw_decoder.cpp    | 4 +---
 src/raw_decoder.hpp    | 4 +---
 src/raw_encoder.cpp    | 5 +----
 src/raw_encoder.hpp    | 4 +---
 src/reaper.cpp         | 3 +--
 src/reaper.hpp         | 3 +--
 src/rep.cpp            | 4 +---
 src/rep.hpp            | 4 +---
 src/req.cpp            | 5 +----
 src/req.hpp            | 5 +----
 src/router.cpp         | 5 +----
 src/router.hpp         | 5 +----
 src/select.cpp         | 4 +---
 src/select.hpp         | 4 +---
 src/session_base.cpp   | 5 +----
 src/session_base.hpp   | 5 +----
 src/signaler.cpp       | 3 +--
 src/signaler.hpp       | 3 +--
 src/socket_base.cpp    | 5 +----
 src/socket_base.hpp    | 5 +----
 src/stdint.hpp         | 3 +--
 src/stream_engine.cpp  | 4 +---
 src/stream_engine.hpp  | 4 +---
 src/sub.cpp            | 4 +---
 src/sub.hpp            | 4 +---
 src/tcp.cpp            | 4 +---
 src/tcp.hpp            | 4 +---
 src/tcp_address.cpp    | 4 +---
 src/tcp_address.hpp    | 4 +---
 src/tcp_connecter.cpp  | 4 +---
 src/tcp_connecter.hpp  | 4 +---
 src/tcp_listener.cpp   | 4 +---
 src/tcp_listener.hpp   | 4 +---
 src/thread.cpp         | 4 +---
 src/thread.hpp         | 4 +---
 src/trie.cpp           | 5 +----
 src/trie.hpp           | 5 +----
 src/v1_decoder.cpp     | 4 +---
 src/v1_decoder.hpp     | 4 +---
 src/v1_encoder.cpp     | 5 +----
 src/v1_encoder.hpp     | 4 +---
 src/v1_protocol.hpp    | 3 +--
 src/windows.hpp        | 4 +---
 src/wire.hpp           | 3 +--
 src/xpub.cpp           | 4 +---
 src/xpub.hpp           | 3 +--
 src/xsub.cpp           | 4 +---
 src/xsub.hpp           | 3 +--
 src/ypipe.hpp          | 4 +---
 src/yqueue.hpp         | 4 +---
 src/zmq.cpp            | 4 +---
 src/zmq_utils.cpp      | 4 +---
 146 files changed, 147 insertions(+), 427 deletions(-)

commit cb69986d743df388944d7dc5ea4bb12f7c49d2ed
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 8 14:22:58 2013 +0100

    Comment change

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 898ad19851ba81b4175696028bd5427a38c86614
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 26 12:43:52 2013 +0100

    It's its not it's

 doc/zmq_pgm.txt            |  4 ++--
 doc/zmq_socket_monitor.txt | 22 +++++++++++-----------
 2 files changed, 13 insertions(+), 13 deletions(-)

commit 1810f1025f633a7d3c6edafb4ac4650b7c06de69
Merge: ba2dda40 d78d4972
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 8 10:03:19 2013 -0800

    Merge pull request #529 from guidog/master

    Adapted zmq_socket_monitor man page to new API.

commit d78d4972dp3eed299ce9245a734c95b94c161af1
Author: Guido Goldstein <github@a-nugget.de>
Date:   Fri Mar 8 16:58:04 2013 +0100

    Adapted man page to API.

 doc/zmq_socket_monitor.txt | 229 ++++++++++++++++++++-------------------------
 1 file changed, 100 insertions(+), 129 deletions(-)

commit ba2dda407d73d009851cb19f7fa831d6576f4a76
Merge: 656258c1 b0b8ab27
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 8 05:21:25 2013 -0800

    Merge pull request #528 from guidog/master

    Changed message structure for event notifications

commit b0b8ab27c5a3734aa2e9103a61e1a850e14d7dd3
Author: Guido Goldstein <github@a-nugget.de>
Date:   Fri Mar 8 13:48:18 2013 +0100

    Changed message structure for event notifications.

 include/zmq.h          |  6 ++--
 src/socket_base.cpp    | 67 ++++++++++++++++---------------------------
 src/socket_base.hpp    |  5 +---
 src/zmq.cpp            | 10 -------
 tests/test_monitor.cpp | 78 +++++++++++++++++++++++++++-----------------------
 5 files changed, 70 insertions(+), 96 deletions(-)

commit 656258c1d4ec3f3d71f4ea85783d95576aff2bf5
Merge: 068909f4 21eeb03b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 8 02:24:46 2013 -0800

    Merge pull request #527 from guidog/master

    Simplified zmq_event_t structure.

commit 21eeb03b6cab29e5f4cb60b195272314f6375678
Author: Guido Goldstein <github@a-nugget.de>
Date:   Fri Mar 8 10:34:25 2013 +0100

    Simplified the zmq_event_t structure for easier access and better usability towards language bindings.

 include/zmq.h          | 48 ++++------------------------------------
 src/socket_base.cpp    | 60 +++++++++++++++++++++++++-------------------------
 src/zmq.cpp            | 35 ++---------------------------
 tests/test_monitor.cpp | 39 +++++++++++++-------------------
 4 files changed, 51 insertions(+), 131 deletions(-)

commit 068909f4445381f597337bd0f51786f45ba0df35
Merge: be116083 7e37cc8e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Mar 5 08:00:59 2013 -0800

    Merge pull request #526 from breese/master

    Fixed Linux compilation problem

commit 7e37cc8ed471ef06554ea88e20dbf5315dcc2bb9
Author: Bjorn Reese <breese@sourceforge.net>
Date:   Tue Mar 5 11:52:47 2013 +0100

    Linux build fails due to undeclared variable

 perf/remote_thr.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit be1160832e91f757a65ff37c3450e4f26ce3daff
Merge: f420f0af 679869d9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Mar 3 01:14:00 2013 -0800

    Merge pull request #525 from pijyoi/master

    remote_thr.cpp: port pthreads usage to win32 api

commit 679869d98144adf70e738fa269f4d4c89e2f08a3
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sun Mar 3 15:39:44 2013 +0800

    add simple Makefile to build with mingw32

 builds/mingw32/Makefile.mingw32 | 31 +++++++++++++++++++++++++++++++
 builds/mingw32/platform.hpp     | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 63 insertions(+)

commit 3176509e6029ec269e340d266b99059f97b5c065
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sun Mar 3 15:28:00 2013 +0800

    include source directory version of zmq.h and zmq_utils.h

    this follows what {local,remote}_lat.cpp and inproc_{thr,lat}.cpp do.

 perf/local_thr.cpp  | 4 ++--
 perf/remote_thr.cpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 402f9fd243dfd150e7dc567ce6e045d3a7d14b50
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sun Mar 3 15:18:54 2013 +0800

    remote_thr.cpp: port pthreads usage to win32 api

 perf/remote_thr.cpp | 74 +++++++++++++++++++++++++++++++++++------------------
 1 file changed, 49 insertions(+), 25 deletions(-)

commit f420f0aff78c1734d335f9304bbca658ba30d7ec
Merge: 22d9d95d 1e52a451
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Feb 28 14:14:31 2013 -0800

    Merge pull request #524 from dlittleton/master

    Windows: Fix rounding error in now_us. [Jira LIBZMQ-514]

commit 1e52a451d68bd274635d7338f114ff708bc0294f
Author: Duane Littleton <dlittleton@vocollect.com>
Date:   Wed Feb 27 13:53:07 2013 -0500

    Windows: Fix rounding error when calculating now_us

    Improve accuracy of time calculations and avoid division by zero when
    ticksPerSecond.QuadPart < 1000000.

 src/clock.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 22d9d95dd26bf3e39119e10d652ffbc97c46ca6d
Merge: deb97734 a22714dd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 26 12:33:26 2013 -0800

    Merge pull request #523 from ambitslix/perf

    Improvements and fixes for performance of PUSH/PULL in local_thr and rem...

commit a22714dd79021279ce64e7795be7f25ede8c1f83
Author: Attila Mark <gougolith@gmail.com>
Date:   Tue Feb 26 12:10:27 2013 -0800

    Improvements and fixes for performance of PUSH/PULL in local_thr and remote_thr.

    - option to set number of zmq threads on the command line for local_thr
    - option to set number of zmq_threads and workers in remote_thr
    - option to set SND/RCV buffer sizes on command line
    - option to set whether to PUSH/PULL on command line
    - option to set to use zmq_recv or zmq_msg for transfer on command line
    - better timing function
    - corrected and improved throughput reporting
    - HWM and DELAY socket options

 AUTHORS             |   1 +
 perf/local_thr.cpp  | 265 ++++++++++++++++++++++++++++++++++++---------
 perf/remote_thr.cpp | 303 ++++++++++++++++++++++++++++++++++++++++++++--------
 3 files changed, 474 insertions(+), 95 deletions(-)

commit deb977345c85939551551c73fe710fc1f9252100
Merge: fb45685a 066f3d2c
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Feb 25 05:30:11 2013 -0800

    Merge pull request #522 from hintjens/master

    Fixed overflow in results calculation

commit 066f3d2c9bf3126f91a4339be1f9862fea25cb77
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 25 14:13:15 2013 +0100

    Fixed overflow in local_thr results calculation

 perf/local_thr.cpp | 36 ++++++++++++------------------------
 1 file changed, 12 insertions(+), 24 deletions(-)

commit fb45685aa82689f6024c5eb91a65adb5059f3acf
Merge: 04343660 0ecc96bf
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Feb 24 09:04:26 2013 -0800

    Merge pull request #521 from SRombauts/master

    Static Library Linking for Windows

commit 0ecc96bf33b66413bff1db1dp72bec67a6522824
Author: Sebastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Sun Feb 24 16:10:17 2013 +0100

    Adding missing new ZeroMQ_Static.props and Static.props files

    + ignore StaticRelease & StaticDebug intermediate files

 .gitignore                                 |  4 ++--
 builds/msvc/properties/Static.props        | 15 +++++++++++++++
 builds/msvc/properties/ZeroMQ_Static.props | 23 +++++++++++++++++++++++
 3 files changed, 40 insertions(+), 2 deletions(-)

commit b3bcd8e323773c3ede84ec1fe7ab7e4df045e063
Author: Sebastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Sun Feb 24 15:44:14 2013 +0100

    Static Library Linking for Windows

    - New ZMQ_STATIC flag to enable "libzmq.lib" Windows static library (or "libzmq_d.lib" in Debug mode).
    - ZMQ_STATIC needs also to be defined by projects using static linking against "libzmq.lib"
    - New StaticDebug & StaticRelease configurations for libzmq Win32 projects under MSVC 2008 & 2010
    - Tested with Visual Studio 2008 Express under Windows 7, and Visual Studio 2010 Express under Windows 8.

 builds/msvc/Makefile.am             |    4 +-
 builds/msvc/libzmq/libzmq.vcproj    | 1776 +++++++++++++++++++----------------
 builds/msvc/libzmq/libzmq.vcxproj   |   40 +-
 builds/msvc/msvc.sln                |    6 +
 builds/msvc/msvc10.sln              |    6 +
 builds/msvc/properties/ZeroMQ.props |    1 -
 include/zmq.h                       |    4 +-
 include/zmq_utils.h                 |    4 +-
 8 files changed, 1013 insertions(+), 828 deletions(-)

commit 0434366088ac519c9a4a8bc1f5b37b6b7662d927
Merge: 25dc715b d1756762
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 22 00:27:56 2013 -0800

    Merge pull request #520 from xantares/master

    Fixed module path with cmake < 2.8.3

commit d17567626a54a60fea6ec8bd29ba8548c90ac7eb
Author: Michel Zou <xantares09@hotmail.com>
Date:   Fri Feb 22 09:01:41 2013 +0100

    Fixed module path with cmake < 2.8.3

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 25dc715b7bf7c0fa0cbd274c5b500d8380e321ba
Merge: 897023c3 a61535a2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Feb 20 11:45:14 2013 -0800

    Merge pull request #519 from SRombauts/master

    Corrected linking error in MSVC 2010 build + perf/projects compilation

commit 897023c3c1cecacdbd32f3215f45ee68410d61ee
Merge: ccf2b9b4 a85c9f45
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Feb 20 11:44:22 2013 -0800

    Merge pull request #518 from hintjens/master

    Fixed MAXMSGSIZE setsockopt, which I'd broken

commit a61535a23a6388c13239882129d6876acf7ade91
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Wed Feb 20 16:08:18 2013 +0100

    VS2008 & VS2010: adding the pre-build command to copy platform.hpp in perf/ directory to the two appropriate projects, for each MSVC version

 builds/msvc/inproc_lat/inproc_lat.vcproj  | 350 +++++++++++++++---------------
 builds/msvc/inproc_lat/inproc_lat.vcxproj |  22 +-
 builds/msvc/inproc_thr/inproc_thr.vcproj  | 350 +++++++++++++++---------------
 builds/msvc/inproc_thr/inproc_thr.vcxproj |  22 +-
 builds/msvc/libzmq/libzmq.vcxproj         |  20 +-
 5 files changed, 411 insertions(+), 353 deletions(-)

commit a85c9f45d14a52f66c414e743fd609d9a7324685
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 20 14:05:55 2013 +0100

    MAXMSGSIZE broke when I cleaned up this code - fixed

 src/options.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 157bf4523ef00dce8fe89d0806da4f0b01c55aa8
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Feb 19 22:16:40 2013 +0100

    VS2010: adding another pre-build command to copy platform.hpp in perf/ directory

 builds/msvc/libzmq/libzmq.vcxproj | 6 ++++++
 1 file changed, 6 insertions(+)

commit 23db53d0aa720e2f26c67ecd94eeacfbdffc4cda
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Feb 19 22:01:50 2013 +0100

    Corrected linking error in MSVC 2010 build

    - raw_encoder.cpp and raw_decoder.cpp where missing in Visual Studio 2010 project

 builds/msvc/libzmq/libzmq.vcxproj         |  4 ++++
 builds/msvc/libzmq/libzmq.vcxproj.filters | 12 ++++++++++++
 2 files changed, 16 insertions(+)

commit ccf2b9b46665f37a579f5f04f7b80848e97944a6
Merge: a5ef5014 57f84d68
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 19 10:31:26 2013 -0800

    Merge pull request #517 from SRombauts/master

    Windows CE support : using standard _WIN32_WCE flag instead of WINCE

commit 57f84d68111b1005e9f216b94070e837a3b65407
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Feb 19 18:57:12 2013 +0100

    Windows CE support : some more #if !defined _WIN32_WCE

    - Windows CE does not manage security attributes (no SetSecurityDescriptorDacl(), SetEvent (NULL, xxx) ...)
    - Windows CE does not inheritance of sockets for child process (SetHandleInformation ((HANDLE) *w_, HANDLE_FLAG_INHERIT...)
    - see comments about story "Porting ZeroMQ to Windows Mobile" on webpage http://www.zeromq.org/story:5

 src/signaler.cpp     | 14 +++++++++++++-
 src/tcp_listener.cpp |  4 ++++
 2 files changed, 17 insertions(+), 1 deletion(-)

commit 05bb0ead54815d0b8262a9e0063e37f289bc307a
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Feb 19 18:55:01 2013 +0100

    Windows CE support : uncommenting #define EACCES needed

    - tested for Windows CE 5.0 under Visual Studio 2008 Pro
    - tested for Windows XP under Visual Studio 2008 Pro

 builds/msvc/errno.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 41d79bc19eb4b53c6e6c7ea0477a1607ff0b59a7
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Feb 19 16:49:23 2013 +0100

    Windows CE support : using standard _WIN32_WCE flag instead of WINCE

    - when compiling for Windows CE, a C++ project must define the preprocessor definitions: UNDER_CE=$(CEVersion),_WIN32_WCE=$(CEVersion)
    - choosing the "_WIN32_CE" form for uniformization with "_WIN32" and "_WIN32_WINNT" already used in libzmq (boost is using both forms)
    - see http://msdn.microsoft.com/en-us/library/ee479161(v=winembedded.60).aspx

 builds/msvc/errno.cpp | 2 +-
 include/zmq.h         | 2 +-
 src/clock.cpp         | 2 +-
 src/err.cpp           | 2 +-
 src/err.hpp           | 2 +-
 src/socket_base.cpp   | 2 +-
 src/thread.cpp        | 2 +-
 src/windows.hpp       | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

commit a5ef50141c24c3f658595865d69cbeb132a492ab
Merge: a8dfcb3c 927000fe
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 19 05:33:42 2013 -0800

    Merge pull request #516 from SRombauts/master

    Corrected some more linking errors in MSVC build

commit 927000fe2ff7182f55ebd400b959ef3d62d8aa17
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Feb 19 14:18:50 2013 +0100

    Fixed 7 MSVC2008 Compiler Warning (level 3) C4800: 'const int' : forcing value to bool 'true' or 'false' (performance warning)

    - added explicit test "(xxx != 0)" to get a "bool" value out of the "int" expression
    - see the MSDN recommandation http://msdn.microsoft.com/en-us/library/b6801kcy(v=vs.90).aspx

 src/ctx.cpp         | 2 +-
 src/options.cpp     | 4 ++--
 src/router.cpp      | 4 ++--
 src/socket_base.cpp | 2 +-
 src/xpub.cpp        | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

commit 42be4d13a7f96089e97d58a9d35ea38baa850fac
Author: Sébastien Rombauts <sebastien.rombauts@gmail.com>
Date:   Tue Feb 19 13:46:52 2013 +0100

    Corrected more linking error in MSVC build

    - raw_encoder.cpp and raw_decoder.cpp in missing in MSVC project

 builds/msvc/libzmq/libzmq.vcproj | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit a8dfcb3c7de53b8b2ec7a5495532e83dd44ee16d
Merge: 08be168d e628421e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Feb 18 12:19:11 2013 -0800

    Merge pull request #515 from hintjens/master

    Updated NEWS for 3.2.2 stable

commit e628421ed5a7f2a9e2bc92ecfa513d24d8e45cb1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 18 21:14:14 2013 +0100

    Updated NEWS for 3.2.2 stable

 NEWS | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 08be168dd0011ab259f8f34b0817027bb1ac645c
Merge: 7094a706 8c71ac47
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 15 08:44:30 2013 -0800

    Merge pull request #514 from pijyoi/fixcs

    release critical section on failure to create signaler fdpair

commit 8c71ac47e83dc4dp116ab4abb5e4a76e8249d888
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Fri Feb 15 10:45:43 2013 +0800

    release critical section on failure to create signaler fdpair

 src/signaler.cpp | 46 ++++++++++++++++++++++++++++++++++++----------
 1 file changed, 36 insertions(+), 10 deletions(-)

commit 7094a706123a73c95492dd3a5f4ebc2566eb44f2
Merge: 9a6b875f 51cfcb11
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Feb 10 01:23:13 2013 -0800

    Merge pull request #513 from hintjens/master

    Fixed test_connect_resolve

commit 51cfcb117a488d8411b34dff483312c4e0fa405b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Feb 10 08:39:27 2013 +0100

    Some DNSs will resolve ANY domain name so I made more reliable errors.

 tests/test_connect_resolve.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 9a6b875f2181ef46baf65d3baf33135bb67f2864
Merge: 6b2304ad 1a13554f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Feb 7 04:23:56 2013 -0800

    Merge pull request #512 from montoydpdu/master

    broken tests compilation. Makefile.am

commit 1a13554fe0fc94bd1fc5619e270c3abc50cd5b63
Author: Montoya Edu <montoya.edu@gmail.com>
Date:   Thu Feb 7 12:27:33 2013 +0100

    solved broken tests compilation

 tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6b2304ad9749819a7325fedp12aa141a5cd1e443
Merge: f27eb67e ec04ccba
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 5 15:13:12 2013 -0800

    Merge pull request #511 from mjasperse/patch-2

    Corrected linking error in MSVC build

commit ec04ccba79d70abfe7355e6584f5ff79a94793a7
Author: Martijn Jasperse <m.jasperse@gmail.com>
Date:   Wed Feb 6 10:09:07 2013 +1100

    Corrected linking error in MSVC build

    MSVC build fails with linking errors for unresolved symbols SetSecurityDescriptorDacl and InitializeSecurityDescriptor in signaler.obj
    Adding the relevant link library (Advapi32.lib) to VCLinkerTool fixes this (tested MSVC2010 on XP and Win7)

 builds/msvc/libzmq/libzmq.vcproj | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f27eb67e1abb0484c41050e454404cce30647b63
Merge: a3dp0d4c 2c1a3c55
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 1 00:54:36 2013 -0800

    Merge pull request #510 from miniway/master

    LIBZMQ-497 there could be unsent bytes in encoder

commit 2c1a3c55f73a504b82c32b75790c59426cde76e9
Author: Dongmin Yu <miniway@gmail.com>
Date:   Fri Feb 1 17:32:28 2013 +0900

    LIBZMQ-497 there could be unsent bytes in encoder

    When we send a large message, the message can be splitted into two chunks.
    One is in the encoder buffer and the other is the zero-copy pointer.
    The session could get the term before the last chunk is sent.

 src/encoder.hpp       |  5 +++++
 src/i_encoder.hpp     |  1 +
 src/stream_engine.cpp | 12 ++++++++++++
 src/stream_engine.hpp |  1 +
 4 files changed, 19 insertions(+)

commit a3dp0d4c16c892a4e6c96d626a7c8b7068450336
Merge: b60689e5 8ab3c4a1
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Jan 31 13:40:02 2013 -0800

    Merge pull request #509 from hintjens/master

    Added IPv6 option to context

commit 8ab3c4a1bfbde44f45bd97eb40cbd27236239d10
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 31 21:52:30 2013 +0100

    Fixed issue #500

 .gitignore                 |  3 +++
 doc/zmq_ctx_get.txt        |  6 ++++-
 doc/zmq_ctx_set.txt        | 11 +++++++++
 src/ctx.cpp                | 20 ++++++++++++-----
 src/ctx.hpp                |  3 +++
 src/options.hpp            |  1 -
 src/socket_base.cpp        |  1 +
 tests/Makefile.am          |  6 ++---
 tests/test_ctx_options.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 97 insertions(+), 10 deletions(-)

commit b60689e59df90068396c52acbccf9986b6a55514
Merge: 049931fc 309740e1
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Jan 31 11:54:42 2013 -0800

    Merge pull request #508 from hintjens/master

    IPv6 related changes and cleanups to test cases

commit 309740e1972565fdcbfe886439977a4603a7d10e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 31 20:47:45 2013 +0100

    Fixed issue #499

 doc/zmq_getsockopt.txt | 21 +++++++++++---
 doc/zmq_setsockopt.txt | 24 ++++++++++++----
 src/options.cpp        | 29 ++++++++++---------
 src/options.hpp        |  6 ++--
 src/socket_base.cpp    |  2 +-
 src/tcp_address.cpp    | 77 ++++++++++++++++++++++----------------------------
 src/tcp_address.hpp    | 15 ++++------
 src/tcp_listener.cpp   |  7 +++--
 8 files changed, 98 insertions(+), 83 deletions(-)

commit 963c6a8e2f15e077c40c461ede7b5cf777a30dd4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 31 19:46:22 2013 +0100

    Lots of cleanups to self-tests
    * Removed or truncated sleeps so the tests run faster
    * Removed dependencies on zmq_utils
    * Rewrote a few tests that were confusing
    * Minor code cleanups

 tests/test_connect_delay.cpp     | 189 +++++++++++++++++----------------------
 tests/test_connect_resolve.cpp   |   2 -
 tests/test_disconnect_inproc.cpp |  23 ++---
 tests/test_hwm.cpp               |   7 +-
 tests/test_invalid_rep.cpp       |   2 -
 tests/test_monitor.cpp           | 140 ++++++++++++++---------------
 tests/test_msg_flags.cpp         |  12 +--
 tests/test_pair_inproc.cpp       |   2 -
 tests/test_pair_ipc.cpp          |   2 -
 tests/test_pair_tcp.cpp          |   2 -
 tests/test_raw_sock.cpp          |   8 +-
 tests/test_reqrep_device.cpp     |  10 +--
 tests/test_reqrep_inproc.cpp     |   2 -
 tests/test_reqrep_ipc.cpp        |   2 -
 tests/test_reqrep_tcp.cpp        |   2 -
 tests/test_router_mandatory.cpp  |   1 -
 tests/test_shutdown_stress.cpp   |   2 -
 tests/test_sub_forward.cpp       |  24 +++--
 tests/test_term_endpoint.cpp     |  28 +++---
 tests/test_timeo.cpp             | 105 ++++++++--------------
 tests/testutil.hpp               |   4 +-
 21 files changed, 238 insertions(+), 331 deletions(-)

commit c39cb0bde14c53009f745ce0e5669156cc76a8a7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 31 16:26:28 2013 +0100

    Rewrote completely, was bogusly testing EAGAIN

 tests/test_router_mandatory.cpp | 89 ++++++++++++++++-------------------------
 1 file changed, 35 insertions(+), 54 deletions(-)

commit 3a558fcc4b8bfa72c649834b76d2fc7e9c93c74e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 31 15:00:17 2013 +0100

    Rewrote raw test completely

 tests/test_raw_sock.cpp | 298 +++++++++++++++---------------------------------
 1 file changed, 94 insertions(+), 204 deletions(-)

commit 8c9289342a1702d557b412487342e2f9a8bbf265
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 31 09:10:49 2013 +0100

    Fixed use of deprecated zmq_init/term

 tests/test_connect_resolve.cpp  |  4 ++--
 tests/test_hwm.cpp              |  4 ++--
 tests/test_invalid_rep.cpp      |  7 +++++--
 tests/test_last_endpoint.cpp    | 11 ++++++++++-
 tests/test_monitor.cpp          |  4 ++--
 tests/test_msg_flags.cpp        | 10 ++++++++--
 tests/test_pair_inproc.cpp      |  4 ++--
 tests/test_pair_ipc.cpp         |  4 ++--
 tests/test_pair_tcp.cpp         |  4 ++--
 tests/test_raw_sock.cpp         |  1 -
 tests/test_reqrep_device.cpp    |  4 ++--
 tests/test_reqrep_inproc.cpp    |  4 ++--
 tests/test_reqrep_ipc.cpp       |  4 ++--
 tests/test_reqrep_tcp.cpp       |  4 ++--
 tests/test_router_mandatory.cpp |  4 ++--
 tests/test_shutdown_stress.cpp  |  6 +++---
 tests/test_sub_forward.cpp      |  4 ++--
 tests/test_term_endpoint.cpp    | 10 ++++------
 tests/test_timeo.cpp            |  4 ++--
 19 files changed, 56 insertions(+), 41 deletions(-)

commit 5f009e5234fc7a4e79f5add942098abd71a58ee2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 30 23:53:23 2013 +0100

    Various cleanups to test programs

 tests/test_connect_delay.cpp     |  6 ++----
 tests/test_disconnect_inproc.cpp | 11 ++---------
 tests/test_last_endpoint.cpp     |  9 ++++-----
 tests/test_raw_sock.cpp          | 34 ++++++++++++++++------------------
 4 files changed, 24 insertions(+), 36 deletions(-)

commit 18a14dpdead54354aac1a886a0e65c0fcd7afead
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 30 23:53:09 2013 +0100

    Added ZMQ_IPV6 option, cleaned up setsockopt code, it was nasty

 include/zmq.h   |   3 +-
 src/options.cpp | 461 ++++++++++++++++++++++++--------------------------------
 2 files changed, 198 insertions(+), 266 deletions(-)

commit aa21e090e19496bedc2b87bdp1cb8f6bc4356885
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 18 11:38:49 2013 +0100

    Updated .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 049931fc1eeb3e680c6b251a33ed983f8f6585cb
Merge: 470d06bb f1e77f22
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 30 08:04:31 2013 -0800

    Merge pull request #507 from bjoto/master

     LIBZMQ-498 - Remove heap allocations in zmq_poll for small poll item sets

commit f1e77f2246726e5e0303eef79f15cd44c4c4a383
Author: Bjorn Topel <bjorn.topel@gmail.com>
Date:   Wed Jan 30 16:46:45 2013 +0100

    Removed heap allocation for in zmq_poll for small item sets

    Until now, zmq_poll always allocates the poll items on the heap.
    Now, small item sets, up to ZMQ_POLLITEMS_DFLT, are stack allocated
    and only larger sets are allocated on the heap.

 include/zmq.h |  2 ++
 src/zmq.cpp   | 20 ++++++++++++++------
 2 files changed, 16 insertions(+), 6 deletions(-)

commit 470d06bb9ef3bb33920a9f6240340ec668e6fb1a
Merge: e8cbfac9 e464a910
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jan 27 15:18:11 2013 -0800

    Merge pull request #506 from arsenm/master

    Fix using wrong name for windows.h check with cmake

commit e464a91086386de9bd65e0d9c3c55a38dff056a6
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Sun Jan 27 18:09:32 2013 -0500

    Fix using wrong name for windows.h check in cmake

 CMakeLists.txt               | 2 +-
 builds/cmake/platform.hpp.in | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)

commit e8cbfac9663169ffe1ab0deb47db2a8796a78172
Merge: abc8907e ba3e18f7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 23 11:55:48 2013 -0800

    Merge pull request #503 from chazmcgarvey/define-dummy-eproto

    define a dummy EPROTO for platforms that don't use it

commit abc8907e440f0ccb4f1a8758892bf79d93a9847f
Merge: 93618e7d f01bab66
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 23 11:55:17 2013 -0800

    Merge pull request #505 from arsenm/master

    Fix perf-tools build on Linux with cmake

commit 93618e7d02b83171c5db7672dfa795978194dd1e
Merge: 7bc3e53b 0a1bd457
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 23 11:55:02 2013 -0800

    Merge pull request #504 from o172/master

    Adds tests/test_disconnect_inproc to .gitignore

commit f01bab6633c170315f2a7d1dpe71a46e122a4b0b
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Wed Jan 23 14:31:02 2013 -0500

    Fix cmake not linking librt to perf-tools

 CMakeLists.txt | 6 ++++++
 1 file changed, 6 insertions(+)

commit 0a1bd457210da2cff41ad36dpfdedee2f6ed0757
Author: o172(xenovo) <git@o172.net>
Date:   Wed Jan 23 19:20:52 2013 +0000

    Added tests/test_disconnect_inproc to .gitignore

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 7bc3e53b53fa43da46ff9f56113793abc7ad592e
Merge: eeaa2c8e d8502724
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 21 21:18:08 2013 -0800

    Merge pull request #502 from ianbarber/master

    Add bounds check on upstream XSUB messages

commit ba3e18f700659202247e38a7f48ea16d32bd8e79
Author: Charles McGarvey <chazmcgarvey@brokenzipper.com>
Date:   Mon Jan 21 17:14:26 2013 -0700

    define a dummy EPROTO for platforms that don't use it

    This accomplishes the same thing as 2e2ef7fd in a potentially cleaner way.

 src/err.hpp          | 5 +++++
 src/ipc_listener.cpp | 7 +------
 src/tcp_listener.cpp | 7 +------
 3 files changed, 7 insertions(+), 12 deletions(-)

commit d850272417dd7a3be4c5e0f429118f0005a0285b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jan 21 16:11:27 2013 -0800

    Add size check on XSUB message sends

    Ensures 0 length messages aren't being checked for subscribtion status on whatever data happens to be following the data pointer.

 src/xsub.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit eeaa2c8e426b797be412f09c1a4071db1f6b2d01
Merge: 3a632185 2e2ef7fd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 21 14:47:35 2013 -0800

    Merge pull request #501 from chazmcgarvey/conditional-eproto

    do not use EPROTO on platforms that do not have it

commit 2e2ef7fd330cd009c20b349a85d54e220d714f48
Author: Charles McGarvey <chazmcgarvey@brokenzipper.com>
Date:   Mon Jan 21 15:00:55 2013 -0700

    do not use EPROTO on platforms that do not have it

 src/ipc_listener.cpp | 7 ++++++-
 src/tcp_listener.cpp | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

commit 3a632185a625c9025393a624559624d2de078f60
Merge: 29a1d8ec 79181757
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jan 20 03:43:49 2013 -0800

    Merge pull request #500 from haf/fixes/asciidoc-title

    Shortening the =-chars to make asciidoc work

commit 791817571702f8d84379184bcbbe7b81b0c613dd
Author: Henrik Feldt <henrik@haf.se>
Date:   Sat Jan 19 18:02:24 2013 +0100

    Shortening the =-chars to make asciidoc work

 doc/zmq_ctx_term.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 29a1d8ec6032e2ca9636ca112ed4ec033058772d
Merge: f467011d 21c97f0c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 17 23:49:52 2013 -0800

    Merge pull request #499 from minrk/ac_header

    Minor autoconf tweaks

commit f467011dbc718b251890a22cb6439cfc8b3d4424
Merge: 21fc2a99 edd43e1c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jan 17 23:49:32 2013 -0800

    Merge pull request #498 from minrk/zmq_ctx_term

    deprecate zmq_ctx_destroy in favor of zmq_ctx_term

commit 21c97f0cc27dp8de2887fe0bad22e3fef60a3e26
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Jan 17 16:00:38 2013 -0800

    AM_CONFIG_HEADER -> AC_CONFIG_HEADERS

    AM_CONFIG_HEADER raises an 'obsolete error' with automake 1.13.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 64c019e24d14bdefd91faaa345174bc36c4e738e
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Jan 17 15:59:11 2013 -0800

    move configure.in -> configure.ac

    autotools warns that configure.in
    should actually be named configure.ac

 configure.in => configure.ac | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit edd43e1ca45b86b649cbcbdada801b04d2895001
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Jan 17 14:36:38 2013 -0800

    deprecate zmq_ctx_destroy in favor of zmq_ctx_term

    in order to avoid logical collisions with pre-existing notions of context destruction in bindings (czmq, pyzmq).

 builds/redhat/zeromq.spec.in     |  1 +
 doc/Makefile.am                  |  2 +-
 doc/zmq.txt                      |  2 +-
 doc/zmq_ctx_destroy.txt          |  4 +--
 doc/zmq_ctx_new.txt              |  2 +-
 doc/zmq_ctx_term.txt             | 66 ++++++++++++++++++++++++++++++++++++++++
 doc/zmq_term.txt                 |  2 +-
 include/zmq.h                    |  3 +-
 src/zmq.cpp                      |  9 ++++--
 tests/test_connect_delay.cpp     | 10 +++---
 tests/test_disconnect_inproc.cpp |  2 +-
 11 files changed, 88 insertions(+), 15 deletions(-)

commit 21fc2a9946f65df7e03e852760b02833dd655018
Merge: c2fbb722 bbc5befc
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jan 14 19:54:38 2013 -0800

    Merge pull request #497 from hintjens/master

    Clarified how icp:// works with zmq_bind

commit bbc5befc66f187a769982b57b64712dbcc317250
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 14 17:49:19 2013 +0100

    Clarified zmq_bind on icp://

 doc/zmq_ipc.txt | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit c2fbb722a4de76dd894702da893517d6c5f5ab98
Merge: 7d475add 35f18dpf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jan 12 08:33:33 2013 -0800

    Merge pull request #496 from amuraru/master

    Fixed el5/el6 deps in RPM spec file / newline fix

commit 35f18dpf74bf016e00ba60b84af267054a38968f
Author: Adrian Muraru <amuraru@adobe.com>
Date:   Fri Jan 11 22:51:08 2013 +0200

    Fixed newline in test_disconnect_inproc

 tests/test_disconnect_inproc.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit fb0beb6f2942cfadb2a22fde97b809f26103741d
Author: Adrian Muraru <amuraru@adobe.com>
Date:   Fri Jan 11 22:50:31 2013 +0200

    Fixed el5/el6 deps in RPM spec file

 builds/redhat/zeromq.spec.in | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 7d475add7e798dca20f445453de43b88ef3eb0ac
Merge: c1f76e43 d997d880
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jan 8 06:22:27 2013 -0800

    Merge pull request #495 from hintjens/master

    Whitespace and comment cleanups

commit d997d88096f8588c0d80712a7fd2c212d36241d6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 8 09:18:38 2013 +0100

    Revert "Old change to move ports off 5555 (was conflicting with other stuff)"

    This reverts commit da0efaa81771aba497a961d70f2166f500a52afd.

 tests/test_connect_delay.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aff14067135f66aa9ce7816e08bac3a9b661b3e2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 8 09:18:23 2013 +0100

    Revert "Test cases were failing on bind"

    This reverts commit 8ba097f3da8d1a752755a52b1d3ec967c23f0643.

 tests/test_raw_sock.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit a4bedc52552b6e4f8a903c3781b7e9897b310741
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 8 09:16:50 2013 +0100

    Whitespace and comment fixes

 src/xpub.cpp | 17 ++++++++---------
 src/xsub.cpp | 20 +++++++++++---------
 2 files changed, 19 insertions(+), 18 deletions(-)

commit da0efaa81771aba497a961d70f2166f500a52afd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 8 09:09:27 2013 +0100

    Old change to move ports off 5555 (was conflicting with other stuff)

 tests/test_connect_delay.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b0f0d3fcb49de6f1ebb9227dp664b9f426ece290
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 23 17:59:34 2012 +0100

    Clarification on zmq_msg_more

 doc/zmq_msg_more.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 12a648db0773960e8b374a3b0ed57de36c62174a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 23 17:57:35 2012 +0100

    Specified that it's safe to call zmq_msg_more after zmq_msg_close

 doc/zmq_msg_more.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit ef186fe15bfc7344fca015bc212eb2e98d8d3ed7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 23 17:47:44 2012 +0100

    Spelling fixes

 src/stream_engine.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit af934f85caf5ec1e56514270c81ec57a92e106d9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 23 17:47:32 2012 +0100

    Removed use of deprecated API methods

 doc/zmq_msg_get.txt        | 2 +-
 doc/zmq_msg_more.txt       | 2 +-
 doc/zmq_recv.txt           | 2 --
 doc/zmq_recvmsg.txt        | 1 -
 doc/zmq_send.txt           | 2 --
 doc/zmq_sendmsg.txt        | 2 --
 doc/zmq_socket_monitor.txt | 6 +++---
 7 files changed, 5 insertions(+), 12 deletions(-)

commit 8ba097f3da8d1a752755a52b1d3ec967c23f0643
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 23 17:25:46 2012 +0900

    Test cases were failing on bind

 tests/test_connect_delay.cpp | 2 +-
 tests/test_raw_sock.cpp      | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit c1f76e433f2180544e834587dp884adc60f02d97
Merge: 98a91e85 d32e3922
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 8 00:05:07 2013 -0800

    Merge pull request #494 from jgm-radez/master

    allow XSUB/XPUB to send/recv messages unrelated to sub/unsub

commit d32e3922785f170ce24159ab5e4b44badc473ec1
Author: John Muehlhausen <jgm@jgm.org>
Date:   Mon Jan 7 22:24:24 2013 -0600

    allow XSUB/XPUB to send/recv messages unrelated to sub/unsub (LIBZMQ-490)

    zmq::xpub_t::xread_activated() – change to process messages without 0
    or 1 prefix, but without affecting subscriptions

    zmq::xsub_t::xsend() – change to send rather than discard messages
    without 0 or 1 prefix, but without affecting subscriptions

    Update documentation

 doc/zmq_socket.txt |  6 ++++--
 src/xpub.cpp       |  3 +++
 src/xsub.cpp       | 11 ++++-------
 3 files changed, 11 insertions(+), 9 deletions(-)

commit 98a91e852e87dp70dd320bd73d217c42c7eb950a
Merge: 949d1578 45f504d3
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jan 2 12:51:43 2013 -0800

    Merge pull request #493 from arsenm/master

    Fix minor problem with cmake bulid

commit 45f504d3e24930eea540c4a0a76a64094c56fbda
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Wed Jan 2 15:50:04 2013 -0500

    Fix looking for rc sources in toplevel binary directory

 CMakeLists.txt | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 949d1578977ef11a46dfa1a991a2cc2affc0d9cc
Merge: c7009d27 6ce46441
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jan 2 00:32:15 2013 -0800

    Merge pull request #492 from arsenm/master

    Make CMake build usable for other systems

commit 6ce464414bb453a40abadaa9d79389e5e3282fda
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 04:26:04 2013 -0500

    Fix typos

 src/socket_base.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f770954d309c0778f1fe65a38b8e54c1063c8474
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Tue Jan 1 05:42:46 2013 -0500

    Fix a couple more warnings

 src/object.cpp   | 1 +
 src/options.cpp  | 7 +++++--
 src/signaler.cpp | 4 ++--
 3 files changed, 8 insertions(+), 4 deletions(-)

commit 6ecb796e77dd5d48b65d7e78c40be6ee95696f96
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 17:16:50 2013 -0500

    Fix warnings with MinGW

 src/ip.cpp       | 3 +++
 src/signaler.cpp | 6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 1ffc5d11dce5bbea970b9d9354e70d4e40346d38
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 04:24:51 2013 -0500

    Fix some of the -Wshadows

 src/options.cpp     |  6 +++---
 src/socket_base.cpp | 26 +++++++++++++-------------
 2 files changed, 16 insertions(+), 16 deletions(-)

commit 14d3245e02f27857a80dba6ad6b7babed564a3d9
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 04:01:24 2013 -0500

    Fix -Wmismatched-tags

 src/i_decoder.hpp    | 3 ++-
 src/i_msg_sink.hpp   | 3 ++-
 src/i_msg_source.hpp | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

commit edb5a05add41de964170a1b72dp8038d30a00e17
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 03:56:34 2013 -0500

    Fix -Wmissing-field-initializers

 src/tcp_listener.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 3ebab09ce4da3cd7e40355e5bd91a5e5a66d826b
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 03:26:31 2013 -0500

    Fix unused argument warnings

 CMakeLists.txt  | 12 +++++++++---
 src/decoder.hpp |  2 +-
 src/zmq.cpp     |  4 ++--
 3 files changed, 12 insertions(+), 6 deletions(-)

commit e88dc494007e43a548c22e23b952e56832e60906
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 06:53:56 2013 -0500

    Fix random 3 space tabs

 CMakeLists.txt | 116 +++++++++++++++++++++++++++------------------------------
 1 file changed, 55 insertions(+), 61 deletions(-)

commit 59cafecd9696817e0faa2ba00404dpf75b3c1187
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 21:04:19 2013 -0500

    Fix MinGW32 build

    Fix link errors when using -m32 with MinGW

 CMakeLists.txt               | 87 ++++++++++++++++++++++++++------------------
 builds/cmake/platform.hpp.in |  4 ++
 2 files changed, 56 insertions(+), 35 deletions(-)

commit 3c7d4840a1ff54b4a0de8be08481dbdf9b3c257a
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Tue Jan 1 02:25:15 2013 -0500

    Fix NSIS installer errors, MinGW build.

    The CPack NSIS installer was in a state where it would always give a
    useless error. I think it was using stuff intended for running cpack
    separately from cmake.

 CMakeLists.txt                   | 89 +++++++++++++++++-----------------------
 cmake/Modules/FindAsciiDoc.cmake |  7 +++-
 2 files changed, 44 insertions(+), 52 deletions(-)

commit a1d6a222ede4fdpc7cb27c5f0b67c1f7a0321e5d
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Mon Dec 31 18:23:25 2012 -0500

    Generated header is not in ../src/

 perf/inproc_lat.cpp | 2 +-
 perf/inproc_thr.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 4704159f7317b73dc779819f132516f8d273f0db
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Tue Jan 1 05:22:05 2013 -0500

    Fix cmake build with sun studio

 CMakeLists.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 74763e2c8ee5eccf2bea0ca64e7f784be4307404
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Tue Jan 1 05:34:44 2013 -0500

    Don't use the toplevel cmake paths so the build works as a subproject

 CMakeLists.txt                     | 101 ++++++++++++++++++++++++-------------
 cmake/Modules/TestZMQVersion.cmake |  47 ++++++-----------
 2 files changed, 82 insertions(+), 66 deletions(-)

commit f3901b35d46c91ebd6a8f8b7b2110c15b54b90da
Author: Matt Arsenault <arsenm2@rpi.edu>
Date:   Tue Jan 1 05:06:09 2013 -0500

    Comments about ICC build failure with 12.x were crazy

    Fix warnings with ICC.

 CMakeLists.txt                     |   9 --
 builds/cmake/platform.hpp.in       |   3 -
 cmake/Modules/AutoconfHelper.cmake | 298 -------------------------------------
 src/stream_engine.hpp              |   2 +-
 4 files changed, 1 insertion(+), 311 deletions(-)

commit 0362c310a58f3304653592bf8c38f0d068e51c16
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Mon Dec 31 17:52:32 2012 -0500

    First pass at getting cmake build to work with non-Windows systems.

    Make doc building option dependent on asciidoc being installed
    Fix MSVC build requiring cygwin.
    Don't use try_run to get the version

 CMakeLists.txt                         | 925 ++++++++++++++++++++++-----------
 builds/cmake/platform.hpp.in           |  90 ++++
 cmake/Modules/AutoconfHelper.cmake     | 298 +++++++++++
 cmake/Modules/FindAsciiDoc.cmake       |  19 +
 cmake/Modules/TestZMQVersion.cmake     |   2 +-
 cmake/Modules/ZMQSourceRunChecks.cmake | 129 +++++
 cmake/Modules/zmq_version.cpp          |  31 --
 src/libzmq.pc.cmake.in                 |  10 +
 8 files changed, 1157 insertions(+), 347 deletions(-)

commit 73c370dd1772e09be476ec8dcbe097fb5de939e9
Author: Matt Arsenault <whatmannerofburgeristhis@gmail.com>
Date:   Sun Dec 30 17:58:27 2012 -0500

    Fix inconsistently using #if or #ifdef instead of #if defined

 src/ip.cpp  | 4 ++--
 src/zmq.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit c7009d274ecfe49eee8dp064a9d148dda98c3196
Merge: 1eee9ce0 151a8061
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jan 1 08:32:12 2013 -0800

    Merge pull request #491 from pijyoi/issue84

    fix for LIBZMQ-84: Address already in use (signaler.cpp)

commit 1eee9ce035585096e9ce33fc1a149b6cf147d5b5
Merge: 8dda553a 322808be
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Dec 29 02:26:06 2012 -0800

    Merge pull request #490 from pijyoi/master

    eliminate dead code moved into zmq_utils.cpp

commit 151a80619bf3f9c4696788f79cd2c934ed26246d
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Dec 29 18:05:15 2012 +0800

    set SO_LINGER on first signaler socket to close in order to avoid
    TIME_WAIT state.

 src/signaler.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 322808be9c9077bcd0acc921df6ceacc57a3c029
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Sat Dec 29 13:21:50 2012 +0800

    eliminate code moved into zmq_utils.cpp

 src/zmq.cpp | 29 -----------------------------
 1 file changed, 29 deletions(-)

commit 8dda553ac4cad4504e7f9007dc0e8e471dpc89a1
Merge: ce24557b 942c654d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Dec 27 05:46:20 2012 -0800

    Merge pull request #489 from pijyoi/master

    win32: fix Event handle leak

commit 942c654d1cb556a91b4cca00bd4f0e50d5010a04
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Thu Dec 27 21:31:12 2012 +0800

    win32: close zmq-signaler-port-sync event object to avoid handle leak

 src/signaler.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit ce24557b11cc26b10cb217f1c7556101f64b7095
Merge: 4febe88b 2e9d4d41
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 11 22:34:52 2012 -0800

    Merge pull request #488 from steve-o/openpgm-next

    Pull upstream OpenPGM 5.2.122 for multi-platform minor fixes.

commit 2e9d4d413206f5dp307e5017c3744d267254feef
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Dec 11 21:41:10 2012 -0500

    Pull upstream OpenPGM 5.2.122 for multi-platform minor fixes.

 CMakeLists.txt                             |   5 +++--
 configure.in                               |   2 +-
 foreign/openpgm/libpgm-5.1.118~dfsg.tar.gz | Bin 1046589 -> 0 bytes
 foreign/openpgm/libpgm-5.2.122~dfsg.tar.gz | Bin 0 -> 951536 bytes
 4 files changed, 4 insertions(+), 3 deletions(-)

commit 4febe88b2be300f8712a2e9ec57c351ccc39a102
Merge: 2a7b219f a0cecc71
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Dec 11 08:09:08 2012 -0800

    Merge pull request #487 from miniway/master

    returns -1 with EAGAIN when mandatory is set and pipe is full

commit a0cecc718d3d95279dcc7b0d9b6c1d09fb4cfd97
Author: Dongmin Yu <miniway@gmail.com>
Date:   Tue Dec 11 19:41:36 2012 +0900

    returns -1 with EAGAIN when mandatory is set and pipe is full

 src/router.cpp                  | 12 ++++++------
 tests/test_router_mandatory.cpp |  9 ++++-----
 2 files changed, 10 insertions(+), 11 deletions(-)

commit 2a7b219f073d3bccb062379d3fc4ef933c8bab56
Merge: 8da6b7a6 394d755c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Dec 9 01:25:51 2012 -0800

    Merge pull request #486 from miniway/master

    return EHOSTUNREACH at full only when mandatory is set

commit 394d755cf303ad6c263e877ebcda97108ad8666e
Author: Dongmin Yu <miniway@gmail.com>
Date:   Sun Dec 9 16:52:45 2012 +0900

    return EHOSTUNREACH at full only when mandatory is set

 src/router.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8da6b7a6fdb176aa184584001325920a04674be7
Merge: 95d36f42 9382941a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Dec 7 23:19:20 2012 -0800

    Merge pull request #485 from miniway/master

    returns EHOSTUNREACH when a peer is full if ZMQ_ROUTER_MANDATORY is set

commit 9382941adc664f98535fd962d1262ff50fce3b71
Author: Dongmin Yu <miniway@gmail.com>
Date:   Sat Dec 8 10:20:42 2012 +0900

    returns EHOSTUNREACH when a peer is full if ZMQ_ROUTER_MANDATORY is set

 src/router.cpp                  |  9 ++++++--
 tests/test_router_mandatory.cpp | 46 ++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 52 insertions(+), 3 deletions(-)

commit 95d36f42eea67b1752e819c9c49b19c74d6b938e
Merge: ebd1bf9b 6706efba
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Dec 7 01:54:56 2012 -0800

    Merge pull request #484 from pijyoi/master

    fix wrong boolean operator in router_raw test code

commit 6706efba2857b5b352a19a7f5ac575d7e3369ed7
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Fri Dec 7 17:45:05 2012 +0800

    fix wrong boolean operator

 tests/test_raw_sock.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ebd1bf9bcf41fb812e452101b97eef55503b2b67
Merge: b2f6741b 21345ffa
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Dec 4 14:05:48 2012 -0800

    Merge pull request #482 from sradomski/master

    Close pipes for inproc sockets on zmq_disconnect

commit 21345ffa5076aa587611e7099678f9cacdc9f160
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Tue Dec 4 17:40:43 2012 +0100

    Break early when pipe to be removed was found

 src/socket_base.cpp | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit f9770e93efb75827410b13a20b83bcf08b13819d
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Tue Dec 4 17:31:46 2012 +0100

    Fixed iterator when erasing from inprocs multimap

 src/socket_base.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 624dd1e5b5258d581149c173f3e95aff1e03a73f
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Tue Dec 4 17:10:32 2012 +0100

    Removal of terminated pipes from inproc and ignoring peer ends

 src/socket_base.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 66c22456b97e1278ec0b24dcd1ff66e619d8fca2
Author: Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de>
Date:   Tue Dec 4 15:14:21 2012 +0100

    Close pipes for inproc sockets on zmq_disconnect

    - fixes LIBZMQ-476 and LIBZMQ-475

 AUTHORS                          |   1 +
 doc/zmq_disconnect.txt           |   2 +
 src/socket_base.cpp              |  33 ++++++++++-
 src/socket_base.hpp              |   4 ++
 tests/Makefile.am                |   5 +-
 tests/test_disconnect_inproc.cpp | 119 +++++++++++++++++++++++++++++++++++++++
 6 files changed, 162 insertions(+), 2 deletions(-)

commit b2f6741bcb73892fca4f7d374f18dpcbf89435cb
Merge: 013a99da 75161b5c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Dec 1 00:53:02 2012 -0800

    Merge pull request #481 from ianbarber/master

    Simplify test_connect_delay

commit 75161b5c62f5f37e00573b3894cf8dc2b960e654
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Nov 30 23:07:12 2012 +0000

    Serialise test_connect_delay

    Simplify the test connect delay test script, removing the threads and
    moving to a serialised version. AFAICS this should provide the same
    test, but without the race conditions that happened with the previous
    test.

 tests/test_connect_delay.cpp | 215 +++++++++++++++++++++----------------------
 1 file changed, 106 insertions(+), 109 deletions(-)

commit 013a99daabeb6e31234341da8130a9ce7f7fb882
Merge: a4a73165 3fc8c707
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 30 13:41:54 2012 -0800

    Merge pull request #480 from vperron/master

    Tiny fix

commit 3fc8c7073d68235f0f6506d3c705778b40b86d15
Author: Victor Perron <victor@iso3103.net>
Date:   Fri Nov 30 22:16:20 2012 +0100

    Same fix, in-line style

 src/decoder.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 33f42efb48af75194a31c5be8cd01868a12062f8
Author: Victor Perron <victor@iso3103.net>
Date:   Fri Nov 30 21:39:22 2012 +0100

    Change NULL to 0 to keep compatibility with some cross-compiling GCC
    versions

 src/decoder.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a4a731652a2e7db91a8fa692c073da8c1dce0834
Merge: cdp5d3b8 1d11f196
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 26 08:23:43 2012 -0800

    Merge pull request #479 from ianbarber/master

    Update RPM spec file

commit 1d11f196b1c556516177fa645c351bfadfa8a31c
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Nov 26 16:12:25 2012 +0000

    Update SPEC file

    Update the RPM spec file with Justin Cook's changes to fix the build for 3.2.2. (https://zeromq.jira.com/browse/LIBZMQ-473)

 builds/redhat/zeromq.spec.in | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

commit cdp5d3b817fc6bbfc67b41e89585989900d6bbd3
Merge: d1cbf96c 359a5059
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 22 01:16:55 2012 -0800

    Merge pull request #478 from methodmissing/event-messages-3.2

    Event message memory corruption fixes

commit d1cbf96cdee1677ebee6a1384dbdff4ef0f23a37
Merge: a28322cd e6da46ff
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Nov 22 00:03:02 2012 -0800

    Merge pull request #477 from hintjens/master

    Added autogen.sh hint to INSTALL

commit e6da46ff8c8243419a16069bca364eb0adbbfca0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 22 12:09:02 2012 +0900

    Added autogen.sh hint

 INSTALL | 7 +++++++
 1 file changed, 7 insertions(+)

commit 359a50594930b3522d354d790fdbca73a92ef52b
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Thu Nov 22 00:12:17 2012 +0000

    Prefer malloc to new for event address allocation as per Martin's recommendation

 src/socket_base.cpp | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit a28322cd0cf7a62e4f41d70fa3896a438c23db9d
Merge: 8db8c45b a8721c3c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 21 14:15:59 2012 -0800

    Merge pull request #476 from hurtonm/master

    Check decoder's state function for NULL before calling it

commit a8721c3c04f41f0b90a4b1ebaf4bcd767c45a6ab
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Nov 21 22:50:55 2012 +0100

    Check decoder's state function for NULL before calling it

    Fixes bug reported by Peter Friend
    (http://lists.zeromq.org/pipermail/zeromq-dev/2012-November/019425.html)

 src/decoder.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit b1f4850153dbddb66c8e32fe3ce70361e954a38a
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Wed Nov 21 18:27:53 2012 +0000

    Let socket event messages initialize with zmq_msg_init_data and let the framework handle cleanup

 src/socket_base.cpp |  6 ++++--
 src/socket_base.hpp |  5 +++++
 src/zmq.cpp         | 41 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+), 2 deletions(-)

commit f78ca629b5b923c4a0485238d16e78c9eb131618
Merge: 6d245eb6 8db8c45b
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Wed Nov 21 18:04:05 2012 +0000

    Merge branch 'master' of github.com:zeromq/libzmq

commit 8db8c45b185557a2e8abd7818ba8d0c260725d7d
Merge: 7e6c304a be4cc2f8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 20 13:27:43 2012 -0800

    Merge pull request #475 from ianbarber/master

    Add ZMTP link to zmq_tcp doc.

commit be4cc2f80adpb202f7fc63ff0e729b428fbcdcd0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Nov 20 19:10:47 2012 +0000

    Update zmq_tcp to include a reference to RFC

    Include a note with a link to ZMQ RFC 15 for the ZMTP protocol
    description.

 doc/zmq_tcp.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 7e6c304a9871891f96a7d3c9254c863ad98a4e17
Merge: 1a18c7b0 14898579
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Nov 19 02:40:36 2012 -0800

    Merge pull request #474 from hintjens/master

    Fixed doc for SNDHWM

commit 14898579734ffe14d37a9b5ea74c880582eddabf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 19 16:32:58 2012 +0900

    Fixed ZMQ_SNDHWM description

 doc/zmq_setsockopt.txt | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 7533ebb33d1cc6f23061e0228bf7eb22713aaa17
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Nov 19 10:20:56 2012 +0900

    Clarified that SNDHWM is per part, not message

 doc/zmq_setsockopt.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 6d245eb6bc614c050d7650c564fd1a986475cc67
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Sat Nov 17 11:29:47 2012 +0000

    Copy monitor specific event endpoints to event messages as the engine etc. can be released at anytime

 src/ipc_connecter.cpp |  8 +++----
 src/ipc_listener.cpp  | 10 ++++-----
 src/socket_base.cpp   | 61 ++++++++++++++++++++++++++++++++-------------------
 src/socket_base.hpp   | 25 +++++++++++----------
 src/stream_engine.cpp |  2 +-
 src/tcp_connecter.cpp |  8 +++----
 src/tcp_listener.cpp  |  8 +++----
 7 files changed, 71 insertions(+), 51 deletions(-)

commit ce4d32168440d5767805b7ee7cbfaac2f4c3f272
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Sat Nov 17 10:06:09 2012 +0000

    Revert "Merge pull request #473 from methodmissing/fix-engine-endpoint"

    This reverts commit 1a18c7b0a816e10f8a8a770b2141d47f661f0302, reversing
    changes made to bef9a41bdb991b867981317e0e20ee174ecd6fea.

 src/stream_engine.cpp | 6 ++----
 src/stream_engine.hpp | 2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)

commit 1a18c7b0a816e10f8a8a770b2141d47f661f0302
Merge: bef9a41b fdf162a1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Nov 16 13:06:24 2012 -0800

    Merge pull request #473 from methodmissing/fix-engine-endpoint

    [LIBZMQ-450] Copy the stream engine endpoint - string reference caused memory corruption

commit fdf162a117782720ed8b7a1cbb71194f0c5136a9
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Fri Nov 16 17:21:07 2012 +0000

    [LIBZMQ-450] Copy the stream engine endpoint - string reference caused memory corruption

 src/stream_engine.cpp | 6 ++++--
 src/stream_engine.hpp | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

commit bef9a41bdb991b867981317e0e20ee174ecd6fea
Merge: 01b9bc36 b8d5d3fa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 15 17:58:44 2012 -0800

    Merge pull request #472 from jgm-radez/master

    Issue 468

commit b8d5d3fa695c5026c2af36daa8e357978ab135ac
Author: John Muehlhausen <jgm@jgm.org>
Date:   Thu Nov 15 15:30:30 2012 -0600

    Issue 468

    XPUB "verbose" mode excludes unsubscriptions

 src/xpub.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 01b9bc36631f168ec2096e88a4d280cc45912557
Merge: 37f8ce69 5205415b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 14 02:12:29 2012 -0800

    Merge pull request #471 from methodmissing/fix-disconnect-event-addr

    Fix addresses on triggered events

commit 5205415beb7631200a0dc150d1e6acf8089b65ff
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Wed Nov 14 09:51:24 2012 +0000

    Fix addresses on triggered events

 src/socket_base.cpp | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 37f8ce69c17c7200605d3c3e688bf1a9e191e121
Merge: 30eaaddd 6559da30
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Nov 13 12:13:58 2012 -0800

    Merge pull request #470 from cdolan/master

    Fixed test compilation issue by using memset/memmove rather than bzero/bcopy

commit 6559da3033f20bd978a9647d21343f5978b311ec
Author: Christopher Dolan <chris@codingstream.org>
Date:   Tue Nov 13 19:33:18 2012 +0000

    Use memset/memmove rather than bzero/bcopy

 tests/test_raw_sock.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 30eaadddc3d95e194966e96e8b4a011ee7e5638b
Merge: c179ad11 9013ee0d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Nov 13 04:29:44 2012 -0800

    Merge pull request #469 from hurtonm/code_cleanup

    Minor code cleanup

commit 9013ee0d52bb88a5ea08b78c1d31ea5b1b0cd95d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Nov 13 13:06:29 2012 +0100

    Minor code cleanup

 src/epoll.cpp  | 5 +++--
 src/kqueue.cpp | 5 +++--
 src/poll.cpp   | 6 +++---
 src/select.cpp | 5 +++--
 4 files changed, 12 insertions(+), 9 deletions(-)

commit c179ad11730cfe742ccd74577372dpf43fed2fa1
Merge: 99f71444 c543b2ce
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 13 03:56:01 2012 -0800

    Merge pull request #468 from hurtonm/issue_465

    Resolve LIBZMQ-465

commit c543b2ce8cb0dd8790e7bdc89b08ef49812616d4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Nov 10 23:05:10 2012 +0100

    Resolve LIBZMQ-465

 src/decoder.cpp       |  5 -----
 src/decoder.hpp       | 24 ++++++++++++++++++------
 src/i_decoder.hpp     |  2 +-
 src/raw_decoder.cpp   |  2 +-
 src/raw_decoder.hpp   |  2 +-
 src/stream_engine.cpp | 17 +++++++++++------
 src/stream_engine.hpp |  4 +++-
 src/v1_decoder.cpp    |  5 -----
 src/v1_decoder.hpp    |  2 --
 9 files changed, 35 insertions(+), 28 deletions(-)

commit 99f714445f67d552eb2add6ed5f818d546dce901
Merge: 793895c4 66dc4d8b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 9 08:45:22 2012 -0800

    Merge pull request #467 from hurtonm/code_cleanup

    Code cleanup

commit 66dc4d8b542ca8571b66cc7fcf97daa87734e36f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 9 17:17:43 2012 +0100

    Don't pass flags to xrecv method

 src/dealer.cpp      | 5 +----
 src/dealer.hpp      | 2 +-
 src/pair.cpp        | 5 +----
 src/pair.hpp        | 2 +-
 src/pub.cpp         | 2 +-
 src/pub.hpp         | 2 +-
 src/pull.cpp        | 5 +----
 src/pull.hpp        | 2 +-
 src/rep.cpp         | 6 +++---
 src/rep.hpp         | 2 +-
 src/req.cpp         | 8 ++++----
 src/req.hpp         | 2 +-
 src/router.cpp      | 5 +----
 src/router.hpp      | 2 +-
 src/socket_base.cpp | 8 ++++----
 src/socket_base.hpp | 2 +-
 src/xpub.cpp        | 5 +----
 src/xpub.hpp        | 2 +-
 src/xsub.cpp        | 5 +----
 src/xsub.hpp        | 2 +-
 20 files changed, 28 insertions(+), 46 deletions(-)

commit 7865f96e97e6e225d19e9f75317196e62f378cd9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 9 17:08:03 2012 +0100

    Don't pass flags to xsend method

 src/dealer.cpp      |  4 ++--
 src/dealer.hpp      |  2 +-
 src/dist.cpp        | 13 +++++--------
 src/dist.hpp        |  6 +++---
 src/lb.cpp          |  5 +----
 src/lb.hpp          |  2 +-
 src/pair.cpp        |  4 ++--
 src/pair.hpp        |  2 +-
 src/push.cpp        |  4 ++--
 src/push.hpp        |  2 +-
 src/rep.cpp         |  6 +++---
 src/rep.hpp         |  2 +-
 src/req.cpp         |  6 +++---
 src/req.hpp         |  2 +-
 src/router.cpp      |  5 +----
 src/router.hpp      |  2 +-
 src/socket_base.cpp |  6 +++---
 src/socket_base.hpp |  2 +-
 src/sub.cpp         |  4 ++--
 src/sub.hpp         |  2 +-
 src/xpub.cpp        |  4 ++--
 src/xpub.hpp        |  2 +-
 src/xsub.cpp        |  6 +++---
 src/xsub.hpp        |  2 +-
 24 files changed, 43 insertions(+), 52 deletions(-)

commit 793895c477cab1da4edd1565d9f70bc8f7d485a8
Merge: d1e0889a b78800e4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 9 06:51:04 2012 -0800

    Merge pull request #466 from hurtonm/code_cleanup

    Simplify implementation of DEALER socket

commit b78800e467cb56820f07484e25e2360254ce8c5b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 9 15:45:25 2012 +0100

    Simplify implementation of DEALER socket

 src/dealer.cpp | 26 ++------------------------
 src/dealer.hpp |  6 ------
 2 files changed, 2 insertions(+), 30 deletions(-)

commit d1e0889ab02b093233bb4fdp26723c9b8ddpcb3b
Merge: 3eaf4a96 6290054f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 9 06:19:23 2012 -0800

    Merge pull request #463 from hintjens/master

    Addded ROUTER-ROUTER (back) as valid combination

commit 3eaf4a967c6e9ea2dee9ec5f7bbb6753f4c17900
Merge: de339785 19a8ea45
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 9 06:13:18 2012 -0800

    Merge pull request #465 from steve-o/cmake-minor

    Cmake minor version labeling and sync with 3.x

commit 19a8ea4584f63d9fbdb695347f1d9b359f70698f
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Nov 9 08:54:14 2012 -0500

    Update source list with raw codec.

 CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 3ba401d7da3b01f97fd8a0409aace71d7f81a6a3
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Nov 9 08:48:59 2012 -0500

    Bring along CMake patchset from zeromq3-x for adding minor version to Windows labeling.

 CMakeLists.txt           | 96 ++++++++++++++++++++++++++++++------------------
 cmake/NSIS.template64.in | 20 +++++-----
 2 files changed, 70 insertions(+), 46 deletions(-)

commit de339785f261ad85146dfdf23d6b6c89ea3011fa
Merge: ec082414 ea19b7b6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 9 05:19:05 2012 -0800

    Merge pull request #464 from hurtonm/code_cleanup

    Code cleanup

commit ea19b7b65801669308b776c644acb056fa29a4e9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 9 14:12:11 2012 +0100

    Small cleanups

 src/options.cpp      |  2 +-
 src/req.cpp          |  1 -
 src/session_base.cpp |  2 --
 src/socket_base.cpp  | 14 +++++---------
 4 files changed, 6 insertions(+), 13 deletions(-)

commit 925a53066344f24279763205d01dde4dfcf3ff7c
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 9 14:02:19 2012 +0100

    Use const_cast operator to remove const modifier

 src/socket_base.cpp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 82999f2d203295265f323ec44799296012959db4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 9 13:49:27 2012 +0100

    Don't forward identities to DEALER sockets

 src/dealer.cpp | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

commit 6290054f00596a1b4b29b3a2e2c2d7c1a00549e3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Nov 9 21:10:34 2012 +0900

    Added ROUTER-ROUTER as legal combination

 doc/zmq_socket.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ec0824142ec6bc4932919b53f5d511b6f983693e
Merge: 4e028ecb c1e960b3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 8 17:02:50 2012 -0800

    Merge pull request #462 from hurtonm/raw_fixes

    Fix raw mode on reconnect

commit c1e960b31d0a2ffdcb3016e7301b9da5ca612493
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Nov 8 18:17:11 2012 +0100

    Never exchange identities for sockets in raw mode

    Zeromq shall never send/receive socket identifiers for sockets in raw
    mode. The existing implementation breaks this requirement after
    reconnection.

 src/session_base.cpp | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

commit dpc47b364225c347a7edca778185f407308c2e83
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Nov 8 14:31:26 2012 +0100

    Extend ZMQ_ROUTER_RAW test

    Add test when the zeromq socket connects to a TCP socket.
    The test now fails due to bug in the zeromq library.

 tests/test_raw_sock.cpp | 103 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)

commit 872ef76f3c45bcd1cc30eb45b8eb3545b70808f1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Nov 7 17:23:37 2012 +0100

    Added DEALER-DEALER as legal combination

 doc/zmq_socket.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4e028ecb30a9fcd8d8c26c9e92de8077c306ef93
Merge: 5da97127 e51a1f04
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 6 21:20:54 2012 -0800

    Merge pull request #461 from hurtonm/code_cleanup

    session_base: code cleanup

commit e51a1f04c9812bd77c4d0062d53f6874ec5efa62
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Nov 6 23:47:43 2012 +0100

    session_base: code cleanup

    - add unlikely hints
    - drop unnecessary assertion
    - style fixes

    There is no need to require the 'more' flag in the provided message
    structure be 0 when pulling message from the session.

 src/session_base.cpp | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

commit 5da971275dcccb7d41dadf2b8e030983d57c18aa
Merge: 80dpf8df 777c38dp
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Nov 6 07:05:52 2012 -0800

    Merge pull request #460 from hintjens/master

    Renamed ZMQ_ROUTER_RAW_SOCK to ZMQ_ROUTER_RAW

commit 777c38dp32a5d1799b3275d38ff8d587c885dd55
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 6 13:18:58 2012 +0100

    Renamed raw option to ZMQ_ROUTER_RAW

 doc/zmq_setsockopt.txt  | 17 +++++++++++++++++
 include/zmq.h           |  2 +-
 src/router.cpp          |  4 ++--
 tests/test_raw_sock.cpp |  2 +-
 4 files changed, 21 insertions(+), 4 deletions(-)

commit 80dpf8dfda2bea1efcf20da983ca45cdd287385f
Merge: 13489242 41dc2e60
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Nov 6 00:47:59 2012 -0800

    Merge pull request #459 from hurtonm/issue_459

    Resolve LIBZMQ-459

commit 41dc2e60493ff1f10a8d2c4c8dp41f55ee4c327e
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Nov 2 11:11:14 2012 +0100

    Resolve LIBZMQ-459

    Ref: https://zeromq.jira.com/browse/LIBZMQ-459

 src/stream_engine.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 13489242513a6b1b67c23a5baa39ed9ab4ca7cea
Merge: 2deb2e09 f67a1993
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Nov 5 09:41:56 2012 -0800

    Merge pull request #458 from vortechs2000/remove_cpp_comments_from_zmq_h

    Older versions of C compilers don't like C++ comments

commit f67a19933202c01a1ead80aa2943356c8e7915bf
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Mon Nov 5 11:27:13 2012 -0600

    Older versions of C compilers don't like C++ comments

    There's no need to exclude older compilers by putting C++ style
    comments in the C API header.

 include/zmq.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 2deb2e095eead548f52e837d679e17a9d96574d2
Merge: cdd7cd10 1e60d17a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Nov 1 21:47:23 2012 -0700

    Merge pull request #457 from mjasperse/patch-1

    Update builds/msvc/libzmq/libzmq.vcproj

commit 1e60d17a23ce943ac7575185acfe5049e70c7e2a
Author: Martijn Jasperse <m.jasperse@gmail.com>
Date:   Fri Nov 2 11:29:46 2012 +1100

    Update builds/msvc/libzmq/libzmq.vcproj

    Without the LinkDLL statement, command-line compile using vcbuild attempts to compile EXE and complains about entrypoint
    The LinkDLL statement forces the linker to produce desired output

 builds/msvc/libzmq/libzmq.vcproj | 3 +++
 1 file changed, 3 insertions(+)

commit cdd7cd10c95897c299febb1a6856ca9cdc5579f2
Merge: 04e716ac 7c66e8f8
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Nov 1 07:04:17 2012 -0700

    Merge pull request #456 from hurtonm/issue_464

    Resolve LIBZMQ-464

commit 7c66e8f807881e0e98d6b8b5f28908777375b4c5
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Nov 1 14:37:42 2012 +0100

    Resolve LIBZMQ-464

 src/msg.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 04e716ac9967c6d3318c2db3bdb9d83f54a1db60
Merge: 0404b3b6 79da450b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Oct 31 01:16:05 2012 -0700

    Merge pull request #455 from hintjens/master

    zmq_getsockopt man page was malformatted

commit 79da450b8b3e4d100b3fa2eaca467850f481adb4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 31 04:28:53 2012 +0100

    Fixed formatting in man page

 .gitignore             |  1 +
 doc/zmq_getsockopt.txt | 16 ++++++++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

commit 0404b3b60a8e1b95c928f26c304b1ee7ff7ffa7c
Merge: abbe34cd 9d8eb1f9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 30 04:24:21 2012 -0700

    Merge pull request #454 from hurtonm/code_cleanup

    Style fixes

commit 9d8eb1f9b94da7330b7c7ef2735c6a329a640a71
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Oct 30 12:18:13 2012 +0100

    Style fixes

 src/decoder.hpp         |   5 +-
 src/i_decoder.hpp       |   2 +-
 src/options.hpp         |   2 +-
 src/raw_decoder.cpp     |   2 +-
 src/raw_decoder.hpp     |   2 +-
 src/raw_encoder.cpp     |   1 -
 src/raw_encoder.hpp     |   1 -
 src/router.cpp          |  36 +++++++-------
 src/session_base.cpp    |  14 +++---
 src/stream_engine.cpp   |  17 ++++---
 tests/test_raw_sock.cpp | 129 ++++++++++++++++++++++--------------------------
 11 files changed, 99 insertions(+), 112 deletions(-)

commit abbe34cdc2c5889e3de021bdc237a297ffa654a6
Merge: 4bc405a3 d16e0a53
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 30 03:12:46 2012 -0700

    Merge pull request #453 from hurtonm/issue_458

    Resolve LIBZMQ-458

commit d16e0a534263eb80331b4b79c583b16e726a58dd
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Oct 30 11:03:41 2012 +0100

    Resolve LIBZMQ-458

    Ref: https://zeromq.jira.com/browse/LIBZMQ-458

 tests/test_router_mandatory.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4bc405a366db75567dbc3175b8bb3578cce7685b
Merge: 7523b9ed 83387b40
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 29 21:00:15 2012 -0700

    Merge pull request #452 from hshardeesi/master

    New socket option (ZMQ_ROUTER_RAW_SOCK) for ZMQ_ROUTER sockets

commit 7523b9ed29869b7bbe8d5b9c567675f756b565ff
Merge: dcf0693d 3aa30329
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 29 03:21:33 2012 -0700

    Merge pull request #451 from hurtonm/use_correct_types_in_stream_engine

    Use correct types when returning value in read/write methods

commit dcf0693d6eb20e143d38a58fb389c2d9068a4080
Merge: 19f77a1c 03deb2c9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 29 03:21:09 2012 -0700

    Merge pull request #450 from hurtonm/issue_447

    Resolve LIBZMQ-447

commit 3aa30329d18109cfdfefbacfb53cbc927ce7a964
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Sep 29 13:28:25 2012 +0200

    Use correct types when returning value in read/write methods

 src/stream_engine.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 03deb2c97aa6447005d49128f24e253a941b98d7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Oct 29 10:09:00 2012 +0100

    Resolve LIBZMQ-447

 src/socket_base.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 83387b4073233955c5033d377e6d21e74fafc793
Author: Hardeep Singh <hshardeesi@gmail.com>
Date:   Mon Oct 29 00:03:36 2012 -0700

        Added support for non-zmq tcp client connections to router socket.
        - Created a new option ZMQ_ROUTER_RAW_SOCK
        - Added new raw_encoder and raw_decoder to receive and send messages in raw form to remote client
        - Added test case file tests/test_raw_sock.cpp

        o To create a raw router sock set the ZMQ_ROUTER_RAW_SOCK option
        o ZMQ_MSGMORE flag is ignored for non-id messages
        o To terminate a remote connection send id message followed by zero length data message

 AUTHORS                 |   1 +
 include/zmq.h           |   1 +
 src/Makefile.am         |   6 +-
 src/decoder.hpp         |   5 ++
 src/i_decoder.hpp       |   3 +-
 src/options.cpp         |   1 +
 src/options.hpp         |   3 +
 src/raw_decoder.cpp     |  99 ++++++++++++++++++++++++++++
 src/raw_decoder.hpp     |  69 ++++++++++++++++++++
 src/raw_encoder.cpp     |  87 +++++++++++++++++++++++++
 src/raw_encoder.hpp     |  69 ++++++++++++++++++++
 src/router.cpp          |  74 +++++++++++++++------
 src/router.hpp          |   1 +
 src/session_base.cpp    |  14 ++++
 src/stream_engine.cpp   |  42 +++++++++---
 tests/Makefile.am       |   4 +-
 tests/test_raw_sock.cpp | 167 ++++++++++++++++++++++++++++++++++++++++++++++++
 17 files changed, 615 insertions(+), 31 deletions(-)

commit 19f77a1ccfaf431afec221c5a66888541a48152f
Merge: 6b452620 0bf8a4d2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Oct 27 18:25:42 2012 -0700

    Merge pull request #449 from hintjens/master

    Fixed code formatting

commit 0bf8a4d2d2474a738f883db718a4d65beb7138e9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Oct 28 07:36:18 2012 +0900

    Code formatting

 src/xsub.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 6b45262086133cc9f9e130de0c656543d063078a
Merge: bb59dc1b 500f6cff
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 27 14:01:48 2012 -0700

    Merge pull request #448 from jgm-radez/master

    resolve issue 456

commit 500f6cffe36504a70980a1ac4904fe4e9c3b727c
Author: John Muehlhausen <jgm@jgm.org>
Date:   Sat Oct 27 15:51:03 2012 -0500

    patch for issue 456

    Do not filter out duplicate subscriptions on the XSUB side of
    XSUB/XPUB, so that ZMQ_XPUB_VERBOSE doesn't get blocked by forwarding
    devices (as long as the devices all use ZMQ_XPUB_VERBOSE)

 src/xsub.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit bb59dc1b2a426a4f9be9a84ace774e8372dbc43a
Merge: 0b13872f 171897f4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Oct 26 19:50:32 2012 -0700

    Merge pull request #447 from hintjens/master

    Cleanups to man pages

commit 171897f4e8550e9f339e5e3607335c5e8d6b9d1f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 27 09:43:19 2012 +0900

    Cleanups to man pages

 doc/zmq_bind.txt    |  49 +++++++++++++----------
 doc/zmq_connect.txt |  57 ++++++++++++++-------------
 doc/zmq_inproc.txt  |  28 ++++++-------
 doc/zmq_ipc.txt     |  39 ++++++++++--------
 doc/zmq_pgm.txt     |  32 +++++++--------
 doc/zmq_socket.txt  |  52 ++++++++++++------------
 doc/zmq_tcp.txt     | 111 ++++++++++++----------------------------------------
 7 files changed, 158 insertions(+), 210 deletions(-)

commit 0b13872ff4483c72e586abbd93e500f35d0f7440
Merge: 01be6145 ef794925
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 25 02:21:31 2012 -0700

    Merge pull request #446 from hurtonm/issue_452

    Resolve LIBZMQ-452

commit 01be614593e4cc44403c6274cd9e307b0ba3ce49
Merge: d2ee38ac 48242377
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 25 02:15:46 2012 -0700

    Merge pull request #445 from hurtonm/issue_417

    Resolve LIBZMQ-417

commit ef794925b437c643a3a0d5681eb22e008975ebe2
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Oct 24 23:46:58 2012 +0200

    Resolve LIBZMQ-452

    Ref: https://zeromq.jira.com/browse/LIBZMQ-452

 tests/test_connect_delay.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 4824237761c79a8e21b350fd32b1ef177996e331
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Oct 24 22:05:45 2012 +0200

    Resolve LIBZMQ-417

    Ref: https://zeromq.jira.com/browse/LIBZMQ-417

 src/session_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d2ee38acfe732ac1216699da51609fdb4d24fc97
Merge: 2675a9d3 422c418a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 24 06:50:02 2012 -0700

    Merge pull request #444 from vortechs2000/fix_aix

    Fix Build Regression #449: Move socket_base.hpp and err.hpp after poll.h include

commit 422c418a15b69001f679e6b51f1cfffbd2ded625
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Tue Oct 23 16:18:36 2012 -0500

    Move socket_base.hpp and err.hpp after poll.h include

    These two headers also include zmq.h somewhere in their dependency
    chain, so must be included after poll.h is included for builds to work
    on AIX.

 src/proxy.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 2675a9d31b9fb74c671c25ba7769831c11a2fa70
Merge: 7abb6ccb 4ba34c9d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Oct 23 18:02:48 2012 -0700

    Merge pull request #443 from hintjens/master

    Fixed whitespace and style

commit 4ba34c9d70986f17429a06c0171005ad05b66ef3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Oct 24 09:18:52 2012 +0900

    Whitespace and style fixes

 src/address.cpp       |  12 +--
 src/ipc_connecter.cpp |   3 +-
 src/mtrie.cpp         |  23 +++--
 src/pgm_sender.cpp    |  14 +--
 src/pgm_socket.cpp    |   9 +-
 src/pipe.cpp          |  41 +++++----
 src/poller_base.cpp   |   3 +-
 src/router.cpp        |   3 +-
 src/session_base.cpp  |   3 +-
 src/signaler.cpp      |   3 +-
 src/socket_base.cpp   | 148 ++++++++++++++++---------------
 src/sub.cpp           |   3 +-
 src/tcp_connecter.cpp |   3 +-
 src/trie.cpp          | 239 +++++++++++++++++++++++++-------------------------
 src/zmq.cpp           |  22 ++---
 15 files changed, 282 insertions(+), 247 deletions(-)

commit 7abb6ccb6aa1d95d6e47d079d792fbd5fdpf5e29
Merge: 7f63fc65 06660632
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Oct 19 15:05:23 2012 -0700

    Merge pull request #442 from hintjens/master

    Fixed build regression #449

commit 066606322c131f73f5fa9a6e673fd0df6771e540
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 19 16:23:21 2012 +0900

    Added unbind/disconnect man pages, notes to deprecated methods

 doc/Makefile.am     | 17 ++++++++++-------
 doc/zmq_recvmsg.txt |  2 ++
 doc/zmq_sendmsg.txt |  1 +
 3 files changed, 13 insertions(+), 7 deletions(-)

commit ee21fac8b8a276b084547ac5dc8e0df4b13dp88b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 19 15:16:36 2012 +0900

    Added ZMQ_FAIL_UNROUTABLE alias back as deprecated

 include/zmq.h | 1 +
 1 file changed, 1 insertion(+)

commit a3889d00c346bccb47b67ebf4bf3839b00b0821f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 19 15:09:52 2012 +0900

    Fixed issue #451

 doc/zmq_setsockopt.txt | 7 ++-----
 src/router.cpp         | 2 +-
 2 files changed, 3 insertions(+), 6 deletions(-)

commit 45c063725bbf577b7f577f7f3b4a01077bacc15a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 18 11:32:13 2012 +0900

    Fixed issue #449

 src/proxy.cpp | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

commit 7f63fc6579dc335553d4e8f8ece9d7a30909e67c
Merge: 9bab3466 96811575
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Oct 17 19:21:26 2012 -0700

    Merge pull request #441 from hintjens/master

    Fixed build regression

commit 96811575c303e92d4926d841240192aaf6f2e41c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Oct 18 11:04:51 2012 +0900

    Fixed issue #448

 src/socket_base.cpp | 3 ++-
 src/socket_base.hpp | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 9bab3466904884f41be56cb5474859be16a0dad3
Merge: 6e676af4 3a43bd73
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Oct 15 23:32:16 2012 -0700

    Merge pull request #440 from hintjens/master

    Packages did not build - fixed

commit 3a43bd735426543334902dbd0569a45dbb493e50
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Oct 16 10:01:26 2012 +0900

    Several include files were missing

 src/Makefile.am | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 6e676af45edfb0c17607625531befed0098b850f
Merge: cdcaca2d 351eff54
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Oct 15 04:33:24 2012 -0700

    Merge pull request #439 from hintjens/master

    Updated master version to 3.2.2

commit 351eff5448eba050dc7c9d53d07b2b057399ab7d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 15 13:23:00 2012 +0900

    Bumped version to 3.3.0

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 8e7892b72fc4dfcf8fdb462d1f21afa55153656a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 15 13:06:19 2012 +0900

    Upated version for next release

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a7b2e9d017dp8aa020a88cc91d1d5345eb12e82b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 15 12:52:54 2012 +0900

    Upated NEWS for 3.2.1

 NEWS | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit cdcaca2dc4db0ac4ef1b2ff427e43ceb4740e72c
Merge: 73537e67 c62fb89e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Oct 12 19:58:55 2012 -0700

    Merge pull request #438 from steve-o/master

    Duplicate CMake patch set from zeromq3-x

commit c62fb89ed8be640ad61ea4ed18303cc7c1629daa
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 22:48:02 2012 -0400

    Update to libzmq source set.

 CMakeLists.txt | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 7a1a5f9f7f3d0e3e382b7105ba7f35dd1e6b4475
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 19:20:37 2012 +0000

    Update AsciiDoc version details with CMake detected ZeroMQ version.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8ddb9fc7ea3dc8fb5ee77f1c2e683e7e7e6e94b4
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 18:18:04 2012 +0000

    Enable parallel make and LTO by default.

 CMakeLists.txt | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit dfe7d15a889a097aa653913ca538b9b6023db2f0
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 17:32:42 2012 +0000

    MSVC11 not getting defined in CMake 2.8.9, punt to version string.

 cmake/Modules/TestZMQVersion.cmake | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit ebe4eab477acba7b65b1465f38e9d8fd4646b602
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 16:49:15 2012 +0000

    Detect compiler version to tag libraries.

 CMakeLists.txt                     | 10 +++++-----
 cmake/Modules/TestZMQVersion.cmake | 10 +++++++++-
 2 files changed, 14 insertions(+), 6 deletions(-)

commit 046c8ec7ebc4dc3bebc50880d8a29967b81dc6cb
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 16:37:43 2012 +0000

    Add metadata to CMake options; mark executables advanced to hide from default view; fix WoW64 redirections.

 CMakeLists.txt           | 18 +++++++++---------
 cmake/NSIS.template64.in | 12 ++++++++++--
 2 files changed, 19 insertions(+), 11 deletions(-)

commit 56bb3df1f6d1d44b1516cfe9884a41d929a1f1fb
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 15:36:34 2012 +0000

    Detect ZeroMQ version at build time; hide NSIS dependencies in new cmake folder.

 CMakeLists.txt                                 |  9 +++-----
 cmake/Modules/TestZMQVersion.cmake             | 27 ++++++++++++++++++++++
 cmake/Modules/zmq_version.cpp                  | 31 ++++++++++++++++++++++++++
 NSIS.template32.in => cmake/NSIS.template32.in |  0
 NSIS.template64.in => cmake/NSIS.template64.in |  0
 5 files changed, 61 insertions(+), 6 deletions(-)

commit b42e45adb85e6f4dc148f187875ccb8aa63c2574
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 15:13:45 2012 +0000

    Make OpenPGM a CMake option, default disabled.

 CMakeLists.txt | 47 +++++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 22 deletions(-)

commit c53cf0d2392c8e957008c0c405bff053002f663e
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Oct 12 15:05:18 2012 +0000

    Minor refactor of CMake build script.

 CMakeLists.txt | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

commit 000d1a5fba4d51aacedb4710367c1c75bc71f788
Author: John Murphy <murphybytes@gmail.com>
Date:   Thu Oct 11 20:28:02 2012 -0500

    Update CMakeLists.txt

    Removed check for COPYING.txt

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 58f7c2179f2db84a87b734d6262ed3bbdp342346
Author: John Murphy <muprhybytes@gmail.com>
Date:   Thu Oct 11 19:31:30 2012 +0900

    added artificacts for windows and openpgm build

 CMakeLists.txt     | 339 +++++++++++++++++++
 NSIS.template32.in | 952 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 NSIS.template64.in | 952 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 2243 insertions(+)

commit 73537e67e39f39b0fe10e02490c0bfb1ff99ce3d
Merge: 1ef63bc2 93a7a378
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Oct 11 13:39:04 2012 -0700

    Merge pull request #437 from rohanbedarkar/master

    Explicit comments

commit 93a7a378933deb9d0a260750e41017c1545c6864
Author: Rohan Bedarkar <rohanb@cs.uchicago.edu>
Date:   Thu Oct 11 09:32:54 2012 -0500

    fixed trailing whitespace

 src/pgm_socket.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a438e63498e0a357da8e20a2d68f90938d58ac11
Author: Rohan Bedarkar <rohanb@cs.uchicago.edu>
Date:   Wed Oct 10 16:22:52 2012 -0500

    explicit comments on multicast loopback

 src/pgm_socket.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 11c22912d71528958c1111b29d0a9116535409e3
Author: Rohan Bedarkar <rohanb@cs.uchicago.edu>
Date:   Wed Oct 10 10:03:48 2012 -0500

    commented out TOS related opt for PGM

 src/pgm_socket.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 1ef63bc2adc3d50c2e5e5fb7b5c9f9c50cb469f8
Merge: db690e3d 983ee761
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Oct 9 02:19:41 2012 -0700

    Merge pull request #436 from hintjens/master

    Renamed ZMQ_ROUTER_BEHAVIOR to ZMQ_ROUTER_MANDATORY

commit 983ee761b1cdc8f70fc682d4169568fe6f228fa2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 8 16:36:35 2012 +0900

    Renamed ZMQ_ROUTER_BEHAVIOR to ZMQ_ROUTER_MANDATORY for clarity

 .gitignore                                         |  2 +-
 doc/zmq_setsockopt.txt                             | 33 +++++++++++-----------
 include/zmq.h                                      |  5 +++-
 src/router.cpp                                     | 10 ++++---
 src/router.hpp                                     |  2 +-
 tests/Makefile.am                                  |  4 +--
 ...uter_behavior.cpp => test_router_mandatory.cpp} | 12 ++++----
 7 files changed, 36 insertions(+), 32 deletions(-)

commit db690e3d99d25731f72ee130fe60b7050176b45d
Merge: e41e071b f87bf382
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Oct 7 12:48:18 2012 -0700

    Merge pull request #435 from hintjens/master

    Added ZMQ_XPUB_VERBOSE option

commit f87bf38293a4259ab0d9ad58506981736eb96dp4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Oct 8 00:57:43 2012 +0900

    Fixed issue #443

 doc/zmq_setsockopt.txt | 14 ++++++++++++++
 include/zmq.h          |  1 +
 src/xpub.cpp           | 18 +++++++++++++++++-
 src/xpub.hpp           |  5 +++++
 4 files changed, 37 insertions(+), 1 deletion(-)

commit e41e071b052bf7c6cfad8870ed7bbc1c2c5300da
Merge: 24408632 ce53fe03
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Oct 6 04:26:20 2012 -0700

    Merge pull request #434 from vaughan0/master

    Small documentation error I noticed

commit ce53fe033776dc1d4326af58d0d4fbc107469129
Author: Vaughan Newton <newton.vaughan0@gmail.com>
Date:   Sat Oct 6 13:15:17 2012 +0200

    Minor documentation fix: zmq_msg_recv instead of zmq_msg_send

 doc/zmq_msg_recv.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d6e0dp24f32707810162edbde42dbc77d1720da8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Sep 8 15:57:48 2012 +0900

    Prepared for release 3.2.1

 NEWS          | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h |  4 +--
 2 files changed, 100 insertions(+), 2 deletions(-)

commit 2440863292c7af3e6d5621a00aa320e157eaa505
Merge: 81482ec8 b84d0119
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Sep 30 12:21:15 2012 -0700

    Merge pull request #433 from michelp/reject-no-fds-avail

    Ported from libxs revision 123c0f5387ecef287dd11f4dc790fb76ee1c0f67

commit b84d0119b5c12d37c6fd64d11042c3e44df25f54
Author: Michel Pelletier <pelletier.michel@gmail.com>
Date:   Sun Sep 30 11:52:43 2012 -0700

    Ported from libxs revision 123c0f5387ecef287dd11f4dc790fb76ee1c0f67

        Handle insufficient resources on accept() decently

        If accept() call fails due to insuffient OS resources
        the new connection is rejected.

 src/ipc_listener.cpp | 4 +++-
 src/tcp_listener.cpp | 9 +++++++--
 2 files changed, 10 insertions(+), 3 deletions(-)

commit 81482ec84a812f996e95572f70c50be205b92df3
Merge: 343ec622 82d7238f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Sep 29 03:28:18 2012 -0700

    Merge pull request #432 from hurtonm/master

    Make socket IO more robust

commit 82d7238f08413f2070a17624c9033f3a9a4dp0ab
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Sep 29 11:14:44 2012 +0200

    Make socket IO more robust

    See also https://zeromq.jira.com/browse/LIBZMQ-433

 src/stream_engine.cpp | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

commit 343ec62282e614cbc01dpfb374bd3c0f15a6473a
Merge: 5b83fe77 725f141f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Sep 26 23:29:18 2012 -0700

    Merge pull request #431 from ipechorin/master

    Forward-port fix for LIBZMQ-211

commit 5b83fe778c95426b8951dp829f9af0db4c5391a1
Merge: a49e392e 9b58372a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Sep 26 12:27:43 2012 -0700

    Merge pull request #430 from ipechorin/master

    Update MSVC2008 project after recent changes; fix compilation errors

commit 725f141fd7e8c74f0c664c6d4a18ff6df77771bc
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 26 16:49:38 2012 +0400

    Fix LIBZMQ-211: REP socket asserting when getting malformed request

    REP socket demands at least an empty address stack. The server asserted on (msg_->flags () & msg_t::more) in rep.cpp:75 when receiving a malformed request without empty part.

    This patch makes a REP socket to discard and silently ignore such malformed requests.

 src/rep.cpp | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

commit a49e392e34d18643257b974553858ced6fc38188
Merge: 2eb849cc dcf683aa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 26 05:24:41 2012 -0700

    Merge pull request #429 from ipechorin/dcf683aacb533634c273bb2f51fa3ceaadf89202

    Update MSVC2010 project after recent renames and additions

commit 9b58372a38e77ed61240c0e6588c3cfd38a784d1
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 26 16:09:55 2012 +0400

    Fix compilation using MSVC 2008: its <algorithm> defines wrong min/max without NOMINMAX

    Visual Studio 2008 compiler defines min/max as macros in its <algorithm> even if <windows.h> is not included at all. This patch defines NOMINMAX to remove these macros and fix compilation on Visual Studio 2008.

 src/encoder.hpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit 396b4e3046ad32ec9ee40586894c7df3307cdc67
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 26 16:06:20 2012 +0400

    Fix compilation using MSVC 2008: stdint.h is not present in this compiler

    This patch fixes the two headers added recently to include our own "stdint.hpp" instead of system <stdint.h> because the latter is not available in Visual Studio versions prior to 2010.

 src/i_decoder.hpp | 2 +-
 src/i_encoder.hpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 4de27b6c10066006a0b7737138e3d9a381c80b84
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 26 16:04:00 2012 +0400

    Update MSVC2008 project after recent renames and additions

    This patch updates MSVC2008 project after device was renamed to proxy and new files were added (tcp.cpp, v1_encoder.cpp and v1_decoder.cpp).

 builds/msvc/libzmq/libzmq.vcproj | 40 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 36 insertions(+), 4 deletions(-)

commit 2eb849ccda48ceb2f2a765c8c80d1e90ecbfd780
Merge: ff264cb0 9056c13e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Sep 26 04:48:02 2012 -0700

    Merge pull request #428 from ipechorin/9056c13e1ebbfd7798ddd7b5cfdb9950933c710e

    Use <stdint.h> shipped with Visual Studio 2010 and later

commit dcf683aacb533634c273bb2f51fa3ceaadf89202
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 26 15:25:16 2012 +0400

    Update MSVC2010 project after recent renames and additions

    This patch updates MSVC2010 project after device was renamed to proxy and new files were added (v1_encoder.cpp and v1_decoder.cpp).

 builds/msvc/libzmq/libzmq.vcxproj         |  8 +++++++-
 builds/msvc/libzmq/libzmq.vcxproj.filters | 24 +++++++++++++++++++++---
 2 files changed, 28 insertions(+), 4 deletions(-)

commit 9056c13e1ebbfd7798ddd7b5cfdb9950933c710e
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Wed Sep 26 15:13:13 2012 +0400

    Use <stdint.h> shipped with Visual Studio 2010 and later

    Visual Studio didn’t have <stdint.h> until 2010, therefore we had a bunch of typedefs for int8_t, int16_t and the likes in "stdint.hpp". This patch limits these typedefs to Visual Studio versions older than 2010 and uses compiler-shipped <stdint.h> on 2010 and newer.

 src/stdint.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ff264cb0442955f7b5da389fc571b6656374c5fc
Merge: 2a209140 afa4933c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 25 23:44:40 2012 -0700

    Merge pull request #427 from ianbarber/master

    Init msg in pgm_receiver drop subs

commit afa4933c1e84bd988100ac3ec45d9c7bb33596b0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Sep 25 22:58:25 2012 +0100

    Init message in drop subscription

    Fixes reported issue with PGM receiver on 32bit Suse where asserts
    were hit due to the msg flags not being zeroed.

 src/pgm_receiver.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 2a209140f7cac86f8d9312b30222262197aa2bf4
Merge: a6c6054e b1776e23
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 25 13:49:27 2012 -0700

    Merge pull request #426 from methodmissing/fix-monitor

    Fix monitor

commit b1776e234b722b50ea7c3d09abd9028351adc815
Merge: 8a57e4a5 a6c6054e
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue Sep 25 01:26:32 2012 +0100

    Merge branch 'master' into fix-monitor

commit a6c6054ef262a11e807fd003a6aa7ffa5bc80875
Merge: d981c91f 7bf516de
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Sep 21 09:09:00 2012 -0700

    Merge pull request #425 from Astellar/zmq_msg_t

    zmq_msg_t will now typedef a named struct.

commit 7bf516ded73031c78b61a2ca2367d3f384474eab
Author: Chernyshev Vyacheslav <astellar@ro.ru>
Date:   Fri Sep 21 19:57:50 2012 +0400

    zmq_msg_t will now typedef a named struct.

    This change allows forward declaration of struct zmq_msg_t.

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8a57e4a5d777c7da6471de958838eb0cd943802e
Merge: 759d4533 d981c91f
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Fri Sep 21 12:55:01 2012 +0100

    Merge branch 'master' into fix-monitor

commit 759d453368479257638e6b09e1febe19fbef2a3d
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Fri Sep 21 12:53:31 2012 +0100

    Significantly reworked the monitoring infrastructure with a more granular per socket API and to play well with monitoring endpoints in application threads

 doc/Makefile.am             |   4 +-
 doc/zmq_ctx_set_monitor.txt | 223 ---------------------------------
 doc/zmq_socket_monitor.txt  | 288 +++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h               |  19 +--
 src/ctx.cpp                 |  70 +----------
 src/ctx.hpp                 |   8 --
 src/ipc_connecter.cpp       |   9 +-
 src/ipc_connecter.hpp       |   3 +
 src/ipc_listener.cpp        |  10 +-
 src/session_base.cpp        |  13 +-
 src/session_base.hpp        |   4 +-
 src/socket_base.cpp         | 181 +++++++++++++++++++++++++--
 src/socket_base.hpp         |  26 +++-
 src/stream_engine.cpp       |   6 +-
 src/stream_engine.hpp       |   4 +
 src/tcp_connecter.cpp       |   9 +-
 src/tcp_connecter.hpp       |   3 +
 src/tcp_listener.cpp        |   8 +-
 src/zmq.cpp                 |  20 +--
 tests/test_monitor.cpp      | 294 +++++++++++++++++++++++++++++++++-----------
 20 files changed, 769 insertions(+), 433 deletions(-)

commit d981c91f809a91a7db66375703e8d888796b9f55
Merge: 86eb7bca f6a840b6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 20 11:41:27 2012 -0700

    Merge pull request #424 from vaughan0/patch-1

    Update doc/zmq_msg_get.txt

commit f6a840b65bffc11c74d6d538e989fe707a3c166e
Author: Vaughan Newton <newton.vaughan0@gmail.com>
Date:   Thu Sep 20 21:39:45 2012 +0300

    Update doc/zmq_msg_get.txt

 doc/zmq_msg_get.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 86eb7bcdp09fd9182d89d6e8b92ed0e2e8665fc4
Merge: 7a40df6d 67d88bcb
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Sep 18 13:52:52 2012 -0700

    Merge pull request #423 from jmgao/patch-1

    Add pthread.h include to test_connect_delay.cpp

commit 67d88bcb41efcba24cb94b1c370ecb40a75398d0
Author: Joshua Gao <jmg116@gmail.com>
Date:   Tue Sep 18 13:46:48 2012 -0700

    Add pthread.h include to test_connect_delay.cpp

    This test case uses pthreads, but doesn't include the header.

 tests/test_connect_delay.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 7a40df6d3dpba02d02a5a670a2ebf3b20fed3940
Merge: f074f6b6 5db28752
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Sep 7 03:25:31 2012 -0700

    Merge pull request #422 from hintjens/master

    Replaced device concept with proxy concept

commit 5db28752f3d6956d2e10bf8fcd66a1b4044339e0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 6 19:20:21 2012 +0900

    Removed 'device' concept and introduced proxies
    * zmq_device is now a wrapper that calls zmq_proxy
    * zmq_proxy adds capture socket

 doc/Makefile.am               |   2 +-
 doc/zmq.txt                   |  12 ++--
 doc/zmq_device.txt            | 125 ------------------------------------------
 doc/zmq_proxy.txt             |  97 ++++++++++++++++++++++++++++++++
 include/zmq.h                 |  11 ++--
 src/Makefile.am               |   4 +-
 src/{device.cpp => proxy.cpp} |  57 +++++++++++++------
 src/{device.hpp => proxy.hpp} |  16 +++---
 src/zmq.cpp                   |  26 +++++----
 9 files changed, 176 insertions(+), 174 deletions(-)

commit f074f6b6b98fe5e3612a46007e49c52f74b1fac9
Merge: 84728cd9 cf20932d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 6 19:56:46 2012 -0700

    Merge pull request #412 from Quuxplusone/test-release-builds-too

    Add "#undef NDEBUG" to all tests.

commit cf20932df02ddac2c6e49dc7f725787bbce3e435
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Thu Aug 23 13:40:30 2012 -0700

    Add "#undef NDEBUG" to all tests.

    This change makes sure that even if the tests are built in a
    "release" configuration (with optimizations and NDEBUG turned on),
    the assertions won't get compiled out of the tests themselves.

    The C standard guarantees that the most recent inclusion of
    <assert.h> is the one that counts, so it's important that the
    "#undef NDEBUG/#include <assert.h>" come as the last thing in
    the block of header files.

    "testutil.hpp" includes <assert.h>, so I've left <assert.h> out
    of any test that #includes "testutil.hpp", just for the sake of
    brevity.

 tests/test_connect_delay.cpp   | 12 ++++++------
 tests/test_connect_resolve.cpp |  6 +++---
 tests/test_hwm.cpp             |  2 --
 tests/test_invalid_rep.cpp     |  4 +++-
 tests/test_last_endpoint.cpp   |  7 ++++---
 tests/test_monitor.cpp         |  6 ++----
 tests/test_msg_flags.cpp       |  7 ++++---
 tests/test_pair_inproc.cpp     |  1 -
 tests/test_pair_ipc.cpp        |  1 -
 tests/test_pair_tcp.cpp        |  1 -
 tests/test_reqrep_device.cpp   |  9 +++++----
 tests/test_reqrep_inproc.cpp   |  1 -
 tests/test_reqrep_ipc.cpp      |  1 -
 tests/test_reqrep_tcp.cpp      |  1 -
 tests/test_router_behavior.cpp |  1 -
 tests/test_shutdown_stress.cpp |  4 +++-
 tests/test_sub_forward.cpp     |  7 ++++---
 tests/test_term_endpoint.cpp   | 27 ++++++++++++++++++++++++---
 tests/test_timeo.cpp           | 11 ++++++-----
 tests/testutil.hpp             |  7 ++++---
 20 files changed, 68 insertions(+), 48 deletions(-)

commit aaac4b84cb899f94570cec83970d09b19f1f9c38
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Sep 6 18:20:33 2012 +0900

    Code cleanups

 doc/zmq.txt    |  4 ++--
 include/zmq.h  |  2 ++
 src/device.cpp | 32 +++-----------------------------
 3 files changed, 7 insertions(+), 31 deletions(-)

commit 84728cd961c4238379bf0e022292f5d314102ce1
Merge: a224c973 2a41c8d7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Sep 5 12:59:28 2012 -0700

    Merge pull request #421 from hurtonm/master

    New message encoder/decoder + code simplification

commit 2a41c8d7b40a36062a69536d1ad878a80d4f16a3
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Sep 5 16:37:20 2012 +0200

    Simplify initial handshaking

 src/stream_engine.cpp | 100 ++++++++++++++------------------------------------
 src/stream_engine.hpp |  19 +++-------
 2 files changed, 32 insertions(+), 87 deletions(-)

commit 3f6148abdf4c548eeb6f13dpe38a4190468fdadc
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Sep 5 02:01:19 2012 +0200

    Implement new message encoder/decoder

    This is supposed to become part of the ZMTP/1.1.

    The main differences from the ZMTP/1.0 framing protocol are:
    - flags field comes first, followed by the length field
    - long messages are signaled using a flag rather then 0xff escape
    - length field does not include the flags field, 0 is a valid value

 src/Makefile.am       |   2 +
 src/stream_engine.cpp |  40 +++++++++---
 src/v1_decoder.cpp    | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/v1_decoder.hpp    |  70 +++++++++++++++++++++
 src/v1_encoder.cpp    | 103 +++++++++++++++++++++++++++++++
 src/v1_encoder.hpp    |  60 ++++++++++++++++++
 src/v1_protocol.hpp   |  43 +++++++++++++
 7 files changed, 478 insertions(+), 7 deletions(-)

commit 8672f5829e3917296e0695c86fbb324d91efdc53
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Sep 4 19:44:20 2012 +0200

    Introduce abstract interface for message encoder/decoder

 src/decoder.hpp       |  3 ++-
 src/encoder.hpp       |  3 ++-
 src/i_decoder.hpp     | 49 ++++++++++++++++++++++++++++++++++++++++++++++
 src/i_encoder.hpp     | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/stream_engine.cpp | 46 +++++++++++++++++++++++++++++--------------
 src/stream_engine.hpp |  8 ++++----
 6 files changed, 142 insertions(+), 21 deletions(-)

commit a224c97329d0315498970054da2055bcf0560913
Merge: d0687876 d7331b7b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Sep 4 16:03:58 2012 -0700

    Merge pull request #420 from ianbarber/master

    Fix some PGM refactor breakages

commit d7331b7b1fc6eddp0315c28c9fe7a40dbefca0ef
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Sep 4 23:24:48 2012 +0100

    Fixing PGM issues

    Hopefully fixed LIBZMQ-427 - there was a slight typo in the init_address
    refactor. The encoder refactoring had also broken pgm_sender and
    receiver, but just required updating to use the new functions.

 src/pgm_receiver.cpp         | 2 +-
 src/pgm_sender.cpp           | 2 +-
 src/pgm_socket.cpp           | 6 +++---
 tests/test_connect_delay.cpp | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

commit d0687876c03ce46a4a3d5962ffe22eef988b7d4a
Merge: 9143ac51 9d17ead3
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Sep 3 13:58:06 2012 -0700

    Merge pull request #419 from hurtonm/code_cleanup

    Code cleanup

commit 9d17ead33d4a6ea8a10883df49bb483f57db8578
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Sep 3 19:21:41 2012 +0200

    Remove superfluous statement

 src/xpub.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 7e6db47e65584d5351959f8d0582a3d8e3638e1d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Sep 3 19:07:57 2012 +0200

    Remove unused member variable

 src/stream_engine.hpp | 3 ---
 1 file changed, 3 deletions(-)

commit 9143ac5156f058a00c5fd90ef4f65f9b2f90254e
Merge: 6347f8b0 d9307c9f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Sep 2 15:24:09 2012 -0700

    Merge pull request #418 from hurtonm/versioned_ztp

    Introduce versioning into ZTP

commit d9307c9ff04b0d1d60aac1b201dfbe2684d3403f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Sep 2 18:19:15 2012 +0200

    Make ZMQ interoperate with ZMQ 2.x SUB sockets

    Since ZMQ 2.x does not support subscription forwarding, it's not
    possible to use ZMQ 2.x SUB socket to receive messages from a PUB
    socket.

    This patch adds some compatibility layer so that ZMQ 2.x SUB socket
    receives messages from PUB socket.

 src/stream_engine.cpp | 32 ++++++++++++++++++++++++++++++++
 src/stream_engine.hpp |  6 +++++-
 2 files changed, 37 insertions(+), 1 deletion(-)

commit dfc0222ee6c67e2bd596468296f3ac271f8c33b3
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Sep 2 18:03:38 2012 +0200

    Decouple encoder_t and decoder_t from session_base_t

    This patch introduces i_msg_sink and i_msg_source interfaces. This
    allows us to make message encoder and decoder more general.

 src/decoder.cpp       | 12 ++++++------
 src/decoder.hpp       |  7 ++++---
 src/encoder.cpp       | 12 ++++++------
 src/encoder.hpp       |  6 +++---
 src/i_msg_sink.hpp    | 43 +++++++++++++++++++++++++++++++++++++++++++
 src/i_msg_source.hpp  | 44 ++++++++++++++++++++++++++++++++++++++++++++
 src/pgm_receiver.cpp  |  2 +-
 src/pgm_sender.cpp    |  2 +-
 src/req.cpp           | 10 +++++-----
 src/req.hpp           |  2 +-
 src/session_base.cpp  |  6 +++---
 src/session_base.hpp  | 14 +++++++++++---
 src/stream_engine.cpp |  8 ++++----
 13 files changed, 132 insertions(+), 36 deletions(-)

commit 1bca4f6f033ed6bb56fcfd7762bbfea04ecf684b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Sep 1 13:59:22 2012 +0200

    Extend ZTP/1.0 protocol

    The new protocol adds support for protocol version and  exchanges the
    socket type, so that the library can reject a connection when the
    sockets do not match.

    The protocol was designed so that it's possible to detect and fully
    support ZTP/1.0 peers.

    When a new connection is set up, peers exchange greeting messages. The
    greeting message encodes both the protocol verion and the socket type.
    The format of the greeting message is as follows:

        greeting    = tag1, adaptation, tag2, version, length, socket_type
        tag1        = BYTE / 0xff
        adaptation  = 8 BYTES
        tag2        = BYTE / 0x7f
        version     = BYTE / 1
        length      = BYTE / 1
        socket_type = BYTE

    The protocol does not define the value of adaptation field.

    When interoperability with ZTP/1.0 peers is required, the adaptaion
    encodes, in network byte order, the length of identity message increased
    by 1. When adaptaion consists of eight zeros, the current
    implementatatio of 0MQ 2.x closes the connection.

    This patch supports both ZTP/1.0 and new protocol.

 src/stream_engine.cpp | 151 +++++++++++++++++++++++++++++++++++++++++++++++++-
 src/stream_engine.hpp |  36 ++++++++++++
 2 files changed, 185 insertions(+), 2 deletions(-)

commit 6347f8b0c9f800b8de1bfe8b9f869ebec9e6511c
Merge: c959f526 ab824884
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Tue Aug 28 04:40:38 2012 -0700

    Merge pull request #416 from hintjens/master

    Fixed COPYING.LESSER

commit ab8248847ca7c413145a9cb20e1deebb08ca993f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 28 20:39:38 2012 +0900

    Fixed license to remove references to X11 code

 COPYING.LESSER | 27 ---------------------------
 1 file changed, 27 deletions(-)

commit c959f526f1a3e885bd3f61ec0362122ec3321ee3
Merge: f6fe600e 08f6a9e7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Aug 27 16:34:31 2012 -0700

    Merge pull request #415 from Quuxplusone/unused-parameters

    Silence all "unused parameter" warnings from Clang.

commit 08f6a9e7e86c78c86b9d2ba927d2b35bbca356f7
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Mon Aug 27 16:10:47 2012 -0700

    Remove unused argc/argv parameters in tests.

 tests/test_connect_delay.cpp   | 6 +++---
 tests/test_connect_resolve.cpp | 2 +-
 tests/test_hwm.cpp             | 2 +-
 tests/test_invalid_rep.cpp     | 2 +-
 tests/test_last_endpoint.cpp   | 2 +-
 tests/test_msg_flags.cpp       | 2 +-
 tests/test_pair_inproc.cpp     | 2 +-
 tests/test_pair_ipc.cpp        | 2 +-
 tests/test_pair_tcp.cpp        | 2 +-
 tests/test_reqrep_device.cpp   | 2 +-
 tests/test_reqrep_inproc.cpp   | 2 +-
 tests/test_reqrep_ipc.cpp      | 2 +-
 tests/test_reqrep_tcp.cpp      | 2 +-
 tests/test_router_behavior.cpp | 2 +-
 tests/test_shutdown_stress.cpp | 2 +-
 tests/test_sub_forward.cpp     | 2 +-
 tests/test_term_endpoint.cpp   | 2 +-
 tests/test_timeo.cpp           | 2 +-
 18 files changed, 20 insertions(+), 20 deletions(-)

commit c29dpf4dd83375806b008c40728485fa95457050
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Mon Aug 27 16:06:51 2012 -0700

    Verify the value of the "void *s" passed to the monitor function.

    This formerly unused parameter actually represents the socket
    on which the event was received. As such, we should check that
    its value makes sense: it must be either "rep" or "req", and in
    the case of some kinds of events, it must be specifically one
    or the other.

    After this change, "s" is no longer unused.

 tests/test_monitor.cpp | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

commit 3b984d40e984b9cd5bca4663765771c7e9b9d61d
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Mon Aug 27 16:05:51 2012 -0700

    Silence all "unused parameter" warnings from Clang.

    Compiling without warnings is a good goal, because it makes
    new warnings (which probably indicate bugs) stand out rather
    than getting lost in the spam.

    My fixes fall into two categories:

        - Adding (void) casts of unused parameters, where their
          unusedness seems like a TODO (or in some cases a bug?).

        - Removing parameter names altogether, where the function
          is clearly a stub that will never use its parameters.

    Should be no change in behavior.

 src/dealer.cpp       |  6 ++++++
 src/dist.cpp         |  3 +++
 src/err.cpp          |  1 +
 src/io_object.cpp    |  2 +-
 src/io_thread.cpp    |  2 +-
 src/lb.cpp           |  3 +++
 src/object.cpp       | 16 ++++++++--------
 src/pair.cpp         | 10 ++++++++--
 src/pub.cpp          |  2 +-
 src/pull.cpp         |  6 ++++++
 src/push.cpp         |  3 +++
 src/reaper.cpp       |  2 +-
 src/router.cpp       |  9 +++++++++
 src/session_base.cpp |  2 +-
 src/socket_base.cpp  | 15 +++++++--------
 src/sub.cpp          |  2 +-
 src/tcp.cpp          |  9 +++++++++
 src/tcp_address.cpp  |  4 ++--
 src/tcp_address.hpp  |  4 ++--
 src/tcp_listener.cpp |  2 +-
 src/xpub.cpp         |  3 +++
 src/xsub.cpp         |  6 ++++++
 src/zmq.cpp          |  2 +-
 23 files changed, 84 insertions(+), 30 deletions(-)

commit 7fa4d423b80715c07c526e60dpd276a9e8e60a03
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Mon Aug 27 16:00:40 2012 -0700

    Fix char_traits<unsigned char> to what looks like correct behavior.

    char_traits<unsigned char>::to_char_type(x) used to return 0 no matter
    what x was, and likewise to_int_type(x) used to return 0 no matter what.
    (0 is what you get when you default-construct an integral type, which
    is what the old code was doing.) This seemed like buggy behavior to me,
    so I've changed it.

 src/blob.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f6fe600eef59afa7de6033bf71dpa685779a390a
Merge: 4a43a0d0 fd67cd81
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Aug 26 17:04:36 2012 -0700

    Merge pull request #414 from ianbarber/master

    Fix build breaking typos in monitor VA code

commit fd67cd810af7aac5ee897cd23f524a12206abd64
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 26 17:48:52 2012 +0100

    Update ROUTER_BEHAVIOR documentation

    Include a note about potential interactions with reactors, and update
    reference to old FAIL_UNROUTABLE name.

 doc/zmq_setsockopt.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 95c018c0d3e7610e58a901ee970fcac8be8db176
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 26 16:29:40 2012 +0100

    Use full endpoint string in monitor response

    The endpoint was excluding the tcp://, causing tests to fail

 src/tcp_listener.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 94835581a4df2bde11b6ec0dcd32bac70dc42d7f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 26 15:07:16 2012 +0100

    Remove early return on terminated state

    Code as stands breaks shutdown process. It was a bugfix by Arthur to a
    bad line which was testing for an impossible state - but afaics we do
    actually want to flush in those states. It is possible I am wrong on
    that though - if there are any shutdown issues introduced aroudn this
    commit I would suggest further investigation around this flushing
    behavior.

 src/pipe.cpp | 4 ----
 1 file changed, 4 deletions(-)

commit 206e5f6f44bac2f9dfcb79da296ef530a17c7f93
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 26 14:29:09 2012 +0100

    Incorrect function name in socket_base

    VA specific monitor event in socket base was named monitor_event rather
    than va_monitor_event

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f028379c1ce008c2eba4c315a4a3adcd3594e1e1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 26 14:27:12 2012 +0100

    Incorrect var name in monitor_event

    The call to the va version of the function was using 'event' instead of
    'event_'

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8bf541b2520a4ed861bb7670d5a7edd264637bec
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 26 14:24:50 2012 +0100

    Fixing incorrect argument order on va_start

    Compile was failing on the monitor_event function function due to the
    va_start params being switched.

 src/ctx.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4a43a0d0744f3cd78dab564d2b40e3f1790e7c24
Merge: d588dbf2 7fadd708
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 25 01:19:09 2012 -0700

    Merge pull request #413 from Quuxplusone/static-analysis

    Various bugfixes found by compiling with extra warnings

commit 7fadd708a04e31e1edf23fdd3935961a141f4d32
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Fri Aug 24 16:42:31 2012 -0700

    Fix monitor_event() to work at all.

    There are three versions of monitor_event(), all taking
    variadic arguments. The original code just has the first one
    creating a va_list and passing that va_list variadically to
    the second one... which creates a new va_list and passes it
    variadically to the third one... and of course everything
    blows up when we try to pull a non-va_list argument off the
    stack.

    The correct approach matches the C standard library's use
    of printf/vprintf, scanf/vscanf, and so on. Once you make
    a va_list, you must pass it only to functions which expect
    a va_list parameter.

 src/ctx.cpp          | 10 +++++++++-
 src/ctx.hpp          |  3 ++-
 src/session_base.cpp |  7 ++++++-
 src/session_base.hpp |  2 ++
 src/socket_base.cpp  |  7 ++++++-
 src/socket_base.hpp  |  2 ++
 6 files changed, 27 insertions(+), 4 deletions(-)

commit 537a80278835d0f4290edce1bfc47d0624177cc5
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Fri Aug 24 16:38:46 2012 -0700

    Add a missing null-check, turning a segfault into an assertion.

    Static analysis says:
    src\tcp_address.cpp(297): error V595: The 'res' pointer was utilized before it was verified against nullptr. Check lines: 297, 301.
    src\tcp_address.cpp(603): error V106: Implicit type conversion third argument 'full_bytes' of function 'memcmp' to memsize type.
    src\tcp_address.cpp(603): error V526: The 'memcmp' function returns 0 if corresponding buffers are equal. Consider examining the condition for mistakes.

    In fact the use of "memcmp" is correct, but the enclosing "if" isn't
    necessary, and the compiler is happier if "full_bytes" is a size_t.

 src/tcp_address.cpp | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit 6347d392fdaa41131c7c7cb3b57c4aa6c1e7a399
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Fri Aug 24 16:35:14 2012 -0700

    Fix a bug in pipe_t::flush().

    Static analysis says:
    src\pipe.cpp(193): error V547: Expression is always false. Probably the '||' operator should be used here.

    If flush() is called on a pipe whose state was
    "terminated" or "double_terminated", the programmer's
    intent was to return immediately. But in fact the
    two conditions can never be true simultaneously, so
    the early return never happens, and we may try to flush
    a terminated pipe anyway.

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0886b7a26bbca34fdeef3e06d0d75d023ef4b7eb
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Fri Aug 24 16:33:48 2012 -0700

    Silence a compiler warning.

    Static analysis says:
    src\fd.hpp(38): error V103: Implicit type conversion from memsize to 32-bit type.

    Adding the explicit cast should shut it up.

 src/fd.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a48751b34b7047cf77537f88861a5dp48127122a
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Fri Aug 24 16:30:42 2012 -0700

    The "count_" out-parameter is doubled instead of unchanged.

    Static analysis says:
    src\zmq.cpp(489): error V220: Suspicious sequence of types castings: memsize -> 32-bit integer -> memsize. The value being casted: '* count_'.
    src\zmq.cpp(510): error V127: An overflow of the 32-bit 'nread' variable is possible inside a long cycle which utilizes a memsize-type loop counter.

    I've silenced the warning on line 489 and ignored the other.
    But also, it looks to me like there's a serious bug here: The
    out-parameter "count_" is never set to zero before we start
    incrementing it. So its final value will always be between
    1 and 2 times its initial value. The fix seems obvious.

 src/zmq.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit d588dbf27c363b98a0d88e5d4c1c2c7c2227055f
Merge: 033e311d 28c9255d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Aug 23 13:02:30 2012 -0700

    Merge pull request #410 from Quuxplusone/LIBZMQ-414

    [LIBZMQ-414] Fix an error in the inline assembly for Thumb2.

commit 033e311d66440d2e12ba7a344d9b405a9a79e423
Merge: 12833804 f718d2be
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Aug 23 13:01:44 2012 -0700

    Merge pull request #411 from Quuxplusone/fix-test_monitor-bug

    Fix a bug reported on the mailing list.

commit f718d2beadf0fa58d3dc054e7b4cefba3f3bbbf9
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Thu Aug 23 12:56:00 2012 -0700

    Fix a bug reported on the mailing list.

    Both memcmp and strcmp return zero on equal, nonzero on nonequal;
    so all of these tests were backwards.

    The original committer fixed the failure by comparing 22 bytes instead
    of the correct 21, so that the assertions would trigger only if the
    22nd byte happened to match exactly --- which was rare.

    The correct fix is to compare the right number of bytes with the
    right sense.  (I think all of the ".addr" fields are null-terminated,
    in which case it's more appropriate to use strcmp throughout.)

 tests/test_monitor.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 28c9255d46edd96861c45ac89566d79c098ec0d1
Author: Arthur O'Dwyer <arthur@push.am>
Date:   Thu Aug 23 12:49:21 2012 -0700

    Fix an error in the inline assembly for Thumb2.

    Notice that ZeroMQ has never been compiled for Thumb2 before,
    and I personally don't make any guarantees that it will actually
    behave correctly once compiled. But after this patch, it is at
    least *possible* to compile it for Thumb2.

    (Thumb2 is the target for most iOS devices.)

 src/atomic_ptr.hpp | 1 +
 1 file changed, 1 insertion(+)

commit 12833804c910842121310b0ce52c19d2804ffd40
Merge: b32542e3 1ab85f47
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Aug 12 02:33:17 2012 -0700

    Merge pull request #409 from hurtonm/master

    Exchange greeting messages for all socket types

commit 1ab85f471a50fb5f15440900a4e3991c9fe5aac0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Aug 11 18:47:56 2012 +0200

    Exchange greeting messages for all socket types

    Fixes #415.

 src/dealer.cpp       |  1 -
 src/options.cpp      |  1 -
 src/options.hpp      |  5 +----
 src/router.cpp       |  1 -
 src/session_base.cpp | 27 +++++++++++++++++----------
 src/session_base.hpp |  6 +++---
 src/socket_base.cpp  |  4 ++--
 7 files changed, 23 insertions(+), 22 deletions(-)

commit b32542e39627e22b5dfd17666235e123bac0fbe3
Merge: 040d4d32 556074d4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 5 08:10:53 2012 -0700

    Merge pull request #403 from methodmissing/efault-zmq-poll

    Revert zmq_poll NULL poll items check to 2.2 behavior - let the poll items count filter out empty poll sets and not return a sometimes unexpected EFAULT error status

commit 040d4d322da6658a4bc7b9194ce08c42c41dee8d
Merge: 5637ed08 a622328a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Aug 5 08:08:59 2012 -0700

    Merge pull request #408 from teotwaki/master

    Fix reordering compile errors

commit a622328a9c089e635e8af6b67f6a87251d3e34bf
Author: Sebastian Lauwers <sebastian.lauwers@gmail.com>
Date:   Sat Aug 4 12:39:46 2012 +0200

    Fix reordering compile errors

 src/stream_engine.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5637ed08a59bff6bacbf9a0c85d803d7e3bb4d09
Merge: 1f229547 9dc248f6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 4 04:21:49 2012 -0700

    Merge pull request #407 from methodmissing/LIBZMQ-399

    Fix invalid address metadata for ZMQ_EVENT_DISCONNECTED

commit 9dc248f6abeb7461b9e85bb5d0106ad86bab089f
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Sat Aug 4 11:41:33 2012 +0100

    Fix invalid address metadata for ZMQ_EVENT_DISCONNECTED

 src/ipc_connecter.cpp  |  3 +--
 src/ipc_listener.cpp   |  4 ++--
 src/session_base.cpp   |  7 -------
 src/session_base.hpp   |  1 -
 src/stream_engine.cpp  | 10 +++-------
 src/stream_engine.hpp  |  2 +-
 src/tcp_connecter.cpp  |  2 +-
 src/tcp_listener.cpp   |  2 +-
 tests/test_monitor.cpp |  4 ++++
 9 files changed, 13 insertions(+), 22 deletions(-)

commit 1f2295476297537f549e96e95763226e4111b538
Merge: 84560c16 9fab9937
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jul 31 11:17:45 2012 -0700

    Merge pull request #406 from hurtonm/master

    Fix issue #406

commit 9fab9937e516e78e6dbdf890e34f56cf80c9ff14
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Jul 31 16:31:41 2012 +0200

    Fix issue #406

    When a peer reconnects, the router socket receives an identity
    message containing this peer id. When this happens, the current
    implementation crashes.

    This patch makes a router socket to silently ignore all identity
    messages coming from reconnected peers.

 src/msg.cpp    |  5 +++++
 src/msg.hpp    |  1 +
 src/router.cpp | 25 ++++++++++++++++++-------
 3 files changed, 24 insertions(+), 7 deletions(-)

commit 84560c1607249cea48f2f0009cc5d136377072ee
Merge: 631e12d4 92bee5a6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Jul 29 00:45:20 2012 -0700

    Merge pull request #405 from jimenezrick/master

    Fix LIBZMQ-404: zmq_term not truly re-entrant

commit 92bee5a6dbb150115058c494e83702097aa58747
Author: Ricardo Catalinas Jiménez <r@untroubled.be>
Date:   Sat Jul 28 11:04:03 2012 +0200

    Fix LIBZMQ-404: zmq_term not truly re-entrant

    zmq_term can not safely be re-entered with pgm transport.
    Fix proposed by Steven McCoy.

 src/zmq.cpp | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

commit 631e12d4e5f47615182b7ec6e28c6ee439309111
Merge: 9be0c7e4 a0eb0bb7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jul 26 14:12:05 2012 -0700

    Merge pull request #404 from mimetnet/master

    Correction for LIBZMQ-335

commit a0eb0bb7e611496d90b37d6e51a79890227f7ea1
Author: Matthew Metnetsky <mmetnetsky@kmbs.konicaminolta.us>
Date:   Thu Jul 26 13:55:27 2012 -0400

    signaler.cpp's Windows Lock should be in the "Global" namespace

    That way it can be used more appropriately between processes.

 src/signaler.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 83537916f8e2c61161f06dc84dd21972bb65b5eb
Author: Matthew Metnetsky <mmetnetsky@kmbs.konicaminolta.us>
Date:   Thu Jul 26 13:52:38 2012 -0400

    Fix issue 335

    By assigning a SECURITY_DESCRIPTOR to the event we gain the ability to
    share it between service and console programs. We also added
    EVENT_MODIFY_STATE as a requirement to OpenEvent so we can SetEvent later
    in the method.

 src/signaler.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 556074d438870dd29bd6f6838d00715c01204a4c
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue Jul 24 02:22:27 2012 +0100

    Revert zmq_poll NULL poll items check to 2.2 behavior - let the poll items count filter out empty poll sets and not return a sometimes unexpected EFAULT error status

 src/zmq.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 9be0c7e4b5c6aa335dpb59a9e5f09cf108edb20c
Merge: bea0b481 92827e45
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 17 23:59:59 2012 -0700

    Merge pull request #402 from hurtonm/master

    Small code cleanup

commit 92827e45ee82bdb3719ddddc60889120a805a6a1
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 18 01:53:10 2012 +0200

    Small code cleanup

 src/socket_base.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit bea0b4817b6470ad7a521618585e33e273fbaadb
Merge: 43ee4396 62b5b914
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jul 13 07:14:27 2012 -0700

    Merge pull request #401 from hurtonm/master

    Fix issue #397

commit 62b5b914f5119378e8cd03c858b2904b9ced58ab
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jul 12 01:47:36 2012 +0200

    Always mark socket as retired when closing ipc_listener

    When closing an ipc listener, the library may try to unlink
    the associated file. When this fails, the underlying
    socket is not marked as retired and this triggers
    assertion failure.

    Fixes issue #397

 src/ipc_listener.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 43ee4396cf63ddcf8750eacf14d92efd111f8140
Merge: 0533fb1c c84ca01e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jul 11 10:17:44 2012 -0700

    Merge pull request #400 from hurtonm/master

    Be more conservative about when to generate ZMQ_EVENT_CLOSE_FAILED

commit c84ca01e95349e8013f5014cedbb39a8d3570f24
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 11 17:59:22 2012 +0200

    Be more conservative about when to generate ZMQ_EVENT_CLOSE_FAILED

    This also fixes a bug in tcp_connecter and tcp_listener, which
    generated the event not when they failed to close the socket but
    when the succeed to close it.

 src/ipc_connecter.cpp | 5 +----
 src/ipc_listener.cpp  | 5 +----
 src/tcp_connecter.cpp | 4 ----
 src/tcp_listener.cpp  | 4 ----
 4 files changed, 2 insertions(+), 16 deletions(-)

commit 0533fb1ce16ad19e683b5325a11f2cbd8e2892ba
Merge: f8752bf9 6ac5cf86
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 11 08:02:01 2012 -0700

    Merge pull request #399 from hurtonm/master

    Small cleanup

commit 6ac5cf8697b50b5e6afb6582b067840adac02981
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 11 15:11:48 2012 +0200

    Simplify code for writer activation in Router socket

 src/router.cpp | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

commit f8752bf9fca34b7c3c492c57c434f8c8799f44d1
Merge: 823d14c7 e37814ec
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jul 6 10:50:00 2012 -0700

    Merge pull request #398 from hurtonm/master

    Rewrite event processing in io_thread

commit e37814eca427574578fc53421abea844317222e9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jul 6 13:24:59 2012 +0200

    Rewrite event processing in io_thread

 src/io_thread.cpp | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

commit 823d14c7fcb00dpd6e6d66dpca84a4fc555ba1a3
Merge: 37d1e844 86eaa9c8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 6 04:02:17 2012 -0700

    Merge pull request #397 from hurtonm/master

    Code cleanup

commit 37d1e84467cc16f0dda36998a340d20435515816
Merge: 73f960e7 8d64fc6a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jul 6 03:54:55 2012 -0700

    Merge pull request #396 from hintjens/master

    Reverting fix for #393

commit 86eaa9c8e753dfde77b675d25204f94080c65d92
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jul 6 12:17:13 2012 +0200

    Rewrite process_command's loop

 src/socket_base.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 8d64fc6af83ed49624b11a6c30d5da3e79144d2c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 6 17:33:41 2012 +0900

    Reverted fix for #393, was already fixed

 src/tcp_address.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 73f960e739583e88e13706c7dddb3456bf4a9d66
Merge: 77dd0a6f 9aa8452b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jul 5 23:02:20 2012 -0700

    Merge pull request #395 from hintjens/master

    Fixed issue #393 - Android build error

commit 9aa8452b804d33f0db92b47aadb8c4e4f16fcc2c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jul 6 12:23:51 2012 +0900

    Fixed issue #393, compilation warnings

 src/tcp_address.cpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 77dd0a6fba14c636d84a5f43f6b79f7aadfbc8f2
Merge: e7f59297 8d96a439
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 4 05:20:51 2012 -0700

    Merge pull request #394 from hintjens/master

    Fixed HWM doc on ZMQ_PULL

commit 8d96a4397545069ec7401d145852644cdd0bef3e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jul 4 17:46:08 2012 +0900

    Fixed documentation of HWM on ZMQ_PULL

 .gitignore         | 1 +
 doc/zmq_socket.txt | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit e7f59297d047fd498c4825c927178ab9382f79e5
Merge: 1ff5af09 01919774
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jul 3 18:30:09 2012 -0700

    Merge pull request #393 from cyrilh/master

    Making Android&pyzmq friendly version with -avoid-version

commit 01919774dc3935d86ea80acf5c47479bf5de7b68
Author: Cyril Holweck <cyril.holweck@free.fr>
Date:   Tue Jul 3 12:20:37 2012 +0200

    Making Android&pyzmq friendly version with avoid-version

 configure.in    | 5 ++++-
 src/Makefile.am | 4 ++++
 2 files changed, 8 insertions(+), 1 deletion(-)

commit 1ff5af098a1ddpc6acd9b6dp60368921d2adf8de
Merge: e471e5b4 1b0e6ef8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 2 06:54:26 2012 -0700

    Merge pull request #392 from hurtonm/master

    mtrie clenaup

commit 1b0e6ef8b4db31b99fe0382eb1dddba1c503bdd9
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jul 2 07:55:13 2012 +0200

    mtrie: Code simplification

 src/mtrie.cpp | 63 +++++++++++++++++++++++------------------------------------
 1 file changed, 24 insertions(+), 39 deletions(-)

commit 692648de96515132b59b71d6c404a4cd8253ce1d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jul 2 06:11:29 2012 +0200

    mtrie: Do not throw exception on allocation failure

 src/mtrie.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit e471e5b401387f0c4d03d2af67e41d4dbc8843f4
Merge: 6a1bd3e1 9ccbeb84
Author: Chuck Remes <git@chuckremes.com>
Date:   Tue Jun 26 11:39:35 2012 -0700

    Merge pull request #391 from methodmissing/monitor-manual-format

    Let docs for zmq_ctx_set_monitor() respect a 80 char wide column width

commit 9ccbeb84fade63e537f670f150ff1ff29ff3018d
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue Jun 26 19:35:59 2012 +0100

    Let docs for zmq_ctx_set_monitor() respect a 80 char wide column width

 doc/zmq_ctx_set_monitor.txt | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

commit 6a1bd3e1e79706b997a76bbc7d3e2f32340fb800
Merge: 6f1229be 26e14d30
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 25 18:03:07 2012 -0700

    Merge pull request #390 from hurtonm/master

    Small code simplification

commit 26e14d3064fc3c042c2fc0f7a69378c0e7927cdd
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Jun 26 01:56:54 2012 +0200

    Small code simplification

 src/xpub.cpp | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

commit 6f1229be6ff61e1c579433ebc1bf203a62b4ec22
Merge: c251d940 f8293df4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 25 05:09:00 2012 -0700

    Merge pull request #389 from hurtonm/master

    Fix a bug in trie implementation

commit f8293df4c563e1335365a42ca636249cdc3cdb5d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jun 25 13:37:32 2012 +0200

    Fix a bug in trie implementation

    When removing keys for a specified value, make sure we drop
    empty node table. Failing to do this can lead to asserion failure.

    Refs: http://lists.zeromq.org/pipermail/zeromq-dev/2012-June/017589.html

 src/mtrie.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit c251d940b3424e045d59123f4bfc529c23bda3e9
Merge: b57b7deb a1788171
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 23 18:40:58 2012 -0700

    Merge pull request #388 from minrk/forward-iovec

    declare struct iovec

commit a178817141e605f919f71ef3318e702be52c32b7
Author: Min RK <benjaminrk@gmail.com>
Date:   Sat Jun 23 12:51:36 2012 -0700

    forward-declare struct iovec

    avoids warnings of the form:

    warning: 'struct iovec' declared inside parameter list
    warning: its scope is only this definition or declaration, which is probably not what you want

    when building downstream projects

 include/zmq.h | 2 ++
 1 file changed, 2 insertions(+)

commit b57b7debadp571ddb6206c28179bcb8d84fb1bcc
Merge: c60b0f57 fc335c59
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 20 02:34:40 2012 -0700

    Merge pull request #386 from steve-o/err-handler

    Fix missing ENETRESET for Jira #LIBZMQ-329.

commit fc335c59ea40642fc708e3a7903d84de1947da6d
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Jun 19 14:15:48 2012 -0400

    Fix missing ENETRESET for Jira #LIBZMQ-329.

 include/zmq.h | 3 +++
 1 file changed, 3 insertions(+)

commit c60b0f579dc739069e1c26eebff72a5b81fcadd5
Merge: eb16f6b8 85c19f12
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 19 08:46:49 2012 -0700

    Merge pull request #385 from jdc8/master

    Missing semi-colon makes Windows compilation fail, Missing files in WIndows solution file

commit 85c19f12690fbb65f6669224680c959f6ecddddb
Author: Jos Decoster <jos.decoster@gmail.com>
Date:   Tue Jun 19 17:05:15 2012 +0200

    added missing files to MSVC10 solution file: tcp.cpp, tcp.hpp

 builds/msvc/libzmq/libzmq.vcxproj         |   2 +
 builds/msvc/libzmq/libzmq.vcxproj.filters | 400 ++++++++++++++++++++++++++++++
 2 files changed, 402 insertions(+)

commit 98ee759dadf20fa958cda4290160f67c36444dpb
Author: Jos Decoster <jos.decoster@gmail.com>
Date:   Tue Jun 19 09:37:06 2012 -0400

    Added missing semi-colon.

 src/ip.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eb16f6b88e20bd16fb8409cdecc7025443d0522c
Merge: 7bbccdea 5b3d0c63
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jun 18 22:34:40 2012 -0700

    Merge pull request #384 from steve-o/err-handler

    Add errno fallback values for MSVC2008.

commit 5b3d0c633d2886bd14aaf35363787ca28081db12
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Jun 18 17:13:17 2012 -0400

    Add errno fallback values for MSVC2008.

 include/zmq.h | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit 7bbccdeac9bef86988e136779367a6aabad00ac6
Merge: 21eb8c8f 08749c8e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 17 00:36:58 2012 -0700

    Merge pull request #383 from Kobolog/master

    Reworked ZMQ_FAIL_UNROUTABLE to actually work as it was intended.

commit 08749c8e7bf932672e1cf5e1e7830981dpb3b018
Author: Andrey Sibiryov <me@kobology.ru>
Date:   Sun Jun 17 02:38:15 2012 +0400

    Removed an unneeded include in tests

 tests/test_router_behavior.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 6da48dpd3a9b80d87f30ca634dd586a734c0df51
Author: Andrey Sibiryov <me@kobology.ru>
Date:   Sun Jun 17 02:36:08 2012 +0400

    Fixed tests

 tests/test_router_behavior.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 829d0003beb251643e9c7ece33c702a3a18fc017
Author: Andrey Sibiryov <me@kobology.ru>
Date:   Sun Jun 17 02:33:43 2012 +0400

    Verbose ROUTER socket behavior patch

 doc/zmq_setsockopt.txt         | 16 +++++------
 doc/zmq_socket.txt             | 10 +++----
 include/zmq.h                  |  2 +-
 src/router.cpp                 | 19 ++++++-------
 src/router.hpp                 |  5 ++--
 tests/Makefile.am              |  4 ++-
 tests/test_router_behavior.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 93 insertions(+), 27 deletions(-)

commit 21eb8c8fa50e1b00dbc27c41e4a7c6f69d8e79de
Merge: 7753379e 7d991294
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 16 12:53:11 2012 -0700

    Merge pull request #382 from hurtonm/master

    Fix open_socket to return -1 (INVALID_SOCKET on Windows) on error

commit 7d991294118edbe080da3a713a28c639c5ea1e96
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 16 21:46:05 2012 +0200

    Fix open_socket to return -1 (INVALID_SOCKET on Windows) on error

 src/ip.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 7753379eab33109a8f15765d843df213a955978c
Merge: c8d0d684 919bd962
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 14 23:09:59 2012 -0700

    Merge pull request #381 from hurtonm/connecter_cleanups

    Connecter cleanups

commit 919bd9628dfcfa497056a2e8427fafc46e206a2a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Jun 15 02:12:26 2012 +0200

    {tcp|ipc}_connecter: check whether socket is valid before closing it

    Calling close () when the underlying socket is invalid
    triggers an assertion failure.

 src/ipc_connecter.cpp | 3 ++-
 src/tcp_connecter.cpp | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit ec9f8994a742dc36b2da64e7de7480619cd30285
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jun 13 03:34:48 2012 +0200

    Simplify {tcp|ipc}_connecter

    Make start_connecting () to have singe exit point.

 src/ipc_connecter.cpp | 8 ++++----
 src/tcp_connecter.cpp | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit e0fed9d29a007f0d0e33a97b6cf617138081b578
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jun 13 02:33:02 2012 +0200

    Simplify {tcp|ipc}_connecter

    The patch is meant to make the code easier to understand.
    The 'wait' attribute is replaced by 'delayed_start'
    and 'timer_started' attributes. The former is constant and
    is initialized in the constructor. The latter is a flag
    reflecting whether a timer has been started and changes during
    the lifetime of the object.

 src/ipc_connecter.cpp | 20 ++++++++++----------
 src/ipc_connecter.hpp | 11 +++++++----
 src/tcp_connecter.cpp | 20 ++++++++++----------
 src/tcp_connecter.hpp | 11 +++++++----
 4 files changed, 34 insertions(+), 28 deletions(-)

commit c8d0d684712c6fce6556ce992ff584a35dp877e0
Merge: 67ab3390 eb6c668c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Jun 14 12:17:51 2012 -0700

    Merge pull request #380 from jlopex/master

    current libzmq not compiling with android NDK

commit eb6c668c2dp961a4a53d11d81dd6d2df5bffa666
Author: Javier Lopez <jlopex@cozybit.com>
Date:   Fri Jun 8 11:46:45 2012 -0700

    libzmq3.x not compiling on Android crosscompiler

    - Android crosscompiler shows a warning about two signed/unsigned checks
      on compilation, this patch adds casts to avoid this, so zmq3.x can
      compile on it.

 src/tcp_address.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 67ab3390ecde685d4280c424ce3955363cdcd486
Merge: 426ea716 a96dcfb2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Jun 14 02:55:32 2012 -0700

    Merge pull request #379 from hitenp/doc-changes

    Correct typo: add missing single quote.

commit a96dcfb29ac983f9a55011145e12c7fa3dp84fe4
Author: Hiten P <hp010170@gmail.com>
Date:   Thu Jun 14 10:52:44 2012 +0100

    Correct typo: add missing single quote.

 doc/zmq_socket.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 426ea7169743f9105e2f1d5090e5d6285e4be0ea
Merge: f35bed0e acbb9938
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 13 16:45:48 2012 -0700

    Merge pull request #378 from steve-o/err-handler

    Fix #LIBZMQ-329 assertion on WSdpACCES

commit acbb99383f3079f258dd4e7708672330c21b6edb
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Wed Jun 13 19:42:11 2012 -0400

    Add additional Windows Sockets Error Codes.

 src/err.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 51 insertions(+), 10 deletions(-)

commit f35bed0edce3579ba24a415092f3975ac22b9735
Merge: a9507cc2 75d67286
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 13 06:09:42 2012 -0700

    Merge pull request #377 from hurtonm/master

    {tcp|ipc}_listener: close socket when set_address () fails

commit 75d67286cc7863f1a7cbb00f4e1bc872dffa964a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jun 13 14:48:27 2012 +0200

    {tcp|ipc}_listener: close socket when set_address () fails

 src/ipc_listener.cpp | 10 ++++++++--
 src/tcp_listener.cpp | 14 ++++++++++----
 2 files changed, 18 insertions(+), 6 deletions(-)

commit a9507cc267aac358f40900eac6f482bf34147761
Merge: dc9749fc c7c834a9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 13 04:20:04 2012 -0700

    Merge pull request #376 from ianbarber/master

    Add unistd header to test

commit c7c834a9453932c091bea3a7434444413b58713b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jun 13 12:18:22 2012 +0100

    Add unistd header to test_connect_delay header

    For sleep and usleep

 tests/test_connect_delay.cpp | 1 +
 1 file changed, 1 insertion(+)

commit dc9749fc67208f2c01f045da049d597ff9ff76df
Merge: 9e1e68ef 35c55a2c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 13 00:04:13 2012 -0700

    Merge pull request #375 from ianbarber/master

    Add newline to end of new test file

commit 35c55a2cde07434bc185d81ed2f567a56959a0a4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jun 13 07:47:18 2012 +0100

    Add newline to end of test_connect_delay file

 tests/test_connect_delay.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9e1e68ef16a44e1b66cecbdpe9fc6712461b3162
Merge: 076e081d b2e56c5e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 12 23:15:11 2012 -0700

    Merge pull request #374 from steve-o/branding

    Add ZeroMQ branding.

commit b2e56c5e4f604ce82a735a5c4570b71307f51ccf
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Jun 12 21:30:24 2012 -0400

    Add ZeroMQ branding.

 branding.bmp      | Bin 0 -> 25818 bytes
 installer.ico     | Bin 0 -> 2842 bytes
 src/version.rc.in |  93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 93 insertions(+)

commit 076e081de2f27c054ba04c5721b0901a7baaa8c0
Merge: e1cc2d4a bc9dp715
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 12 14:18:51 2012 -0700

    Merge pull request #373 from ianbarber/master

    Add ZMQ_DELAY_ATTACH_ON_CONNECT sockopt

commit e1cc2d4a41275190391ff71398689a50956118fb
Merge: 95cbad38 704b9522
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 12 12:26:20 2012 -0700

    Merge pull request #372 from ianbarber/manfix

    Update bind and connect documentation for clarity

commit bc9dp715c33fff8dbe3f4c8ecce46c691ad82f41
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 17:56:39 2012 +0100

    Add asserts and rename pipe set

    Rename the pipeset to terminating_pipes, as suggested by Martin H. Adds
    asserts to test the pipe is contained in the terminating set where
    appropriate.

 src/session_base.cpp | 16 ++++++++++------
 src/session_base.hpp |  2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

commit 704b952274b7bfe2952f564d6d81dff1f279a453
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 15:49:18 2012 +0100

    Add reference to the inproc documentation

    The previous note in connect introduced but did not elaborate on the
    requirement to bind before connect in inproc. As that discussion is in
    detail in the inproc docs link to there.

 doc/zmq_connect.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 7b78ed9d604a5d78af65eefaa456e98854874b3d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 15:46:26 2012 +0100

    Update bind and connect documentation for clarity

    Based on discussion with Steve O on the list, make the difference
    between bind and connect usage more clear, and add a note reflecting the
    fact that inproc must have bind before connect to reinforce the
    information in zmq_inproc.

 doc/zmq_bind.txt    | 12 +++++++-----
 doc/zmq_connect.txt | 17 +++++++++++------
 2 files changed, 18 insertions(+), 11 deletions(-)

commit e5904e63cebc96048bac7c30dp91c16edfff5922
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 15:34:48 2012 +0100

    Allow blocking while connect() is completing

    This patch, salvaged from a trainwreck accidental merge earlier, adds a
    new sockopt, ZMQ_DELAY_ATTACH_ON_CONNECT which prevents a end point
    being available to push messages to until it has fully connected, making
    connect work more like bind. This also applies to reconnecting sockets,
    which may cause message loss of in-queue messages, so it is sensible to
    use this in conjunction with a low HWM and potentially an alternative
    acknowledgement path.

    Notes on most of the individual commits can be found the repository log.

 .gitignore             |  1 +
 doc/zmq_getsockopt.txt | 15 +++++++++++++++
 doc/zmq_setsockopt.txt | 14 ++++++++++++++
 include/zmq.h          |  1 +
 src/lb.cpp             |  3 +--
 src/options.cpp        | 27 +++++++++++++++++++++++++++
 src/options.hpp        |  4 ++++
 src/session_base.cpp   | 38 +++++++++++++++++++++++++++++---------
 src/session_base.hpp   |  3 +++
 src/socket_base.cpp    | 34 ++++++++++++++++++++--------------
 tests/Makefile.am      |  2 ++
 11 files changed, 117 insertions(+), 25 deletions(-)

commit 409d5e8fff0dc0ebdefe3da2a866021ce2aca18d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 15:31:23 2012 +0100

    Allow blocking while connect() is completing

    This patch, salvaged from a trainwreck accidental merge earlier, adds a
    new sockopt, ZMQ_DELAY_ATTACH_ON_CONNECT which prevents a end point
    being available to push messages to until it has fully connected, making
    connect work more like bind. This also applies to reconnecting sockets,
    which may cause message loss of in-queue messages, so it is sensible to
    use this in conjunction with a low HWM and potentially an alternative
    acknowledgement path.

    Notes on most of the individual commits can be found the repository log.

 tests/test_connect_delay.cpp | 260 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 260 insertions(+)

commit 95cbad3841fdd319cd19722ef88b9e49909aff2f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:53:57 2012 +0100

    Revert "After speaking with Ben Gray and the discussion on the mailing list, this is an attempt to create a sockopt to allow connecting pipes to not immediately be available for traffic. The problem is in a PUSH to many PULL situation, where there is a connect to a PULL which is not there. This connect will immediately create a pipe (unlike bind), and traffic will be load balanced to that pipe. This means if there is a persistently unavailable end point then the traffic will queue until HWM is hit, and older messages will be lost."

    This reverts commit fe3fb419fe249d7015a6c864d18464d434a55468.

 .gitignore                   |   1 -
 doc/zmq_getsockopt.txt       |  15 -----
 doc/zmq_setsockopt.txt       |  13 -----
 include/zmq.h                |   1 -
 src/lb.cpp                   |   3 +-
 src/options.cpp              |  25 ---------
 src/options.hpp              |   4 --
 src/session_base.cpp         |  29 ----------
 src/session_base.hpp         |   6 --
 src/socket_base.cpp          |   5 +-
 tests/Makefile.am            |   2 -
 tests/test_connect_delay.cpp | 131 -------------------------------------------
 12 files changed, 3 insertions(+), 232 deletions(-)

commit a563d494bbbaf0d003bad0901a7d49ac24041857
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:53:38 2012 +0100

    Revert "Remove extra brackets as suggested by Martin H, and fix up a comment which was missing a word"

    This reverts commit b79aaaf473c4ef61bbd45e711d48fceb06dc9ad1.

 src/session_base.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit cc230cfe6097e0ad68375d0251c879bac551016e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:52:38 2012 +0100

    Revert "And another typo on the same comment"

    This reverts commit 297af954514d9b2097c5e2df980bbe16dd72e761.

 src/session_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5b167aa8964fbe65546bf3717ec7b53fb0a0e82d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:52:18 2012 +0100

    Revert "Remove the extra outpipe handling as the session is quite capable of delaying the creation of the pipe until the connection has happened. Simply don't build the pipe, and let it do that automatically."

    This reverts commit 06485d9200ac697896dc4bd162fa4f8b4c2ddaf6.

 src/session_base.cpp | 32 ++++++++++++++++++++++++++++++--
 src/session_base.hpp |  5 ++++-
 src/socket_base.cpp  | 31 ++++++++++++++++---------------
 3 files changed, 50 insertions(+), 18 deletions(-)

commit 81b8362a5909975125ca627abd00e1461f56fffa
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:51:50 2012 +0100

    Revert "Fix a number of whitespace issues in various parts of the code, add validation to most calls on the test and take a first stab at implementing the reconnection pipe blocking."

    This reverts commit 6f6466f0884a169fd25a48195dd9a4e2135818e6.

 src/command.hpp              |  6 -----
 src/object.cpp               | 19 ---------------
 src/object.hpp               |  2 --
 src/session_base.cpp         | 13 +---------
 src/session_base.hpp         |  8 +++---
 src/socket_base.cpp          | 17 +++----------
 src/socket_base.hpp          |  3 ---
 tests/test_connect_delay.cpp | 58 ++++++++++++++++----------------------------
 8 files changed, 29 insertions(+), 97 deletions(-)

commit 48d3977632fd6eed6977d2eab0ac421efd454b8e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:51:33 2012 +0100

    Revert "Fix condition so that PGM and EPGM sockets always create pipes immediately, even if delay_attach_on_connect is set. This allows passing through the icanhasall flag, and is realistic given the fact those protocols should be able to connect immediately"

    This reverts commit b5ace39e2a48b906237d869f4f819f1a28a8cee7.

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6c382c5c61b9b31050cf92cd6119184cb38e7ab1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:51:19 2012 +0100

    Revert "Fix whitespace in test"

    This reverts commit 0b3478d6ecf0772c4c6e6ff4e4bdfdeef61cf003.

 tests/test_connect_delay.cpp | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit 72bdp207a3dd2891f27f3f052e82631dfbf04712
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:51:05 2012 +0100

    Revert "Rebinding on reconnection to allow for the pipe blocking will set the event sink again, which will cause an assert to be triggered. I have modified that to allow for setting the same sink to be OK. I believe this should be ok - on termination, if a pipe hasn't reconnected, it would just attempt to be erased from the pipes list again, which is reasonable"

    This reverts commit 1566091bc6cbf2a69b19243be3906c6d92ac339a.

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f0920caf0226f724e46f0b843b72841be3dcbc1f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:50:50 2012 +0100

    Revert "On the advice of Martin Hurton, removed the new command type and just terminated the pipe in a reconnect situation, and notified the socket of the same. This handles the blocking properly, but at the cost of potentially losing in flight messages. However, this is a reasonable trade off given how much simpler it makes the patch."

    This reverts commit c13f1d52ff9ed51a651ad8bcc9379e82d9318e86.

 src/command.hpp      |  6 ++++++
 src/object.cpp       | 19 +++++++++++++++++++
 src/object.hpp       |  2 ++
 src/session_base.cpp | 13 +++++--------
 src/socket_base.cpp  | 11 +++++++++++
 src/socket_base.hpp  |  3 +++
 6 files changed, 46 insertions(+), 8 deletions(-)

commit b020bd4ba8b8860aa868663999f6fb9395cc98d7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:49:44 2012 +0100

    Revert "Remove unnecessary extra test in pipe assertion - now we are terminating pipes we don't need to allow the case in which a pipe is rebound to the same sink"

    This reverts commit 29f8d9ca15f679132302ca5a9016692c2be1d6b2.

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 956cfd9f75963b25632c1e7b53a82661c753525e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:49:21 2012 +0100

    Revert "Fix incorrect whitespace in if statement"

    This reverts commit 55cbdfcf261b41f6a9b71bb26ce7336da7f73eec.

 src/session_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 74175decb43386f1b7f95670560be40dp5915774
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:48:24 2012 +0100

    Revert "Removing unnecessary outpipe values that had been used for reconnecting existing pipes - no longer needed when using a pipe term for the delay_attach situation."

    This reverts commit ace7c99b917dd66f1fcdpd3cbb50c988b7e33b09.

 src/session_base.cpp | 6 ++++++
 src/session_base.hpp | 3 +++
 2 files changed, 9 insertions(+)

commit 440af0022df056d00e29c7a095e9b1cf7eb48118
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:48:00 2012 +0100

    Revert "Restoring comment for clarity"

    This reverts commit 09956dee939a06c0734004aa3f39c491ec49c6f8.

 src/session_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8968b294e0da4ea8811441ffd62a5bc84b73839c
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:47:27 2012 +0100

    Revert "When detaching a pipe, as well as checking the delay on connect sockopt is set, also ensure that the protocol is not pgm or epgm as we are not implementing the functionality for multicase types"

    This reverts commit 5008f385bab2dd89c68d7ff93e0c5b303c6043e8.

 src/session_base.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 836fa4b7cac4dfbb70c7babdpf2abcef92249c89
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:47:10 2012 +0100

    Revert "The previous code to block the socket from receiving on that pipe during a disconnect was vulnerable to a race condition. This code calls with the terminate functions of both ends of the pipe - I believe this should be safer. This required storing a pointer to the socket end of the pipe"

    This reverts commit 336f72720a99195942ced5c6aad2bb8e0baa3f32.

 src/session_base.cpp | 6 ++----
 src/session_base.hpp | 3 ---
 2 files changed, 2 insertions(+), 7 deletions(-)

commit 2c6f26153e913e159f1fb739ec80ea73fbb53d6a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:46:38 2012 +0100

    Revert "Reverted to a simpler shutdown. This seems to disconnect and reconnect the pipe properly, but there is a problem in overall shutdown when the pipe has blocked and reconnected - the session seems to get terminated() called on it only in shutdown for the original pipe, by which point it has been replaced. I am not sure at the moment why this only happens then, but this does mean this patch is broken at the moment"

    This reverts commit b84b007981d9247bcc7bd000e4dpb56bdpd56de2.

 src/session_base.cpp | 21 ++++++++++++---------
 src/session_base.hpp |  3 +++
 2 files changed, 15 insertions(+), 9 deletions(-)

commit 3dp68d67a451162cf70dadc72f39da892be6f0a0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:46:23 2012 +0100

    Revert "Use the hiccup mechanism to notify the socket end of the pair of the change in state, and have it shutdown that end, and shutdown the local end normally. This seems to resolve the shutdown and race condition issues."

    This reverts commit 67497a26439239fdb95652b46d7e4e41fe672b31.

 src/session_base.cpp | 6 +++---
 src/socket_base.cpp  | 7 +------
 2 files changed, 4 insertions(+), 9 deletions(-)

commit f5a072fee1067d07e33005534e37c452645b2e03
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:46:01 2012 +0100

    Revert "Code formatting, and clean up so that xhiccuped is only handled in case the pipe isn't terminating"

    This reverts commit 5da289cd5bf0f3c367d3eb091ac66e5f4ce2b97c.

 src/socket_base.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 6eeaf151797411914d5af48a89c70be3959e6e0d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:45:36 2012 +0100

    Revert "Remove unnecessary condition in assert"

    This reverts commit 3053f7e368149044e5d5887e78fc96c1b9f33141.

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c9926f6f24fd931e97950033cff4a172ab4f7426
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:45:14 2012 +0100

    Revert "As Martin pointed out, there is a race condition in the old code where a pipe could start shutting down after disconnection, but the new one could connect first. This connection would not get a pipe created for it, so the messages could never flow. The simplest way round this would be a flag, but it is possibly for a very bouncy but fast connection to go up and down twice I imagine, so instead I have added a counter. This starts at zero, and will null out the pipe if terminate is called while it is zero. On a disconnect situation the counter is incremented, and the pipe is the not nulled if the value is non zero. In the terminated function it is decremented for each pipe that is shut down, and the assertion that the terminated pipe == the current pipe is skipped while it is non-zero. This should deal with the race condition and not allow any extra terminated() calls without hitting the assertion."

    This reverts commit a5f7300da6aa2224638fc932fe5ca3624189b1c1.

 src/session_base.cpp | 15 ++++-----------
 src/session_base.hpp |  3 ---
 2 files changed, 4 insertions(+), 14 deletions(-)

commit 19da88be67a23ffffe3530526e6af6e238c12fd3
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:44:41 2012 +0100

    Revert "Filter read and write activated calls from the pipe to the session, and delay shutdown in terminated until the final pipe is shutdown."

    This reverts commit a90c1db7d2c0d32f9a0177d46502505efac654a5.

 src/session_base.cpp | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

commit 4aaf3e6389f8c72d5492905f80bb2a6c6db6ca44
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:44:12 2012 +0100

    Revert "Add disconnect test"

    This reverts commit d8f3487ee1c15e9cd9df8a795529765f7bb00ef1.

 tests/test_connect_delay.cpp | 121 ++-----------------------------------------
 1 file changed, 3 insertions(+), 118 deletions(-)

commit eb14890d2363c15fe0486acbdaf698b6068f4d97
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:43:18 2012 +0100

    Revert "Revert "Merge branch 'master' of github.com:ianbarber/libzmq""

    This reverts commit 029d3dfdp2c2bf9e10c7f05d78593f481569bbd7.

 src/Makefile.am                |   2 +
 src/decoder.cpp                |   2 +-
 src/fq.cpp                     |  10 ++--
 src/ip.cpp                     |  83 ----------------------------
 src/ip.hpp                     |   6 --
 src/session_base.cpp           |  48 +++++++++++-----
 src/session_base.hpp           |   4 +-
 src/signaler.cpp               |   4 +-
 src/socket_base.cpp            |   6 +-
 src/tcp.cpp                    | 122 +++++++++++++++++++++++++++++++++++++++++
 src/tcp.hpp                    |  38 +++++++++++++
 src/tcp_connecter.cpp          |   1 +
 src/tcp_listener.cpp           |   1 +
 tests/test_connect_delay.cpp   | 121 +++++++++++++++++++++++++++++++++++++++-
 tests/test_connect_resolve.cpp |   2 +-
 15 files changed, 331 insertions(+), 119 deletions(-)

commit bdd4e1351d0446579caaad19e8ef4a4cf3d5e710
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:28:32 2012 +0100

    Revert "Revert "Merge branch 'master' of github.com:zeromq/libzmq""

    This reverts commit dde69fb9fb928db1850eb209db7dpd79e26777fb.

 src/ipc_connecter.cpp | 28 +++++++++++++++++++++-------
 src/ipc_connecter.hpp |  1 +
 src/ipc_listener.cpp  |  3 +--
 src/tcp_connecter.cpp | 30 ++++++++++++++++++++++--------
 src/tcp_connecter.hpp |  1 +
 src/tcp_listener.cpp  |  3 +--
 6 files changed, 47 insertions(+), 19 deletions(-)

commit 029d3dfdp2c2bf9e10c7f05d78593f481569bbd7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:13:17 2012 +0100

    Revert "Merge branch 'master' of github.com:ianbarber/libzmq"

    This reverts commit 33459029793474d14cdb48f85ad2c58dc7ed156f, reversing
    changes made to 889b0e6f29f0cce566339b13b8a44f3b97836b6e.

 src/Makefile.am                |   2 -
 src/decoder.cpp                |   2 +-
 src/fq.cpp                     |  10 ++--
 src/ip.cpp                     |  83 ++++++++++++++++++++++++++++
 src/ip.hpp                     |   6 ++
 src/session_base.cpp           |  48 +++++-----------
 src/session_base.hpp           |   4 +-
 src/signaler.cpp               |   4 +-
 src/socket_base.cpp            |   6 +-
 src/tcp.cpp                    | 122 -----------------------------------------
 src/tcp.hpp                    |  38 -------------
 src/tcp_connecter.cpp          |   1 -
 src/tcp_listener.cpp           |   1 -
 tests/test_connect_delay.cpp   | 121 +---------------------------------------
 tests/test_connect_resolve.cpp |   2 +-
 15 files changed, 119 insertions(+), 331 deletions(-)

commit dde69fb9fb928db1850eb209db7dpd79e26777fb
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:12:03 2012 +0100

    Revert "Merge branch 'master' of github.com:zeromq/libzmq"

    This reverts commit 7b10586558268479e62ed901f3d8d76916bc6c8a, reversing
    changes made to 33459029793474d14cdb48f85ad2c58dc7ed156f.

 src/ipc_connecter.cpp | 30 ++++++++----------------------
 src/ipc_connecter.hpp |  1 -
 src/ipc_listener.cpp  |  3 ++-
 src/tcp_connecter.cpp | 30 ++++++++----------------------
 src/tcp_connecter.hpp |  1 -
 src/tcp_listener.cpp  |  3 ++-
 6 files changed, 20 insertions(+), 48 deletions(-)

commit 6117a2b09945f8bda67eb61f7bdpc4ed9dp7fc8a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 14:07:54 2012 +0100

    Revert "Replace incomplete count with a std::set"

    This reverts commit 4aa5ba3d119b98c8f1e4e682a6ee7c57d460cc55.
    Unintentional merge

 src/session_base.cpp         | 31 ++++++++++++++++++-------------
 src/session_base.hpp         |  4 ++--
 tests/test_connect_delay.cpp |  2 ++
 3 files changed, 22 insertions(+), 15 deletions(-)

commit 4aa5ba3d119b98c8f1e4e682a6ee7c57d460cc55
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 12:13:21 2012 +0100

    Replace incomplete count with a std::set

    This commit removes the countdown flag and adds a set to store the pipes
    that are currently being disconnected.

 src/session_base.cpp         | 31 +++++++++++++------------------
 src/session_base.hpp         |  4 ++--
 tests/test_connect_delay.cpp |  2 --
 3 files changed, 15 insertions(+), 22 deletions(-)

commit 7b10586558268479e62ed901f3d8d76916bc6c8a
Merge: 33459029 b448de92
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 11:34:24 2012 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 33459029793474d14cdb48f85ad2c58dc7ed156f
Merge: 889b0e6f d8f3487e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 12 11:34:17 2012 +0100

    Merge branch 'master' of github.com:ianbarber/libzmq

commit b448de926befa42c4e9054464ec5635c95cc4d96
Merge: ace8f753 3ec8e576
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 11 23:57:21 2012 -0700

    Merge pull request #371 from hurtonm/fix_race_condition_in_connecters

    Fix race conditions in {tcp,ipc}_connecter

commit 3ec8e576d99a332514a5338671a18413ce03ba98
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Jun 12 01:39:16 2012 +0200

    Fix race conditions in {tcp,ipc}_connecter

    Once the object has been terminated, it is unsafe for this object
    to refer to its parent.

    The bug was responsible for occasional
    test_shutdown_stress failures.

 src/ipc_connecter.cpp | 28 +++++++++++++++++++++-------
 src/ipc_connecter.hpp |  1 +
 src/ipc_listener.cpp  |  3 +--
 src/tcp_connecter.cpp | 30 ++++++++++++++++++++++--------
 src/tcp_connecter.hpp |  1 +
 src/tcp_listener.cpp  |  3 +--
 6 files changed, 47 insertions(+), 19 deletions(-)

commit d8f3487ee1c15e9cd9df8a795529765f7bb00ef1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 11 20:04:09 2012 +0100

    Add disconnect test

    Add a new section to the connect delay test that disconnects and
    reconnects a socket to ensure that some messages are appropriately
    blocked.

 tests/test_connect_delay.cpp | 121 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 118 insertions(+), 3 deletions(-)

commit a90c1db7d2c0d32f9a0177d46502505efac654a5
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 11 07:58:59 2012 +0100

    Filter read and write activated calls from the pipe to the session, and delay shutdown in terminated until the final pipe is shutdown.

 src/session_base.cpp | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit a5f7300da6aa2224638fc932fe5ca3624189b1c1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 10 19:57:02 2012 +0100

    As Martin pointed out, there is a race condition in the old code where a pipe could start shutting down after disconnection, but the new one could connect first. This connection would not get a pipe created for it, so the messages could never flow. The simplest way round this would be a flag, but it is possibly for a very bouncy but fast connection to go up and down twice I imagine, so instead I have added a counter. This starts at zero, and will null out the pipe if terminate is called while it is zero. On a disconnect situation the counter is incremented, and the pipe is the not nulled if the value is non zero. In the terminated function it is decremented for each pipe that is shut down, and the assertion that the terminated pipe == the current pipe is skipped while it is non-zero. This should deal with the race condition and not allow any extra terminated() calls without hitting the assertion.

 src/session_base.cpp | 15 +++++++++++----
 src/session_base.hpp |  3 +++
 2 files changed, 14 insertions(+), 4 deletions(-)

commit 841cf69eb7560c425ea5fa4566048b7ab01daa42
Merge: 3053f7e3 ace8f753
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 10 19:18:18 2012 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit ace8f753e10e3ff35791a0cbc3399958c0b039a5
Merge: e9bfd76f 1f536972
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 10 04:07:12 2012 -0700

    Merge pull request #370 from hurtonm/code_cleanup

    Use struct keyword consistently with sockaddr and sockaddr_in

commit 1f536972115dc4daf3a279fd557f069e00686a24
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Jun 10 02:14:43 2012 +0200

    Use struct keyword consistently with sockaddr and sockaddr_in

 src/signaler.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e9bfd76f8761a6724801bf2676897f69ea87dpa6
Merge: 66b7edfb 602c5011
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 9 07:13:30 2012 -0700

    Merge pull request #368 from hurtonm/code_cleanup

    Small code simplification

commit 66b7edfbd16c36e7c684bb21b4779e2b80b56266
Merge: b0792ec7 796212a9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Jun 9 07:12:48 2012 -0700

    Merge pull request #367 from hurtonm/issue_309

    Fix the message decoder to ignore reserved flags.

commit 602c50117c4325c87c93f9ce038f4c1c9067a307
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 9 14:21:01 2012 +0200

    Small code simplification

 src/fq.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 796212a985964162a284cc667ab09834ce681466
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 9 12:52:26 2012 +0200

    Fix the message decoder to ignore reserved flags.

    Failing to clear the reserved flags, the decoder may produce
    messages with 'identity' and 'shared' flags set.
    This unintended modification of message flags can lead to memory
    errors or asserion failures.

    Fixes issue #309

 src/decoder.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3053f7e368149044e5d5887e78fc96c1b9f33141
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 9 00:08:14 2012 +0100

    Remove unnecessary condition in assert

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5da289cd5bf0f3c367d3eb091ac66e5f4ce2b97c
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Jun 9 00:07:30 2012 +0100

    Code formatting, and clean up so that xhiccuped is only handled in case the pipe isn't terminating

 src/socket_base.cpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 0bf1d0262e6b985622461888b1e2e5f732bd95b4
Merge: 67497a26 b0792ec7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 8 23:55:58 2012 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 67497a26439239fdb95652b46d7e4e41fe672b31
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 8 23:55:42 2012 +0100

    Use the hiccup mechanism to notify the socket end of the pair of the change in state, and have it shutdown that end, and shutdown the local end normally. This seems to resolve the shutdown and race condition issues.

 src/session_base.cpp | 6 +++---
 src/socket_base.cpp  | 7 ++++++-
 2 files changed, 9 insertions(+), 4 deletions(-)

commit b0792ec78a1ec7fe207f3c44c363be58a6805afe
Merge: 1c659215 db13fbf4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 8 15:04:09 2012 -0700

    Merge pull request #366 from hitenp/tcp-consolidate

    Consolidate TCP-specific common code into their own files.

commit db13fbf4a996726bd634f050c98be7a0762b2822
Author: Hiten P <hp010170@gmail.com>
Date:   Fri Jun 8 18:04:40 2012 +0100

    Consolidate TCP-specific common code into their own files.

    The TCP keepalive tuning code has been moved into the newly added
    files; this also allows future TCP-specific code to be added into
    these files, without bloating the IP level code and establishes a
    known file structure for other IP-based transports.

    Remember: this is a no-op change, hence no API or functionality
    was changed as part of this commit.

 src/Makefile.am       |   2 +
 src/ip.cpp            |  83 ----------------------------------
 src/ip.hpp            |   6 ---
 src/tcp.cpp           | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/tcp.hpp           |  38 ++++++++++++++++
 src/tcp_connecter.cpp |   1 +
 src/tcp_listener.cpp  |   1 +
 7 files changed, 164 insertions(+), 89 deletions(-)

commit 1c6592157b2444f96a6f1be19a673d7dec621c0d
Merge: 1dcedf7a 31cb1f29
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 8 05:24:26 2012 -0700

    Merge pull request #365 from hitenp/master

    Change connection failure test to use an invalid hostname

commit 31cb1f297d5a25eec25feb263e67e23a1812339d
Author: Hiten P <hp010170@gmail.com>
Date:   Fri Jun 8 13:15:45 2012 +0100

    Change connection failure test to use an invalid hostname

    - invalid hostname set to 0mq.is.the.best (naturally!)
    - issue happens as other valid-like non-existent hostnames were
      redirected by buggy Cable/ISP DNS servers

 tests/test_connect_resolve.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b84b007981d9247bcc7bd000e4dpb56bdpd56de2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jun 6 23:12:56 2012 +0100

    Reverted to a simpler shutdown. This seems to disconnect and reconnect the pipe properly, but there is a problem in overall shutdown when the pipe has blocked and reconnected - the session seems to get terminated() called on it only in shutdown for the original pipe, by which point it has been replaced. I am not sure at the moment why this only happens then, but this does mean this patch is broken at the moment

 src/session_base.cpp | 21 +++++++++------------
 src/session_base.hpp |  3 ---
 2 files changed, 9 insertions(+), 15 deletions(-)

commit 889b0e6f29f0cce566339b13b8a44f3b97836b6e
Merge: 8643d71e 1dcedf7a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jun 6 15:23:51 2012 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 1dcedf7ab16765d9008c4852361af7ad65f54bd5
Merge: 3db9bf31 271ced98
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jun 6 07:16:29 2012 -0700

    Merge pull request #364 from AlexBio/fix_unused_variable

    Remove unused variable which causes build to fail with -Werror

commit 8643d71ee80a17466c87bb3ce6be79ee09c1a410
Merge: 336f7272 3db9bf31
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jun 6 15:04:56 2012 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 3db9bf31b3a50f49ee9247dp8096a5d7f312c5fe
Merge: f611c57c 4bd78bb4
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Jun 6 06:29:41 2012 -0700

    Merge pull request #363 from AlexBio/fix_nosigpipe_check

    Check if SO_NOSIGPIPE is defined

commit 4bd78bb4cf7be4036cf7bf077738f50849e06c19
Author: Alessandro Ghedini <al3xbio@gmail.com>
Date:   Wed Jun 6 15:08:00 2012 +0200

    Check if SO_NOSIGPIPE is defined

 src/stream_engine.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 271ced98cf55447260d8c13086126b74ef1df215
Author: Alessandro Ghedini <al3xbio@gmail.com>
Date:   Wed Jun 6 11:30:41 2012 +0200

    Remove unused variable which causes build to fail with -Werror

 src/pgm_socket.cpp | 1 -
 1 file changed, 1 deletion(-)

commit f611c57c48cf6b0d89766ff45906072271c69649
Merge: 4d4674e0 e5bb5a60
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 5 23:47:36 2012 -0700

    Merge pull request #362 from hintjens/master

    Bumped version for next release (3.3.0)

commit e5bb5a60f41e7d22b360f4436d0ccce79d9c625e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Jun 6 06:57:43 2012 +0200

    Bumped version to 3.3.0

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 336f72720a99195942ced5c6aad2bb8e0baa3f32
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 5 21:44:23 2012 +0100

    The previous code to block the socket from receiving on that pipe during a disconnect was vulnerable to a race condition. This code calls with the terminate functions of both ends of the pipe - I believe this should be safer. This required storing a pointer to the socket end of the pipe

 src/session_base.cpp | 6 ++++--
 src/session_base.hpp | 3 +++
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 5008f385bab2dd89c68d7ff93e0c5b303c6043e8
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 5 18:41:38 2012 +0100

    When detaching a pipe, as well as checking the delay on connect sockopt is set, also ensure that the protocol is not pgm or epgm as we are not implementing the functionality for multicase types

 src/session_base.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 4d4674e088c74d955b6e86182ea0c89815e95881
Merge: f8b79f88 97c48ccd
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 5 10:33:34 2012 -0700

    Merge pull request #360 from vortechs2000/fix_hpux

    Fix build on HPUX 11iv3

commit 09d18e4b3cca0bd95adfde49096be6e380097f5d
Merge: 09956dee f8b79f88
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Jun 5 18:32:15 2012 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit f8b79f888fa3a3743d28bb2611af0670144f7749
Merge: 897b6b58 616bcf9f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 5 09:38:38 2012 -0700

    Merge pull request #361 from vortechs2000/fix_aix7

    Fix up build on AIX7

commit 897b6b58ea5830024e447e48c634d0fceb89abf9
Merge: 98ef5603 3687789f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 5 09:11:25 2012 -0700

    Merge pull request #359 from vortechs2000/fix_older_linux_gcc

    Fix build on RHEL5 and SLES10

commit 97c48ccda6d772ed65b8b2f1ce4c94cf760a0270
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Tue Jun 5 09:44:02 2012 -0500

    Fix build on HPUX 11iv3

    The socket length variable for getsockname and accept must be an
    (int *) instead of a (socklen_t *) on HPUX.

    Signed-off-by: AJ Lewis <aj.lewis@quantum.com>

 src/ipc_listener.cpp | 4 ++++
 src/tcp_listener.cpp | 8 ++++++++
 2 files changed, 12 insertions(+)

commit 3687789f9d4cea0e23f462022248463d5050cc98
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Tue Jun 5 09:22:22 2012 -0500

    Fix build on RHEL5 and SLES10

    GCC 4.1.2 on RHEL5 and SLES10 don't like not having a newline at the
    end of a source file, and error out if it's missing.

    Signed-off-by: AJ Lewis <aj.lewis@quantum.com>

 tests/test_monitor.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 616bcf9fc2b0b6876014d5e5e4d52eef67a9137c
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Tue Jun 5 09:15:37 2012 -0500

    Fix up build on AIX7

    Copy logic from zmq.cpp into device.cpp for getting poll.h included.

    Ensure that zmq.h is included *after* poll.h in both zmq.cpp and
    device.cpp.

    Signed-off-by: AJ Lewis <aj.lewis@quantum.com>

 src/device.cpp | 25 +++++++++++++++++++++++++
 src/zmq.cpp    |  4 +++-
 2 files changed, 28 insertions(+), 1 deletion(-)

commit 09956dee939a06c0734004aa3f39c491ec49c6f8
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 4 11:41:20 2012 +0100

    Restoring comment for clarity

 src/session_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ace7c99b917dd66f1fcdpd3cbb50c988b7e33b09
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 4 11:40:14 2012 +0100

    Removing unnecessary outpipe values that had been used for reconnecting existing pipes - no longer needed when using a pipe term for the delay_attach situation.

 src/session_base.cpp | 6 ------
 src/session_base.hpp | 3 ---
 2 files changed, 9 deletions(-)

commit 55cbdfcf261b41f6a9b71bb26ce7336da7f73eec
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 4 10:31:30 2012 +0100

    Fix incorrect whitespace in if statement

 src/session_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 29f8d9ca15f679132302ca5a9016692c2be1d6b2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 4 10:29:44 2012 +0100

    Remove unnecessary extra test in pipe assertion - now we are terminating pipes we don't need to allow the case in which a pipe is rebound to the same sink

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c13f1d52ff9ed51a651ad8bcc9379e82d9318e86
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Jun 4 10:27:16 2012 +0100

    On the advice of Martin Hurton, removed the new command type and just terminated the pipe in a reconnect situation, and notified the socket of the same. This handles the blocking properly, but at the cost of potentially losing in flight messages. However, this is a reasonable trade off given how much simpler it makes the patch.

 src/command.hpp      |  6 ------
 src/object.cpp       | 19 -------------------
 src/object.hpp       |  2 --
 src/session_base.cpp | 13 ++++++++-----
 src/socket_base.cpp  | 11 -----------
 src/socket_base.hpp  |  3 ---
 6 files changed, 8 insertions(+), 46 deletions(-)

commit 1566091bc6cbf2a69b19243be3906c6d92ac339a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 3 23:27:02 2012 +0100

    Rebinding on reconnection to allow for the pipe blocking will set the event sink again, which will cause an assert to be triggered. I have modified that to allow for setting the same sink to be OK. I believe this should be ok - on termination, if a pipe hasn't reconnected, it would just attempt to be erased from the pipes list again, which is reasonable

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0b3478d6ecf0772c4c6e6ff4e4bdfdeef61cf003
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 3 23:11:08 2012 +0100

    Fix whitespace in test

 tests/test_connect_delay.cpp | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit b5ace39e2a48b906237d869f4f819f1a28a8cee7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 3 23:01:24 2012 +0100

    Fix condition so that PGM and EPGM sockets always create pipes immediately, even if delay_attach_on_connect is set. This allows passing through the icanhasall flag, and is realistic given the fact those protocols should be able to connect immediately

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6f6466f0884a169fd25a48195dd9a4e2135818e6
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 3 22:57:47 2012 +0100

    Fix a number of whitespace issues in various parts of the code, add validation to most calls on the test and take a first stab at implementing the reconnection pipe blocking.

    It didn't seem straightforward to use any of the existing process calls, so I have added a new command to command_t and friends called detach. This instructs the socket_base to remove the pipe from it's pipe list. The session base stores a copy of the outpipe, and will resend the bind command on reconnection. This should allow balancing again.

 src/command.hpp              |  6 +++++
 src/object.cpp               | 19 +++++++++++++++
 src/object.hpp               |  2 ++
 src/session_base.cpp         | 13 +++++++++-
 src/session_base.hpp         |  8 +++---
 src/socket_base.cpp          | 17 ++++++++++---
 src/socket_base.hpp          |  3 +++
 tests/test_connect_delay.cpp | 58 ++++++++++++++++++++++++++++----------------
 8 files changed, 97 insertions(+), 29 deletions(-)

commit 06485d9200ac697896dc4bd162fa4f8b4c2ddaf6
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 3 22:05:36 2012 +0100

    Remove the extra outpipe handling as the session is quite capable of delaying the creation of the pipe until the connection has happened. Simply don't build the pipe, and let it do that automatically.

 src/session_base.cpp | 32 ++------------------------------
 src/session_base.hpp |  5 +----
 src/socket_base.cpp  | 31 +++++++++++++++----------------
 3 files changed, 18 insertions(+), 50 deletions(-)

commit 297af954514d9b2097c5e2df980bbe16dd72e761
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 3 21:38:41 2012 +0100

    And another typo on the same comment

 src/session_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b79aaaf473c4ef61bbd45e711d48fceb06dc9ad1
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Jun 3 21:34:41 2012 +0100

    Remove extra brackets as suggested by Martin H, and fix up a comment which was missing a word

 src/session_base.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit f687a2989b7b4766e8ef7c459c8426e2e7ccbce7
Merge: fe3fb419 98ef5603
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 1 21:49:07 2012 +0100

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 98ef56039ee1c43f31fd6c411447165a5046e347
Merge: c28af41c 0f58a98b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 1 10:10:44 2012 -0700

    Merge pull request #358 from steve-o/issue-320-author

    Issue 320 author

commit 0f58a98b3e6b406e4eafe456351d1948e4351f47
Merge: 320684ef 13976a3d
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Fri Jun 1 13:03:19 2012 -0400

    Merge branch 'issue-320' of https://github.com/steve-o/libzmq into issue-320-author

commit 320684ef3998c5d8120e5e0e7b3e76cb38e5c3ad
Author: Douglas Young <rcxdude@gmail.com>
Date:   Wed May 30 20:52:19 2012 -0400

    Return error on invalid PGM url instead of raising assertion (Douglas Young).
    Fix Win32 build.

 src/decoder.cpp     |  5 +++++
 src/pgm_socket.cpp  | 52 +++++++++++++++++++++++++++++++++++-----------------
 src/pgm_socket.hpp  |  3 +++
 src/socket_base.cpp | 14 ++++++++++++++
 4 files changed, 57 insertions(+), 17 deletions(-)

commit fe3fb419fe249d7015a6c864d18464d434a55468
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Jun 1 17:58:19 2012 +0100

    After speaking with Ben Gray and the discussion on the mailing list, this is an attempt to create a sockopt to allow connecting pipes to not immediately be available for traffic. The problem is in a PUSH to many PULL situation, where there is a connect to a PULL which is not there. This connect will immediately create a pipe (unlike bind), and traffic will be load balanced to that pipe. This means if there is a persistently unavailable end point then the traffic will queue until HWM is hit, and older messages will be lost.

    This patch adds a sockopt ZMQ_DELAY_ATTACH_ON_CONNECT, which if set to 1 will attempt to preempt this behavior. It does this by extending the use of the session_base to include in the outbound as well as the inbound pipe, and only associates the pipe with the socket once it receives the connected callback via a process_attach message. This works, and a test has been added to show so, but may introduce unexpected complications. The shutdown logic in this class has become marginally more awkward because of this, requiring the session to serve as the sink for both pipes if shutdown occurs with a still-connecting pipe in place. It is also possible there could be issues around flushing the messages, but as I could not directly think how to create such an issue I have not written any code with regards to that.

    The documentation has been updated to reflect the change, but please do check over the code and test and review.

 .gitignore                   |   1 +
 doc/zmq_getsockopt.txt       |  15 +++++
 doc/zmq_setsockopt.txt       |  13 +++++
 include/zmq.h                |   1 +
 src/lb.cpp                   |   3 +-
 src/options.cpp              |  25 +++++++++
 src/options.hpp              |   4 ++
 src/session_base.cpp         |  29 ++++++++++
 src/session_base.hpp         |   6 ++
 src/socket_base.cpp          |   5 +-
 tests/Makefile.am            |   2 +
 tests/test_connect_delay.cpp | 131 +++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 232 insertions(+), 3 deletions(-)

commit c28af41ca4a02484577afc6376ed278292ee43da
Merge: bc150de8 89ff277b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 31 07:29:55 2012 -0700

    Merge pull request #356 from hurtonm/code_cleanup

    lb: code cleanup

commit bc150de81e5416e798b9ca4b70780198b30911f9
Merge: 4e7be102 2973eaf4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 31 07:29:22 2012 -0700

    Merge pull request #355 from hurtonm/fq_lb_fix

    Prevent connection starvation

commit 89ff277becdba92def3ea6ba4b7afe3c7af6adbe
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu May 31 15:59:59 2012 +0200

    lb: code cleanup

 src/lb.cpp | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit 2973eaf44629dba0b27735549fa5bb627d5a7301
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu May 31 15:34:30 2012 +0200

    Prevent connection starvation

    When removing a pipe from the lb or fq component,
    make sure we do not remove another pipe from the active set.

 src/fq.cpp | 5 ++++-
 src/lb.cpp | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

commit 4e7be102f4d09c27b76f52e9d3f84f23cebf6cff
Merge: 32befeb0 13976a3d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 31 01:19:22 2012 -0700

    Merge pull request #354 from steve-o/issue-320

    Return error on invalid PGM url instead of raising assertion.

commit 13976a3d656989997077dc9b1c5fe1ec42f991e9
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Wed May 30 20:52:19 2012 -0400

    Return error on invalid PGM url instead of raising assertion.
    Fix Win32 build.

 src/decoder.cpp     |  5 +++++
 src/pgm_socket.cpp  | 52 +++++++++++++++++++++++++++++++++++-----------------
 src/pgm_socket.hpp  |  3 +++
 src/socket_base.cpp | 14 ++++++++++++++
 4 files changed, 57 insertions(+), 17 deletions(-)

commit 32befeb0a6215dpde34b58eb38bd853133473113
Merge: 1adb7b10 75df0194
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 30 09:59:55 2012 -0700

    Merge pull request #353 from steve-o/master

    Fix title on zmq_disconnect manpage.

commit 75df0194bf50e14eec756dabbc59f1a0cfbdf027
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Wed May 30 12:53:53 2012 -0400

    Fix title on zmq_disconnect manpage.

 doc/zmq_disconnect.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1adb7b10175ddefcdc8cd60eb46cd2bd441b69b9
Merge: f7bd543c 7fe45af3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 29 13:29:58 2012 -0700

    Merge pull request #352 from hurtonm/issue_370

    Fix issue #370

commit 7fe45af30f5978e490575b0c088cf7b444c98e9f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 29 21:59:22 2012 +0200

    Fix issue #370

    The patch extends the internal session's API with the reset method.
    This method is used to reset a session's state so that it can
    handle a new connection.

 src/req.cpp          |  5 +++++
 src/req.hpp          |  1 +
 src/session_base.cpp | 11 ++++++++---
 src/session_base.hpp |  1 +
 4 files changed, 15 insertions(+), 3 deletions(-)

commit f7bd543c36ee0850e9843eb24e21f8a9c5cbfbbd
Merge: 8152502f 24b79c7e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 28 14:34:57 2012 -0700

    Merge pull request #351 from hurtonm/code_cleanup

    Code cleanup

commit 24b79c7e0bcd9325c34f183666d08738f6ebdbb8
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon May 28 23:13:09 2012 +0200

    Prefer errno_assert/alloc_assert to zmq_assert

 src/ctx.cpp          |  2 +-
 src/dealer.cpp       |  2 +-
 src/dist.cpp         |  2 +-
 src/lb.cpp           |  2 +-
 src/mtrie.cpp        | 16 ++++++++--------
 src/pgm_sender.cpp   |  2 +-
 src/session_base.cpp |  7 ++++---
 src/signaler.cpp     |  4 ++--
 src/socket_base.cpp  | 10 +++++-----
 src/tcp_address.cpp  | 12 ++++++------
 src/trie.cpp         | 10 +++++-----
 src/xsub.cpp         |  8 ++++----
 12 files changed, 39 insertions(+), 38 deletions(-)

commit 013967681dda83af378ed47343dc68561ec687e3
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon May 28 22:01:37 2012 +0200

    fq: code cleanup

 src/fq.cpp | 27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

commit 8152502f6924f271c63df6ddp100c14c5445e468
Merge: e30e48c2 130dfc5b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 28 08:39:20 2012 -0700

    Merge pull request #350 from hurtonm/issue_369

    Fix issue #369

commit 130dfc5b5f0ecf23e80be16fcd307dad7e649fd7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon May 28 17:02:08 2012 +0200

    Fix issue #369

    The bug was that after reconnect, the session did not
    handle identity messages properly.

 src/session_base.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit e30e48c23effe286135e727e0795b91b268986d0
Merge: 3a76d246 2ab12efe
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon May 28 02:16:29 2012 -0700

    Merge pull request #349 from hintjens/master

    Fixed zmq_poll.txt manpage for issue #361

commit 2ab12efe11411d0f05b08fa8eb54ff9c5b16a9a0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 28 11:01:18 2012 +0200

    Fixing issue #361

 doc/zmq_poll.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 3a76d246a8808bf8357a91319f9b17e731e41407
Merge: 5db30fe9 d0b9005e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 28 00:47:26 2012 -0700

    Merge pull request #348 from hurtonm/code_cleanup

    Code cleanup

commit d0b9005ef002fce2de2fbbfa5d29fe2bef871cb5
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 27 23:26:14 2012 +0200

    Don't assume SOCKET_ERROR is -1 on Windows

 src/stream_engine.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ac53f1a7284b85849e0a31fdec80e0f51293f3d0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 27 22:51:56 2012 +0200

    Remove unnecessary casts

 src/pgm_socket.cpp    | 2 +-
 src/stream_engine.cpp | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit e0534643fa65890145aabfe6423695b63b1d9bb4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 27 23:35:32 2012 +0200

    Simplify error handling in tcp_connecter

 src/tcp_connecter.cpp | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

commit 13ef1e4f268452a076205d9c974a33e111401ef2
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 27 16:10:19 2012 +0200

    Make wsa_error_to_errno pure function

 src/err.cpp           | 38 ++++++++++++++------------------------
 src/err.hpp           |  2 +-
 src/tcp_connecter.cpp |  4 ++--
 src/tcp_listener.cpp  |  8 ++++----
 src/zmq.cpp           | 12 +++++-------
 5 files changed, 26 insertions(+), 38 deletions(-)

commit a8f9a0d8918c6ede1617beda9c65ff70b5a1977a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 27 15:31:59 2012 +0200

    Use zmq_assert rather then assert

 src/devpoll.cpp | 4 ++--
 src/poll.cpp    | 4 ++--
 src/router.cpp  | 6 +++---
 3 files changed, 7 insertions(+), 7 deletions(-)

commit 52ed4cdccf16567674e9c949da74b484b596f8a8
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 27 14:51:12 2012 +0200

    Remove dead code

 src/session_base.cpp  |  8 +-------
 src/stream_engine.cpp | 28 ++++------------------------
 2 files changed, 5 insertions(+), 31 deletions(-)

commit 7cfd03ba72dd91d2e8f1b246bf68dbf43ec135f4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun May 27 15:15:09 2012 +0200

    Remove unplug from i_engine interface

 src/i_engine.hpp      | 3 ---
 src/pgm_receiver.hpp  | 4 +++-
 src/pgm_sender.hpp    | 4 +++-
 src/stream_engine.hpp | 4 +++-
 4 files changed, 9 insertions(+), 6 deletions(-)

commit 5db30fe991137e80926a549f99e45e2854d63e91
Merge: 74af2f94 b85ff178
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 24 06:45:27 2012 -0700

    Merge pull request #347 from methodmissing/monitor-doc-fails

    Fix too long underline in zmq_ctx_set_monitor() docs

commit b85ff17822b3a2b4737c964f38d82b5dde568a11
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Thu May 24 09:39:48 2012 +0100

    Fix too long underline in monitor docs

 doc/zmq_ctx_set_monitor.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 74af2f9402f68b2c1d96dfdpefa69f490dp79db0
Merge: 22b4388e 400f6f38
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed May 23 07:21:41 2012 -0700

    Merge pull request #346 from methodmissing/monitor-regressions

    Rename monitor documentation source file to match zmq_ctx_set_monitor() API

commit 400f6f3863c32ebfa783acade8e36d45c9d936e7
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Wed May 23 01:35:22 2012 +0100

    Rename monitor documentation source file to match zmq_ctx_set_monitor() API

 doc/{zmq_monitor.txt => zmq_ctx_set_monitor.txt} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 22b4388e29fcb6cf576ef4d1e92e939560d30f99
Merge: 20152a6e 1e92ee0a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue May 22 16:18:54 2012 -0700

    Merge pull request #345 from methodmissing/monitor-regressions

    Moves the monitoring infrastructure to a global zmq_ctx_set_monitor () API to avoid strict aliasing issues with function pointers and socket options.

commit 1e92ee0a0e9f4996259c662d4a6e8f71f6f45843
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue May 22 23:45:15 2012 +0100

    Oust last remaning ZMQ_MONITOR reference from NEWS as well

 NEWS | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit adf7a7ade12598d14d9e7948922b68f4bab60657
Merge: 991b7fcc 20152a6e
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue May 22 23:35:30 2012 +0100

    Merge branch 'master' into monitor-regressions

commit 991b7fcc04de7d694dc54430c43f6bb01494086a
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue May 22 20:15:18 2012 +0100

    Rename zmq_monitor to zmq_ctx_set_monitor for compat with existing context specific APIs

 doc/Makefile.am        |  2 +-
 doc/zmq.txt            |  2 +-
 doc/zmq_monitor.txt    | 18 +++++++++---------
 include/zmq.h          |  2 +-
 src/zmq.cpp            |  2 +-
 tests/test_monitor.cpp |  2 +-
 6 files changed, 14 insertions(+), 14 deletions(-)

commit 04f0e7f26e18a2802d8683fc12ef8a67197fda6c
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Tue May 22 20:08:02 2012 +0100

    Documentation for zmq_monitor

 doc/Makefile.am        |   2 +-
 doc/zmq.txt            |   3 +
 doc/zmq_getsockopt.txt |  11 ---
 doc/zmq_monitor.txt    | 221 +++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt |  40 ---------
 5 files changed, 225 insertions(+), 52 deletions(-)

commit 20152a6e3e1e46e3c930afdb2da122939f6f97e9
Merge: 7cb19fbf 604456a8
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue May 22 07:31:28 2012 -0700

    Merge pull request #344 from hintjens/master

    Fixed bogus reference to zmq_ctx_put

commit 604456a8b0a1661859779d467c6cca40192c6f28
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 21 15:59:55 2012 -0500

    Man page for zmq_ctx_new had error, fixed

 doc/zmq_ctx_new.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f27c02d01e323c2d5d2d3d889f5e8d5a7cbff73d
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Mon May 21 21:22:16 2012 +0100

    Change context monitor_event prototype to accept a va_list instead

 src/ctx.cpp | 45 +++++++++++++++++++++------------------------
 src/ctx.hpp |  2 +-
 2 files changed, 22 insertions(+), 25 deletions(-)

commit 4767159f39001b7f5a2cc6b9d63a548a57c286d5
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Mon May 21 20:47:11 2012 +0100

    Initial stab at a context level monitor callback and registration API

 include/zmq.h          | 24 ++++++++--------
 src/ctx.cpp            | 65 +++++++++++++++++++++++++++++++++++++++++-
 src/ctx.hpp            |  8 ++++++
 src/options.cpp        | 24 ----------------
 src/options.hpp        |  3 --
 src/socket_base.cpp    | 56 +++----------------------------------
 src/zmq.cpp            |  8 ++++++
 tests/test_monitor.cpp | 76 +++++++++++++++-----------------------------------
 8 files changed, 118 insertions(+), 146 deletions(-)

commit 7cb19fbf1c736f72ac2ed35bab9645f3700be634
Merge: 65b6351e 0e053e34
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 21 06:00:02 2012 -0700

    Merge pull request #343 from jimenezrick/master

    Doc improvement: document interface omission in zmq_pgm.txt

commit 65b6351e4a11f4424fbd80dp0dc25f80a8c9c7bc
Merge: 5ef63318 d25dce9d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 21 05:59:32 2012 -0700

    Merge pull request #342 from ipechorin/master

    Solaris/SunCC build fix: could not find a match for std::multimap<...>::insert(std::pair<...,...>)

commit 0e053e34789521b45c1fd5b982654612e8bfc2c6
Author: Ricardo Catalinas Jiménez <r@untroubled.be>
Date:   Mon May 21 14:06:34 2012 +0200

    Doc improvement: document interface omission in zmq_pgm.txt

    The PGM transport supports the omission of the network interface to
    select the default one like:

      announce.connect("epgm://eth0;239.255.128.46:64646"); // Use eth0
      announce.connect("epgm://239.255.128.46:64646"); // Use the default

    Also, mention C++ in the additional community bindings of 0MQ in
    zmq.txt.

 doc/zmq.txt     | 6 +++---
 doc/zmq_pgm.txt | 3 ++-
 2 files changed, 5 insertions(+), 4 deletions(-)

commit e13b3723b8246b0526298698f9070d077b3322e3
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Sun May 20 18:27:59 2012 +0100

    Rename type zmq_monitor_fn -> zmq_monitor for a more natural callback definition API (zmq_monitor type, monitor.function callback)

 doc/zmq_getsockopt.txt | 2 +-
 doc/zmq_setsockopt.txt | 4 ++--
 include/zmq.h          | 2 +-
 src/options.cpp        | 6 +++---
 src/options.hpp        | 4 ++--
 tests/test_monitor.cpp | 2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

commit 06cce1547996c0aa42038d0eccfbf63efe18f0bb
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Sun May 20 18:16:23 2012 +0100

    Change zmq_monitor_fn type to cast between pointer-to-object and pointer-to-function in a more standards compliant way

 doc/zmq_setsockopt.txt |  2 +-
 include/zmq.h          |  5 ++++-
 src/socket_base.cpp    |  2 +-
 tests/test_monitor.cpp | 16 ++++++++--------
 4 files changed, 14 insertions(+), 11 deletions(-)

commit d25dce9df916b6fa646776015162415cc9efb835
Author: Ivan Pechorin <ivan.pechorin@gmail.com>
Date:   Sun May 20 13:34:08 2012 +0200

    Solaris/SunCC build fix: could not find a match for std::multimap<...>::insert(std::pair<...,...>)

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5ef63318f876fe982f24b4b209e7f961ecd9b2bf
Merge: 89d5054e c995de65
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 13 06:39:16 2012 -0700

    Merge pull request #341 from kennytm/master

    Allow the ZMQ_MONITOR code compilable on gcc 4.7 on Linux.

commit c995de65847d8a97dc75294fb1b9b6a057fd3c1d
Author: KennyTM~ <kennytm@gmail.com>
Date:   Sun May 13 20:49:05 2012 +0800

    Allow the ZMQ_MONITOR code compilable on gcc 4.7 on Linux.

    The current ZMQ_MONITOR code does not compile in gcc 4.7, as -pedantic
    and -Werror are enabled, and ISO C++ doesn't allow casting between
    normal pointers (void*) and function pointers, as pedantically their
    size could be different. This caused the library not compilable. This
    commit workaround the problem by introducing one more indirection, i.e.
    instead of calling

        (void *)listener

    which is an error, we have to use

        *(void **)&listener

    which is an undefined behavior :) but works on most platforms

    Also, `optval_ = monitor` will not set the parameter in getsockopt(),
    and the extra casting caused the LHS to be an rvalue which again makes
    the code not compilable. The proper way is to pass a pointer of function
    pointer and assign with indirection, i.e. `*optval_ = monitor`.

    Also, fixed an asciidoc error in zmq_getsockopt.txt because the `~~~~`
    is too long.

 doc/zmq_getsockopt.txt |  2 +-
 src/options.cpp        |  6 +++---
 src/session_base.cpp   |  2 ++
 tests/test_monitor.cpp | 15 +++++++++------
 4 files changed, 15 insertions(+), 10 deletions(-)

commit 89d5054e596e61fa2cd9dp4d62be423b7d2dpcf0
Merge: 70b067ec d0461752
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 11 15:18:50 2012 -0700

    Merge pull request #340 from methodmissing/events

    Expose a ZMQ_MONITOR socket option to register a callback for notification of state changes in socket state ( stream engine, tcp and ipc transport only )

commit d0461752ff211f4277722505c9cda6703e845943
Merge: c38dpcdc 70b067ec
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Fri May 11 22:08:17 2012 +0100

    Merge branch 'master' into events

commit 70b067ecc6b33611aca4f68f6f19557a8e339f04
Merge: c7af07cc e65d228f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri May 11 06:23:58 2012 -0700

    Merge pull request #339 from ianbarber/master

    Add disconnect and unbind documentation

commit e65d228f4f829d23134a97c57121a066d92a1538
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri May 11 14:17:45 2012 +0100

    gitignore endpoint test and add docs for unbind and disconnect

 .gitignore             |  1 +
 doc/zmq_disconnect.txt | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_unbind.txt     | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 131 insertions(+)

commit c7af07cc773c922fc8fddp0dab740d7330edbca3
Merge: d0875482 5fe6ddfd
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue May 8 06:42:12 2012 -0700

    Merge pull request #336 from mauri-melato/master

    Fix #366 - On Windows, preventing sockets to be inherited by child processes.

commit d087548286439f02ee70b1b3793dd71c01529539
Merge: 80e8baaf 64194394
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue May 8 06:41:22 2012 -0700

    Merge pull request #338 from hurtonm/code_cleanup

    Simplify encoder's loop

commit 641943944d1c6c148815f42f1e9a196d6cf5d925
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 8 13:30:13 2012 +0200

    Simplify encoder's loop

 src/encoder.hpp | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

commit 80e8baaff473892e5b5b4d4c59edcd146712a7d2
Merge: 5dc44a63 3d93c1af
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue May 8 02:25:16 2012 -0700

    Merge pull request #337 from hurtonm/issue_268

    Fix issue #268

commit 3d93c1af5baded5fd1597261345438c393f3bcbd
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue May 8 09:28:17 2012 +0200

    Fix issue #268

    This patch fixes a bug in the message encoder which was
    responsible for computing incorrect message offset.
    The bug affected PGM receiver making it unable to
    decode inital messages.

 src/encoder.cpp |  8 +++-----
 src/encoder.hpp | 14 ++++++--------
 2 files changed, 9 insertions(+), 13 deletions(-)

commit 5fe6ddfda3ab207c579c7dc6a9b2be48bf3cdb92
Author: Maurizio Melato <maurizio.melato@nice-software.com>
Date:   Mon May 7 15:46:55 2012 +0200

    On Windows, preventing sockets to be inherited by child processes.

 src/ip.cpp           |  6 ++++++
 src/signaler.cpp     | 10 +++++++++-
 src/tcp_listener.cpp |  6 ++++++
 3 files changed, 21 insertions(+), 1 deletion(-)

commit 5dc44a63d656be113dba904a384038c7f7b99700
Merge: 47dbd4aa 37e4a38e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 6 03:07:35 2012 -0700

    Merge pull request #335 from jdc8/master

    Fix for issue 355 and fix for compile error with Visual C++ 2008

commit 37e4a38eb547942da7b0d4e901d02632918a0cf0
Author: Jos Decoster <jos.decoster@gmail.com>
Date:   Sat May 5 23:56:49 2012 +0200

    Fix compile error with Visual C++ 2008

    File decoder.cpp does not compile with Visual C++ 2008:

    1>c:\tmp\libzmq\src\decoder.cpp(117) : warning C4003: not enough actual parameters for macro 'max'
    1>c:\tmp\libzmq\src\decoder.cpp(117) : error C2589: '(' : illegal token on right side of '::'
    1>c:\tmp\libzmq\src\decoder.cpp(117) : error C2059: syntax error : '::'
    1>c:\tmp\libzmq\src\decoder.cpp(117) : error C2143: syntax error : missing ';' before '{'

    This error is caused by the precense of a macro 'max' when including
    'windows.h'. To solve this problem, the preprocessor macro /DNOMINMAX must
    be specified.

 builds/msvc/libzmq/libzmq.vcproj | 1 +
 1 file changed, 1 insertion(+)

commit 68c1be8bf6539a317c48810fb7af7b2e59cd7dfa
Author: Jos Decoster <jos.decoster@gmail.com>
Date:   Sat May 5 23:25:46 2012 +0200

    Fix for issue 355. Added missing source files dealer.cpp, device,cpp and router.cpp. Removed source files no longer present: xrep.cpp and xreq.cpp

 builds/msvc/libzmq/libzmq.vcproj  | 20 ++++++++++++--------
 builds/msvc/libzmq/libzmq.vcxproj |  5 +++--
 2 files changed, 15 insertions(+), 10 deletions(-)

commit c38dpcdc50249df84ee585ea4cec1ee1c0f0b2df
Merge: 5c6f72c1 47dbd4aa
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Fri May 4 02:35:22 2012 +0100

    Merge branch 'master' into events

commit 5c6f72c17c1139f6c9699f998c9ca6eedfc535af
Author: Lourens Naudé <lourens@methodmissing.com>
Date:   Fri May 4 02:32:46 2012 +0100

    ZMQ_MONITOR socket option registers a callback / event sink for changes in socket state

 .gitignore             |   2 +
 AUTHORS                |   1 +
 NEWS                   |   2 +
 doc/zmq_getsockopt.txt |  10 ++++
 doc/zmq_setsockopt.txt |  41 ++++++++++++-
 include/zmq.h          |  68 +++++++++++++++++++++-
 src/address.cpp        |   2 +-
 src/address.hpp        |   2 +-
 src/ipc_connecter.cpp  |  14 ++++-
 src/ipc_connecter.hpp  |   3 +
 src/ipc_listener.cpp   |  20 +++++--
 src/ipc_listener.hpp   |   3 +
 src/options.cpp        |  23 ++++++++
 src/options.hpp        |   4 ++
 src/session_base.cpp   |  15 +++++
 src/session_base.hpp   |   3 +
 src/socket_base.cpp    |  58 +++++++++++++++++++
 src/socket_base.hpp    |   3 +
 src/stream_engine.cpp  |   4 ++
 src/stream_engine.hpp  |   4 ++
 src/tcp_connecter.cpp  |  14 ++++-
 src/tcp_connecter.hpp  |   4 ++
 src/tcp_listener.cpp   |  14 ++++-
 src/tcp_listener.hpp   |   4 ++
 tests/Makefile.am      |   4 +-
 tests/test_monitor.cpp | 152 +++++++++++++++++++++++++++++++++++++++++++++++++
 26 files changed, 461 insertions(+), 13 deletions(-)

commit 47dbd4aa968f756f6e8afaa17aca6553e3f46d15
Merge: f497adp8 1075005b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu May 3 06:08:02 2012 -0700

    Merge pull request #334 from ianbarber/master

    Async connect error handling

commit 1075005b500b86aa5ca828198bfedcd0067946fd
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu May 3 13:24:12 2012 +0100

    Patch from Mato that fixes a subtle connect bug: EAGAIN was being used as a translation value for EINPROGRESS, thus
    shadowing a real EAGAIN return value from the OS.  This caused later
    assertions of "Invalid argument" in stream_engine.cpp when it attempted to
    use a socket which was not connected.

    I also add EINTR to mean EINPROGRESS, as per the POSIX and FreeBSD
    documentation which specifies that a connect() call interrupted due to a
    signal will complete asynchronously.

    Signed-off-by: Martin Lucina <martin@lucina.net>

 src/ipc_connecter.cpp |  7 +++++++
 src/tcp_connecter.cpp | 11 ++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

commit f497adp8df340c1543dc822b6ee284dc7e4bea7d
Merge: 36bfaaab 5227f676
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 29 22:33:31 2012 -0700

    Merge pull request #333 from hurtonm/fix_decoder_to_properly_handle_large_messages

    Fix decoder to properly handle large messages

commit 36bfaaabe68af2db492280f62fdbbe056418be9f
Merge: 9098f4d6 776563fc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 29 22:33:16 2012 -0700

    Merge pull request #332 from hurtonm/fix_issue_264

    Fix issue #264

commit 9098f4d655f2a9f6a1bced2888090c1dd66acdb6
Merge: dd3eb08d 394a2485
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 29 22:32:57 2012 -0700

    Merge pull request #331 from hurtonm/code_cleanup

    socket_base: process_unplug () is not used, remove it

commit dd3eb08d3325af0b91e09317c3dbd280536431ea
Merge: 16ec2868 d8470949
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Apr 29 22:32:39 2012 -0700

    Merge pull request #330 from hurtonm/pair_socket_rejects_additional_connections

    Do not crash when multiple peers connect to PAIR socket

commit d84709497edc9eba051374874e9318b2e1bacb95
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Apr 30 00:48:07 2012 +0200

    Do not crash when multiple peers connect to PAIR socket

    When more then one peer connected to a ZMQ_PAIR socket,
    an application aborted due to assertion failure.
    This patch changes the ZMQ_PAIR socket behaviour so that
    it rejects any further connection requests.

 src/pair.cpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 5227f676f4259050f067386c58e6bcf7f148c333
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Apr 29 15:27:41 2012 +0200

    Fix decoder to properly handle large messages

    The decoder did not properly decode large messages
    on systems where sizeof (size_t) < sizeof (uint64_t).

 src/decoder.cpp | 39 ++++++++++++++++++++++++---------------
 1 file changed, 24 insertions(+), 15 deletions(-)

commit 776563fcffe975774c713ade357ea2b83d22da7c
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Apr 29 17:13:18 2012 +0200

    Fix issue #264

    Before this patch, the stream engine terminated itself
    whenever it had detected an IO error. If this happened
    when sending a message, the engine lost all
    in-flight messages, messages waiting to be decoded,
    and the last decoded message that had not been accepted,
    if there was one.

    The new behaviour is to terminate the engine only after
    the input error has been detected and the last decoded

 src/decoder.cpp       |  5 +++++
 src/decoder.hpp       | 22 +++++++++++++---------
 src/stream_engine.cpp | 34 +++++++++++++++++++++++++++++-----
 src/stream_engine.hpp |  1 +
 4 files changed, 48 insertions(+), 14 deletions(-)

commit 394a24857905c2489b555803170a0d640f38b4a8
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Apr 28 16:28:12 2012 +0200

    socket_base: process_unplug () is not used, remove it

 src/socket_base.cpp | 4 ----
 src/socket_base.hpp | 1 -
 2 files changed, 5 deletions(-)

commit 16ec2868c5f786b2267a003e2d3f1e4279c08d91
Merge: 7c5d79dd b7c9fc07
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 27 11:06:14 2012 -0700

    Merge pull request #329 from ianbarber/master

    Tweak FD sockopt text

commit b7c9fc07505119fad234a21cdb925449eca16fc9
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Apr 27 11:22:17 2012 +0100

    Slight tweak to text for readability

 doc/zmq_getsockopt.txt | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 7c5d79ddd38b5110982e02aa2c2d3dc61f111419
Merge: 29000d3b 138def0b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Apr 27 03:04:42 2012 -0700

    Merge pull request #328 from tailhook/patch-1

    Added refinement for ZMQ_FD option

commit 138def0b992e250833020ebaca0ebb4d9a73dd71
Author: Paul Colomiets <paul@colomiets.name>
Date:   Fri Apr 27 12:55:17 2012 +0300

    Added refinement for ZMQ_FD option

 doc/zmq_getsockopt.txt | 6 ++++++
 1 file changed, 6 insertions(+)

commit 29000d3b021147384bff0e2a9d1f64b7b71cfa5d
Merge: 41c82bdd 1788fd39
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Apr 26 04:59:11 2012 -0700

    Merge pull request #326 from hurtonm/pipe_code_cleanup

    pipe: code cleanup

commit 41c82bdda140e047533cf5b57522b5bc131b55f7
Merge: 648e3199 2cbf7993
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Apr 26 04:57:45 2012 -0700

    Merge pull request #327 from hurtonm/fq_drop_unused_parameter

    fq: remove unused parameter

commit 2cbf7993dcc52d65c9394b38e40dp5e6e4897b28
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Apr 26 13:16:51 2012 +0200

    fq: remove unused parameter

    The recv function accepted flags parameter but this was unused.

 src/dealer.cpp | 2 +-
 src/fq.cpp     | 6 +++---
 src/fq.hpp     | 4 ++--
 src/pull.cpp   | 2 +-
 src/router.cpp | 4 ++--
 src/xsub.cpp   | 8 ++++----
 6 files changed, 13 insertions(+), 13 deletions(-)

commit 1788fd396b609daf404a3b92bcafe98892603c71
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Apr 25 11:07:19 2012 +0200

    pipe: code cleanup

 src/pipe.cpp | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

commit 648e31994d4239136d2325c16500afee01aa7c33
Merge: e8b701cb a2c37725
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Apr 25 01:52:06 2012 -0700

    Merge pull request #325 from hurtonm/update_comment_in_device_plus_whitespace_fixes

    Mention limitation of the device implementation

commit a2c3772531960df70b672f1124b090224c9784ea
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Apr 25 10:43:00 2012 +0200

    Mention limitation of the device implementation

    + fix whitespace errors
    + drop some unnecessary parens

 src/device.cpp | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

commit e8b701cb9285d32c21b22c3c3c9b0b6681ad965e
Merge: 9d02b3da 873abdd2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 25 00:27:51 2012 -0700

    Merge pull request #324 from hurtonm/rename_xrep_xreq_in_tests

    Rename XREP/XREQ to ROUTER/DEALER in tests

commit 9d02b3dafbb11bbfc1d14b4c663a5bce9770f0d9
Merge: 016df8e8 df5344bb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 25 00:27:19 2012 -0700

    Merge pull request #323 from hurtonm/xsub_fix_message_initialisation

    xsub: fix memory leak

commit 873abdd24c9d6ce42be3028555f8102a47a8b04e
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Apr 25 01:03:38 2012 +0200

    Rename XREP/XREQ to ROUTER/DEALER in tests

 tests/test_invalid_rep.cpp   | 26 +++++++++++++-------------
 tests/test_last_endpoint.cpp |  2 +-
 tests/test_msg_flags.cpp     |  4 ++--
 tests/test_reqrep_device.cpp | 28 ++++++++++++++--------------
 4 files changed, 30 insertions(+), 30 deletions(-)

commit df5344bba0a8fc21b7dd213a815964b4580fd117
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Apr 24 14:01:26 2012 +0200

    xsub: fix memory leak

    The implementation of the send call for XSUB socket failed
    to release and initialise empty message when duplicate
    subscription was detected.

 src/xsub.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 016df8e89c04338898790357a115aa55d250623d
Merge: c120f02d 135fdab0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Apr 24 11:18:50 2012 -0700

    Merge pull request #322 from tranthamp/master

    Atomic operations for armv7a

commit 135fdab0eced035e6f2aaaa306ddp438165b4303
Author: Patrick Trantham <patrick.trantham@fuel7.com>
Date:   Fri Apr 13 10:48:15 2012 -0500

    Implement atomic operations for armv7a

    This commit implements atomic operations for the armv7a architecture
    using gcc inline assembly.  This offers higher performance compared to
    pthread mutexes.

    Tested on an am3517 evm, clocked at 600MHz:

    ./inproc_thr 200 1000000
    ------------------------
    53-60K messages / sec, pthread mutexes
    73-90K messages / sec, assembly atomic ops

    ./inproc_lat 200 1000000
    ------------------------
    average latency: 42.234 [us], pthread mutexes
    average latency: 35.496 [us], assembly atomic ops

 src/atomic_counter.hpp | 32 ++++++++++++++++++++++++++++++++
 src/atomic_ptr.hpp     | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)

commit c120f02dc93dd7d3b1ba4ea6910d8694c3934d91
Merge: b9fb9198 f858321c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 21 16:06:06 2012 -0700

    Merge pull request #321 from shripchenko/master

    add process_commands() to the beginning of zmq_connect() and zmq_bind()

commit f858321c1c7d5a58367d52f39ff1bfc74242dab2
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Sun Apr 22 01:39:48 2012 +0400

    add process_commands() to the beginning of zmq_connect() and zmq_bind()

    I believe there was a conception that zmq_connect() and zmq_bind() will be called
    only at the socket creation time and therefore don't need it.
    Now it is not true anymore.

 src/socket_base.cpp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit b9fb9198779a6db23aadb1cd803c76edd8dcde5a
Merge: 952127df 057fab09
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 21 09:52:46 2012 -0700

    Merge pull request #320 from shripchenko/master

    ZMQ BUG FOUND + fixes for zmq_unbind() / zmq_disconnect() usage corner cases

commit 057fab09a80728db0445313e0ed0123be128e046
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Sat Apr 21 18:56:10 2012 +0400

    fixes for zmq_unbind() / zmq_disconnect() usage corner cases

    1. when we call zmq_bind()/zmq_connect() to create endpoint
    we send ourselfs(through launch_child()) command to process_own(endpoint)
    (and add it to own_t::owned)
    in the application thread we could call zmq_unbind() / zmq_disconnect() _BEFORE_
    we run process_own() in ZMQ thread and in this situation we will be unable to find it in
    own_t::owned. in other words own_t::owned.find(endpoint) will not be deleted but it will be deleted from
    socket_base_t::endpoints.

    2. when you zmq_unbind() the lisnening TCP/IPC socket was terminated only in destructor...
    so the whole ZMQ_LINGER time listening TCP/IPC socket was able to accept() new connections
    but unable to handle them.

    this all geting even worse since unfortunately zmq has a bug and '*_listener_t' object not terminated
    untill the socket's zmq_close().
    AT LEAST FOR PUSH SOCKETS.
    Everything is ok for SUB sockets.

    Easy to reproduce without my fix:

    zmq_socket(PUSH)
    zmq_bind(tcp);
    // connect to  it from PULL socket
    zmq_unbind(tcp);

    sleep(forever)

    // netstat -anp | grep 'tcp listening socket'

    With my fix you could see that after zmq_unbind(tcp) all previously connected tcp sessions
    will not be finished untill the zmq_close(socket) regardless of ZMQ_LINGER value.

    (*_listener_t terminates all owned session_base_t(connect=false) and they call pipe_t::terminate()
    which in turn should call session_base_t::terminated() but this never happens)

 src/ipc_listener.cpp | 2 +-
 src/socket_base.cpp  | 6 ++++++
 src/tcp_listener.cpp | 1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

commit 4f668ad60a7fa6c6000a5f7d94731a42ea295513
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Sat Apr 21 18:39:19 2012 +0400

    added zmq_unbind() / zmq_disconnect() test script.
    it works but rises very serious questions.

    Please add license header by your choice.
    This file for 99% resemble crossroads-io/tests/shutdown.cpp

 tests/Makefile.am            |  4 +-
 tests/test_term_endpoint.cpp | 97 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+), 1 deletion(-)

commit 74dp19ac1f31d1264e425f8fd9caa4d277d65c49
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Sat Apr 21 18:36:20 2012 +0400

    spaces deleted

 src/pipe.cpp         | 2 +-
 src/session_base.cpp | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

commit 952127dfd6f2948b102d240d69c23dab13d8bb84
Merge: 653e5854 06b2edp8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 21 06:03:00 2012 -0700

    Merge pull request #319 from shripchenko/master

    fix for: [zeromq-dev] head builds again but two failing tests

commit 06b2edp87da83e7127c78533a3713f8a3951ebfa
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Sat Apr 21 08:12:59 2012 +0400

    small wording change

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2faa4c487fbff3b92b3d22b4eb219e966be990ab
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Sat Apr 21 07:55:54 2012 +0400

    stupid bug. I feel ashamed ^)

 src/address.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 653e5854edffefd26ff1fadf9389d8bc74e7d9c2
Merge: d56b7521 2eb6b32e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Apr 20 09:11:56 2012 -0700

    Merge pull request #318 from shripchenko/master

    2nd try wuth sock->unbind() and sock->disconnect(). now with const char*'s argument

commit 2eb6b32ef75ab44fdb8e734b07d1986a5bdpbad1
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Fri Apr 20 19:16:26 2012 +0400

    fixes for

    make[2]: Entering directory `/home/laotse/src/abs/zeromq-git/src/libzmq-build/src'
      CXX    libzmq_la-address.lo
    address.cpp: In destructor 'zmq::address_t::~address_t()':
    address.cpp:41:29: error: deleting object of polymorphic class type 'zmq::tcp_address_t' which has non-virtual destructor might cause undefined behaviour [-Werror=delete-non-virtual-dtor]
    cc1plus: all warnings being treated as errors

 src/tcp_address.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 489481857a51b995cf837c0adf0f22425cff03a5
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Fri Apr 20 18:59:08 2012 +0400

    2nd try wuth sock->unbind() and sock->disconnect(). now with blackjack and const char*'s

 include/zmq.h       |  5 ++---
 src/options.cpp     |  9 --------
 src/options.hpp     |  4 +---
 src/socket_base.cpp | 65 ++++++++++++++++++++++++++++++++---------------------
 src/socket_base.hpp |  9 +++++++-
 src/zmq.cpp         |  8 +++----
 6 files changed, 55 insertions(+), 45 deletions(-)

commit d56b75219fa60284299ca12f0b1d6e4605ca912a
Merge: 88378525 318d55fd
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Apr 19 01:35:08 2012 -0700

    Merge pull request #316 from pieterh/master

    Fixed issue #358

commit 8837852546bdd739871dd961f0b577f8db1dc2ba
Merge: 36e9c4ac 7b8e728e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 18 13:58:45 2012 -0700

    Merge pull request #317 from shripchenko/master

    implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID)

commit 7b8e728e43e75c2b64c082077f5ed440a61caff4
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Wed Apr 18 23:42:11 2012 +0400

    implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID)

 include/zmq.h        |  3 ++
 src/address.cpp      | 28 ++++++++++++++++++-
 src/address.hpp      |  2 ++
 src/ipc_address.cpp  | 26 +++++++++++++++++-
 src/ipc_address.hpp  |  6 ++++
 src/ipc_listener.cpp | 15 +++-------
 src/ipc_listener.hpp |  2 +-
 src/options.cpp      | 10 +++++++
 src/options.hpp      |  2 ++
 src/own.cpp          |  5 ++++
 src/own.hpp          |  3 ++
 src/socket_base.cpp  | 37 ++++++++++++++++++++++---
 src/socket_base.hpp  |  1 +
 src/tcp_address.cpp  | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/tcp_address.hpp  |  7 +++++
 src/tcp_listener.cpp | 34 +++++------------------
 src/zmq.cpp          | 20 ++++++++++++++
 17 files changed, 230 insertions(+), 48 deletions(-)

commit 318d55fd10c351454169aa00db352b785e53d294
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 18 13:14:07 2012 -0500

    Fixed issue LIBZMQ-358

 src/device.cpp | 74 +++++++++++++++++++---------------------------------------
 1 file changed, 24 insertions(+), 50 deletions(-)

commit 36e9c4ac84c414db0977ab9e6361a44732fab642
Merge: 334f99fb b89a53ee
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Apr 18 04:10:29 2012 -0700

    Merge pull request #315 from shripchenko/master

    fix bug in zmq::tcp_address_t::resolve_interface() where resolved interface ip overwrited by 0.0.0.0

commit b89a53ee7a3902781d123ed65bd5010b52ec5bfe
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Wed Apr 18 14:06:39 2012 +0400

    fix bug in zmq::tcp_address_t::resolve_interface() where all resolved interface ip's overwrited by 0.0.0.0

 src/tcp_address.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 334f99fb01c84e51682e2c3f139d84f589d65cf0
Merge: f663ad93 5b300895
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 17 03:49:43 2012 -0700

    Merge pull request #314 from ianbarber/master

    Small patch to instantiate clock_t once

commit 5b3008957dcd5a68c70dpf369ce89dp994eedbb6
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Apr 17 10:10:22 2012 +0100

    port of patch by Martin Sustrik to libxs: This patch instantiate a clock_t instance for each XS
    socket. Thus, it is shared between subsequent calls
    to xs_recv (and xs_send). That in turn significantly
    limits the number of invocations of  getimeofday (or similar)
    when timeouts are used and recv/send is called in a
    tight loop.

 src/socket_base.cpp | 3 ---
 src/socket_base.hpp | 4 ++++
 2 files changed, 4 insertions(+), 3 deletions(-)

commit f663ad935beeedc05be44043afda0bee29afe30f
Merge: 084c1824 206d80b5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 16 09:09:00 2012 -0700

    Merge pull request #313 from ianbarber/master

    Update socket docs

commit 206d80b5ffcb36993be02547289769978b05fb41
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Apr 16 14:08:15 2012 +0100

    Make docs reflect socket mappings better

 doc/zmq_socket.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 084c1824c44471136a8badaf5fb80d929828f4bb
Merge: 525be518 c77dc98b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Apr 13 03:44:07 2012 -0700

    Merge pull request #312 from shripchenko/master

    some spaces cleanups + delete unused anymore zmq::max_sockets + some minor code chages

commit c77dc98b5c83dcaa5ab4ecfff8f786a1cf7b2e5c
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Fri Apr 13 13:26:57 2012 +0400

    some spaces cleanups + delete unused anymore zmq::max_sockets + some minor code chages

 src/config.hpp       |  5 +----
 src/ip.cpp           | 11 +++++------
 src/options.cpp      |  4 ++--
 src/options.hpp      |  2 +-
 src/tcp_address.cpp  | 28 +++++++++++++---------------
 src/tcp_address.hpp  |  2 +-
 src/tcp_listener.cpp |  2 --
 src/tcp_listener.hpp |  2 +-
 8 files changed, 24 insertions(+), 32 deletions(-)

commit 525be5181278e4882423e785b4e004836c709140
Merge: e276df2b acba6bdd
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 12 09:34:53 2012 -0700

    Merge pull request #311 from shripchenko/master

    Implement ZMQ_TCP_ACCEPT_FILTER setsockopt() for listening TCP sockets.

commit acba6bdd6cd203f70702745a821945f4a83c7fab
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Thu Apr 12 18:37:14 2012 +0400

    Implement ZMQ_TCP_ACCEPT_FILTER setsockopt() for listening TCP sockets.

    Assign arbitrary number of filters that will be applied for each new TCP transport
    connection on a listening socket.
    If no filters applied, then TCP transport allows connections from any ip.
    If at least one filter is applied then new connection source ip should be matched.
    To clear all filters call zmq_setsockopt(socket, ZMQ_TCP_ACCEPT_FILTER, NULL, 0).
    Filter is a null-terminated string with ipv6 or ipv4 CIDR.

    For example:
    localhost
    127.0.0.1
    mail.ru/24
    ::1
    ::1/128
    3ffe:1::
    3ffe:1::/56

    Returns -1 if the filter couldn't be assigned(format error or ipv6 filter with ZMQ_IPV4ONLY set)

    P.S.
    The only thing that worries me is that I had to re-enable 'default assign by reference constructor/operator'
    for 'tcp_address_t' (and for my inherited class tcp_address_mask_t) to store it in std::vector in 'options_t'...

 doc/zmq_setsockopt.txt |  16 ++++++++
 include/zmq.h          |   1 +
 src/options.cpp        |  26 +++++++++++++
 src/options.hpp        |   6 +++
 src/tcp_address.cpp    | 102 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/tcp_address.hpp    |  26 ++++++++++---
 src/tcp_listener.cpp   |  28 +++++++++++++-
 src/tcp_listener.hpp   |   3 +-
 8 files changed, 201 insertions(+), 7 deletions(-)

commit e276df2bdff2b9d59e894e59dp9a23381e5dbe8b
Merge: 899778dc cfa6f4bf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 11 04:38:12 2012 -0700

    Merge pull request #309 from hurtonm/fix_issue_335

    Fix issue #335

commit cfa6f4bf514792fd85d188fc6ff0933dbedefc5c
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Apr 11 10:54:05 2012 +0200

    Fix issue #335

    The CreateEvent function requests EVENT_ALL_ACCESS access rights
    when the event object already exists. This causes problems
    when the event object is created from a service.
    The solution is to call OpenEvent function when the CreateEvent
    failed due to access control.
    The proper solution would be to use CreateEventEx function, but
    this one is not available on Windows XP.

 src/signaler.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 899778dcb306f0207b24e63f6e049dcb9c60ce4d
Merge: f6330f3d 177264d9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 10 06:07:08 2012 -0700

    Merge pull request #308 from jdc8/master

    C++ style comments result in compile errors with non-c99 C compiler

commit 177264d941316dcc93ac5414aa58d5d3911b15af
Author: Jos Decoster <jos.decoster@gmail.com>
Date:   Tue Apr 10 06:33:15 2012 -0400

    c++ style comments result in compile errors with non-c99 C compiler

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f6330f3d8d69c65a30729bf39d5fddf9c911077b
Merge: 3cd0b1b6 70cf2d41
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 9 18:20:02 2012 -0700

    Merge pull request #307 from mkoppanen/master

    Handle ETIMEDOUT

commit 70cf2d41ba005aa33e732717867320f718c0b456
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Tue Apr 10 09:55:10 2012 +0900

    ETIMEDOUT is a valid error code here. Fixes intermittent assertion failure on laggy networks

 src/stream_engine.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 3cd0b1b647c4b3c08f2749c4e8d499d603a3fdb0
Merge: 4ab3c5a2 4315467d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 9 10:14:35 2012 -0700

    Merge pull request #306 from shripchenko/master

    Implement ZMQ_TCP_KEEPALIVE* family of options to adjust TCP keepalives

commit 4315467d7cfa93d60d605d36adde12e36380ce12
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Mon Apr 9 13:39:52 2012 +0400

    documentation trimmed down to be just placeholders for who knows english better than me

 doc/zmq_getsockopt.txt | 58 +++++++++++++++++---------------------------------
 doc/zmq_setsockopt.txt | 58 +++++++++++++++++---------------------------------
 2 files changed, 40 insertions(+), 76 deletions(-)

commit 4b303402a76a5d2fe85ff8cdaf7a98d6dcfa94ee
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Fri Apr 6 20:04:35 2012 +0400

    more flexible keepalive options detection + awful options documentation

 acinclude.m4           | 146 ++++++++++++++++++++++++++++++++++++++-----------
 configure.in           |  29 ++++++++--
 doc/zmq_getsockopt.txt |  63 +++++++++++++++++++++
 doc/zmq_setsockopt.txt |  66 ++++++++++++++++++++++
 src/ip.cpp             |  37 +++++++++++--
 src/options.cpp        |   9 +--
 6 files changed, 304 insertions(+), 46 deletions(-)

commit 0c3d9179262ab431b8949b8646eed9a1a1e4a233
Author: Sergey KHripchenko <shripchenko@intermedia.net>
Date:   Thu Apr 5 19:39:53 2012 +0400

    initial implementation of tuning TCP keep-alives for TCP socket
    currently not fully cross-platform
    work on linux
    possibly work in *bsd
    and could be enhanced to work on windows

 acinclude.m4          |  55 +++++++++++++++++++++++++
 configure.in          |  10 +++++
 include/zmq.h         |   5 +++
 src/ip.cpp            |  31 ++++++++++++++
 src/ip.hpp            |   3 ++
 src/options.cpp       | 111 +++++++++++++++++++++++++++++++++++++++++++++++++-
 src/options.hpp       |   9 +++-
 src/tcp_connecter.cpp |   1 +
 src/tcp_listener.cpp  |   1 +
 9 files changed, 223 insertions(+), 3 deletions(-)

commit 4ab3c5a285b858159c957139eb991ce6f727c05a
Merge: 88db804b 12c0c6aa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Apr 5 07:17:29 2012 -0700

    Merge pull request #305 from hurtonm/fix_identity_exchange_for_inproc_transport

    Fix identity exchange for inproc transport

commit 12c0c6aa74c064a1590bb08dc97f16a8a70c27d6
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Apr 5 15:32:45 2012 +0200

    Fix identity exchange for inproc transport

    The socket connecting using the inproc transport never
    received the identity of the remote peer.

 src/socket_base.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 88db804bb98cf0443864695c104bee3c5a1a284b
Merge: 5bc9fd62 b41036aa
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 4 16:35:41 2012 -0700

    Merge pull request #304 from hurtonm/flush_identity_message_for_inproc_transport

    Flush identity message for inproc transport

commit b41036aa2ab881afe57bfecaf658919b02d504f7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Apr 5 01:01:50 2012 +0200

    Flush identity message for inproc transport

    The scoket implementation for inproc transfer failed to flush
    identity message. The result was that the identity message
    was not delivered until after the user sent the first message.

    The identity message was never delivered if the user
    used the socket only to receive messages.

 src/socket_base.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 5bc9fd62c536a97c25d171b893af243403148fa5
Merge: a9690289 d8c58080
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Apr 4 06:45:26 2012 -0700

    Merge pull request #303 from pieterh/master

    Fixed issue #351

commit d8c58080a7600bb838b0ee8c73aaa9a291815c97
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Apr 4 14:39:11 2012 +0100

    Fixed issue #351

 include/zmq.h | 3 +++
 1 file changed, 3 insertions(+)

commit a96902897722826d1b718b9b5468b48843e093f9
Merge: 2fdpdd9e 9a60b3a2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Apr 3 00:34:21 2012 -0700

    Merge pull request #302 from hurtonm/router_bugfix

    Fix error in router socket introduced in the previous commit

commit 9a60b3a2a197f1f1f48cf0bf6fa3e5e61e7efb6a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Apr 3 09:28:38 2012 +0200

    Fix error in router socket introduced in the previous commit

 src/router.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 2fdpdd9e085613d5facfad93fd572a877fc8dd35
Merge: 5c6e2788 600488fa
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Apr 2 13:23:52 2012 -0700

    Merge pull request #300 from hurtonm/router_send_fixes

    router: always respect message boundaries

commit 5c6e278887fd9f383431968a39bf50a51b88f402
Merge: 476c9b97 f037290d
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Apr 2 13:23:19 2012 -0700

    Merge pull request #301 from hurtonm/router_rework_peer_identification

    router: reimplement peer identification

commit 600488fa9c84523314e6084c7a8c3657467e0599
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Apr 2 20:10:04 2012 +0200

    router: always respect message boundaries

    The current implementaion of router socket does not
    handle the full pipe and unroutable messages properly.
    Namely, in those cases, the socket could route some
    message parts into a wrong connection.

 src/router.cpp | 2 --
 1 file changed, 2 deletions(-)

commit f037290dc39eafd0676f7b79216531d05a205619
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Apr 2 19:51:37 2012 +0200

    router: reimplement peer identification

    The new implementation allows one to send messages through
    a router socket to a peer even before receiving
    messages from this peer.

    Fixes issue #304

 src/router.cpp | 235 +++++++++++++++++++++++++++++----------------------------
 src/router.hpp |  17 ++++-
 2 files changed, 132 insertions(+), 120 deletions(-)

commit 476c9b97c967dfe8f8b973290e75bcca9304326a
Merge: 3eadp8b2 9728706b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 29 05:50:52 2012 -0700

    Merge pull request #299 from pieterh/master

    Added checking to zmq_ctx_set()

commit 9728706b1036246952b538bac19ebe30afa9ac80
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 29 07:46:46 2012 -0500

    Added optval checking in zmq_ctx_set

 src/ctx.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3eadp8b21e7ee8d0e183732201942172d8791b4a
Merge: cecc790c eb8217bb
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Mar 28 23:35:04 2012 -0700

    Merge pull request #298 from pieterh/master

    Fixed issue (unknown) on zmq_init(-1)

commit eb8217bb288811c2f874d58845379bd9f8f4c0a5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 29 00:47:11 2012 -0500

    Fixed zmq_init(-1) issue

 src/zmq.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit cecc790ca3f2b289a816e02a4e99bab518eecaa3
Merge: 8da72710 77d93d70
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Mar 28 03:51:13 2012 -0700

    Merge pull request #297 from hurtonm/code_cleanup

    Code cleanup

commit 8da7271042bdd0fcac8560843a7f02949e975f4d
Merge: ed65271c 1e2564a5
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Mar 28 03:50:02 2012 -0700

    Merge pull request #296 from hurtonm/fix_router_send

    Fix return value of send for router socket

commit 1e2564a55feb45f9260812a96f8b18c2cc17dbdp
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 28 07:39:18 2012 +0200

    Fix return value of send for router socket

 src/router.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 77d93d70f07a9f41f82bc16e430a078f4f230a27
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 28 06:56:53 2012 +0200

    Simplify use of posix_assert in mutex.hpp

    It is the job of the posix_assert macro to check
    the value. No need to do it twice.

    The patch also fixes some whitespace problems.

 src/mutex.hpp | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

commit e7674025e583044c7d6a52cd54033973df934bef
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 28 06:49:25 2012 +0200

    Remove the launch_sibling method

    The method is not used anymore.

 src/own.cpp | 18 ------------------
 src/own.hpp |  4 ----
 2 files changed, 22 deletions(-)

commit 6f47f1281bcd56a085097cecfeaa1064f90fb19e
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 28 06:38:25 2012 +0200

    Do not pass a message to the check_write method

    The check_write method does not use the passed message.
    The parameter was needed to implement the swap.
    As the swap is not supported anymore, it is safe to remove this parameter.

 src/lb.cpp     | 12 ++----------
 src/pair.cpp   |  8 +-------
 src/pipe.cpp   |  4 ++--
 src/pipe.hpp   |  2 +-
 src/router.cpp |  8 +-------
 5 files changed, 7 insertions(+), 27 deletions(-)

commit ed65271c52ef586607bcde066ccac65adfac0446
Merge: 19f364e2 9c46e875
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Mar 27 01:55:20 2012 -0700

    Merge pull request #295 from hurtonm/tcp_address_fixes_anc_cleanups

    Tcp address fixes anc cleanups

commit 9c46e8758888546dbf15102b218b92cefb4693bf
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 27 06:26:39 2012 +0200

    tcp_address: minor cleanups

 src/tcp_address.cpp | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

commit 700e08c3c278b5ac67985404ab3e97a608bbf2fd
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 27 06:45:03 2012 +0200

    tcp_address: make port number conversion more robust

    This still rejects 00 as port number.

 src/tcp_address.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c428f6dpce6447b9a32bd6430f80a4b22e51663a
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 27 06:16:33 2012 +0200

    tcp_address: check address length before manipulating it

 src/tcp_address.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19f364e20268befc0d98d0703ceaaba15537a7ad
Merge: 4c93fc25 2bcc300a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Mar 26 14:41:12 2012 -0700

    Merge pull request #294 from pieterh/master

    Fixed issue LIBZMQ-348 - Valgrind support

commit 2bcc300a0ff22d426e012085e8464fa73d6417dc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 26 16:31:10 2012 -0500

    Fixed issue #348

 builds/valgrind/valgrind.supp | 14 +++++++++++++
 builds/valgrind/vg            |  1 +
 src/object.cpp                | 48 -------------------------------------------
 3 files changed, 15 insertions(+), 48 deletions(-)

commit 4c93fc25879213824c4fb4c9545f895ed7f43b95
Merge: 64732dpc 084e1c21
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Mar 26 08:12:53 2012 -0700

    Merge pull request #291 from rcxdude/bugfix

    Fix for issue #307

commit 64732dpca31176e27f3b8d69220f5f66fb82503e
Merge: dc4d61f3 c2e9997a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Mar 26 08:12:12 2012 -0700

    Merge pull request #293 from hurtonm/fix_getaddrinfo_for_ipv6_on_freebsd

    Don't set the AI_V4MAPPED flag on FreeBSD

commit c2e9997a3c16d19a80fe5ca51760fd5eb9d7ff46
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Mar 25 23:51:51 2012 +0200

    Don't set the AI_V4MAPPED flag on FreeBSD

    The problem is that even though the AI_V4MAPPED flag is defined
    on FreeBSD, the getaddrinfo function does not support it and
    returns EAI_BADFLAGS.

    The patch also sets the flag on Windows if it is defined there.
    This is true for Windows Vista and later.

    Fixes issue #331.

 src/tcp_address.cpp | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

commit dc4d61f38ba967ebcf456892bea3c7dcfb33d485
Merge: 6d776d08 00b4571b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Mar 25 12:18:31 2012 -0700

    Merge pull request #292 from hurtonm/fix_issue_334

    Fixed issue #334

commit 00b4571bf1990e7c918ce6736c77757733848f5b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sun Mar 25 20:06:06 2012 +0200

    Fixed issue #334

 src/session_base.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 084e1c2193d73fe8db29603679e61f89907272ff
Author: Douglas Young <rcxdude@gmail.com>
Date:   Sun Mar 25 17:50:55 2012 +0100

    Fix for issue #307

    dist was skipping over pipes when one failed because the non-working pipe got
    swapped with a working pipe but the write was never retried on that pipe

 src/dist.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 6d776d08658d41fda2986f49103f6b1689663872
Merge: c861fb4c ba798ee8
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Mar 23 15:52:42 2012 -0700

    Merge pull request #290 from pieterh/master

    Fixed issue #325

commit ba798ee8f34f8d118a4e8296ac8335d10511653a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 23 17:32:26 2012 -0500

    Fixed issue #325

 doc/zmq_setsockopt.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 82c06e4417795ebc3e7760af6b02a3d9fd895da6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 23 17:29:04 2012 -0500

    Fixed issue #325

 src/router.cpp | 41 +++++++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 18 deletions(-)

commit c861fb4c831d2a7927e11a0256a688149ab80c0d
Merge: 712e36d2 3585ec8a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 22 15:20:53 2012 -0700

    Merge pull request #289 from pieterh/master

    Makefile.am wasn't fixed, so libzmq was not building

commit 3585ec8dpa9369580e4a5718b0e8ef7f37551ee8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 22 16:47:17 2012 -0500

    Fixed Makefile for ROUTER/DEALER rename

 src/Makefile.am | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 712e36d29cce7a09c9b703ff5063b1642e40d75b
Merge: 6f720f00 27c28bdc
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 22 14:44:43 2012 -0700

    Merge pull request #288 from pieterh/master

    Mark sockets as invalid when closed, not reaped

commit 27c28bdc2e2c1aa3d3dfeca055cc03165f6f98ca
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 22 15:55:05 2012 -0500

    Mark sockets as invalid when closed, not when destroyed

    Previously, sockets were still "valid" after being closed and only marked
    as invalid when destroyed. This meant programs could access closed sockets.
    Now the socket is marked "invalid" when closed.

 src/socket_base.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 6f720f0026f9966e402a4f3d18df79614e19cfdp
Merge: 0480ce18 c12fedc7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 22 13:30:48 2012 -0700

    Merge pull request #287 from pieterh/master

    Completed internal renaming of XREP/XREQ to ROUTER/DEALER

commit c12fedc70a09e1701dbafaac4555245c9561603d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 22 11:36:19 2012 -0500

    Completed internal renaming of XREP/XREQ to ROUTER/DEALER

 src/{xreq.cpp => dealer.cpp} | 34 +++++++++++++++++-----------------
 src/{xreq.hpp => dealer.hpp} | 24 ++++++++++++------------
 src/rep.cpp                  | 16 ++++++++--------
 src/rep.hpp                  |  6 +++---
 src/req.cpp                  | 26 +++++++++++++-------------
 src/req.hpp                  |  6 +++---
 src/{xrep.cpp => router.cpp} | 38 +++++++++++++++++++-------------------
 src/{xrep.hpp => router.hpp} | 24 ++++++++++++------------
 src/session_base.cpp         | 12 ++++++------
 src/socket_base.cpp          | 12 ++++++------
 10 files changed, 99 insertions(+), 99 deletions(-)

commit 0480ce18207120a2b44ed4ef264b2ecb73e691a2
Merge: 3b483a8d 75809b27
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 22 09:09:15 2012 -0700

    Merge pull request #286 from pieterh/master

    Fixed issue LIBZMQ-345 - race condition in ctx.socket/term allows segfault

commit 75809b27da53767df03c9cf5e065a19fba62533b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 22 11:03:32 2012 -0500

    Fixed issue LIBZMQ-345 - race condition in ctx.socket/term allows segfault

 src/ctx.cpp | 9 +++------
 src/ctx.hpp | 2 +-
 2 files changed, 4 insertions(+), 7 deletions(-)

commit 3b483a8dd7ed8b2009e0872f1b382ec56dpf933f
Merge: 84707d3f 151d0717
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 22 03:32:43 2012 -0700

    Merge pull request #285 from hurtonm/ctx_patches

    Ctx patches

commit 84707d3feb5a71e4a279b3e6e58fcb19240b89aa
Merge: 8a64d80f 860e1d24
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Mar 22 03:31:02 2012 -0700

    Merge pull request #284 from pieterh/master

    Fixed issue LIBZMQ-344 - Implementation of ZMQ_FAIL_UNROUTABLE is broken

commit 151d0717bb214f318bfb6377e037f3702ca52f6e
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Mar 22 07:06:17 2012 +0100

    Minor cleanups

    * corrects whitespace errors
    * fixes spelling errors in comments
    * prefers #ifdef to #if defined

 src/ctx.cpp |  8 ++++----
 src/ctx.hpp | 20 ++++++++++----------
 2 files changed, 14 insertions(+), 14 deletions(-)

commit dp2b9383303c9d3dd2e402fb026a3f43c97d0fc7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Mar 22 06:51:41 2012 +0100

    register_endpoint: simplify locking

 src/ctx.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit e56f698023250831520b2566398b3fdc36181e15
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Mar 22 06:55:12 2012 +0100

    choose_io_thread: do not assert when no I/O thread was chosen

 src/ctx.cpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit f944336ee0110268e8b550c052e70d6244be852d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Mar 22 06:46:04 2012 +0100

    Fix race condition in find_endpoint

 src/ctx.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 860e1d24c08c82c0dea2b8cee5af44ec3837deac
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 21 17:43:52 2012 -0500

    Fixed issue #344

 src/xrep.cpp | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 8a64d80fba9ff510000a17edbee5d291f66e895b
Merge: 0afd8a87 f26e4ab7
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Mar 21 13:21:21 2012 -0700

    Merge pull request #283 from pieterh/master

    Fixed issue LIBZMQ-343 - zmq_msg_get/set are too complex

commit f26e4ab7840720e69c5015030f22a715779a2189
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Mar 21 14:19:40 2012 -0500

    Simplified zmq_msg_get/set functions

    * Return integer property
    * Fixed up man pages, which were inaccurate
    * Fixed test case

 .gitignore               |   1 +
 doc/zmq_msg_get.txt      |  42 ++++-----
 doc/zmq_msg_more.txt     |   4 +-
 doc/zmq_msg_set.txt      |  18 ++--
 include/zmq.h            |   7 +-
 src/zmq.cpp              |  21 +----
 tests/test_last_endpoint | 225 -----------------------------------------------
 tests/test_msg_flags.cpp |  13 +--
 8 files changed, 36 insertions(+), 295 deletions(-)

commit 0afd8a87d55e39342411a1998b6866f378c2b676
Merge: cd57c438 6dd102cd
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Mar 20 13:14:59 2012 -0700

    Merge pull request #281 from pieterh/master

    Applied patch for issue #293 - zmq 2.1 doesn't follow the ZMTP/1.0 spec

commit cd57c4388019c649d488c19531dca71a167ec902
Merge: 58378c6a 35233f9e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 20 12:50:57 2012 -0700

    Merge pull request #282 from hurtonm/remove_unused_variable

    remove unused variable

commit 58378c6a2c8c7d4a22d1aab9c1991d4ff64db65b
Merge: 60e45f34 0a6fc027
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 20 12:50:43 2012 -0700

    Merge pull request #280 from hurtonm/fix_ipc_connecter

    fix connection establishment for AF_UNIX sockets

commit 35233f9e2f93859f45a8c03d16f81d0faf20162c
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 20 19:34:10 2012 +0100

    remove unused variable

 src/tcp_listener.cpp | 1 -
 src/tcp_listener.hpp | 3 ---
 2 files changed, 4 deletions(-)

commit 0a6fc0270292889921c14b6e07964d9b1b63d6c6
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 20 18:54:17 2012 +0100

    fix connection establishment for AF_UNIX sockets

 src/ipc_connecter.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 60e45f34b673039ee168d9192b648c26750e7d6e
Merge: 7d6d2f94 1e4c5b29
Author: Chuck Remes <git@chuckremes.com>
Date:   Tue Mar 20 09:42:18 2012 -0700

    Merge pull request #279 from pieterh/master

    Wrote new ctx API, added ZMQ_MAX_SOCKETS and ZMQ_IO_THREADS

commit 6dd102cdedc404d6461e36c06291aab8abd2fada
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 20 10:53:51 2012 -0500

    Fixed issue #293

 src/encoder.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 1e4c5b293af996928a2048b973978860c7de04c9
Merge: 7d6d2f94 6e71a54b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 20 10:18:15 2012 -0500

    Merge branch 'issue-337'

commit 7d6d2f940815b066a80bd59e25f4e76c88ea2386
Merge: 5973da48 10758121
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Mar 20 07:06:33 2012 -0700

    Merge pull request #278 from taurel/master

    Disable reconnection option

commit 107581213cd04e14d5b44efa1730a0134f958a92
Author: Emmanuel Taurel <taurel@esrf.fr>
Date:   Tue Mar 20 09:22:27 2012 +0100

    Disable reconnection option

    Add value -1 to the ZMQ_RECONNECT_IVL to disable the reconnection algorithm

 doc/zmq_getsockopt.txt | 2 +-
 doc/zmq_setsockopt.txt | 2 +-
 src/options.cpp        | 2 +-
 src/session_base.cpp   | 3 ++-
 4 files changed, 5 insertions(+), 4 deletions(-)

commit 5973da486696aca389dab0f558c5ef514470bcd2
Merge: 87fa8e78 9426bd5b
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Mar 20 00:28:19 2012 -0700

    Merge pull request #277 from pieterh/master

    Removed sys:// logging infrastructure

commit 9426bd5baf5010b547368ad88f11263f2d6bfb66
Merge: 87fa8e78 bdefa181
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 19 23:15:15 2012 -0500

    Merge branch 'issue-336'

commit 87fa8e78bf9e0143f8a7c56a7efa943adee52556
Merge: 8665f9a0 06dd31c5
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Mar 19 18:51:05 2012 -0700

    Merge pull request #276 from pieterh/master

    Removed last vestiges of thread-safe sockets

commit 6e71a54b1efe1ddb1805c6cc49e3f91492622a81
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 19 19:41:20 2012 -0500

    Fixed issues #337, #341, and #340

    * Implemented new ctx API (_new, _destroy, _get, _set)
    * Removed 'typesafe' macros from zmq.h
    * Added support for MAX_SOCKETS (was tied into change for #337)
    * Created new man pages

 doc/Makefile.am          |   6 +-
 doc/zmq.txt              |  18 +++-
 doc/zmq_ctx_destroy.txt  |  66 ++++++++++++++
 doc/zmq_ctx_get.txt      |  67 ++++++++++++++
 doc/zmq_ctx_new.txt      |  49 +++++++++++
 doc/zmq_ctx_set.txt      |  75 ++++++++++++++++
 doc/zmq_init.txt         |   1 +
 doc/zmq_term.txt         |   1 +
 include/zmq.h            |  89 ++++++++-----------
 src/ctx.cpp              | 191 +++++++++++++++++++++++++++-------------
 src/ctx.hpp              |  29 ++++--
 src/options.cpp          |   5 +-
 src/options.hpp          |   3 +
 src/pair.cpp             |   4 +-
 src/pair.hpp             |   2 +-
 src/pub.cpp              |   6 +-
 src/pub.hpp              |   4 +-
 src/pull.cpp             |   4 +-
 src/pull.hpp             |   2 +-
 src/push.cpp             |   4 +-
 src/push.hpp             |   2 +-
 src/rep.cpp              |   6 +-
 src/rep.hpp              |   2 +-
 src/req.cpp              |   4 +-
 src/req.hpp              |   4 +-
 src/socket_base.cpp      |  27 +++---
 src/socket_base.hpp      |   6 +-
 src/sub.cpp              |   6 +-
 src/sub.hpp              |   4 +-
 src/xpub.cpp             |   4 +-
 src/xpub.hpp             |   2 +-
 src/xrep.cpp             |   4 +-
 src/xrep.hpp             |   2 +-
 src/xreq.cpp             |   4 +-
 src/xreq.hpp             |   2 +-
 src/xsub.cpp             |   4 +-
 src/xsub.hpp             |   2 +-
 src/zmq.cpp              |  58 ++++++++----
 tests/test_last_endpoint | 225 +++++++++++++++++++++++++++++++++++++++++++++++
 39 files changed, 798 insertions(+), 196 deletions(-)

commit bdefa181eddddf49306d4d618f169da5ee3dfc49
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 19 16:15:09 2012 -0500

    Fixed issue 336

 src/ctx.cpp         | 37 -------------------------------------
 src/ctx.hpp         |  8 --------
 src/object.cpp      |  8 --------
 src/socket_base.cpp |  6 +++---
 4 files changed, 3 insertions(+), 56 deletions(-)

commit 06dd31c56aaa98da2063c710f78dpd8718d0996c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 19 15:50:53 2012 -0500

    Removed last vestiges of thread-safe sockets

 src/ctx.cpp         | 10 ----------
 src/ctx.hpp         |  6 ------
 src/socket_base.cpp | 19 +------------------
 src/socket_base.hpp |  3 ---
 4 files changed, 1 insertion(+), 37 deletions(-)

commit 8665f9a0b61cd6de2b02282192c19b01660e887b
Merge: 32c85e0e 9ccfbf8d
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Mar 17 10:17:39 2012 -0700

    Merge pull request #275 from pieterh/master

    Fixed issue LIBZMQ-333 (zmq_devices is missing)

commit 9ccfbf8d3048cc3d006a0ce97c8d5d99527b2eb1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Mar 17 11:12:11 2012 -0500

    Removed zmq.hpp, may add this back in separate commit

 include/zmq.hpp | 296 --------------------------------------------------------
 1 file changed, 296 deletions(-)

commit 9ac40c47d7fc3f47859a914147a0a840505e868c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Mar 16 16:39:11 2012 -0500

    Fixed issue LIBZMQ-333

     - reverted commit 941be8d2175332cb720f390f93d07a0870db8824.
     - fixed zmq_device implementation for latest socket_base class
     - added back zmq_device.3 man page

 builds/redhat/zeromq.spec.in |   7 +
 doc/Makefile.am              |   2 +-
 doc/zmq.txt                  |  10 ++
 doc/zmq_device.txt           | 125 ++++++++++++++++++
 doc/zmq_socket.txt           |   3 -
 include/zmq.h                |  10 ++
 include/zmq.hpp              | 296 +++++++++++++++++++++++++++++++++++++++++++
 src/Makefile.am              |   2 +
 src/device.cpp               | 120 ++++++++++++++++++
 src/device.hpp               |  32 +++++
 src/zmq.cpp                  |  47 +++++++
 11 files changed, 650 insertions(+), 4 deletions(-)

commit 32c85e0ea39e46ee9b40f814d18b939a17ac40f0
Merge: 62d27b7a cb70c5e7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 15 09:01:15 2012 -0700

    Merge pull request #274 from Kobolog/master

    An options to choose the behavior for unroutable messages in ZMQ_ROUTER sockets

commit cb70c5e75d3cdc23f0264830b5eabf72c4b5543b
Author: Andrey Sibiryov <me@kobology.ru>
Date:   Thu Mar 15 15:15:44 2012 +0300

    fixed some typos

 include/zmq.h | 2 +-
 src/xrep.cpp  | 8 ++++----
 src/xrep.hpp  | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

commit 8095a129e8114341667d2d82d21cfcfc92456fbb
Author: Andrey Sibiryov <me@kobology.ru>
Date:   Thu Mar 15 15:06:44 2012 +0300

    man entry for the new option

 doc/zmq_setsockopt.txt | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

commit df584a3be04cac3fffb8b8b319d7351c8d9b6345
Author: Andrey Sibiryov <me@kobology.ru>
Date:   Thu Mar 15 14:57:38 2012 +0300

    an option to fail on unroutable messages in ROUTER sockets

 include/zmq.h |  1 +
 src/xrep.cpp  | 31 ++++++++++++++++++++++++++++---
 src/xrep.hpp  |  4 ++++
 3 files changed, 33 insertions(+), 3 deletions(-)

commit 62d27b7af3560b3cd5bc95ea216243dc268116eb
Merge: f9674308 318ba883
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Mar 14 08:27:04 2012 -0700

    Merge pull request #273 from BoresExpress/wm5

    Add WinCE support.

commit 318ba8836f1e86f23a876788f37406de7c52774c
Author: boris@boressoft.ru <������� ��������@DANCE-SERVER-2.(none)>
Date:   Wed Mar 14 19:12:28 2012 +0400

    Add WinCE support.

    * Added two new files: errno.hpp and errno.cpp. They are required to use errno functionality on WM.
    * zmq.cpp, msg.h: removed inclusion of errno.h because it is included in zmq.h that is also included by .cpp.
    * windows.hpp: process.h is included only for desktop builds.
    * thread.cpp: on CE CreateThread is used instead of __beginthreadex
    * socket_base.cpp, clock.cpp: on CE include cmnintrin.h instead on intrin.h
    * signaler.cpp: on Windows should use special macro around event name (for unicode builds)
    * err.hpp: make it include errno.hpp (my file) instead on errno.h when building for CE
    * err.cpp: use FormatMessage when building for CE (because CE does not have ANSI API functions)
    * zmq.h: do not include errno.h whe building for CE
    * libzmq.vcproj: add tro new files

 builds/msvc/errno.cpp            | 32 +++++++++++++++++++++++
 builds/msvc/errno.hpp            | 56 ++++++++++++++++++++++++++++++++++++++++
 builds/msvc/libzmq/libzmq.vcproj |  8 ++++++
 include/zmq.h                    |  2 ++
 src/clock.cpp                    |  4 +++
 src/err.cpp                      |  6 +++++
 src/err.hpp                      |  4 +++
 src/msg.cpp                      |  1 -
 src/signaler.cpp                 |  2 +-
 src/socket_base.cpp              |  4 +++
 src/thread.cpp                   |  9 +++++++
 src/windows.hpp                  |  2 ++
 src/zmq.cpp                      |  1 -
 13 files changed, 128 insertions(+), 3 deletions(-)

commit f9674308e8f4ab3271adf07fa93b404dp0fc9ea4
Merge: 19d30969 020f777e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Mar 12 15:22:00 2012 -0700

    Merge pull request #272 from staticfloat/patch-1

    Eliminate unnecessary line break

commit 020f777e097d7e3a1eba534126cb479bf786519b
Author: Elliot Saba <staticfloat@gmail.com>
Date:   Mon Mar 12 15:18:32 2012 -0700

    Eliminate unnecessary line break

 doc/zmq_term.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19d30969cff3ad07153ca4448f9603728263ec59
Merge: 4c59b1fb ce24bf04
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Mar 6 07:22:34 2012 -0800

    Merge pull request #271 from BoresExpress/bug1

    Changed wrong file name in VC++ project.

commit ce24bf04dde0fb6ee39a836dfebaf4f9bd87014d
Author: boris@boressoft.ru <������� ��������@DANCE-SERVER-2.(none)>
Date:   Tue Mar 6 18:21:55 2012 +0400

    Changed wrong file name in VC++ project.

    Name of the file in the project does not match actual file name:
    adress.cpp VS. address.cpp

 builds/msvc/libzmq/libzmq.vcproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4c59b1fb2f68ac481556e22427ce243fff81edca
Merge: 0fed3a3f 3aabbbdp
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Mar 1 14:25:11 2012 -0800

    Merge pull request #270 from rgagnon24/master

    Fix IPC transport domain socket stream file not being removed when connection is closed

commit 3aabbbdpfa11217426f134f3d65efa1206ff8c96
Author: Rob Gagnon <rgagnon24@gmail.com>
Date:   Thu Mar 1 21:49:46 2012 +0000

    Fix IPC transport domain socket stream file not being removed when connection is closed

 src/ipc_listener.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 0fed3a3fca2ea7a5e6cfe8566aa1b5a28d56ee0b
Merge: 3f8322be 5820438b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 27 08:10:21 2012 -0800

    Merge pull request #269 from datasift/master

    patch for LIBZMQ-328

commit 5820438b64b0f22bbf50a28fa6d905fd6e085182
Author: Ben Gray <ben@benjamg.com>
Date:   Mon Feb 27 16:06:56 2012 +0000

    update lower bound flag when removing topics

 src/trie.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 3f8322beff81fb5ed951bf43dc90d1623e52a565
Merge: 7689d205 3485b3ef
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Feb 27 03:00:49 2012 -0800

    Merge pull request #268 from gimaker/compact-trie-table

    Fixed a bug in the mtrie table compaction logic.

commit 3485b3ef40c435a4ac03fcc5f7341fad7aa2d5b5
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Mon Feb 27 11:51:30 2012 +0100

    Fixed a bug in the mtrie table compaction logic.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/mtrie.cpp | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

commit 7689d205e9928e2370261833637ec6dp142d6aa4
Merge: 58f8d4a4 b05fb469
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Feb 21 00:01:09 2012 -0800

    Merge pull request #267 from mkoppanen/windows-project-files

    Add missing files to Windows project files

commit b05fb4696657e6353584cdf9078392941218154d
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Feb 20 21:51:37 2012 -0600

    Add missing files to Windows project files

 builds/msvc/libzmq/libzmq.vcproj  | 8 ++++++++
 builds/msvc/libzmq/libzmq.vcxproj | 2 ++
 2 files changed, 10 insertions(+)

commit 58f8d4a417531a18be18a6e9577525c59efc3bf1
Merge: 879ab39e 5d7450d6
Author: Ian Barber <ian.barber@gmail.com>
Date:   Mon Feb 20 08:40:43 2012 -0800

    Merge pull request #266 from mkoppanen/improve-tests

    Improve the test for last_endpoint, use the same ports as other tests

commit 879ab39e9275da7b10c88e6b4e558c08b44fef8d
Merge: 78d24d3d 1824574f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 20 08:39:59 2012 -0800

    Merge pull request #265 from mkoppanen/freebsd-solaris-fixes

    tcp_listener::get_address improvements

commit 5d7450d65e2fa8e7d0de91d9890363d21741b3c3
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sun Feb 19 23:19:17 2012 -0600

    Improve the test for last_endpoint, use the same ports as other tests

 tests/test_last_endpoint.cpp | 34 ++++++++++++++--------------------
 1 file changed, 14 insertions(+), 20 deletions(-)

commit 1824574f9b5a8ce786853320e3ea09fe1f822bc4
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Feb 20 04:26:25 2012 +0000

    Minor fixes to get_address code to fix build on solaris and freebsd. Also service doesnt need to be discovered here

 src/tcp_listener.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 78d24d3d01a6cf14e1df6015cd65c0043b4065a7
Merge: 2533909f 5e1efc9e
Author: Chuck Remes <git@chuckremes.com>
Date:   Sun Feb 19 12:30:37 2012 -0800

    Merge pull request #264 from ianbarber/master

    Update docs for last endpoint and add test for IPC last endpoint retrieval

commit 5e1efc9ec37f08038e9a6561c5329871a20c267e
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sun Feb 19 18:46:46 2012 +0000

    Update documentation for last endpoint to mention inaddr_any and add a test for IPC last endpoint checking

 doc/zmq_getsockopt.txt       | 3 ++-
 tests/test_last_endpoint.cpp | 7 +++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 2533909f60ce6e8400c8862b5719b5c263951eea
Merge: b19c5fce 33a18f0f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Feb 18 15:11:58 2012 -0800

    Merge pull request #263 from mkoppanen/tcp-get-address

    More fixes based on CentOS 6.2 results

commit 33a18f0f9047ab2ffa7acb844e98c7dba3dfdb04
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Feb 18 23:07:27 2012 +0000

    More fixes based on CentOS 6.2 results

 src/tcp_listener.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b19c5fced5387b0c539c6e11b9797205ef24af9c
Merge: 06140daf d00d4843
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Feb 18 14:44:29 2012 -0800

    Merge pull request #262 from mkoppanen/tcp-get-address

    Tcp get address

commit d00d4843beac26dfbf8954e93aa3886d5e39f297
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Feb 18 20:44:41 2012 +0000

    More fixes for ZMQ_LAST_ENDPOINT. Added a test

 src/ipc_listener.cpp         | 22 ++++++++++---------
 src/ipc_listener.hpp         |  2 +-
 src/socket_base.cpp          | 10 ++++-----
 src/tcp_listener.cpp         | 14 ++++++++----
 src/tcp_listener.hpp         |  2 +-
 tests/Makefile.am            |  4 +++-
 tests/test_last_endpoint.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 84 insertions(+), 22 deletions(-)

commit b0573486c7abf89b79d30aa4d29b0dac3d789619
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Feb 18 19:48:09 2012 +0000

    Fixes for tcp_listener::get_address

 src/tcp_listener.cpp | 40 +++++++++++++++++-----------------------
 1 file changed, 17 insertions(+), 23 deletions(-)

commit 06140daf2948695926d9b76d73064f4996e6a63b
Merge: e2485492 1bf4067c
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Feb 17 14:38:02 2012 -0800

    Merge pull request #261 from mkoppanen/windows-build

    Windows build

commit 1bf4067cd8dpcc65ab246d247f05ff1332831927
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Feb 17 22:07:52 2012 +0000

    More fixes for win build

 src/socket_base.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit e24854925296b15343a41efbfe83d0885dee562c
Merge: dd35385d 9a4fd8a3
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Feb 17 14:07:04 2012 -0800

    Merge pull request #260 from mkoppanen/solaris-build

    Needs explicit cast on solaris

commit 51b59b40ddbcbde58dd45a32a449996041cb4dpf
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Feb 17 22:06:10 2012 +0000

    Fix build on windows

 src/address.cpp | 2 ++
 src/address.hpp | 6 ++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 9a4fd8a3053cef8ac283da837d740273ba1554ef
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Feb 17 21:55:06 2012 +0000

    Needs explicit cast on solaris

 src/zmq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dd35385da323be4a275b78dbdaf7a7b33ef164c7
Merge: cfe2a821 56aa49ff
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 17 13:50:27 2012 -0800

    Merge pull request #259 from mkoppanen/solaris-build

    Fix build on solaris

commit 56aa49ff3d67fd7d643adfc88cc9625b3ca06b07
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Feb 17 21:45:17 2012 +0000

    Fix build on solaris

 src/ipc_listener.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit cfe2a821f3a01affc3044fcd91caf2292abe6508
Merge: 9e622d54 916f1a52
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 17 09:12:26 2012 -0800

    Merge pull request #258 from skaller/master

    Remove thread safe socket code from C API and tests.

commit 916f1a524ddf1820b7857a42c8f35d477f73ebba
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 18 02:41:17 2012 +1100

    Remove build script references to test_ts_context.

 tests/Makefile.am | 2 --
 1 file changed, 2 deletions(-)

commit e7da123b280f42d058686001d89899058b7ee75e
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 18 02:34:59 2012 +1100

    Remove thread safe test.

 tests/test_ts_context.cpp | 129 ----------------------------------------------
 1 file changed, 129 deletions(-)

commit 38e74c9e84b3fbe3fc65024a91f5b2b783d33a84
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 18 02:34:18 2012 +1100

    Remove thread safe socket stuff from C binding.

 src/zmq.cpp | 48 ------------------------------------------------
 1 file changed, 48 deletions(-)

commit 0fa6b8e79345daa7803ec301d5d78a510c501c9b
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 18 02:32:15 2012 +1100

    Remove thread safe context init.

 include/zmq.h | 1 -
 1 file changed, 1 deletion(-)

commit 9e622d542ad0c01c3389fe8a26e7325dee301c05
Merge: 99104392 82bd5431
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 17 07:03:39 2012 -0800

    Merge pull request #256 from ianbarber/master

    Removing old ECANTROUTE documentation

commit 991043927794a8500668b0f8eac6a2d2fe6fadfc
Merge: c9898d24 da1920d9
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Feb 17 02:29:29 2012 -0800

    Merge pull request #257 from mkoppanen/master

    Revert null checks in the API

commit da1920d94457ca614b50b060a64fe849ec3f0ec8
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Feb 17 09:48:04 2012 +0000

    Revert NULL checks in the API

 doc/zmq_msg_size.txt | 12 ++----------
 include/zmq.h        |  2 +-
 perf/inproc_lat.cpp  |  2 +-
 perf/inproc_thr.cpp  |  2 +-
 perf/local_lat.cpp   |  2 +-
 perf/local_thr.cpp   |  2 +-
 perf/remote_lat.cpp  |  2 +-
 src/msg.cpp          |  2 +-
 src/msg.hpp          |  4 ++--
 src/zmq.cpp          | 54 ++++------------------------------------------------
 10 files changed, 15 insertions(+), 69 deletions(-)

commit 82bd5431ce2be7aac0e9d8a88103d5a29353f0cf
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Feb 17 08:01:36 2012 +0000

    Updating documentation to remove ECANTROUTE error code

 doc/zmq_msg_send.txt | 3 ---
 doc/zmq_send.txt     | 3 ---
 doc/zmq_sendmsg.txt  | 3 ---
 3 files changed, 9 deletions(-)

commit c9898d2419c52ebf51970fa11ce3a70c06fe2780
Merge: 244f3a3c 132112af
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 20:27:49 2012 -0800

    Merge pull request #255 from jtzl/master

    Adding more specific installation instructions

commit 132112afeb4e6f2d49e854711353a6ec81bb3387
Author: Jtzl Forshizl <jtg@intarcorp.com>
Date:   Thu Feb 16 19:50:28 2012 -0500

    added more specific installation documentation

 INSTALL | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 244f3a3c113f7bd028e3058de0363159ad56318f
Merge: a457be31 ccdb7a63
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Feb 16 13:59:53 2012 -0800

    Merge pull request #254 from pieterh/minor-cleanups

    Minor cleanups

commit ccdb7a63052c1faa947b0b27ad280303b048d9cf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 15:55:18 2012 -0600

    Minor cleanups

    * Fixed use of ssize_t in zmq_msg_t class
    * Corrected error after merge, old reference to inner_fctname (broke build)

 .gitignore  |  1 +
 src/msg.cpp |  4 ++--
 src/msg.hpp |  5 +++--
 src/zmq.cpp | 16 ++++++++++------
 4 files changed, 16 insertions(+), 10 deletions(-)

commit a457be315bec89ab013715586a28be83de5dd736
Merge: 9321dfb8 8a497e2f
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 16 13:20:33 2012 -0800

    Merge pull request #246 from pieterh/arguments

    Return EFAULT if required arguments are null

commit 9321dfb84588e2a2dbc15e2657f710e0899a0b90
Merge: 5d9432b2 4697634c
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 16 13:19:11 2012 -0800

    Merge pull request #248 from pieterh/scattered

    Renamed scatter/gather methods, cleaned up source

commit 5d9432b28217246b5de23fd850ac13481e99c4e7
Merge: 4b623440 2da76a30
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 13:13:11 2012 -0800

    Merge pull request #253 from ianbarber/master

    Remove inet_ntop

commit 2da76a3003cf1855e7e989ef347e6d178e518ac3
Author: Ian Barber <ian.barber@gmail.com>
Date:   Thu Feb 16 21:05:02 2012 +0000

    Updating to use getnameinfo rather than inet_ntop

 src/tcp_listener.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 4b62344023eb0f9be2b3b6a09239869198c667a9
Merge: c9d124b2 2cd04c54
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 10:49:23 2012 -0800

    Merge pull request #252 from gimaker/compact-trie-table

    Compact the trie/mtrie node tables where possible, to reduce memory usag...

commit c9d124b27eb5dacadb626c57638f3593707c2306
Merge: bfbe556e e18f9da0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 10:45:13 2012 -0800

    Merge pull request #251 from gimaker/sub-sndhwn-assert

    Drop subscription messages when reaching the SNDHWM rather than assertin...

commit bfbe556e006169e3a81d2946f98b0d8d6154de02
Merge: 2f44faa7 b9fb48f4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 10:35:48 2012 -0800

    Merge pull request #250 from gimaker/connect-assert

    Resolve addresses in the calling thread on connect.

commit 4697634c0b6e18673f8c5a16007f26e515128b03
Merge: 3ee99dp8 b3d7b292
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 12:31:57 2012 -0600

    Resolved conflicts after merge

commit 3ee99dp81f86da979a6ca4f065d09f4be4c43296
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 16:47:24 2012 -0600

    Renamed scatter/gather methods, cleaned up source

 include/zmq.h |   4 +--
 src/zmq.cpp   | 101 +++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 59 insertions(+), 46 deletions(-)

commit 8a497e2ffc16cbd6c2642ac2238dd186d917f684
Merge: 0efb49f1 07b49ffb
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 12:27:39 2012 -0600

    Resolved conflicts after merge

commit 0efb49f12fdec061b267a7526cbaa8d149d8c254
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 12:04:25 2012 -0600

    Fixed up all references to zmq_msg_size

 doc/zmq_msg_size.txt | 16 ++++++++++++----
 include/zmq.h        |  1 +
 perf/inproc_lat.cpp  |  4 ++--
 perf/inproc_thr.cpp  |  4 ++--
 perf/local_lat.cpp   |  4 ++--
 perf/local_thr.cpp   |  4 ++--
 perf/remote_lat.cpp  |  4 ++--
 7 files changed, 23 insertions(+), 14 deletions(-)

commit 02b81d42ce2c3b6fabcfe1bcdc6fa8bceed9762a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 15:17:01 2012 -0600

    Changed return type of zmq_msg_size to ssize_t to allow error return

 include/zmq.h | 4 ++--
 src/zmq.cpp   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit dc09da456936e84e68e220a8c950e1abc2ebbd0b
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 13:03:40 2012 -0600

    Return EFAULT if required arguments are null

 src/zmq.cpp | 42 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 36 insertions(+), 6 deletions(-)

commit 07b49ffb9c30af3c8a4e486dc4225784f4a1dda8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Feb 16 12:04:25 2012 -0600

    Fixed up all references to zmq_msg_size

 doc/zmq_msg_size.txt | 16 ++++++++++++----
 include/zmq.h        |  1 +
 perf/inproc_lat.cpp  |  4 ++--
 perf/inproc_thr.cpp  |  4 ++--
 perf/local_lat.cpp   |  4 ++--
 perf/local_thr.cpp   |  4 ++--
 perf/remote_lat.cpp  |  4 ++--
 7 files changed, 23 insertions(+), 14 deletions(-)

commit 2f44faa7ce13645fe3b49475ced40675d0638709
Merge: 2b646cbf fb4748f2
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Thu Feb 16 08:58:03 2012 -0800

    Merge pull request #247 from pieterh/sendrecv

    Added zmq_msg_send/recv functions

commit 2b646cbf6309ee648bf72e4609ef040d1cfe3ca3
Merge: b2e2fa62 d092f261
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Thu Feb 16 08:56:29 2012 -0800

    Merge pull request #249 from pieterh/msgpeekpoke

    Renamed zmq_getmsgopt to zmq_msg_get

commit 2cd04c54dfabd48f528636d15ccc4e1959b14432
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Thu Feb 16 15:56:19 2012 +0100

    Compact the trie/mtrie node tables where possible, to reduce memory usage.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/mtrie.cpp | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/trie.cpp  |  87 ++++++++++++++++++++++++++++++++++++++-
 2 files changed, 211 insertions(+), 4 deletions(-)

commit e18f9da012b2ee164539e089254dbbe33af204a9
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Thu Feb 16 14:49:47 2012 +0100

    Drop subscription messages when reaching the SNDHWM rather than asserting.

    This matches the behaviour of zmq_setsockopt(ZMQ_SUBSCRIBE, ...), which also
    silently drops subscription messages if the SNDHWM is reached.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/xsub.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit b9fb48f47b8b6f211625e0897c5f52ba5cfe6593
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Thu Feb 2 14:56:51 2012 +0100

    Resolve addresses in the calling thread on connect.

    This allows us to actually report an error to the caller on resolve
    failure, rather than asserting later on in the io thread.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/Makefile.am                |  2 ++
 src/address.cpp                | 50 ++++++++++++++++++++++++++++++++++++++
 src/address.hpp                | 48 +++++++++++++++++++++++++++++++++++++
 src/ipc_address.cpp            |  4 ++--
 src/ipc_address.hpp            |  4 ++--
 src/ipc_connecter.cpp          | 20 +++++++---------
 src/ipc_connecter.hpp          | 11 ++++-----
 src/ipc_listener.cpp           |  2 +-
 src/pair.cpp                   |  5 ++--
 src/pair.hpp                   |  2 +-
 src/pub.cpp                    |  5 ++--
 src/pub.hpp                    |  2 +-
 src/pull.cpp                   |  5 ++--
 src/pull.hpp                   |  2 +-
 src/push.cpp                   |  5 ++--
 src/push.hpp                   |  2 +-
 src/rep.cpp                    |  5 ++--
 src/rep.hpp                    |  2 +-
 src/req.cpp                    |  5 ++--
 src/req.hpp                    |  2 +-
 src/session_base.cpp           | 53 +++++++++++++++++++++--------------------
 src/session_base.hpp           | 11 ++++-----
 src/socket_base.cpp            | 29 ++++++++++++++++++++++-
 src/sub.cpp                    |  5 ++--
 src/sub.hpp                    |  2 +-
 src/tcp_address.cpp            |  8 +++----
 src/tcp_address.hpp            |  8 +++----
 src/tcp_connecter.cpp          | 24 +++++++++----------
 src/tcp_connecter.hpp          | 11 ++++-----
 src/tcp_listener.cpp           |  2 +-
 src/xpub.cpp                   |  5 ++--
 src/xpub.hpp                   |  2 +-
 src/xrep.cpp                   |  5 ++--
 src/xrep.hpp                   |  2 +-
 src/xreq.cpp                   |  5 ++--
 src/xreq.hpp                   |  2 +-
 src/xsub.cpp                   |  5 ++--
 src/xsub.hpp                   |  2 +-
 tests/Makefile.am              |  4 +++-
 tests/test_connect_resolve.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++
 40 files changed, 292 insertions(+), 130 deletions(-)

commit d092f2615c2133338097cb4f37d9809d2422a991
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 19:28:29 2012 -0600

    Renamed peek/poke to get/set

 doc/Makefile.am                           |  2 +-
 doc/zmq.txt                               |  4 ++--
 doc/{zmq_msg_peek.txt => zmq_msg_get.txt} | 14 +++++++-------
 doc/{zmq_msg_poke.txt => zmq_msg_set.txt} | 12 ++++++------
 include/zmq.h                             |  8 ++++----
 src/zmq.cpp                               |  6 +++---
 tests/test_msg_flags.cpp                  |  6 +++---
 7 files changed, 26 insertions(+), 26 deletions(-)

commit dcc1725a90f324e3877e67f1455ef9f53f1c241d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 18:41:09 2012 -0600

    Renamed zmq_getmsgopt to zmq_msg_peek

    * Added zmq_msg_poke for orthogonality
    * Added zmq_msg_more for simplicity
    * Fixed up man pages and test program

 doc/Makefile.am                             |  2 +-
 doc/zmq.txt                                 | 12 +++---
 doc/zmq_msg_more.txt                        | 63 +++++++++++++++++++++++++++++
 doc/{zmq_getmsgopt.txt => zmq_msg_peek.txt} | 34 ++++++++--------
 doc/zmq_msg_poke.txt                        | 47 +++++++++++++++++++++
 include/zmq.h                               | 10 +++--
 src/zmq.cpp                                 | 47 ++++++++++++++++-----
 tests/test_msg_flags.cpp                    |  8 ++--
 8 files changed, 182 insertions(+), 41 deletions(-)

commit b3d7b29280fd062e681b24b946c00bbd6667889c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 16:47:24 2012 -0600

    Renamed scatter/gather methods, cleaned up source

 include/zmq.h |   4 +-
 src/zmq.cpp   | 119 +++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 70 insertions(+), 53 deletions(-)

commit fb4748f257b19d19d9702a6632919d3915da0413
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 15:37:35 2012 -0600

    Added zmq_msg_send/recv functions

 doc/Makefile.am      |   1 +
 doc/zmq.txt          |   4 ++
 doc/zmq_msg_recv.txt | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_msg_send.txt | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h        |   4 ++
 src/zmq.cpp          |  48 ++++++++++++--------
 6 files changed, 289 insertions(+), 18 deletions(-)

commit 6b2ec366b1b96da14260000939946b12a7b085c6
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 15:17:01 2012 -0600

    Changed return type of zmq_msg_size to ssize_t to allow error return

 include/zmq.h | 2 +-
 src/zmq.cpp   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d38951db8738d1cd7bf511decbee590e29a78fa8
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 13:03:40 2012 -0600

    Return EFAULT if required arguments are null

 src/zmq.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 47 insertions(+), 18 deletions(-)

commit b2e2fa622dc4b647442a6c41073783fa3340a780
Merge: 9bc0e108 0c4a19c4
Author: Chuck Remes <git@chuckremes.com>
Date:   Wed Feb 15 08:54:27 2012 -0800

    Merge pull request #244 from pieterh/master

    Cleanups to man pages

commit 0c4a19c408964484a4bfcf389c07701ad040996a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 10:48:31 2012 -0600

    Deprecated XREQ/XREP

 include/zmq.h | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 5f6b95f4a22737c8dee415ec51ca0cca2d72170a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 10:06:53 2012 -0600

    Fixed footers to refer to man page, not all docs

 doc/zmq_bind.txt          | 4 ++--
 doc/zmq_close.txt         | 4 ++--
 doc/zmq_connect.txt       | 4 ++--
 doc/zmq_errno.txt         | 4 ++--
 doc/zmq_getmsgopt.txt     | 2 +-
 doc/zmq_getsockopt.txt    | 4 ++--
 doc/zmq_init.txt          | 4 ++--
 doc/zmq_inproc.txt        | 4 ++--
 doc/zmq_ipc.txt           | 4 ++--
 doc/zmq_msg_close.txt     | 4 ++--
 doc/zmq_msg_copy.txt      | 4 ++--
 doc/zmq_msg_data.txt      | 4 ++--
 doc/zmq_msg_init.txt      | 4 ++--
 doc/zmq_msg_init_data.txt | 4 ++--
 doc/zmq_msg_init_size.txt | 4 ++--
 doc/zmq_msg_move.txt      | 4 ++--
 doc/zmq_msg_size.txt      | 4 ++--
 doc/zmq_pgm.txt           | 4 ++--
 doc/zmq_poll.txt          | 4 ++--
 doc/zmq_setsockopt.txt    | 4 ++--
 doc/zmq_strerror.txt      | 4 ++--
 doc/zmq_tcp.txt           | 4 ++--
 doc/zmq_term.txt          | 4 ++--
 doc/zmq_version.txt       | 4 ++--
 24 files changed, 47 insertions(+), 47 deletions(-)

commit c85ecfc0662c2781cea1d763195b5194a29b244c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 10:06:04 2012 -0600

    Cleaned up description of multi-part messages

 doc/zmq_recv.txt    | 11 +++++------
 doc/zmq_recvmsg.txt |  4 ++--
 doc/zmq_send.txt    | 16 +++++++---------
 doc/zmq_sendmsg.txt | 10 +++++-----
 4 files changed, 19 insertions(+), 22 deletions(-)

commit 636de46fe129ba3e883026f402c545c5c62679e9
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 10:05:22 2012 -0600

    Removed section on devices, added new methods

 doc/zmq.txt | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

commit 086c0594300589a19a55586259ef307bb97ebdbf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 09:49:40 2012 -0600

    Ported numerous fixes from 2.1 man page

 doc/zmq_socket.txt | 109 ++++++++++++++++++++++++++++++++---------------------
 1 file changed, 67 insertions(+), 42 deletions(-)

commit 9bc0e1081831e58e9a40f41e1e04fbe94dd94ea7
Merge: a50a8aa3 bd4f7032
Author: Chuck Remes <git@chuckremes.com>
Date:   Wed Feb 15 07:33:03 2012 -0800

    Merge pull request #243 from pieterh/master

    Fixed error in documentation build

commit bd4f703264ed71f9ad2b0043c4e4c055adbeced1
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 09:27:42 2012 -0600

    Ignored generated files

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 2000d44109e1adfb3c6a2f9f947b061ba3267431
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Feb 15 09:26:39 2012 -0600

    Fixed syntax error in zmq_getsockopt man page

 doc/zmq_getsockopt.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a50a8aa364d9b99a1dc4950dpa8ef1fe41d868ce
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 14 17:14:46 2012 -0600

    Revert "more checks for parameters of API functions"

    This reverts commit e646ce43c155f9710aa4486abd2daf6d4a30ca5b.

 src/zmq.cpp | 96 ++++++-------------------------------------------------------
 1 file changed, 8 insertions(+), 88 deletions(-)

commit afe8cd503fa069b25c731cdeb507abf246ec7896
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 14 17:09:47 2012 -0600

    Revert "fix warn unused"

    - anonymous contributor

    This reverts commit 7b7d404269cc9bb28e1954ed38dbeb8f63079fd1.

 src/blob.hpp         |  5 ++---
 src/ctx.cpp          |  1 -
 src/dist.cpp         |  1 -
 src/err.cpp          |  1 -
 src/fq.cpp           |  1 -
 src/io_object.cpp    |  2 --
 src/io_thread.cpp    |  1 -
 src/lb.cpp           |  1 -
 src/object.cpp       |  8 --------
 src/pair.cpp         |  4 ----
 src/pipe.cpp         |  1 -
 src/pub.cpp          |  2 --
 src/pull.cpp         |  1 -
 src/push.cpp         |  1 -
 src/reaper.cpp       |  1 -
 src/session_base.cpp |  1 -
 src/socket_base.cpp  | 11 -----------
 src/sub.cpp          |  2 --
 src/xpub.cpp         |  1 -
 src/xrep.cpp         |  2 --
 src/xreq.cpp         |  1 -
 src/xsub.cpp         |  1 -
 22 files changed, 2 insertions(+), 48 deletions(-)

commit b2e93473723ce74f247d1a63eb61312a5c07f6d8
Merge: a908ccbf cc10c001
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Feb 14 16:39:32 2012 -0800

    Merge pull request #238 from ianbarber/master

    Wildcard support in TCP and IPC addresses

commit cc10c00193525cd1d253a50ac3055f1af1684e82
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Feb 14 23:14:33 2012 +0000

    Updating docs with new sockopt

 doc/zmq_getsockopt.txt | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit b6c97230ed560a3b4140b0542be9f3482eab7066
Merge: b5d33739 a908ccbf
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Feb 14 23:10:15 2012 +0000

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit b5d3373905587dpcc53e032e5619c1550952030f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Tue Feb 14 23:10:06 2012 +0000

    Moving to std::string in options

 include/zmq.h        |  3 ---
 src/ipc_listener.cpp |  5 +++--
 src/ipc_listener.hpp |  2 +-
 src/options.cpp      |  8 ++++----
 src/options.hpp      |  5 +++--
 src/socket_base.cpp  |  5 +++--
 src/tcp_listener.cpp | 10 +++++++---
 src/tcp_listener.hpp |  2 +-
 8 files changed, 22 insertions(+), 18 deletions(-)

commit a908ccbf357dp5afe61dpf24db2724d93b7747ce
Merge: 48423c9e 48079356
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 13 08:55:58 2012 -0800

    Merge pull request #241 from skaller/master

    provide type safe sockets and contexts

commit 48423c9e40e5f777ab4335cbeccf012371ce3f95
Merge: 256fa5d2 e646ce43
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Feb 13 08:35:59 2012 -0800

    Merge pull request #242 from niXman/master

    more checks for parameters of API functions

commit e646ce43c155f9710aa4486abd2daf6d4a30ca5b
Author: niXman <i.nixman@gmail.com>
Date:   Sun Feb 12 20:10:52 2012 +0400

    more checks for parameters of API functions

 src/zmq.cpp | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 88 insertions(+), 8 deletions(-)

commit 4807935605ab1f1e1c440d29423c84d4f13f73d7
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sun Feb 12 10:15:51 2012 +1100

    Implement type safe sockets and contexts.

 include/zmq.h | 59 +++++++++++++++++++++++++++++++++++++++++++----------------
 src/zmq.cpp   |  2 ++
 2 files changed, 45 insertions(+), 16 deletions(-)

commit 770f84331f7a1ce03e87786f976a526af07c965f
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Feb 11 15:09:03 2012 +0000

    Allowing value 0, and moving code to get_address functions based on feedback

 AUTHORS              |  1 +
 src/ipc_listener.cpp | 21 ++++++++++++---------
 src/ipc_listener.hpp |  4 ----
 src/tcp_address.cpp  |  3 ++-
 src/tcp_listener.cpp | 50 +++++++++++++++++++++++++-------------------------
 src/tcp_listener.hpp |  6 +-----
 6 files changed, 41 insertions(+), 44 deletions(-)

commit 91bf4944daa7446e21dpa2cf9bc261ce29d35212
Merge: 7fa14f38 256fa5d2
Author: Ian Barber <ian.barber@gmail.com>
Date:   Sat Feb 11 15:08:23 2012 +0000

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 256fa5d2b8a2d9ff46d67d02d9a2f7dffbbb2221
Merge: 40052c12 7b7d4042
Author: Chuck Remes <git@chuckremes.com>
Date:   Sat Feb 11 06:10:50 2012 -0800

    Merge pull request #240 from niXman/master

    fix warn unused variables

commit 7b7d404269cc9bb28e1954ed38dbeb8f63079fd1
Author: niXman <i.nixman@gmail.com>
Date:   Fri Feb 10 13:39:34 2012 +0400

    fix warn unused

 src/blob.hpp         |  5 +++--
 src/ctx.cpp          |  1 +
 src/dist.cpp         |  1 +
 src/err.cpp          |  1 +
 src/fq.cpp           |  1 +
 src/io_object.cpp    |  2 ++
 src/io_thread.cpp    |  1 +
 src/lb.cpp           |  1 +
 src/object.cpp       |  8 ++++++++
 src/pair.cpp         |  4 ++++
 src/pipe.cpp         |  1 +
 src/pub.cpp          |  2 ++
 src/pull.cpp         |  1 +
 src/push.cpp         |  1 +
 src/reaper.cpp       |  1 +
 src/session_base.cpp |  1 +
 src/socket_base.cpp  | 11 +++++++++++
 src/sub.cpp          |  2 ++
 src/xpub.cpp         |  1 +
 src/xrep.cpp         |  2 ++
 src/xreq.cpp         |  1 +
 src/xsub.cpp         |  1 +
 22 files changed, 48 insertions(+), 2 deletions(-)

commit 40052c1251053e28a7b2b4f517db4d74a393d3ba
Merge: 21571cf0 c3f7543e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 10 00:20:56 2012 -0800

    Merge pull request #239 from skaller/master

    Provide scatter/gather array I/O

commit 7fa14f3823e572c335565a168127326f12d3250a
Merge: 7b32c9cb 21571cf0
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Feb 8 22:06:50 2012 +0000

    Merge branch 'master' of https://github.com/zeromq/libzmq

commit 7b32c9cb51dc97e3c467801843fa9ed1736ba8bd
Author: Ian Barber <ian.barber@gmail.com>
Date:   Wed Feb 8 22:06:46 2012 +0000

    Adding ZMQ_LAST_ENDPOINT for wildcard support on TCP and IPC sockets

 include/zmq.h        |  4 ++++
 src/ipc_listener.cpp | 20 ++++++++++++++++++++
 src/ipc_listener.hpp |  7 +++++++
 src/options.cpp      | 12 ++++++++++--
 src/options.hpp      |  4 ++++
 src/socket_base.cpp  |  4 ++++
 src/tcp_address.cpp  | 16 +++++++++++-----
 src/tcp_listener.cpp | 32 ++++++++++++++++++++++++++++++++
 src/tcp_listener.hpp |  7 +++++++
 9 files changed, 99 insertions(+), 7 deletions(-)

commit c3f7543ebe08cfdadf218fa558f03a5d382d322c
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Wed Feb 8 13:15:47 2012 +1100

    Fix uio support.

    We have to use an incomplete type in the interface.
    The definition of iovec is only in the implementation.
    This appears to following existing practice in 0MQ.
    It seems a bit flakey that zmq.h is not included in zmq.cpp,
    which is normal practice to ensure the implementation matches
    the specified interface. YMMV. I follow 0MQ style.

 include/zmq.h | 11 -----------
 src/zmq.cpp   | 12 ++++++++++++
 2 files changed, 12 insertions(+), 11 deletions(-)

commit 970a00539930f1c047ed8cc684fe64885fbf7020
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Wed Feb 8 12:58:35 2012 +1100

    Provide interface.

    Also move iovec definition from implementation to interface.
    Not clear to me at present if an incomplete type should
    be used to avoid gratuitously including <sys/uio.h> in
    the interface. The interface can't be used with this include.

 include/zmq.h | 14 ++++++++++++++
 src/zmq.cpp   | 10 ----------
 2 files changed, 14 insertions(+), 10 deletions(-)

commit 383a49dadf4e9c2c7fea84d521eeb42c0f5bf6de
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Wed Feb 8 11:45:36 2012 +1100

    Implement zmq_recvmmsg.

 src/zmq.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 65 insertions(+), 1 deletion(-)

commit 531835bba887722110d87e1dc912592cf9e49a50
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Wed Feb 8 03:20:25 2012 +1100

    Implement zmq_sendv.

    Posix style send multiple messages using scatter/gather array.

 src/zmq.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

commit f59fff7bf26da65c2e1c5f259326f7daf8e4d3a0
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Wed Feb 8 02:47:51 2012 +1100

    Add check for sys/uio.h to configure script.

    sys/uio.h contains the XSI vector I/O data structure.

 configure.in | 3 +++
 1 file changed, 3 insertions(+)

commit 21571cf0855d5ef8c52dpe5a854b79d7fc66a603
Merge: 9dab56c1 81662d70
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 4 02:47:10 2012 -0800

    Merge pull request #237 from skaller/master

    Fix comments to conform to style guide.

commit 81662d70be2014b947f1c63308d819c3f85f6a2a
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 4 15:13:36 2012 +1100

    Add a test for thread safe sockets.

 tests/Makefile.am         |   2 +
 tests/test_ts_context.cpp | 129 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 131 insertions(+)

commit 759b2e01fd03b171f63d37b908a4a530ab44420b
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 4 12:34:06 2012 +1100

    Fix comments to conform to style guide.

 src/zmq.cpp | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

commit 9dab56c1df5e41acb1a59f21261dd61594fb7a07
Merge: cbf6126b 520ad3c2
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 3 12:40:05 2012 -0800

    Merge pull request #235 from skaller/master

    Thread Safe Sockets.

commit cbf6126b086123d122355068a5d5d5dded770af9
Merge: 935f1748 43b71dp4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 3 12:39:47 2012 -0800

    Merge pull request #234 from ianbarber/master

    Semicolon missing

commit 935f17488a460e9fa497384f18bc34ecc9e6635a
Merge: dc50bf5d 67fd4c9a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 3 12:39:11 2012 -0800

    Merge pull request #236 from danielnorberg/master

    add missing semicolon

commit 67fd4c9a2c9494e14c12ebb53c1b70042931bc9c
Author: Daniel Norberg <dano@spotify.com>
Date:   Fri Feb 3 17:28:45 2012 +0100

    add missing semicolon

 src/xpub.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 520ad3c2d7966ad868354c0ad66b76a3e408f568
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 4 02:17:35 2012 +1100

    Set and arrange propagation of thread safe sockets flag.

    We use a distinct context initialisation function to specify
    all sockets derived therefrom will be thread safe.

    However the inheritance is done exclusively in the C interface.
    This is not really correct, but it is chosen to minimise
    interference with the existing C++ code, including any
    construct or other calls within the C++ code base.
    Semantically the C++ code should be unchanged,
    physically some data structures and extra methods are
    provided by they're only used from the C binding.

 include/zmq.h       |  1 +
 src/ctx.cpp         | 10 ++++++++++
 src/ctx.hpp         |  6 ++++++
 src/socket_base.cpp |  5 +++++
 src/socket_base.hpp |  1 +
 src/zmq.cpp         | 21 ++++++++++++++++++---
 6 files changed, 41 insertions(+), 3 deletions(-)

commit 988efbc73a2f4f0d8f8b380da61b73b5affdpccd
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 4 01:41:09 2012 +1100

    Thread Safe Sockets.

    1. Reorganise C API socket functions to eliminate bad practice
    of public functions calling other public functions. This should
    be done for msg's too but hasn't been in this patch.

    2. Reorganise code in C API socket functions so that the
    socket is cast on one line, the C++ function called on
    the next with the result retained, then the result is returned.

    This makes the code much simpler to read and also allows
    pre- and post- call hooks to be inserted easily.

    3. Insert pre- and post- call hooks which set and release
    a mutex iff the thread_safe flag is on.

    4. Add the thread_safe_flag to base_socket_t initialised to
    false to preserve existing semantics. Add an accessor for
    the flag, add a mutex, and add lock and unlock functions.

    Note: as yet no code to actually set the flag.

 src/socket_base.cpp |  13 +++++-
 src/socket_base.hpp |   6 ++-
 src/zmq.cpp         | 112 ++++++++++++++++++++++++++++++++++++----------------
 3 files changed, 96 insertions(+), 35 deletions(-)

commit 4dd6ce0639da832927ab68cfb7226c21808f0034
Author: Max Skaller <Max.Skaller@gmail.com>
Date:   Sat Feb 4 00:10:01 2012 +1100

    Add mission ; character

 src/xpub.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 43b71dp4bf5b4b1a046c6549483f59ef03883d5a
Author: Ian Barber <ian.barber@gmail.com>
Date:   Fri Feb 3 12:44:19 2012 +0000

    Fixing missing semicolon in xpub.cpp as reported on the list by Emmanuel TAUREL

 src/xpub.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dc50bf5dca6b4c1c9b0c5e4d62f6f3854ffbddpf
Merge: 4f4d72af 79f753bf
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Feb 3 02:12:09 2012 -0800

    Merge pull request #233 from danielnorberg/master

    LIBZMQ-300: free received subscription messages

commit 79f753bf56222e65ca497f5253434f11489c51da
Author: Daniel Norberg <dano@spotify.com>
Date:   Mon Dec 19 15:45:44 2011 +0100

    xpub: free received subscription messages

 src/xpub.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 4f4d72afc62d35638eed0ce1a4deebe9ac587e3b
Merge: adee8270 93db782a
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 2 12:22:46 2012 -0800

    Merge pull request #232 from chuckremes/master

    mato: merge patch to close libzmq-268

commit 93db782a1d22451a53b94b514946eea391a69d63
Merge: 762bcff7 0319cb2c
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 2 14:17:30 2012 -0600

    Merge branch 'libzmq-268' of git://git.lucina.net/libzmq

commit adee8270ddd5af7eb2ba3fe5f251873b30eb00b4
Merge: e89a5f1e 762bcff7
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 2 12:16:32 2012 -0800

    Merge pull request #231 from chuckremes/master

    mato: merge patch to close libzmq-303

commit 762bcff73f29269b92eee18ffd5455a8e77ce3bb
Merge: c54ad48c 029e2886
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 2 14:14:56 2012 -0600

    Merge branch 'libzmq-303' of git://git.lucina.net/libzmq

commit e89a5f1e1adp0b820d8cd74d3de3cdc509a1a198
Merge: edf7db74 c54ad48c
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 2 12:14:27 2012 -0800

    Merge pull request #230 from chuckremes/master

    mato: merge patch to close libzmq-205

commit c54ad48c9b70fd8a28fa2300b79aadbcd39b65db
Merge: edf7db74 c34a1443
Author: Chuck Remes <git@chuckremes.com>
Date:   Thu Feb 2 14:09:37 2012 -0600

    Merge branch 'libzmq-205' of git://git.lucina.net/libzmq

commit 0319cb2cd16aa40911855a1765312886bf081db2
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 2 13:07:48 2012 +0100

    Fix data loss for PUB/SUB and unidirectional transports (LIBZMQ-268)

    With the introduction of subscription forwarding, the first message sent
    on a PUB socket using a unidirectional transport (e.g. PGM) is always
    lost due to the "subscribe to all" being done asynchronously.

    This patch fixes the problem and also refactors the code to have a single
    point where the "subscribe to all" is performed.

    Signed-off-by: Martin Lucina <martin@lucina.net>

 src/pair.cpp        |  2 +-
 src/pair.hpp        |  2 +-
 src/pgm_sender.cpp  | 10 ----------
 src/pull.cpp        |  2 +-
 src/pull.hpp        |  2 +-
 src/push.cpp        |  2 +-
 src/push.hpp        |  2 +-
 src/socket_base.cpp | 12 +++++++++---
 src/socket_base.hpp |  5 +++--
 src/xpub.cpp        |  7 ++++++-
 src/xpub.hpp        |  2 +-
 src/xrep.cpp        |  2 +-
 src/xrep.hpp        |  2 +-
 src/xreq.cpp        |  2 +-
 src/xreq.hpp        |  2 +-
 src/xsub.cpp        |  2 +-
 src/xsub.hpp        |  2 +-
 17 files changed, 31 insertions(+), 29 deletions(-)

commit edf7db74d933f753d14dd4c8e5de0e8081624118
Merge: 7e8a839a e6c97c5e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jan 30 01:28:47 2012 -0800

    Merge pull request #227 from gimaker/smaller-mtrie

    Reduce memory usage of mtrie.

commit e6c97c5ecc3f2b9e84258cb405eb92f6b6f6ca7d
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Tue Jan 3 16:34:45 2012 +0100

    Reduce memory usage of mtrie.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/mtrie.cpp | 39 +++++++++++++++++++++++++++++----------
 src/mtrie.hpp |  2 +-
 2 files changed, 30 insertions(+), 11 deletions(-)

commit 1925c92fe9c50c40b083749f8ff9521abcce72b5
Merge: c34a1443 029e2886
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Jan 30 01:57:18 2012 +0100

    Merge branches 'libzmq-205' and 'libzmq-303'

commit 7e8a839a22f5d94b89a47ff187fa933a6bbc4395
Merge: 281dcd25 1e5a48f5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 27 16:01:20 2012 -0800

    Merge pull request #226 from gitfoxi/master

    Support Epoll on cross-compile without runtime test.

commit 1e5a48f5217edf874d5771b29ceb7680a930d4b3
Author: Michdpl Fox <415fox@gmail.com>
Date:   Fri Jan 27 15:24:47 2012 -0800

    Epoll is default for cross-compile. For regular-compile, test kernel (run) support.

 acinclude.m4 | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

commit 281dcd25448dc524bb1f001ad7c57d70a4fa79ab
Merge: 676d4f4e 1d8b132d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 27 14:48:43 2012 -0800

    Merge pull request #221 from fidlej/master

    Updated connector open() doc strings.

commit 676d4f4e18da8cd1299d9161d78b7a15c6cd50fd
Merge: 0c94cd03 bc4d1b60
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 27 14:48:17 2012 -0800

    Merge pull request #222 from gimaker/trie-pruning

    Fix for LIBZMQ-305

commit 0c94cd036a843acce4252bf2583e1ddb472bb778
Merge: 95f6a074 36215656
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 27 14:47:36 2012 -0800

    Merge pull request #223 from gimaker/libzmq-310

    Throw away unexpected data received by XPUB sockets, rather than asserting

commit 95f6a074036bab70872798c25e033564aaf6836d
Merge: 57f64c50 2e0c4330
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 27 14:47:14 2012 -0800

    Merge pull request #224 from vortechs2000/master

    Patch from Mikko Koppanen for #LIBZMQ-301

commit 57f64c50795a43d1c22a6b7bb41dd280c0e3f436
Merge: 6f32361f c71375ea
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jan 27 14:44:42 2012 -0800

    Merge pull request #225 from gitfoxi/master

    Fix build on old-ass Linux

commit c71375ea72da9ba480bda49a7e3ba07d196f745d
Author: Michdpl Fox <415fox@gmail.com>
Date:   Fri Jan 27 13:27:21 2012 -0800

    Fix: Case where system library has epoll but kernel does not support it.

 acinclude.m4 | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit c4f22408518347ba47b878090de3f94a4b554267
Author: Michdpl Fox <415fox@gmail.com>
Date:   Fri Jan 27 12:40:56 2012 -0800

    Fix: runtime patch for when system has clock_gettime but does not support CLOCK_MONOTONIC.

 src/clock.cpp | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit b5dbff8ed4ff6bdc6bdc68987f71983e3b6c32d3
Author: Michdpl Fox <415fox@gmail.com>
Date:   Fri Jan 27 12:24:14 2012 -0800

    Fix basic_string<unsigned char> not implemented in stdc++ 3

 src/blob.hpp | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)

commit 99df984be1660eb52e985b55beb0bca87ccec83d
Author: Michdpl Fox <415fox@gmail.com>
Date:   Fri Jan 27 12:23:32 2012 -0800

    Fix bad combination of gcc3, -Werror and private destructor.

 src/ctx.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bc4d1b6002775375ccc11f63ec703a29437105ac
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Thu Jan 26 13:26:09 2012 +0100

    Fixed segfault bug sometimes happening when pruning the trie/mtrie.

    The cause behind the segfault was next.node being deleted but count still
    being non-zero.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/mtrie.cpp | 23 +++++++++++++++--------
 src/trie.cpp  | 11 ++++++++---
 2 files changed, 23 insertions(+), 11 deletions(-)

commit 2e0c4330fa3d1044ca3d89a0f1798a88b7cc3215
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Thu Jan 19 12:27:19 2012 -0600

    Patch from Mikko Koppanen for #LIBZMQ-301

    Add the '-dp' flag and check for gethrtime() on HPUX

    Check if CLOCK_MONOTONIC defined before using it - if not, use
    gethrtime() if it's available, otherwise fall back to the old
    behavior.

    Signed-off-by: AJ Lewis <aj.lewis@quantum.com>

 configure.in  | 2 ++
 src/clock.cpp | 8 ++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

commit 36215656eb586a505d051dd60500e92d0f710f07
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Mon Jan 9 12:19:59 2012 +0100

    Throw away unexpected data received by XPUB sockets, rather than asserting.

    Fixes LIBZMQ-310.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/xpub.cpp | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

commit c34a1443651ce5a6d8f7a88d0677ec85c81e1570
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Jan 4 11:48:41 2012 +0100

    Fix pgm_receiver.cpp: zmq_assert (pending_bytes == 0) (LIBZMQ-205)

    This patch fixes the problem described in LIBZMQ-205. The assertion itself
    is probably caused by previously queued POLLIN events arriving after POLLIN
    has been disabled on the socket.

    The following additional bugs have been fixed as part of debugging this
    problem:

    - pgm_receiver_t does not flush messages written to the session in all
      cases which can lead to a stalled reader. Add calls to session->flush ()
      in the appropriate places.

    - ensure to restart polling when a pending message is flushed in
      activate_in ().

    Signed-off-by: Martin Lucina <martin@lucina.net>

 src/pgm_receiver.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 19129edc60b09576699120a6c0637dp8c73c9bd4
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Tue Jan 3 16:24:44 2012 +0100

    Prune redundant nodes in the trie.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/trie.cpp | 25 ++++++++++++++++++++++---
 src/trie.hpp |  3 +++
 2 files changed, 25 insertions(+), 3 deletions(-)

commit 6fa9ffebe5d4cf0bba051f464b8c8054cffc2b72
Author: Staffan Gimåker <staffan@spotify.com>
Date:   Tue Jan 3 16:24:16 2012 +0100

    Prune redundant nodes in the mtrie.

    Signed-off-by: Staffan Gimåker <staffan@spotify.com>

 src/mtrie.cpp | 35 ++++++++++++++++++++++++++++++++---
 src/mtrie.hpp |  3 +++
 2 files changed, 35 insertions(+), 3 deletions(-)

commit 029e28865dd47895e6919ce1c3e12c95ea56ad32
Author: Martin Lucina <martin@lucina.net>
Date:   Sun Dec 25 02:57:04 2011 +0100

    Fix assertion in pgm_sender_t::plug() (LIBZMQ-303)

    Opening any PGM socket gives this assertion. The problem is in
    pgm_sender_t::plug() which is incorrectly testing the return value from
    session::write().

    Signed-off-by: Martin Lucina <martin@lucina.net>

 src/pgm_sender.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1d8b132d368119cd0cb8219e8cd90d8d35f0d647
Author: Ivo Danihelka <ivo@danihelka.net>
Date:   Wed Dec 21 16:21:55 2011 +0100

    Updated connector open() doc strings.

    Signed-off-by: Ivo Danihelka <ivo@danihelka.net>

 src/ipc_connecter.cpp | 2 +-
 src/ipc_connecter.hpp | 6 +++---
 src/tcp_connecter.cpp | 2 +-
 src/tcp_connecter.hpp | 4 ++--
 4 files changed, 7 insertions(+), 7 deletions(-)

commit 6f32361fea61619fec94348de693a9e3ff8981e0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 19 15:43:38 2011 +0100

    Version bumped to 3.1.1

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b3fbe0113d8b39cd2d23837882fba1ea40d22811
Merge: adc07128 dcb1d558
Author: Martin Lucina <martin@lucina.net>
Date:   Sun Dec 18 12:46:03 2011 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit dcb1d558a50c58dc9f3149ffa6bba65199c0200f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 18 12:30:31 2011 +0100

    Fix MSVC10 build distfiles

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/Makefile.am                        |  33 ++++-
 builds/msvc/zmq_forwarder/zmq_forwarder.vcproj | 176 -------------------------
 builds/msvc/zmq_queue/zmq_queue.vcproj         | 176 -------------------------
 builds/msvc/zmq_streamer/zmq_streamer.vcproj   | 176 -------------------------
 4 files changed, 26 insertions(+), 535 deletions(-)

commit 3bf7860fb783c38503c013dbad05ad2ff54f5a16
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 18 11:41:45 2011 +0100

    NEWS updated for 3.1.0 release

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 NEWS | 639 ++++++++++---------------------------------------------------------
 1 file changed, 91 insertions(+), 548 deletions(-)

commit 22ef966d4aab3448d4debf524afbdaa19f37dff0
Author: Martin Lucina <martin@lucina.net>
Date:   Sun Dec 18 11:19:55 2011 +0100

    Update email address in man pages

    Signed-off-by: Martin Lucina <martin@lucina.net>

 doc/zmq.txt               | 2 +-
 doc/zmq_bind.txt          | 2 +-
 doc/zmq_close.txt         | 2 +-
 doc/zmq_connect.txt       | 2 +-
 doc/zmq_errno.txt         | 2 +-
 doc/zmq_getsockopt.txt    | 2 +-
 doc/zmq_init.txt          | 2 +-
 doc/zmq_inproc.txt        | 2 +-
 doc/zmq_ipc.txt           | 2 +-
 doc/zmq_msg_close.txt     | 2 +-
 doc/zmq_msg_copy.txt      | 2 +-
 doc/zmq_msg_data.txt      | 2 +-
 doc/zmq_msg_init.txt      | 2 +-
 doc/zmq_msg_init_data.txt | 2 +-
 doc/zmq_msg_init_size.txt | 2 +-
 doc/zmq_msg_move.txt      | 2 +-
 doc/zmq_msg_size.txt      | 2 +-
 doc/zmq_pgm.txt           | 2 +-
 doc/zmq_poll.txt          | 2 +-
 doc/zmq_recv.txt          | 2 +-
 doc/zmq_recvmsg.txt       | 2 +-
 doc/zmq_send.txt          | 2 +-
 doc/zmq_sendmsg.txt       | 2 +-
 doc/zmq_setsockopt.txt    | 2 +-
 doc/zmq_socket.txt        | 2 +-
 doc/zmq_strerror.txt      | 2 +-
 doc/zmq_tcp.txt           | 2 +-
 doc/zmq_term.txt          | 2 +-
 doc/zmq_version.txt       | 2 +-
 29 files changed, 29 insertions(+), 29 deletions(-)

commit 183e126364762eb7b6fcc96c87d060c8e09044b5
Author: Martin Lucina <martin@lucina.net>
Date:   Sun Dec 18 11:12:44 2011 +0100

    Fix typo in zmq_sendmsg(3) manual page

    Signed-off-by: Martin Lucina <martin@lucina.net>

 doc/zmq_sendmsg.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit adc07128e6d493dc29a76f88db3870adpa0fc795
Merge: bfbd16d0 3fbe8ac3
Author: Martin Lucina <martin@lucina.net>
Date:   Sun Dec 18 11:06:19 2011 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 3fbe8ac3c3adpc777c305de8fbdc0d748c3b14aa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Dec 17 23:42:45 2011 +0100

    Dont wait for pending subscription commands on shutdown

    When (X)SUB socket is being shut down there may be pending
    outbound subscription commands in the pipes. In such case
    we want to close the socket immediately instead of waiting
    for the commands to be sent.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xsub.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit bfbd16d099cc045d4a4745e9a6f28221a0e3bd95
Merge: 82d93530 91fdedf2
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Dec 17 11:59:29 2011 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 91fdedf25c4d76b0ec0dpb5d1d9f1c9a1a769447
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Dec 17 10:14:32 2011 +0100

    Fix polling on XREP socket

    When polling on XREP socket in incoming message part was prefetched,
    but not the identity of sender. The problem is fixed by this patch.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 45 ++++++++++++++++++++++++++++++++++++---------
 src/xrep.hpp |  8 ++++++--
 2 files changed, 42 insertions(+), 11 deletions(-)

commit f9eb763293014f812dac5558be5c5f03bb896efb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 16 07:04:38 2011 +0100

    zmq_sendmsg and zmq_recvmsg checks for NULL message object

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/socket_base.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3fb5c11b03119a157db8dc024809943f88f87320
Author: Stuart Webster <sw_webster@hotmail.com>
Date:   Thu Dec 15 14:03:43 2011 +0100

    Added MSVC10 solution and project files for Windows

    These include configurations for both Win32 and x64 platforms. All project
    settings have been normalised in property sheets (the ".props" files under
    builds/msvc/properties) to simplify maintenance. Build artefacts are all
    generated in platform-specific subfolders of bin, lib and obj directories.

    Also enables the use of precompiled headers with MSVC10.

    This significantly reduces the time required to compile libzmq with Visual
    Studio on Windows. It should have no impact on other platforms.

    Signed-off-by: Stuart Webster <sw_webster@hotmail.com>

 .gitignore                                    |   1 +
 builds/msvc/c_local_lat/c_local_lat.vcxproj   |  87 ++++++++++
 builds/msvc/c_local_thr/c_local_thr.vcxproj   |  87 ++++++++++
 builds/msvc/c_remote_lat/c_remote_lat.vcxproj |  87 ++++++++++
 builds/msvc/c_remote_thr/c_remote_thr.vcxproj |  87 ++++++++++
 builds/msvc/inproc_lat/inproc_lat.vcxproj     |  86 +++++++++
 builds/msvc/inproc_thr/inproc_thr.vcxproj     |  86 +++++++++
 builds/msvc/libzmq/libzmq.vcxproj             | 241 ++++++++++++++++++++++++++
 builds/msvc/libzmq/libzmq.vcxproj.filters     |  13 ++
 builds/msvc/msvc10.sln                        | 116 +++++++++++++
 builds/msvc/properties/Common.props           |  21 +++
 builds/msvc/properties/Debug.props            |  19 ++
 builds/msvc/properties/Dynamic.props          |  20 +++
 builds/msvc/properties/Executable.props       |  19 ++
 builds/msvc/properties/Precompiled.props      |  14 ++
 builds/msvc/properties/Release.props          |  22 +++
 builds/msvc/properties/Win32.props            |  12 ++
 builds/msvc/properties/Win32_Release.props    |  17 ++
 builds/msvc/properties/WithOpenPGM.props      |  12 ++
 builds/msvc/properties/ZeroMQ.props           |  23 +++
 builds/msvc/properties/x64.props              |  12 ++
 src/precompiled.cpp                           |  21 +++
 src/precompiled.hpp                           |  47 +++++
 src/windows.hpp                               |   3 +
 24 files changed, 1153 insertions(+)

commit a9e03336b020d2e6a83338b111092e65aa812f95
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Dec 15 13:23:40 2011 +0100

    A synchronous connect() failure in ipc_connecter can result in Assertion
    failed: s == retired_fd (ipc_connecter.cpp:174), as reported in LIBZMQ-294.

    This patch fixes the bug, and also an identical problem in tcp_connecter
    which has not hit people since TCP connect() usually completes via the
    asynchronous code path (poll, out_event).

    Signed-off-by: Martin Lucina <martin@lucina.net>

 src/ipc_connecter.cpp | 1 +
 src/tcp_connecter.cpp | 1 +
 2 files changed, 2 insertions(+)

commit 82d935309eede60777b59af9df7a50576916d01f
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Dec 14 00:00:32 2011 +0100

    Fix synchronous connect failure for ipc://, tcp:// (LIBZMQ-294)

    A synchronous connect() failure in ipc_connecter can result in Assertion
    failed: s == retired_fd (ipc_connecter.cpp:174), as reported in LIBZMQ-294.

    This patch fixes the bug, and also an identical problem in tcp_connecter
    which has not hit people since TCP connect() usually completes via the
    asynchronous code path (poll, out_event).

    Signed-off-by: Martin Lucina <martin@lucina.net>

 src/ipc_connecter.cpp | 1 +
 src/tcp_connecter.cpp | 1 +
 2 files changed, 2 insertions(+)

commit c90f54e6a66ead6c6dc949eaab58d1bfb23b0da1
Merge: b4f5ee58 e7d748e8
Author: Martin Lucina <martin@lucina.net>
Date:   Sun Dec 11 23:09:48 2011 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit e7d748e812a7259bd4030517fde79be202d2a16d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Dec 3 13:27:20 2011 +0100

    Mika Fischer added to AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 0df86c41b5f2e428b6237bcc1e28304ea0149097
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Dec 3 13:25:44 2011 +0100

    rt library required on all platforms

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aaac96d94a81fb5debe24200e20c353217bdpc9c
Author: Mika Fischer <mika.fischer@zoopnet.de>
Date:   Sat Dec 3 13:07:30 2011 +0100

    This makes clock_t insensitive to the system clock being reset by NTP or
    the sysadmin, which could previously cause long hangs for instance in
    zmq_poll.

    Signed-off-by: Mika Fischer <mika.fischer@zoopnet.de>

 configure.in  |  5 +++--
 src/clock.cpp | 12 ++++++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

commit b4f5ee58a9e0ad4ad9f872b8fcc6797e1b6f4e04
Merge: 90d0435b fc17bd41
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Nov 30 19:34:11 2011 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit fc17bd4117c19b027790951ac1df1a141bce9d82
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 22 14:48:35 2011 +0100

    ENOTCONN on recv() on TCP socket is treated decently (issue 254)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/stream_engine.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit daac9ac5b2f864f61615a4e93caf49e6ea187cda
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Nov 21 08:11:33 2011 +0100

    Phillip Kovacs added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit bf9062902c776c0c6029ef42c6ba0c7179bf0425
Author: Philip Kovacs <phil@philkovacs.com>
Date:   Mon Nov 21 08:10:03 2011 +0100

    Fix broken VPATH/parallel builds

    Signed-off-by: Philip Kovacs <phil@philkovacs.com>

 doc/Makefile.am   | 8 ++++----
 perf/Makefile.am  | 3 ++-
 tests/Makefile.am | 4 +++-
 3 files changed, 9 insertions(+), 6 deletions(-)

commit 5c1a91e33e552b136a0a72027ef27f41de95dcb8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 19 10:06:06 2011 +0100

    Stuart Webster added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit a610b3d1b4d975bbffc74604aa43f793dfd3f301
Author: Stuart Webster <sw_webster@hotmail.com>
Date:   Sat Nov 19 10:02:23 2011 +0100

    Line-ending conversion rules for hg-git users and enabled use of .gitignore by hg-git users

    Mercurial does not have built-in support for converting line-endings. This is a
    settings file for hg eol (http://mercurial.selenic.com/wiki/EolExtension), an
    extension that replicates the behaviour of git with core.autocrlf=true.

    Mercurial uses Python regex syntax by default in its .hgignore files. Adding
    this line to .gitignore overrides that setting, so hg-git users can just create
    a hardlink to it (e.g "mklink /H .hgignore .gitignore" on Windows) to use it.

    Signed-off-by: Stuart Webster <sw_webster@hotmail.com>

 .gitignore | 1 +
 .hgeol     | 2 ++
 2 files changed, 3 insertions(+)

commit f8bd3967bfe305c22b6e08f3e6555b2162609328
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Nov 16 19:49:31 2011 +0100

    Documentation for IPv4ONLY option clarified

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 2 +-
 doc/zmq_setsockopt.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5a6503e5c275c544e1447401e17a4746985614ea
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 15 13:56:59 2011 +0100

    Bug in XREP and XREQ fixed (issue 280)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 2 +-
 src/xreq.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 83975c1b21722bb689c7b84cde5a6958145fcbd4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 15 08:40:46 2011 +0100

    Missing "defined" tokens added

    The missing tokens broke the build if you used -Werror -Wundef

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_address.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 21bca4dbe48cffdaa1e1108600973559a3b880d2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Nov 14 11:15:20 2011 +0100

    Bug concerining identity in XREQ socket fixed (issue 280)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xreq.cpp | 26 ++++++++++++++++++++++++--
 src/xreq.hpp |  6 ++++++
 2 files changed, 30 insertions(+), 2 deletions(-)

commit 1c239708ab174c1de9f99e256d23158f74a24dbc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Nov 13 10:33:49 2011 +0100

    Couple of bugs in XREP handling of identities fixed.
    wq:
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)

commit f8b005502699aa069406923701af685cc156d3c2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 10 23:38:08 2011 +0100

    Hangup in signaler creation on Windows fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/signaler.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 90d0435b564e3c44b63980778ed1815a4451174e
Merge: 991f7e2c a7b0b0d3
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Nov 9 17:46:00 2011 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit a7b0b0d3dc1003fdd6f9538afda8fb4a5bbc5d41
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Nov 9 15:41:51 2011 +0100

    AUTHORS file changed

    - AJ Lewis added
    - Martin Lucina's email address changed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 27524908c17b7db965f8aaa2bde513643378e372
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Nov 9 15:39:33 2011 +0100

    Set libzmq ABI version to 3

    libzmq master (3.1) is not ABI compatible with libzmq 2.1.x or 3.0 (removed
    functionality), hence the ABI version needs to be set to 3.

    Signed-off-by: Martin Lucina <martin@lucina.net>

 configure.in | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit c79abee6bcaa996f50be71bd1d3075e3affb469d
Author: AJ Lewis <aj.lewis@quantum.com>
Date:   Wed Nov 9 15:22:20 2011 +0100

    Get AIX 6.1 compiling again by making msg_t class explicit

    Older versions of gcc have problems with in-line forward declarations
    when there's a naming conflict with a global symbol.

    Signed-off-by: AJ Lewis <aj.lewis@quantum.com>

    Expand the original patch to all such forward declarations.
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/command.hpp       | 16 ++++++++----
 src/ctx.hpp           | 22 ++++++++++------
 src/decoder.hpp       |  6 +++--
 src/devpoll.hpp       |  6 +++--
 src/dist.hpp          | 21 +++++++++-------
 src/encoder.hpp       |  6 +++--
 src/epoll.hpp         |  6 +++--
 src/i_engine.hpp      |  4 ++-
 src/io_object.hpp     |  6 +++--
 src/io_thread.hpp     |  4 ++-
 src/ipc_connecter.hpp |  9 ++++---
 src/ipc_listener.hpp  |  9 ++++---
 src/kqueue.hpp        |  6 +++--
 src/lb.hpp            |  2 +-
 src/mtrie.hpp         | 18 ++++++++------
 src/object.hpp        | 69 +++++++++++++++++++++++++++++----------------------
 src/own.hpp           |  7 ++++--
 src/pair.hpp          | 25 +++++++++++--------
 src/pgm_receiver.hpp  | 11 +++++---
 src/pgm_sender.hpp    |  9 ++++---
 src/pipe.hpp          | 17 +++++++------
 src/poll.hpp          |  6 +++--
 src/poller_base.hpp   |  8 +++---
 src/pub.hpp           | 13 +++++++---
 src/pull.hpp          | 19 ++++++++------
 src/push.hpp          | 19 ++++++++------
 src/reaper.hpp        |  7 ++++--
 src/rep.hpp           | 15 +++++++----
 src/req.hpp           | 15 +++++++----
 src/select.hpp        |  6 +++--
 src/session_base.hpp  | 34 ++++++++++++++-----------
 src/socket_base.hpp   | 22 +++++++++-------
 src/stream_engine.hpp | 11 +++++---
 src/sub.hpp           | 13 +++++++---
 src/tcp_connecter.hpp |  9 ++++---
 src/tcp_listener.hpp  |  9 ++++---
 src/xpub.hpp          | 25 +++++++++++--------
 src/xrep.hpp          | 25 +++++++++++--------
 src/xreq.hpp          | 24 +++++++++++-------
 src/xsub.hpp          | 23 +++++++++--------
 40 files changed, 361 insertions(+), 221 deletions(-)

commit 991f7e2c85919ddpf43c62175da046e0a085f8e3
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Nov 9 13:12:46 2011 +0100

    Set libzmq ABI version to 3

    libzmq master (3.1) is not ABI compatible with libzmq 2.1.x or 3.0 (removed
    functionality), hence the ABI version needs to be set to 3.

    Signed-off-by: Martin Lucina <martin@lucina.net>

 configure.in | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 89962a825697dd9eca057c032ec61de71b075539
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 8 14:49:15 2011 +0100

    Uninitialised FSM state in REQ session fixed (issue 278)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/req.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 11e31988e14b46ccfafeb9f58706ba1fe18a274f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Nov 6 14:09:20 2011 +0100

    Chuck Remeas added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 93529d8c5db599a45171942c4510f1b84ed09e6a
Author: Chuck Remes <git@chuckremes.com>
Date:   Sun Nov 6 14:03:51 2011 +0100

    Add zmq_getmsgopt to the API

    The new function allows to retrieve options (flags)
    from zmq_msg_t.

    Signed-off-by: Chuck Remes <cremes@mac.com>
    Renamed from zmq_msg_flags to zmq_getmsgopt
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore               |  1 +
 doc/Makefile.am          |  2 +-
 doc/zmq_getmsgopt.txt    | 85 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/zmq.h            |  5 +++
 src/socket_base.cpp      | 10 +++---
 src/zmq.cpp              | 19 +++++++++++
 tests/Makefile.am        |  4 ++-
 tests/test_msg_flags.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 200 insertions(+), 8 deletions(-)

commit bb66f3cc3bc2a76d10f16e1206f35480eb250a07
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 5 16:05:18 2011 +0100

    Bug in trie fixed (issue 277)

    When there were both '0' and '255' subnodes in (mtrie)
    the removal of the node resulted in an infinite loop.
    Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mtrie.cpp | 2 +-
 src/trie.cpp  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 6503716203552966e2fa6a6b4839bc0e001f9478
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 5 11:38:50 2011 +0100

    Minor typo corrected

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/test_timeo.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fe81827bd093aa6df5e5bf1bfbca479cad4ab53a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 5 10:18:38 2011 +0100

    Version changed to 3.1.0

    This version downgrade is done because of the previous refatoring.
    It removed all the new features and reintroduced some of the old
    ones (identities). Thus, it made trunk much closer to existing 3.0
    branch than it used to be.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 21a0b49834734919a48301fbbb354f8c75c6d1ad
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 5 10:10:44 2011 +0100

    Obsolete ECANTROUTE errror code removed

    This error code was used only by new-style ROUTER socket
    which is not a part of the codebase.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 1 -
 1 file changed, 1 deletion(-)

commit a756956781973d207413d675b998dp47de47b7c7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 5 09:57:17 2011 +0100

    Use identities in inproc transport

    Previous patches have missed the case when the identity should
    be sent from an inproc endpoint. Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/socket_base.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit de1d32dadpdce51f655fe73e60988733b2db6557
Author: Brett Cameron <Brett.Cameron@hp.com>
Date:   Fri Nov 4 14:15:06 2011 +0100

    Fix getaddrinfo calls to work on OpenVMS

    Signed-off by: Brett Cameron <Brett.Cameron@hp.com>

 src/tcp_address.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 50a9ee6e7335b645487a83487285bce6886ba082
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 4 10:02:49 2011 +0100

    MSVC build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 30 +++---------------------------
 src/windows.hpp                  |  3 ---
 2 files changed, 3 insertions(+), 30 deletions(-)

commit 05ce301f3571e3e690792a189cb927328163f0bc
Merge: a8362abf 6cdd7204
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 4 09:48:25 2011 +0100

    Merge branch 'master' of github.com:zeromq/libzmq

commit 6cdd720400ea456ccbfdf09cdc5054ab07dbdc6f
Merge: 541b83bc e9c3a227
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 4 02:15:37 2011 -0700

    Merge pull request #220 from 250bpm/HEAD

    Refactoring

commit e9c3a227a7175b4eda5193b1c8ce6985f5ed89f3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 4 08:05:39 2011 +0100

    Linking exception corrected

    Correctly states 'copyright holders' instead of 'iMatix'.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 COPYING.LESSER | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit a4843b65d24f9caa188bb2454b28080f0cee8484
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 4 08:00:47 2011 +0100

    Identities re-introduced

    However, the "durable socket" behaviour wasn't re-added.
    Identities are used solely for routing in REQ/REP pattern.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/msg.hpp                |   1 +
 src/options.cpp            |   4 +-
 src/options.hpp            |   6 +++
 src/pipe.cpp               |  11 +++--
 src/pipe.hpp               |  10 +++--
 src/req.cpp                |  15 +++++--
 src/req.hpp                |   1 +
 src/session_base.cpp       |  20 ++++++++-
 src/session_base.hpp       |   5 +++
 src/socket_base.cpp        |   9 ++++
 src/xrep.cpp               | 100 ++++++++++++++++++++++++++++-----------------
 src/xrep.hpp               |   4 +-
 src/xreq.cpp               |  14 ++++++-
 tests/test_invalid_rep.cpp |  17 ++++----
 14 files changed, 154 insertions(+), 63 deletions(-)

commit d20ea25b8c63e148fe48cc2b85bac9c896f1073b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Nov 2 14:33:58 2011 +0100

    ZMQ_IDENTITY option re-introduced

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 16 ++++++++++++++++
 doc/zmq_setsockopt.txt | 17 +++++++++++++++++
 include/zmq.h          |  1 +
 src/Makefile.am        |  1 +
 src/blob.hpp           | 35 +++++++++++++++++++++++++++++++++++
 src/options.cpp        | 25 +++++++++++++++++++++++++
 src/options.hpp        |  5 +++++
 7 files changed, 100 insertions(+)

commit 8e21d64c974344b5b2b83cac85d12c51392fe74b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 1 18:06:11 2011 +0100

    Copyright dates adjusted to reflect reality

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 autogen.sh                     | 2 +-
 include/zmq.h                  | 2 +-
 include/zmq_utils.h            | 1 -
 perf/inproc_lat.cpp            | 2 +-
 perf/inproc_thr.cpp            | 2 +-
 perf/local_lat.cpp             | 2 +-
 perf/local_thr.cpp             | 2 +-
 perf/remote_lat.cpp            | 2 +-
 perf/remote_thr.cpp            | 2 +-
 src/array.hpp                  | 2 +-
 src/atomic_counter.hpp         | 2 +-
 src/atomic_ptr.hpp             | 2 +-
 src/clock.cpp                  | 5 ++---
 src/clock.hpp                  | 5 ++---
 src/command.hpp                | 2 +-
 src/config.hpp                 | 2 +-
 src/ctx.hpp                    | 2 +-
 src/decoder.cpp                | 2 +-
 src/decoder.hpp                | 2 +-
 src/devpoll.cpp                | 2 +-
 src/devpoll.hpp                | 2 +-
 src/dist.cpp                   | 5 ++---
 src/dist.hpp                   | 5 ++---
 src/encoder.cpp                | 2 +-
 src/encoder.hpp                | 2 +-
 src/epoll.cpp                  | 2 +-
 src/epoll.hpp                  | 2 +-
 src/err.cpp                    | 2 +-
 src/err.hpp                    | 2 +-
 src/fd.hpp                     | 3 +--
 src/fq.cpp                     | 2 +-
 src/fq.hpp                     | 2 +-
 src/i_engine.hpp               | 2 +-
 src/i_poll_events.hpp          | 4 ++--
 src/io_object.cpp              | 2 +-
 src/io_object.hpp              | 2 +-
 src/io_thread.cpp              | 2 +-
 src/io_thread.hpp              | 2 +-
 src/ip.cpp                     | 4 ++--
 src/ip.hpp                     | 4 ++--
 src/ipc_address.cpp            | 5 ++---
 src/ipc_address.hpp            | 5 ++---
 src/ipc_connecter.cpp          | 5 ++---
 src/ipc_connecter.hpp          | 5 ++---
 src/ipc_listener.cpp           | 5 ++---
 src/ipc_listener.hpp           | 5 ++---
 src/kqueue.cpp                 | 2 +-
 src/kqueue.hpp                 | 2 +-
 src/lb.cpp                     | 4 ++--
 src/lb.hpp                     | 4 ++--
 src/likely.hpp                 | 3 +--
 src/mailbox.cpp                | 2 +-
 src/mailbox.hpp                | 2 +-
 src/msg.cpp                    | 2 +-
 src/msg.hpp                    | 2 +-
 src/mtrie.cpp                  | 5 ++---
 src/mtrie.hpp                  | 5 ++---
 src/mutex.hpp                  | 4 ++--
 src/object.cpp                 | 2 +-
 src/object.hpp                 | 2 +-
 src/options.cpp                | 2 +-
 src/options.hpp                | 2 +-
 src/own.cpp                    | 5 ++---
 src/own.hpp                    | 5 ++---
 src/pair.cpp                   | 2 +-
 src/pair.hpp                   | 2 +-
 src/pgm_receiver.cpp           | 4 ++--
 src/pgm_receiver.hpp           | 4 ++--
 src/pgm_sender.cpp             | 4 ++--
 src/pgm_sender.hpp             | 4 ++--
 src/pgm_socket.cpp             | 4 ++--
 src/pgm_socket.hpp             | 4 ++--
 src/pipe.cpp                   | 2 +-
 src/pipe.hpp                   | 2 +-
 src/poll.cpp                   | 2 +-
 src/poll.hpp                   | 2 +-
 src/poller.hpp                 | 4 ++--
 src/poller_base.cpp            | 5 ++---
 src/poller_base.hpp            | 5 ++---
 src/pub.cpp                    | 2 +-
 src/pub.hpp                    | 2 +-
 src/pull.cpp                   | 2 +-
 src/pull.hpp                   | 2 +-
 src/push.cpp                   | 2 +-
 src/push.hpp                   | 2 +-
 src/random.cpp                 | 5 ++---
 src/random.hpp                 | 5 ++---
 src/reaper.cpp                 | 5 ++---
 src/reaper.hpp                 | 5 ++---
 src/req.cpp                    | 2 +-
 src/req.hpp                    | 2 +-
 src/select.cpp                 | 2 +-
 src/select.hpp                 | 2 +-
 src/session_base.cpp           | 2 +-
 src/session_base.hpp           | 2 +-
 src/signaler.cpp               | 5 ++---
 src/signaler.hpp               | 5 ++---
 src/socket_base.cpp            | 2 +-
 src/socket_base.hpp            | 2 +-
 src/stdint.hpp                 | 3 +--
 src/stream_engine.cpp          | 2 +-
 src/stream_engine.hpp          | 2 +-
 src/sub.cpp                    | 2 +-
 src/sub.hpp                    | 2 +-
 src/tcp_address.cpp            | 2 +-
 src/tcp_address.hpp            | 2 +-
 src/tcp_connecter.cpp          | 2 +-
 src/tcp_connecter.hpp          | 2 +-
 src/tcp_listener.cpp           | 2 +-
 src/tcp_listener.hpp           | 2 +-
 src/thread.cpp                 | 2 +-
 src/thread.hpp                 | 2 +-
 src/trie.cpp                   | 2 +-
 src/trie.hpp                   | 2 +-
 src/windows.hpp                | 4 ++--
 src/wire.hpp                   | 3 +--
 src/xpub.cpp                   | 5 ++---
 src/xpub.hpp                   | 5 ++---
 src/xrep.cpp                   | 2 +-
 src/xrep.hpp                   | 2 +-
 src/xreq.cpp                   | 1 -
 src/xreq.hpp                   | 2 --
 src/xsub.cpp                   | 5 ++---
 src/xsub.hpp                   | 5 ++---
 src/ypipe.hpp                  | 2 +-
 src/yqueue.hpp                 | 2 +-
 src/zmq_utils.cpp              | 2 +-
 tests/test_hwm.cpp             | 5 ++---
 tests/test_invalid_rep.cpp     | 5 ++---
 tests/test_pair_inproc.cpp     | 5 ++---
 tests/test_pair_ipc.cpp        | 5 ++---
 tests/test_pair_tcp.cpp        | 6 +++---
 tests/test_reqrep_device.cpp   | 5 ++---
 tests/test_reqrep_inproc.cpp   | 5 ++---
 tests/test_reqrep_ipc.cpp      | 5 ++---
 tests/test_reqrep_tcp.cpp      | 6 +++---
 tests/test_shutdown_stress.cpp | 6 +++---
 tests/test_sub_forward.cpp     | 6 +++---
 tests/test_timeo.cpp           | 5 ++---
 139 files changed, 192 insertions(+), 234 deletions(-)

commit 8a0f5f7650e556bde6c95d7f20c975aa530d3e10
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 1 14:46:18 2011 +0100

    Miru copyrights added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_receiver.cpp | 1 +
 src/pgm_receiver.hpp | 1 +
 src/pgm_sender.cpp   | 1 +
 src/pgm_sender.hpp   | 1 +
 src/pgm_socket.cpp   | 1 +
 src/pgm_socket.hpp   | 1 +
 6 files changed, 6 insertions(+)

commit 1c071f54a6c4444aaa73ace26d7b3a654c26ea5c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 1 14:09:54 2011 +0100

    LABELs removed from the documentation

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 13 -------------
 doc/zmq_recv.txt       |  7 ++-----
 doc/zmq_recvmsg.txt    |  7 ++-----
 doc/zmq_send.txt       | 11 ++---------
 doc/zmq_sendmsg.txt    | 11 ++---------
 doc/zmq_socket.txt     | 33 ---------------------------------
 6 files changed, 8 insertions(+), 74 deletions(-)

commit 7563518929573fc9e729c1dc8bb4dpa512fada5a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 1 13:54:28 2011 +0100

    Tests print their name before running

    This makes finding out which test have hung-up easier.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/test_hwm.cpp             | 3 +++
 tests/test_invalid_rep.cpp     | 3 +++
 tests/test_pair_inproc.cpp     | 3 +++
 tests/test_pair_ipc.cpp        | 3 +++
 tests/test_pair_tcp.cpp        | 3 +++
 tests/test_reqrep_device.cpp   | 3 +++
 tests/test_reqrep_inproc.cpp   | 3 +++
 tests/test_reqrep_ipc.cpp      | 3 +++
 tests/test_reqrep_tcp.cpp      | 3 +++
 tests/test_shutdown_stress.cpp | 3 +++
 tests/test_sub_forward.cpp     | 3 +++
 tests/test_timeo.cpp           | 3 +++
 12 files changed, 36 insertions(+)

commit 7842c7107358324e8c5b9af7272e6dcab8c97931
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 1 13:39:54 2011 +0100

    LABELS and COMMANDs removed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h                |   5 +-
 src/dist.cpp                 |   6 +-
 src/encoder.cpp              |   5 +-
 src/fq.cpp                   |   3 +-
 src/lb.cpp                   |   6 +-
 src/msg.hpp                  |   7 +--
 src/pipe.cpp                 |   7 ++-
 src/rep.cpp                  |  19 +++---
 src/req.cpp                  |  46 +++++---------
 src/req.hpp                  |   7 +--
 src/session_base.cpp         |   4 +-
 src/socket_base.cpp          |  33 +---------
 src/socket_base.hpp          |   7 +--
 src/xpub.cpp                 |   4 +-
 src/xrep.cpp                 |  11 ++--
 src/xsub.cpp                 |  10 +--
 tests/Makefile.am            |   2 -
 tests/test_invalid_rep.cpp   |  13 ++--
 tests/test_reqrep_device.cpp |  31 ++--------
 tests/test_reqrep_drop.cpp   | 144 -------------------------------------------
 20 files changed, 75 insertions(+), 295 deletions(-)

commit 626099aa2a292178872843c55cc5226e6850f2ed
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 31 16:37:20 2011 +0100

    VTCP transport removed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in           |  13 ---
 src/Makefile.am        |   4 -
 src/session_base.cpp   |  13 ---
 src/socket_base.cpp    |  27 +-----
 src/vtcp_connecter.cpp | 252 -------------------------------------------------
 src/vtcp_connecter.hpp | 121 ------------------------
 src/vtcp_listener.cpp  | 125 ------------------------
 src/vtcp_listener.hpp  |  72 --------------
 8 files changed, 1 insertion(+), 626 deletions(-)

commit ac7717b7b35f441fc3dpeb1528e63f147c00913a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 31 16:20:30 2011 +0100

    250bpm copyrights added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h                  | 1 +
 include/zmq_utils.h            | 1 +
 perf/inproc_lat.cpp            | 1 +
 perf/inproc_thr.cpp            | 1 +
 perf/local_lat.cpp             | 1 +
 perf/local_thr.cpp             | 1 +
 perf/remote_lat.cpp            | 1 +
 perf/remote_thr.cpp            | 1 +
 src/array.hpp                  | 1 +
 src/atomic_counter.hpp         | 1 +
 src/atomic_ptr.hpp             | 1 +
 src/clock.cpp                  | 1 +
 src/clock.hpp                  | 1 +
 src/command.hpp                | 1 +
 src/config.hpp                 | 1 +
 src/ctx.cpp                    | 1 +
 src/ctx.hpp                    | 1 +
 src/decoder.cpp                | 1 +
 src/decoder.hpp                | 1 +
 src/devpoll.cpp                | 1 +
 src/devpoll.hpp                | 1 +
 src/dist.cpp                   | 1 +
 src/dist.hpp                   | 1 +
 src/encoder.cpp                | 1 +
 src/encoder.hpp                | 1 +
 src/epoll.cpp                  | 1 +
 src/epoll.hpp                  | 1 +
 src/err.cpp                    | 1 +
 src/err.hpp                    | 1 +
 src/fd.hpp                     | 1 +
 src/fq.cpp                     | 1 +
 src/fq.hpp                     | 1 +
 src/i_engine.hpp               | 1 +
 src/i_poll_events.hpp          | 1 +
 src/io_object.cpp              | 1 +
 src/io_object.hpp              | 1 +
 src/io_thread.cpp              | 1 +
 src/io_thread.hpp              | 1 +
 src/ip.cpp                     | 1 +
 src/ip.hpp                     | 1 +
 src/ipc_address.cpp            | 1 +
 src/ipc_address.hpp            | 1 +
 src/ipc_connecter.cpp          | 1 +
 src/ipc_connecter.hpp          | 1 +
 src/ipc_listener.cpp           | 1 +
 src/ipc_listener.hpp           | 1 +
 src/kqueue.cpp                 | 1 +
 src/kqueue.hpp                 | 1 +
 src/lb.cpp                     | 1 +
 src/lb.hpp                     | 1 +
 src/likely.hpp                 | 1 +
 src/mailbox.cpp                | 1 +
 src/mailbox.hpp                | 1 +
 src/msg.cpp                    | 1 +
 src/msg.hpp                    | 1 +
 src/mtrie.cpp                  | 1 +
 src/mtrie.hpp                  | 1 +
 src/mutex.hpp                  | 1 +
 src/object.cpp                 | 1 +
 src/object.hpp                 | 1 +
 src/options.cpp                | 1 +
 src/options.hpp                | 1 +
 src/own.cpp                    | 1 +
 src/own.hpp                    | 1 +
 src/pair.cpp                   | 1 +
 src/pair.hpp                   | 1 +
 src/pgm_receiver.cpp           | 1 +
 src/pgm_receiver.hpp           | 1 +
 src/pgm_sender.cpp             | 1 +
 src/pgm_sender.hpp             | 1 +
 src/pgm_socket.cpp             | 1 +
 src/pgm_socket.hpp             | 1 +
 src/pipe.cpp                   | 1 +
 src/pipe.hpp                   | 1 +
 src/poll.cpp                   | 1 +
 src/poll.hpp                   | 1 +
 src/poller.hpp                 | 1 +
 src/poller_base.cpp            | 1 +
 src/poller_base.hpp            | 1 +
 src/pub.cpp                    | 1 +
 src/pub.hpp                    | 1 +
 src/pull.cpp                   | 1 +
 src/pull.hpp                   | 1 +
 src/push.cpp                   | 1 +
 src/push.hpp                   | 1 +
 src/random.cpp                 | 1 +
 src/random.hpp                 | 1 +
 src/reaper.cpp                 | 1 +
 src/reaper.hpp                 | 1 +
 src/rep.cpp                    | 1 +
 src/rep.hpp                    | 1 +
 src/req.cpp                    | 1 +
 src/req.hpp                    | 1 +
 src/select.cpp                 | 1 +
 src/select.hpp                 | 1 +
 src/session_base.cpp           | 1 +
 src/session_base.hpp           | 1 +
 src/signaler.cpp               | 1 +
 src/signaler.hpp               | 1 +
 src/socket_base.cpp            | 1 +
 src/socket_base.hpp            | 1 +
 src/stdint.hpp                 | 1 +
 src/stream_engine.cpp          | 1 +
 src/stream_engine.hpp          | 1 +
 src/sub.cpp                    | 1 +
 src/sub.hpp                    | 1 +
 src/tcp_address.cpp            | 1 +
 src/tcp_address.hpp            | 1 +
 src/tcp_connecter.cpp          | 1 +
 src/tcp_connecter.hpp          | 1 +
 src/tcp_listener.cpp           | 1 +
 src/tcp_listener.hpp           | 1 +
 src/thread.cpp                 | 1 +
 src/thread.hpp                 | 1 +
 src/trie.cpp                   | 1 +
 src/trie.hpp                   | 1 +
 src/vtcp_connecter.cpp         | 1 +
 src/vtcp_connecter.hpp         | 1 +
 src/vtcp_listener.cpp          | 1 +
 src/vtcp_listener.hpp          | 1 +
 src/windows.hpp                | 1 +
 src/wire.hpp                   | 1 +
 src/xpub.cpp                   | 1 +
 src/xpub.hpp                   | 1 +
 src/xrep.cpp                   | 1 +
 src/xrep.hpp                   | 1 +
 src/xreq.cpp                   | 1 +
 src/xreq.hpp                   | 1 +
 src/xsub.cpp                   | 1 +
 src/xsub.hpp                   | 1 +
 src/ypipe.hpp                  | 1 +
 src/yqueue.hpp                 | 1 +
 src/zmq.cpp                    | 1 +
 src/zmq_utils.cpp              | 1 +
 tests/test_hwm.cpp             | 1 +
 tests/test_invalid_rep.cpp     | 1 +
 tests/test_pair_inproc.cpp     | 1 +
 tests/test_pair_ipc.cpp        | 1 +
 tests/test_pair_tcp.cpp        | 1 +
 tests/test_reqrep_device.cpp   | 1 +
 tests/test_reqrep_drop.cpp     | 1 +
 tests/test_reqrep_inproc.cpp   | 1 +
 tests/test_reqrep_ipc.cpp      | 1 +
 tests/test_reqrep_tcp.cpp      | 1 +
 tests/test_shutdown_stress.cpp | 1 +
 tests/test_sub_forward.cpp     | 1 +
 tests/test_timeo.cpp           | 1 +
 tests/testutil.hpp             | 1 +
 148 files changed, 148 insertions(+)

commit 4b832ea37410035bba7b85e5e9988af8eda648c2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 31 15:56:39 2011 +0100

    Revert the early dropping of request and replies for disconnected clients

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 4 +++-
 src/xreq.cpp | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 9227c389331c26d24e515bdd46867013f0cbd641
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 31 15:51:11 2011 +0100

    ROUTER and DEALER are aliases for XREP and XREQ

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 3 +++
 1 file changed, 3 insertions(+)

commit dee8b2360ac0084165401dd61fc485226402124d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 31 15:44:42 2011 +0100

    New style ROUTER socket removed.

    Signed-off-by: Martin Sustrik <sustrik@turist.(none)>

 include/zmq.h        |   1 -
 src/Makefile.am      |   2 -
 src/router.cpp       | 285 ---------------------------------------------------
 src/router.hpp       | 123 ----------------------
 src/session_base.cpp |   5 -
 src/socket_base.cpp  |   4 -
 6 files changed, 420 deletions(-)

commit 541b83bc02784c721efa3d9dde8f8a191c3c3b7b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 29 14:49:08 2011 +0200

    Perry Kundert added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 09574a6104ce824c43fe8261d31451ccb337d11b
Author: Perry Kundert <perry@kundert.ca>
Date:   Sat Oct 29 14:47:53 2011 +0200

    Corrected discarding of remainder of message when request ID invalid

    When zmq::req_t::xrecv detects that a response has no request ID
    label, or the ID is the wrong size, it would return an EAGAIN, but
    would not discard the remainder of the message.  This could allow the
    remainder of the message to incorrectly "leak" into a future response,
    if it is crafted to look like a reply with a valid response ID.
    Discard all remaining message blocks, if the ID is invalid in any way.

 src/req.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 52bab42212c263a51b219dp8714c481bc948cb4e
Author: Bernd Prager <bernd@prager.ws>
Date:   Thu Oct 27 17:11:28 2011 +0200

    Missing bracket added

    Signed-off: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9b3e61a178af5c5e373c701a11697051c4c9a50a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 27 14:02:57 2011 +0200

    Ben Gray added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 9e000c8f26c99656dd967a8d15997b879af5817b
Author: Ben Gray <ben@benjamg.com>
Date:   Thu Oct 27 13:59:54 2011 +0200

    Patch for issue LIBZMQ-275. Dealing with VSM in distribution when pipes fail to write.

    Signed-off-by: Ben Gray <ben@benjamg.com>

 src/dist.cpp | 10 ++++++++++
 src/msg.cpp  |  6 ++++++
 src/msg.hpp  |  1 +
 3 files changed, 17 insertions(+)

commit 68ab5f87edd2436757ab92b22238a5a4114d7b0d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 27 11:51:23 2011 +0200

    Paul Betts added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 1b706ac02858dpe4c960331dc7100f8c14312848
Author: Paul Betts <paul@paulbetts.org>
Date:   Thu Oct 27 11:48:58 2011 +0200

    Enable exceptions raising on assert on Win32

    This patch changes the Win32 version to call RaiseException instead of abort
    (which eventually calls TerminateProcess). This allows crash dumps to be sent
    correctly instead of the process disappearing.

    Signed-off-by: Paul Betts <paul@paulbetts.org>

 src/err.cpp | 13 +++++++++++++
 src/err.hpp | 26 ++++++++++++++------------
 2 files changed, 27 insertions(+), 12 deletions(-)

commit a8362abf11b51dd553766fb07a9e60f28e788126
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 27 11:21:01 2011 +0200

    Enable exceptions raising on assert on Win32

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/err.cpp | 13 +++++++++++++
 src/err.hpp | 26 ++++++++++++++------------
 2 files changed, 27 insertions(+), 12 deletions(-)

commit a70bea01cc9c81a59d0b7067e8854fc9777f5757
Merge: 81da391e b3cda2ad
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 27 10:37:31 2011 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit b3cda2ad6091096264f777a95907050edfdd3ffe
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 27 09:41:48 2011 +0200

    Bug in kqueue poller fixed (issue 261)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/kqueue.cpp | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

commit 6c1b50cfab1529e866e40c037ce1be7027423af0
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Oct 26 11:26:00 2011 +0200

    Added compile-time test for SOCK_CLOEXEC

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 22 ++++++++++++++++++++++
 configure.in |  5 +++++
 src/ip.cpp   |  4 ++--
 3 files changed, 29 insertions(+), 2 deletions(-)

commit d31792e652cc9fd3bc84e2abd89f232d273b7ede
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 6 13:12:49 2011 +0200

    Default HWMs are set to 1000

    This patch is meant to prevent users from running out of memory
    when using 0MQ in the default configuration.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 8 ++------
 doc/zmq_setsockopt.txt | 8 ++------
 src/options.cpp        | 4 ++--
 3 files changed, 6 insertions(+), 14 deletions(-)

commit f5f1a8b1841f04fc9db5df3eb669d76513687065
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Oct 4 09:39:55 2011 +0200

    New upstream OpenPGM maintenance release 5.1.118.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 configure.in                               |   2 +-
 foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz | Bin 1054630 -> 0 bytes
 foreign/openpgm/libpgm-5.1.118~dfsg.tar.gz | Bin 0 -> 1046589 bytes
 3 files changed, 1 insertion(+), 1 deletion(-)

commit cc5d31605fddc9888f3b30933fbd4ec3272299ab
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Oct 4 09:32:02 2011 +0200

    Re-add PGM rate limiting

    It was accidently lost in commit fcfad5682e, equivalent
    to commits 2ddb106 & b62dd40 in version 2.1.  Changes semantics
    from TXW_MAX_RATE to ODATA_MAX_RATE.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/pgm_socket.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 81da391e7e6ee12a2607289a1adp16c400e7025e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 29 14:47:41 2011 +0200

    Use single port for creating signalers on Windows

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/config.hpp   |  6 +++++-
 src/signaler.cpp | 23 +++++++++++++++++------
 2 files changed, 22 insertions(+), 7 deletions(-)

commit 7a10bbe77a31158da0573031f8d6a50812262858
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 29 11:35:31 2011 +0200

    Bug in subscription matching fixed (issue 263)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mtrie.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 34b114d15d8e4bd784014189eb7204e88b06da61
Author: Jon Dyte <jon@totient.co.uk>
Date:   Thu Sep 29 09:07:03 2011 +0200

    Make sure new ROUTER socket honours POLLIN for cmd messages

    Signed-off-by: Jon Dyte <jon@totient.co.uk>

 src/router.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8485a5e5a4cdcb5cec800279f874c8579d246940
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 28 08:03:14 2011 +0200

    Assert fixed in XREP & ROUTER  when sending to terminating pipe (issue 258)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/router.cpp | 5 +++--
 src/xrep.cpp   | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

commit d726120e60e3db332ed26c2106c65271f4d8fba4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 26 14:02:31 2011 +0200

    Bug in matching algorithm fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mtrie.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 25cc25e9ad51f38fa8e1a78a798b2d54e270dad2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 18 10:19:08 2011 +0200

    MSVC build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e170136a2e00eec2e786441cdc090c3b00a8fbd4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 16 16:34:28 2011 +0200

    More bugs in mtrie fixed

    Aside of fixing couple of corner cases this patch turns the 'match'
    function in mtrie from recursive to iterative.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mtrie.cpp | 49 ++++++++++++++++++++++++++-----------------------
 src/mtrie.hpp |  2 --
 2 files changed, 26 insertions(+), 25 deletions(-)

commit 5936379b292dec79efd3a1eaa7cafdp4fc6d675a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 16 15:02:52 2011 +0200

    Bug in mtrie fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mtrie.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 06bdf2c4f96a6324b3fe667cebb03d44cd100a73
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 16 09:29:43 2011 +0200

    Check message syntax in REQ asynchronously

    This patch adds support for checking messages as they arrive
    (as opposed to when they are recv'd by the user) and drop
    the connection if they are malformed.

    It also uses this new feature to check for validity of inbound
    messages in REQ socket.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/decoder.cpp      |  9 ++++++++-
 src/decoder.hpp      |  8 ++++++++
 src/encoder.cpp      | 10 +++++++++-
 src/encoder.hpp      |  9 +++++++++
 src/req.cpp          | 20 ++++++++++++++++++++
 src/req.hpp          |  8 ++++++++
 src/session_base.cpp | 20 ++++++++++----------
 src/session_base.hpp |  4 ++--
 8 files changed, 74 insertions(+), 14 deletions(-)

commit f78d9b6bfca13e298c29fadabbbc870b37a0a573
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 15 10:00:23 2011 +0200

    Session class separated into socket-type-specific sessions

    This is a preliminary patch allowing for socket-type-specific
    functionality in the I/O thread. For example, message format
    can be checked asynchronously and misbehaved connections dropped
    straight away.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am                       |   4 +-
 src/decoder.cpp                       |   4 +-
 src/decoder.hpp                       |   4 +-
 src/encoder.cpp                       |   4 +-
 src/encoder.hpp                       |   4 +-
 src/i_engine.hpp                      |   2 +-
 src/ipc_connecter.cpp                 |   2 +-
 src/ipc_connecter.hpp                 |   4 +-
 src/ipc_listener.cpp                  |   8 +--
 src/object.cpp                        |   6 +-
 src/object.hpp                        |   2 +-
 src/pair.cpp                          |  12 ++++
 src/pair.hpp                          |  16 +++++
 src/pgm_receiver.cpp                  |   5 +-
 src/pgm_receiver.hpp                  |   5 +-
 src/pgm_sender.cpp                    |   4 +-
 src/pgm_sender.hpp                    |   3 +-
 src/pub.cpp                           |  12 ++++
 src/pub.hpp                           |  15 +++++
 src/pull.cpp                          |  12 ++++
 src/pull.hpp                          |  16 +++++
 src/push.cpp                          |  12 ++++
 src/push.hpp                          |  16 +++++
 src/rep.cpp                           |  12 ++++
 src/rep.hpp                           |  15 +++++
 src/req.cpp                           |  11 ++++
 src/req.hpp                           |  15 +++++
 src/router.cpp                        |  10 +++
 src/router.hpp                        |  16 +++++
 src/{session.cpp => session_base.cpp} | 116 ++++++++++++++++++++++++++++------
 src/{session.hpp => session_base.hpp} |  27 +++++---
 src/socket_base.cpp                   |   8 +--
 src/stream_engine.cpp                 |   5 +-
 src/stream_engine.hpp                 |   7 +-
 src/sub.cpp                           |  12 ++++
 src/sub.hpp                           |  15 +++++
 src/tcp_connecter.cpp                 |   2 +-
 src/tcp_connecter.hpp                 |   4 +-
 src/tcp_listener.cpp                  |   8 +--
 src/vtcp_connecter.cpp                |   2 +-
 src/vtcp_connecter.hpp                |   4 +-
 src/vtcp_listener.cpp                 |   6 +-
 src/xpub.cpp                          |  12 ++++
 src/xpub.hpp                          |  16 +++++
 src/xrep.cpp                          |  10 +++
 src/xrep.hpp                          |  16 +++++
 src/xreq.cpp                          |  12 ++++
 src/xreq.hpp                          |  16 +++++
 src/xsub.cpp                          |  11 ++++
 src/xsub.hpp                          |  16 +++++
 50 files changed, 494 insertions(+), 82 deletions(-)

commit 78b02d142e82015a2146b7d40f7e0a729ad0e89b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 14 15:16:48 2011 +0200

    Minor optimisation in message distribution algorithm

    If several of the outbound pipes become passive while sending
    a single message, the refcount on the message is adjusted
    once only, not multiple times. It's an atomic operation so
    the cost is not negligible.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit cf499ee016340a8534e24084a481a02498b44e70
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 14 14:31:09 2011 +0200

    Bug in message distribution algorithm fixed (issue 251)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 42737f09180b8ebc2827743568e6170b6ddd5938
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 14 14:24:59 2011 +0200

    test_invlid_rep added to .gitignore

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 8f8bfcaba0f0e827a2d034c76c5b498bbdf4e7e1
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Tue Sep 13 16:27:07 2011 +0200

    Fixed issue with req assertions (issue 252)

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/req.cpp                |  9 +++--
 tests/Makefile.am          |  4 ++-
 tests/test_invalid_rep.cpp | 85 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 95 insertions(+), 3 deletions(-)

commit e191e806ead4e8954e03612a4b385aff40871272
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Tue Sep 6 08:51:23 2011 +0200

    Fix polling system detection on mingw32 build

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 9d0e122bfad431d7b84ad43c0c62c8ebc9540a36
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sun Sep 4 10:28:15 2011 +0200

    Added option to choose internal polling system

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.in |   4 ++
 2 files changed, 169 insertions(+)

commit 193fa1c079fd886623e55810556a9461561ca139
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 3 10:19:08 2011 +0200

    Accept square brackets around IPv6 address

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_address.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 4138aca54bd57d42acdbe7c7af0f7045ecc36e1e
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Sep 3 09:02:56 2011 +0200

    Fixed doc to clarify how label parts work

    Signed-off-by: Pieter Hintjens <ph@imatix.com>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 39 +++++++++++++------------
 doc/zmq_recv.txt       | 28 +++++++++---------
 doc/zmq_recvmsg.txt    | 42 +++++++++++++--------------
 doc/zmq_send.txt       | 37 ++++++++++++------------
 doc/zmq_sendmsg.txt    | 38 ++++++++++++-------------
 doc/zmq_socket.txt     | 77 ++++++++++++++++++++++++++++++++------------------
 6 files changed, 140 insertions(+), 121 deletions(-)

commit 9fb9fea63351cff0e664b28636acb3c3e1f84721
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 3 07:40:49 2011 +0200

    Improve error reporting in a minor way

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp |  2 +-
 src/xrep.cpp          | 29 +++++++++++++++--------------
 2 files changed, 16 insertions(+), 15 deletions(-)

commit 8b7ac4c2a9c3ede95d6f5f9717a1939a23788964
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 2 15:34:12 2011 +0200

    Close file descriptors on exec (issue 218)

    When exec is executed to start a different process image old
    0MQ file descriptors could stay open, thus blocking TCP ports
    and alike. This patch should solve the problem.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp            | 23 +++++++++++++++++++++++
 src/ip.hpp            |  3 +++
 src/ipc_connecter.cpp |  2 +-
 src/ipc_listener.cpp  |  3 ++-
 src/signaler.cpp      |  6 +++---
 src/tcp_address.cpp   |  5 +++--
 src/tcp_connecter.cpp |  2 +-
 src/tcp_listener.cpp  |  2 +-
 8 files changed, 37 insertions(+), 9 deletions(-)

commit 2910a728dc777068e6dp7f67041da185b0865171
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 2 13:44:22 2011 +0200

    msg_t::rm_refs closes the message when number of refs drops to 0 (issue 245)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/msg.cpp | 18 +++++++++++++-----
 src/msg.hpp |  5 +++--
 2 files changed, 16 insertions(+), 7 deletions(-)

commit 82ab08d871628410e8b0b1fe63d25f1b27766b8d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 1 13:02:22 2011 +0200

    Premature deallocation bug in XSUB fixed (issue 244)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xsub.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 65bb75863dde3ecd9a19d7fafc1ad1b0166a4770
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 1 07:26:17 2011 +0200

    Fixed warnings on Win64

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp        | 2 +-
 src/socket_base.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 940c5b346b35f2d42360b3371757eb98ef8ba78f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Aug 31 15:23:00 2011 +0200

    zmq_msg_t changed to structure

    zmq_msg_t being defined as unsigned char[32] could not be stored
    in STL containers. Fixed by this commit.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dd7c629a27e6dffad9c659a233216ce56fbd4ef8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Aug 19 14:42:31 2011 +0200

    Typo fixed in zmq_socket(3)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_socket.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 80a5f60e3397c9376026da48e6415c7011e2a647
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Aug 19 12:34:31 2011 +0200

    NIC name resolution moved to tcp_address_t

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_address.cpp | 32 ++++++++++++++------------------
 src/tcp_address.hpp |  4 ++--
 2 files changed, 16 insertions(+), 20 deletions(-)

commit f0c7edbc9c39ec3a6d06a9605a376212c2228fc7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 18 21:16:22 2011 +0200

    Missing include added to ip.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 898ee99dc16bbd494cabd7e09efac120d79990d7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 18 17:58:46 2011 +0200

    Windows build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 8 ++++++++
 src/tcp_address.cpp              | 7 +++++--
 src/tcp_address.hpp              | 8 ++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

commit b6ecb00d23af3611da98d98f28e1c2583d428e00
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 18 17:40:42 2011 +0200

    TCP address related functionality moved to tcp_address_t

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am        |   2 +
 src/ip.cpp             | 369 +-----------------------------------------
 src/ip.hpp             |  32 ----
 src/tcp_address.cpp    | 422 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/tcp_address.hpp    |  68 ++++++++
 src/tcp_connecter.cpp  |  12 +-
 src/tcp_connecter.hpp  |   7 +-
 src/tcp_listener.cpp   |  19 +--
 src/tcp_listener.hpp   |   7 +-
 src/vtcp_connecter.cpp |  10 +-
 src/vtcp_connecter.hpp |   7 +-
 11 files changed, 522 insertions(+), 433 deletions(-)

commit 4a8dd1e404c78fb403763d830190755d2ac83228
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 18 11:24:14 2011 +0200

    MSVC build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 8 ++++++++
 src/ipc_address.cpp              | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

commit b01a8e17511b57191c4dpc4d741bdf3b3a80efc6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 18 11:08:22 2011 +0200

    IPC address related functionality refactored into ipc_address_t class

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am       |  2 ++
 src/ip.cpp            | 24 --------------------
 src/ip.hpp            |  4 ----
 src/ipc_address.cpp   | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ipc_address.hpp   | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ipc_connecter.cpp |  9 ++------
 src/ipc_connecter.hpp |  7 +++---
 src/ipc_listener.cpp  | 16 +++++++-------
 src/ipc_listener.hpp  | 12 +++++-----
 9 files changed, 142 insertions(+), 53 deletions(-)

commit 3488af048f336867594330d4abd0ad6dab110ea0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Aug 17 18:41:02 2011 +0200

    Fix the PGM support on win64

    On win64 the size of file descriptor is not the same as size of int.
    The bug in PGM transport caused a runtime error because of this.
    The problem is fixed now.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_receiver.cpp | 4 ++--
 src/pgm_sender.cpp   | 8 ++++----
 src/pgm_socket.cpp   | 8 ++++----
 src/pgm_socket.hpp   | 7 ++++---
 4 files changed, 14 insertions(+), 13 deletions(-)

commit ed373450a28cff34757a70e2c7a102ecc40e3836
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 16 12:59:49 2011 +0200

    MSVC build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit b3bac1760735703a11297df3d0e2a2e5252aa45e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 16 12:44:34 2011 +0200

    tcp_engine renamed to stream engine

    The engine was not used exclusively for TCP connections.
    Rather it was used to handle any socket with SOCK_STREAM
    semantics. The class was renamed to reflect its true function.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am                           |  4 ++--
 src/ipc_connecter.cpp                     |  4 ++--
 src/ipc_listener.cpp                      |  4 ++--
 src/{tcp_engine.cpp => stream_engine.cpp} | 26 +++++++++++++-------------
 src/{tcp_engine.hpp => stream_engine.hpp} | 17 ++++++++++-------
 src/tcp_connecter.cpp                     |  4 ++--
 src/tcp_listener.cpp                      |  4 ++--
 src/vtcp_connecter.cpp                    |  4 ++--
 src/vtcp_listener.cpp                     |  4 ++--
 9 files changed, 37 insertions(+), 34 deletions(-)

commit 41457e1ff12dffb62e2dc98cec0be2c5deb79207
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 15 22:02:15 2011 +0200

    Semaphores are not used anymore, build system is adjusted accordingly

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in | 3 ---
 1 file changed, 3 deletions(-)

commit 714d3b288f3c92f1736a9e35d4f177bbef84c003
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 15 20:39:48 2011 +0200

    EAFNOSUPPORT defined on Windows platform

    Windows headers don't defined this error.
    This patch defines it if not already defined.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 3 +++
 src/err.cpp   | 3 +++
 2 files changed, 6 insertions(+)

commit 85851d312771f043263257bcf972bd11cadec50a
Author: Ghislain Putois <ghpu@infonie.fr>
Date:   Mon Aug 15 19:39:21 2011 +0200

    Preliminary Android support

    Some small changes to prepare a cross-compilation for the Android platform

    Signed-off-by: Ghislain Putois <ghpu@infonie.fr>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS        | 1 +
 src/ip.cpp     | 7 ++++---
 src/thread.cpp | 6 +++---
 3 files changed, 8 insertions(+), 6 deletions(-)

commit 0354d4d37fe814b9dbb94415da2c5314c4b68dp6
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Aug 15 19:09:04 2011 +0200

    Added Android support

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 configure.in | 6 ++++++
 src/zmq.cpp  | 3 +++
 2 files changed, 9 insertions(+)

commit 57440b86e2c62c78f3904abb17f11500ba0a1a6f
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Aug 15 08:56:00 2011 +0200

    Add IPv6 support to tcp_listener

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp            | 17 +++++++++++++++++
 src/ip.hpp            |  3 +++
 src/tcp_connecter.cpp | 21 ++++-----------------
 src/tcp_listener.cpp  | 19 +++++++++++++++++++
 4 files changed, 43 insertions(+), 17 deletions(-)

commit 3c3c0bfd1f5b987ee42786de25259c46393fe343
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 15 08:02:36 2011 +0200

    Minor problems in MSVC build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp | 3 ++-
 src/tcp_listener.cpp  | 3 ++-
 src/zmq.cpp           | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

commit 9196c482564e74e310b48e1add9f5425efb07ec0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 14 14:23:16 2011 +0200

    select version zmq_poll reports invalid FDs

    Till now, passing invalid file descriptor to zmq_poll()
    caused asseration. Now it returns error.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit 938009853461267af43908614266b9ef33f825ff
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 14 14:06:42 2011 +0200

    Compilation error on HP-UX and AIX fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6dc3b2a657d4d1c98f549395643d68b834a776a4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 14 13:48:28 2011 +0200

    Compilation error on FreeBSD fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a3f27400ded11fa14df98943cc412635d7d175ee
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 8 18:49:30 2011 +0200

    Minor compile-time bug on Windows fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1c54ce37b343bda66d25faaa970a5414546cdd92
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Aug 8 16:07:54 2011 +0200

    tcp_connecter disables IPV6_IPV6ONLY if needed.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit c27b9ac7defd3cf7d21d93b2a3d2a9142a12e82f
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Aug 8 15:23:46 2011 +0200

    Update resolve_ip_interface and resolve_ip_hostname with ipv4only parameter.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp             | 64 ++++++++++++++++++++++++++++++++++++--------------
 src/ip.hpp             |  4 ++--
 src/tcp_connecter.cpp  |  2 +-
 src/tcp_listener.cpp   |  2 +-
 src/vtcp_connecter.cpp |  6 +++--
 5 files changed, 54 insertions(+), 24 deletions(-)

commit 9184a54f6497fb075a9ac7a8b1b7f3e284c9bcd3
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Aug 8 12:39:13 2011 +0200

    Update resolve_nic_name to take more generic sockaddr parameter.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/ip.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 52 insertions(+), 21 deletions(-)

commit 784041f5b99ba28252c9bb67a5bfb4a5da41ef93
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Aug 8 12:10:31 2011 +0200

    ZMQ_IPV4ONLY option added

    At this point option exists, is documented and can be set,
    however, it has no effect.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 15 +++++++++++++++
 doc/zmq_setsockopt.txt | 14 ++++++++++++++
 doc/zmq_tcp.txt        |  6 +++---
 include/zmq.h          |  3 ++-
 src/options.cpp        | 25 +++++++++++++++++++++++++
 src/options.hpp        |  5 +++++
 6 files changed, 64 insertions(+), 4 deletions(-)

commit 8378180cbb69c44fdd84f9ee05620bf8744cce48
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 7 16:09:52 2011 +0200

    Minor bug in vtcp_listener fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/vtcp_listener.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 24230515f5b1652186af7748268f1cfb27f5215f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 4 13:11:15 2011 +0200

    vtcp connection string simplified

    Till now, vtcp connection contained both port and subport.
    Now the port, if not specified, defaults to 9220.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/vtcp_connecter.cpp | 28 ++++++++++++++++++++--------
 src/vtcp_listener.cpp  | 16 ++++++++++------
 2 files changed, 30 insertions(+), 14 deletions(-)

commit be48970977305a53de3ffa54cc51c0beabcf1a31
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 4 07:44:35 2011 +0200

    MSVC build brought up-to-date

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 96 +++++++++++++++++-----------------------
 src/tcp_listener.cpp             |  2 +-
 2 files changed, 41 insertions(+), 57 deletions(-)

commit d5f3628ad08849a0c978f7d23dc678133ed33c42
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 29 09:37:43 2011 +0200

    Different connecters simplified

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp            |  31 +++++++++
 src/ip.hpp            |   8 +--
 src/ipc_connecter.cpp | 174 +++++-------------------------------------------
 src/ipc_connecter.hpp |   7 ++
 src/signaler.cpp      |  20 +-----
 src/tcp_connecter.cpp | 179 +++++++++++---------------------------------------
 src/tcp_connecter.hpp |   2 +-
 src/tcp_engine.cpp    |  27 ++------
 8 files changed, 108 insertions(+), 340 deletions(-)

commit f63db009a1e1baf9f1fe7ddp39901c7449c66131
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 28 16:32:08 2011 +0200

    Different listener implementations simplified

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ipc_listener.cpp  |  63 +++---------------
 src/tcp_listener.cpp  | 175 ++++++++++++--------------------------------------
 src/tcp_listener.hpp  |   2 +-
 src/vtcp_listener.cpp |   2 +-
 4 files changed, 53 insertions(+), 189 deletions(-)

commit b45fec337aff8e04bebaf6e898a499f05ee6b0d6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 28 15:13:04 2011 +0200

    Tuning of TCP sockets is done at a single place

    Instead of being spread throughout the codebase, the tuning
    is done in tune_tcp_socket() function.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp             | 24 ++++++++++++++++++++++++
 src/ip.hpp             |  7 ++++++-
 src/tcp_connecter.cpp  | 22 ++--------------------
 src/tcp_listener.cpp   | 21 ++-------------------
 src/vtcp_connecter.cpp |  4 +++-
 src/vtcp_listener.cpp  |  3 +++
 6 files changed, 40 insertions(+), 41 deletions(-)

commit 46b053b8d67ba4826302d53268edccf919e6d785
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 28 13:46:16 2011 +0200

    Dead code removed from TCP and IPC transports

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ipc_listener.cpp | 208 ++++++++-------------------------------------------
 src/ipc_listener.hpp |   9 ++-
 src/session.cpp      |   2 +
 src/socket_base.cpp  |   6 +-
 src/tcp_listener.cpp | 130 +++++++++-----------------------
 src/tcp_listener.hpp |   2 +-
 6 files changed, 82 insertions(+), 275 deletions(-)

commit 5ac63140b01fed145fa41f613308e134420920ab
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 28 13:19:55 2011 +0200

    Implementations of TCP and IPC transports separated

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am       |   4 +
 src/ipc_connecter.cpp | 381 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ipc_connecter.hpp | 112 +++++++++++++++
 src/ipc_listener.cpp  | 351 ++++++++++++++++++++++++++++++++++++++++++++++
 src/ipc_listener.hpp  |  83 +++++++++++
 src/session.cpp       |  16 ++-
 src/socket_base.cpp   |  16 ++-
 src/tcp_connecter.cpp |  46 +++---
 src/tcp_connecter.hpp |   4 +-
 src/tcp_engine.cpp    |  20 ---
 src/tcp_listener.cpp  |  20 +++
 11 files changed, 1008 insertions(+), 45 deletions(-)

commit 6e987428d49558a8a7b08795bcc429f720bb3874
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 28 09:02:54 2011 +0200

    Precise reconnect interval randomised

    Till now the random fraction of the reconnect interval was
    computed based on process ID. This patch uses pseudo-random
    generated (seeded by exact time of when the process was
    started) to compute the interval.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp  | 9 ++-------
 src/vtcp_connecter.cpp | 9 ++-------
 2 files changed, 4 insertions(+), 14 deletions(-)

commit ce7a9a58e3a0d13db53f7e0b4c17b3185a8c0e1a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 28 08:06:21 2011 +0200

    Setting TCP socket options moved to tcp_engine_t

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp  |  20 -----
 src/tcp_engine.cpp     | 198 +++++++++++++++++++++++++------------------------
 src/tcp_engine.hpp     |   6 --
 src/tcp_listener.cpp   |  42 -----------
 src/vtcp_connecter.cpp |  27 -------
 5 files changed, 103 insertions(+), 190 deletions(-)

commit 588c728702fb847a0433649c9a07bcf0fabe84ab
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jul 27 09:29:48 2011 +0200

    vtcp_connecter fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/vtcp_connecter.cpp | 56 +++++++++++++++++++++++++++++++++++---------------
 1 file changed, 39 insertions(+), 17 deletions(-)

commit d7319de3d089b7c340408cd8228825ec0f7b8df0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 26 22:57:19 2011 +0200

    First version of vtcp_connecter added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am        |   2 +
 src/session.cpp        |  13 +++
 src/tcp_connecter.hpp  |   3 -
 src/vtcp_connecter.cpp | 249 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/vtcp_connecter.hpp | 121 ++++++++++++++++++++++++
 src/vtcp_listener.cpp  |  13 ++-
 6 files changed, 394 insertions(+), 7 deletions(-)

commit 258e7e6794928544ca7e1557840b2f5a89fe5399
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 26 20:13:54 2011 +0200

    Code cleanup

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore            |  2 ++
 src/Makefile.am       |  2 --
 src/tcp_connecter.cpp | 46 ----------------------------------------------
 3 files changed, 2 insertions(+), 48 deletions(-)

commit 279302c5f54ddf8a23b1eaacee63c3158850d9ff
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 26 18:35:40 2011 +0200

    Experimental VTCP listener added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in          |  13 ++++++
 src/Makefile.am       |   4 ++
 src/socket_base.cpp   |  71 +++++++++++++++++++++-----------
 src/tcp_connecter.cpp |  46 +++++++++++++++++++++
 src/tcp_connecter.hpp |  12 +++---
 src/tcp_listener.cpp  |   1 +
 src/vtcp_listener.cpp | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/vtcp_listener.hpp |  71 ++++++++++++++++++++++++++++++++
 8 files changed, 300 insertions(+), 29 deletions(-)

commit 9906c652ca01698dcc429c9045eb040c24c4bb8d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 26 12:21:49 2011 +0200

    Outdated entries removed from .gitignore

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore | 4 ----
 1 file changed, 4 deletions(-)

commit 9119b4fd7b292b1a14db916040f8e7cc4731d4b6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 26 00:43:57 2011 +0200

    TCP transport classes simplified

    zmq_engine and tcp_socket merged into tcp_engine
    zmq_connecter and tcp_connecter merged into tcp_connecter
    zmq_listener and tcp_listener merged into tcp_listener

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am                        |  10 +-
 src/session.cpp                        |   4 +-
 src/socket_base.cpp                    |   6 +-
 src/tcp_connecter.cpp                  | 182 +++++++++++----
 src/tcp_connecter.hpp                  |  68 ++++--
 src/tcp_engine.cpp                     | 401 +++++++++++++++++++++++++++++++++
 src/{zmq_engine.hpp => tcp_engine.hpp} |  39 +++-
 src/tcp_listener.cpp                   | 127 ++++++-----
 src/tcp_listener.hpp                   |  36 +--
 src/tcp_socket.cpp                     | 230 -------------------
 src/tcp_socket.hpp                     |  74 ------
 src/zmq_connecter.cpp                  | 161 -------------
 src/zmq_connecter.hpp                  |  92 --------
 src/zmq_engine.cpp                     | 224 ------------------
 src/zmq_listener.cpp                   |  84 -------
 src/zmq_listener.hpp                   |  67 ------
 16 files changed, 727 insertions(+), 1078 deletions(-)

commit 43b5b3444c5ea54fa17eab2e03b7e00c022f33b4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 24 18:30:48 2011 +0200

    PGM subscription forwarding fixed

    PGM when using in XPUB socket has to subscribe for all the messages
    as it has no idea what the subscribers are interesred in.
    This generic subscribe message was malformed. Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_sender.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 7c1dca546d9e49e7af372e4fff9e6a87058a7f12
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 24 18:25:30 2011 +0200

    Session classes merged into a single class

    Removal of ZMQ_IDENTITY resulted in various session classes doing
    almost the same thing. This patch merges the classes into a single
    class.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am           |   4 --
 src/connect_session.cpp   | 124 ----------------------------------------------
 src/connect_session.hpp   |  65 ------------------------
 src/decoder.cpp           |  10 ++--
 src/decoder.hpp           |   4 +-
 src/encoder.cpp           |  10 ++--
 src/encoder.hpp           |   4 +-
 src/i_engine.hpp          |  21 +-------
 src/pgm_receiver.cpp      |  17 ++++---
 src/pgm_receiver.hpp      |   4 +-
 src/pgm_sender.cpp        |  11 ++--
 src/pgm_sender.hpp        |   2 +-
 src/session.cpp           |  99 ++++++++++++++++++++++++++++++------
 src/session.hpp           |  36 +++++++-------
 src/socket_base.cpp       |   6 +--
 src/transient_session.cpp |  43 ----------------
 src/transient_session.hpp |  52 -------------------
 src/zmq_engine.cpp        |  51 ++++++++++---------
 src/zmq_engine.hpp        |   9 ++--
 src/zmq_listener.cpp      |   6 +--
 20 files changed, 170 insertions(+), 408 deletions(-)

commit f716b571baf59c1b622c7666bb8bf2905126a3d4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 24 18:13:29 2011 +0200

    Only one polling mechanism is compiled

    Till now wrappers for all the polling mechanisms available on
    the given platform were compiled, although only one of them
    was used. This patch compiles just the used one. This can
    make libzmq binary more concise.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/devpoll.cpp |  5 ++---
 src/devpoll.hpp |  8 +++++---
 src/epoll.cpp   |  5 ++---
 src/epoll.hpp   |  8 +++++---
 src/kqueue.cpp  |  8 ++------
 src/kqueue.hpp  |  9 +++++----
 src/poll.cpp    |  9 ++-------
 src/poll.hpp    | 12 +++++------
 src/poller.hpp  | 62 ++++++++++++++++++++++++++++++++-------------------------
 src/select.cpp  |  5 ++++-
 src/select.hpp  |  7 +++++++
 11 files changed, 74 insertions(+), 64 deletions(-)

commit 0e71b111f4c413e235978698e8a281acab3bb06e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 24 18:09:50 2011 +0200

    Obsolete include in ctx.hpp removed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ctx.hpp | 1 -
 1 file changed, 1 deletion(-)

commit 11e21d027d5143c089e39349d1f419f76aaa4723
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 24 18:06:04 2011 +0200

    semaphore_t class removed

    The class was not used anywhere anymore. Removed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am   |   1 -
 src/ctx.hpp       |   2 -
 src/semaphore.hpp | 189 ------------------------------------------------------
 3 files changed, 192 deletions(-)

commit 837451eddc4386e19f52db89be7dp38adp471df0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 24 17:50:05 2011 +0200

    Remove blob_t class

    The class was used in a single place. Replaced by a local typedef.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am         |  1 -
 src/blob.hpp            | 34 ----------------------------------
 src/connect_session.hpp |  1 -
 src/xpub.hpp            |  3 ++-
 4 files changed, 2 insertions(+), 37 deletions(-)

commit 5650743d9edc8b8e85739ab023e8156b451003f1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 22 08:35:01 2011 +0200

    MSVC build brought up to date

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 36 ------------------------------------
 src/zmq.cpp                      |  2 +-
 2 files changed, 1 insertion(+), 37 deletions(-)

commit 75c4e0e62be6bd34fb934b9f13de68ffd655c500
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 21 23:35:26 2011 +0200

    mailbox::recv correctly passes EINTR to the caller

    This bug caused signal during blocking call to assert.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mailbox.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4bd335932ce8c6457dddb7aa2a5e631974eb9b61
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 21 19:14:39 2011 +0200

    ECANTROUTE error documented in zmq_sendmsg(3)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_sendmsg.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 6b873d4ffdd13263f184ca046565168f0ad66a6b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 21 19:12:51 2011 +0200

    ROUTER socket blocks on SNDHWM

    Till now the message was droppen in such case.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/router.cpp | 60 +++++++++++++++++++++++++++++++---------------------------
 1 file changed, 32 insertions(+), 28 deletions(-)

commit a1e09facb2438f6487b32cdcfff21f0ece735460
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 21 18:54:27 2011 +0200

    ROUTER socket reports error when message cannot be routed

    Till now, message was silently dropped if it was sent to
    a non-existent peer. Now, ECANTROUTE error is returned.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_send.txt |  3 +++
 include/zmq.h    |  1 +
 src/router.cpp   | 33 +++++++++++++++++++--------------
 3 files changed, 23 insertions(+), 14 deletions(-)

commit 72a793f78dp6c7b544d4c19530c01e8dfd23ccf5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 21 18:43:50 2011 +0200

    ZMQ_GENERIC renamed to ZMQ_ROUTER

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h                   |  2 +-
 src/Makefile.am                 |  4 ++--
 src/{generic.cpp => router.cpp} | 26 +++++++++++++-------------
 src/{generic.hpp => router.hpp} | 15 +++++++--------
 src/socket_base.cpp             |  6 +++---
 5 files changed, 26 insertions(+), 27 deletions(-)

commit cb2d7156055492839021e84dcc00cc409a3fd2d1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 21 11:51:41 2011 +0200

    endmsg(3) and zmq_recvmsg(3) added to RPM spec file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/redhat/zeromq.spec.in | 2 ++
 1 file changed, 2 insertions(+)

commit a808431d1df359302af7bdd2df085f5a41f14210
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 18 14:29:20 2011 +0200

    Fixed email addresses in the MAITAINERS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 MAINTAINERS | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a33a275e3b0b1942280cdp2317801fbd2185821c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Jul 18 12:53:55 2011 +0200

    Fixed issue 230

    Signed-off-by: Pieter Hintjens <ph@imatix.com>

 src/tcp_socket.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit 7298b5742f749a2947c9e6460c4a083be84506ed
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 18 11:39:38 2011 +0200

    Includes in zmq.cpp cleaned-up

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 54 ++++++++++++++++++++++++++++--------------------------
 1 file changed, 28 insertions(+), 26 deletions(-)

commit 18d8be5e9259e72a5a0622a5594842c31dd7bfdb
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Jul 18 10:54:53 2011 +0200

    Fix pollin on Cygwin.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
    Signed-off-by: Martin Sustrik <sustrik@250bom.com>

 src/signaler.cpp | 3 ++-
 src/zmq.cpp      | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit ac20e17cbd1471b9eb3eef79c32cb43420cbc516
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 18 10:04:05 2011 +0200

    Reference to C++ binding removed from zmq(7)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq.txt | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

commit 66ff99c4574827b59e6d7ddfaa44d975dc7e880e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 18 10:00:09 2011 +0200

    Martin Lucina remove from MAINTAINERS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 MAINTAINERS | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f97f50c252adc814145a0a482bc2a25229882459
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 18 09:41:26 2011 +0200

    Signaler timeout bug on Windows fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/signaler.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 1a408805521f839e3e36183d9f2dec1d08e24caf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 18 09:30:37 2011 +0200

    ZMQ_IDENTITY option removed from the documentation

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 23 -----------------------
 doc/zmq_setsockopt.txt | 23 -----------------------
 2 files changed, 46 deletions(-)

commit 89daa57faab728204447c3bb708e753a2dpffa55
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 18 09:28:59 2011 +0200

    Missing files for GENERIC socket implementation added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/generic.cpp | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/generic.hpp | 108 +++++++++++++++++++++++
 2 files changed, 373 insertions(+)

commit bf78e230ad4736da9fce6e0b4d1655affb8f466b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 17 23:31:29 2011 +0200

    GENERIC socket type and COMMAND flag added

    GENERIC allows to use 0MQ as a dumb networking framework.
    It provides user with connect/disconnect notifications.
    Also, each inbound message is labeled by ID of the connection
    it originated from. Outbound messages should be labeled by
    the ID of the connection to send them to.

    To distinguish connect/disconnect notifications from common
    messages, COMMAND flag was introduced.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h       |  3 +++
 src/Makefile.am     |  2 ++
 src/msg.hpp         |  1 +
 src/socket_base.cpp | 53 +++++++++++++++++++++++++++++++++--------------------
 src/socket_base.hpp |  7 +++++++
 5 files changed, 46 insertions(+), 20 deletions(-)

commit c8e8f2a24cd339c548e06f75a3cef96454671a85
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 15 11:24:33 2011 +0200

    ZMQ_IDENTITY socket option removed

    This patch simplifies the whole codebase significantly,
    including dropping depedency on libuuid.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in              |  13 ---
 include/zmq.h             |   1 -
 src/Makefile.am           |   7 --
 src/command.cpp           |  39 --------
 src/command.hpp           |   7 --
 src/connect_session.cpp   |  48 +---------
 src/connect_session.hpp   |   9 +-
 src/named_session.cpp     |  67 -------------
 src/named_session.hpp     |  56 -----------
 src/object.cpp            |  50 ++--------
 src/object.hpp            |  12 +--
 src/options.cpp           |  22 -----
 src/options.hpp           |   3 +-
 src/pair.cpp              |   2 +-
 src/pair.hpp              |   2 +-
 src/pgm_socket.cpp        |  21 ++---
 src/pull.cpp              |   2 +-
 src/pull.hpp              |   2 +-
 src/push.cpp              |   2 +-
 src/push.hpp              |   2 +-
 src/random.cpp            |  42 ++++++---
 src/random.hpp            |   9 +-
 src/req.cpp               |   6 +-
 src/session.cpp           |  26 +-----
 src/session.hpp           |  15 +--
 src/socket_base.cpp       |  70 ++------------
 src/socket_base.hpp       |  26 +-----
 src/transient_session.cpp |   2 +-
 src/transient_session.hpp |   2 +-
 src/uuid.cpp              |  90 ------------------
 src/uuid.hpp              |  33 -------
 src/xpub.cpp              |   2 +-
 src/xpub.hpp              |   2 +-
 src/xrep.cpp              |   8 +-
 src/xrep.hpp              |   3 +-
 src/xreq.cpp              |   2 +-
 src/xreq.hpp              |   2 +-
 src/xsub.cpp              |   2 +-
 src/xsub.hpp              |   2 +-
 src/zmq_connecter.cpp     |  15 +--
 src/zmq_init.cpp          | 233 ----------------------------------------------
 src/zmq_init.hpp          |  98 -------------------
 src/zmq_listener.cpp      |  18 ++--
 43 files changed, 112 insertions(+), 963 deletions(-)

commit ba67eff167e94105b0975166a2192060ab125e58
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 15 08:26:29 2011 +0200

    non-immediate_connect functionality removed

    It was used only by ROUTER socket. After its removal it became
    obsolete.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/options.cpp     |  1 -
 src/options.hpp     |  6 ------
 src/socket_base.cpp | 28 +++++++++++-----------------
 3 files changed, 11 insertions(+), 24 deletions(-)

commit 364839f3e66df567172af239ac7476af4d9260eb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 15 08:18:20 2011 +0200

    Debian packaging removed

    It is now maintained as a separate project.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 debian/README.Debian       |   4 --
 debian/changelog           |  24 -----------
 debian/compat              |   1 -
 debian/control             |  76 --------------------------------
 debian/copyright           | 105 ---------------------------------------------
 debian/libzmq-dev.install  |   5 ---
 debian/libzmq-dev.manpages |   2 -
 debian/libzmq0.install     |   1 -
 debian/libzmq0.manpages    |   5 ---
 debian/rules               |  92 ---------------------------------------
 debian/source/format       |   1 -
 debian/source/options      |   1 -
 debian/zeromq-bin.install  |   3 --
 debian/zeromq-bin.manpages |   3 --
 14 files changed, 323 deletions(-)

commit e4f98d1e100c225abca67b4aad90be08a729e02f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 15 08:16:40 2011 +0200

    ROUTER and DEALER sockets removed

    To be replaced by new generic socket type

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h       |   2 -
 src/Makefile.am     |   4 -
 src/dealer.cpp      |  77 --------------
 src/dealer.hpp      |  65 ------------
 src/router.cpp      | 292 ----------------------------------------------------
 src/router.hpp      | 105 -------------------
 src/socket_base.cpp |   8 --
 7 files changed, 553 deletions(-)

commit 73630de98dpb8add878b1d421aa2bfc22c735c63
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 15 08:11:42 2011 +0200

    Version number bumped to 4.0.0

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 57c1342c683df3207094e8ec660e72812be37f9c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 12 13:05:58 2011 +0200

    Bug with setting options on SUB socket fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/sub.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 29274811ccf2ca905360a463c5124e9e4e4c1708
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 11 16:05:04 2011 +0200

    zmq_bind(3) and zmq_connect(3) describe EINVAL error

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_bind.txt    | 2 ++
 doc/zmq_connect.txt | 2 ++
 2 files changed, 4 insertions(+)

commit 2afb791ec2f9853cc642cf8a042c2acc7fbb7acd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 11 15:54:13 2011 +0200

    Subscription forwarding test added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/Makefile.am          |  4 +-
 tests/test_sub_forward.cpp | 94 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 97 insertions(+), 1 deletion(-)

commit 215cfc653e5c6155e231b213534739348152129d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 11 15:28:02 2011 +0200

    REQ/REP drop test extended

    The test now checks whether replies are dropped when reply pipe
    is overflowed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/test_reqrep_drop.cpp | 74 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

commit c7542981d18b13b251d5a3129f1ec7ba24dpb9a1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 11 10:18:30 2011 +0200

    PGM transport reconciled with subscription forwarding

    As PGM is not capable of passing subscriptions upstream,
    subscriptions are ignored at sub side and engine subscribes
    for all messages on pub side.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_receiver.cpp | 12 +++++++++++-
 src/pgm_receiver.hpp |  4 ++++
 src/pgm_sender.cpp   |  9 +++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)

commit d7adc3f19a4c941e854552d6d7881950a69b0d23
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 11 09:57:59 2011 +0200

    ZMQ_FILTER option removed

    The filtering is now done depending on the socket type. SUB socket
    filters the messages (end-to-end filtering) while XSUB relies
    on upstream nodes to do (imprefect) filtering.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 17 -----------------
 doc/zmq_setsockopt.txt | 16 ----------------
 include/zmq.h          |  1 -
 src/options.cpp        | 22 ++--------------------
 src/options.hpp        |  6 +++---
 src/sub.cpp            |  4 ++++
 6 files changed, 9 insertions(+), 57 deletions(-)

commit a154ef69da4e41d3a8ce5a3141fe8f052c7ea853
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 11 08:34:20 2011 +0200

    Man pages for send & recv function brought up to date

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/Makefile.am     |   3 +-
 doc/zmq_recv.txt    |  70 ++++++++++-------------------
 doc/zmq_recvmsg.txt | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_send.txt    |  70 ++++++++++++-----------------
 doc/zmq_sendmsg.txt | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 304 insertions(+), 90 deletions(-)

commit 7e1251178b1cbabf0bd648dp8765c01e16cc25a3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 11 07:26:45 2011 +0200

    Experimental code from zmq_init_t removed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq_init.cpp | 61 ++++++++++++++++----------------------------------------
 src/zmq_init.hpp |  7 -------
 2 files changed, 17 insertions(+), 51 deletions(-)

commit 52eaf600e5fe2acf5de6208a6a5a123dfcfe1fa2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jul 9 09:40:40 2011 +0200

    Drop outbound messages in XREP socket when SNDHWM is reached

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/rep.cpp  | 5 +----
 src/xrep.cpp | 4 ----
 2 files changed, 1 insertion(+), 8 deletions(-)

commit aa2150c25c9b0dd518b058f0c50420417441fd23
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jul 8 18:12:59 2011 +0200

    VSM data are aligned to 32/64 bit boundary

    Till now the VSM buffer was aligned to 16 bit boundary
    which could possibly cause problems on RISC architectures
    when accessing the message data in unsafe manner.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/config.hpp |  4 ----
 src/msg.cpp    |  6 ++++++
 src/msg.hpp    | 17 ++++++++++++-----
 3 files changed, 18 insertions(+), 9 deletions(-)

commit 1526ff638c9cb37b156fd80a40889ac3d8258343
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 4 09:27:50 2011 +0200

    License text in autogen.sh fixed

    autogen.sh incorrectly referred to the license as GPL.
    Changed to LGPL.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 autogen.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 8d96036fcd069e98f6fac69f645d6cc728281836
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 3 16:11:11 2011 +0200

    Build system checks for presence of eventfd.h header

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 8fb9d3c6d058393478d3b3ccb1f20bcb19bbe5a0
Merge: 6dp1be1a c687c7e6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 3 15:33:25 2011 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit 6dp1be1a121b9367ea11ce1789d99ec56fb39682
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 3 15:30:31 2011 +0200

    Race condition in eventfd signaler fixed

    recv function on eventfd signaler could accidentally
    grab two signals instead of one. Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/signaler.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 9a9a0cf41066d32f0d16492e212712b42df36950
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 3 15:13:57 2011 +0200

    eventfd implementation of the signaler

    Eventfd (on Linux) is more efficient that socketpair
    for passing simple signals.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/signaler.cpp | 42 +++++++++++++++++++++++++++++++++++++-----
 src/signaler.hpp |  2 +-
 2 files changed, 38 insertions(+), 6 deletions(-)

commit c687c7e61e8519c93eb4bc7ef43c5cf63671eb3e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 3 14:11:33 2011 +0200

    Fix MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 12 ++++++++----
 src/signaler.cpp                 |  6 +++---
 2 files changed, 11 insertions(+), 7 deletions(-)

commit da26134aa696352de6e77a800a433878dbabb7fa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 3 13:44:41 2011 +0200

    Inproc tests need no I/O threads

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/test_pair_inproc.cpp   | 2 +-
 tests/test_reqrep_inproc.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 7c0c79812075459765440ca26bad56f4f7ddbe52
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jul 3 13:33:45 2011 +0200

    Command are now stored in ypipes instead of in socketpairs

    Storing commands in OS socket buffers caused whole lot of
    problems when free space in the buffer ran out. This patch
    stores commands in ypipes instead and uses socketpair just
    to signal the other thread, ie. at most one byte is stored
    in the socketpair at any single instant.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am                |   2 +
 src/config.hpp                 |   3 +
 src/mailbox.cpp                | 449 ++++-------------------------------------
 src/mailbox.hpp                |  29 +--
 src/signaler.cpp               | 340 +++++++++++++++++++++++++++++++
 src/signaler.hpp               |  63 ++++++
 tests/test_shutdown_stress.cpp |   2 +-
 7 files changed, 462 insertions(+), 426 deletions(-)

commit de3838403b9a35e7131adp23519ced1f11a3e03c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 30 00:05:03 2011 +0200

    Testing for errors from pthread_* functions fixed

    pthread_* functions return the error number rather than
    setting errno. This was not accounter for till now.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/thread.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 4f4cc7328054272fa2c972244b2b7e8378ad5429
Author: Andrew Thompson <andy@fud.org.nz>
Date:   Wed Jun 29 23:48:19 2011 +0200

    Use strrchr to ensure we split off the last colon for the service port

    IPv6 addresses have colons and will produce invalid data for the getaddrinfo lookup.

    Signed-off-by: Andrew Thompson <andy@fud.org.nz>

 AUTHORS    | 1 +
 src/ip.cpp | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 543ad30e7d15a8864df26d6d32e57246ede35dp3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jun 28 10:22:27 2011 +0200

    Packaging for MSVC build fixed

    MSVC project files for inproc_lat and inproc_thr were not
    packaged during make dist phase.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f8bf3a4cef6b8e1688683ab8c5ed6dd1bc8e3a12
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 27 18:16:53 2011 +0200

    Rename i_inout to i_engine_sink

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am      |  1 -
 src/decoder.cpp      | 10 +++++-----
 src/decoder.hpp      |  4 ++--
 src/encoder.cpp      | 10 +++++-----
 src/encoder.hpp      |  4 ++--
 src/i_engine.hpp     | 23 ++++++++++++++++++++++-
 src/i_inout.hpp      | 49 -------------------------------------------------
 src/pgm_receiver.cpp | 13 ++++++-------
 src/pgm_receiver.hpp |  6 +++---
 src/pgm_sender.cpp   |  6 +++---
 src/pgm_sender.hpp   |  2 +-
 src/session.hpp      |  6 +++---
 src/zmq_engine.cpp   | 43 +++++++++++++++++++++----------------------
 src/zmq_engine.hpp   |  8 ++++----
 src/zmq_init.hpp     |  7 ++++---
 15 files changed, 81 insertions(+), 111 deletions(-)

commit 3dp73ee11f13bbc9c91b235de18fde763c359009
Author: Carl Clemens <carlclemens1@yahoo.com>
Date:   Sun Jun 26 16:19:45 2011 +0200

    Typo in zmq_msg_size(3) fixed

    Signed-off-by: Carl Clemens <carlclemens1@yahoo.com>

 AUTHORS              | 1 +
 doc/zmq_msg_size.txt | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 770d0bc77cd1579a1cba33ba1eb3f06839c28c16
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 23 08:51:48 2011 +0200

    Fix MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 24 ++++++++++++++++++++++++
 src/dist.cpp                     |  3 ++-
 src/fq.cpp                       |  3 ++-
 src/lb.cpp                       |  5 +++--
 src/pipe.cpp                     |  2 +-
 src/random.cpp                   |  1 +
 src/rep.cpp                      |  2 +-
 src/req.cpp                      |  2 +-
 src/router.cpp                   |  6 +++---
 src/session.cpp                  |  3 ++-
 src/socket_base.cpp              |  6 +++---
 src/xpub.cpp                     |  3 ++-
 src/xrep.cpp                     |  6 +++---
 src/xsub.cpp                     |  5 +++--
 14 files changed, 51 insertions(+), 20 deletions(-)

commit d1373792f7888f312cd7286fdf524a0bfe124846
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 23 07:57:47 2011 +0200

    Outstanding requests dropped when requester dies (issue 190)

    So far the requests in req/rep pattern were delivered to and processed
    by worker even though the original requester was dead. Thus,
    the worker processing replies with noone to deliver results to.
    This optimisation drops requests in two situations:

    1. Queued inbound requests in XREP socket when peer disconnects.
    2. Queued outbound requests in XREQ when socket is closed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/options.cpp            |  4 ++-
 src/options.hpp            |  8 ++++++
 src/pipe.hpp               |  5 ++--
 src/session.cpp            |  2 +-
 src/socket_base.cpp        |  4 +--
 src/xrep.cpp               |  4 +++
 src/xreq.cpp               |  4 +++
 tests/Makefile.am          |  7 ++---
 tests/test_reqrep_drop.cpp | 69 ++++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 97 insertions(+), 10 deletions(-)

commit 12532c7940f23fcb3cd46208c141d47647e76231
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jun 22 16:51:40 2011 +0200

    O(1) fair-queueing in XREP implemented

    Up to now the complexity of fair-queueing in XREP was O(n).

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pipe.cpp |  13 ++++++-
 src/pipe.hpp |   8 ++++
 src/xrep.cpp | 117 ++++++++++++++---------------------------------------------
 src/xrep.hpp |  17 ++-------
 4 files changed, 50 insertions(+), 105 deletions(-)

commit ec81f8fb2523e1e2fe45eaadc05311a35bf551d7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jun 22 11:02:16 2011 +0200

    New wire format for REQ/REP pattern

    This patch introduces two changes:
    1. 32-bit ID is used to identify the peer instead of UUID
    2. REQ socket seeds the label stack with unique 32-bit request ID
       It also drops any replies with non-matching request ID

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore                   |   1 +
 src/Makefile.am              |   2 +
 src/random.cpp               |  39 +++++++++++
 src/random.hpp               |  34 +++++++++
 src/rep.cpp                  |  52 ++++----------
 src/req.cpp                  |  38 ++++++++--
 src/req.hpp                  |   5 ++
 src/socket_base.cpp          |  18 ++---
 src/xrep.cpp                 |  45 ++++++++----
 src/xrep.hpp                 |  15 ++--
 tests/Makefile.am            |   5 +-
 tests/test_reqrep_device.cpp | 160 +++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 344 insertions(+), 70 deletions(-)

commit 10a93bb79fd3d4be1b3ffedfa6785564fbcc082b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jun 21 13:44:44 2011 +0200

    Unspecified error code from mailbox_t::recv on Win32 fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mailbox.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit a28928fe376f73ef8ca683523102908616445ada
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 20 13:36:18 2011 +0200

    Introduce ZMQ_ROUTER and ZMQ_DEALER sockets

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h       |   2 +
 src/Makefile.am     |   4 +
 src/dealer.cpp      |  77 ++++++++++++++
 src/dealer.hpp      |  65 ++++++++++++
 src/router.cpp      | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/router.hpp      | 105 +++++++++++++++++++
 src/socket_base.cpp |  10 +-
 7 files changed, 554 insertions(+), 1 deletion(-)

commit f437c9ed9b604912287aa6c96557261fc966e7fc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 20 12:27:56 2011 +0200

    Fix errors in zmq_getsockopt(3) manpage

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit ab99975ad44ed0fe9ab651f31cc47d493e7fb77e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 20 11:33:54 2011 +0200

    LABEL flag added to the wire format

    So far there was no distinction between message parts used by 0MQ
    and message parts used by user. Now, the message parts used by 0MQ
    are marked as 'LABEL'.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 12 ++++++++++++
 doc/zmq_send.txt       |  4 ++++
 include/zmq.h          |  2 ++
 src/dist.cpp           |  4 ++--
 src/encoder.cpp        |  4 ++--
 src/fq.cpp             |  2 +-
 src/lb.cpp             |  4 ++--
 src/msg.hpp            |  5 +++--
 src/pipe.cpp           |  9 +++++----
 src/rep.cpp            |  6 +++---
 src/req.cpp            |  8 ++++----
 src/session.cpp        |  2 +-
 src/socket_base.cpp    | 25 ++++++++++++++++++++++++-
 src/socket_base.hpp    |  5 ++++-
 src/xpub.cpp           |  2 +-
 src/xrep.cpp           | 11 ++++++-----
 src/xsub.cpp           |  8 ++++----
 17 files changed, 80 insertions(+), 33 deletions(-)

commit ada5d424721c0c0139b8011a5e9de348d061ba2f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 20 11:16:10 2011 +0200

    Basic tests now test multi-part messages instead of single-part

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/testutil.hpp | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

commit c80908c469b1fbd3d1b639ea39d86e4e4311dp57
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 20 08:21:00 2011 +0200

    Bug fixed in pipe termination

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7572fee979a1cc2a874dd5621c89a0e849b65816
Author: Fabien Ninoles <fabien@tzone.org>
Date:   Mon Jun 20 08:14:21 2011 +0200

    Optimise block/non-block switching in mailbox_t

    For the platforms that don't support MSG_DONTWAIT the reader
    socket in mailbox_t was kept in non-blocking state and flipped
    to blocking state and back when blocking read was requested.
    Now, the state is preserved between calls and flipped only
    if different type of operation (block vs. non-block) is
    requested.

    Signed-off-by: Fabien Ninoles <fabien@tzone.org>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mailbox.cpp | 71 ++++++++++++---------------------------------------------
 src/mailbox.hpp | 12 ++++++----
 2 files changed, 23 insertions(+), 60 deletions(-)

commit 8440de2b14876ecc6b39816528ef0793c6e34598
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 20 08:11:48 2011 +0200

    Fix minor warning in MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/socket_base.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f4760f02c3ac966f858414fb50565faa5deb48bf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 20 07:35:24 2011 +0200

    Disable timeo test on MinGW

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/Makefile.am | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 082f8e19b7591f6f8f34edcc27f195510051c2ba
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 19 19:08:48 2011 +0200

    Mailbox timeouts fixed on Windows

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mailbox.cpp | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

commit ed680a395edb9260eced8289b33041248782f979
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 19 16:39:27 2011 +0200

    Documentation for XPUB and XSUB socket added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_socket.txt | 41 +++++++++++++++++++++++++++++++++--------
 1 file changed, 33 insertions(+), 8 deletions(-)

commit 9f4d3767fed58ddfa52f63692c6169bfdbcec2e3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 19 12:48:36 2011 +0200

    Session termination error fixed

    When session is already terminating and reconnection happens at
    that point, the session should not create new pipe to its socket.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/session.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 00dc0245e6aacbff247c84ac8480d3ddcabacd5a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 19 11:17:20 2011 +0200

    Race condition in pipe_t fixed.

    pipe_t now correctly drops pointer to the underlying pipe when
    sending pipe_term_ack command.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pipe.cpp | 38 +++++++++++++++++++++++++-------------
 1 file changed, 25 insertions(+), 13 deletions(-)

commit 6052709c2dpa5fdp70d805e6033861c24b4f2521
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 19 09:33:01 2011 +0200

    ENETDOWN is a legal error from TCP connect

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5b77a41eafe6501a3f7cc76f2c746858036dpf81
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 19 09:22:11 2011 +0200

    Throughput tests fixed.

    Introduction of subscription forwarding have broken throughput tests.
    This patch changes the pattern used in the tests to PUSH/PULL.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 perf/inproc_thr.cpp | 10 ++--------
 perf/local_thr.cpp  |  8 +-------
 perf/remote_thr.cpp |  4 +---
 3 files changed, 4 insertions(+), 18 deletions(-)

commit 4b60023b96d25571f58e50899a2717da14866e6b
Merge: d7923f08 9b795de4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 19 09:15:06 2011 +0200

    Merge branch 'master' of github.com:zeromq/libzmq

commit 9b795de4afdd5669a9000c5d13bec61e51fbba49
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Sat Jun 18 20:44:03 2011 +0200

    Refactor Windows versioning and WinSock usage.Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 include/zmq.h   |   2 +-
 src/ctx.cpp     |  14 ++---
 src/select.cpp  |  11 ++--
 src/windows.hpp | 157 +++++++++++++++++++++++++++++++++++++++++++++-----------
 4 files changed, 141 insertions(+), 43 deletions(-)

commit dc66053530e798dbcdb236cc2040031980cc09c7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jun 18 20:41:21 2011 +0200

    Minor MSVC warning fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xsub.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit d7923f08cab62ef40027a92f596ff45428870838
Author: Fabien Ninoles <fabien@tzone.org>
Date:   Fri Jun 17 12:22:02 2011 +0200

    Add sockopt ZMQ_RCVTIMEO/ZMQ_SNDTIMEO.

    - Add doc and tests
    - Add options and setup
    - Wait using poll/select

    Signed-off-by: Fabien Ninoles <fabien@tzone.org>
    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore             |   1 +
 doc/zmq_getsockopt.txt |  35 ++++++++++++++-
 doc/zmq_setsockopt.txt |  32 ++++++++++++++
 include/zmq.h          |   2 +
 perf/remote_thr.cpp    |   2 +
 src/ctx.cpp            |   2 +-
 src/io_thread.cpp      |   2 +-
 src/mailbox.cpp        | 106 +++++++++++++++++++++++++++++++++++++++++----
 src/mailbox.hpp        |   7 ++-
 src/options.cpp        |  36 ++++++++++++++++
 src/options.hpp        |   4 ++
 src/reaper.cpp         |   2 +-
 src/socket_base.cpp    | 100 ++++++++++++++++++++++++++++--------------
 src/socket_base.hpp    |   6 +--
 tests/Makefile.am      |   5 ++-
 tests/test_timeo.cpp   | 115 +++++++++++++++++++++++++++++++++++++++++++++++++
 16 files changed, 407 insertions(+), 50 deletions(-)

commit e895607ca7a97378f7ccc5ab050fc54fd54a80ad
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jun 14 09:58:18 2011 +0200

    ENETUNREACH is a valid error from connect

    This patch fixed the JIRA issue 223

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 65d2b70312efb148814b58d9cd38cc7069b53a3b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 13 08:15:05 2011 +0200

    Minor patch to fix ICC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xsub.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 970798ff98bc9eb7cd84bf8766cc6034a0e88aa4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 13 07:54:58 2011 +0200

    mtrie.cpp added to MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 8 ++++++++
 1 file changed, 8 insertions(+)

commit c7fb5c54b688c1817d0604320ac7f9bb3aa02c5c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 13 07:53:22 2011 +0200

    Reverting previous commit that broke MSVC2010 build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ctx.cpp     | 8 ++------
 src/select.cpp  | 2 +-
 src/select.hpp  | 2 +-
 src/windows.hpp | 5 +++--
 4 files changed, 7 insertions(+), 10 deletions(-)

commit b164023cca3f29c5eb371a8a0757c98dp4683dp4
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Sun Jun 12 19:37:11 2011 +0200

    Fix scope on Windows includes.

    Fix windows.h included before winsock2.h.
    Remove definition of _WINSOCKAPI_.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/ctx.cpp     | 8 ++++++--
 src/select.cpp  | 2 +-
 src/select.hpp  | 2 +-
 src/windows.hpp | 5 ++---
 4 files changed, 10 insertions(+), 7 deletions(-)

commit ff93f54653d099bddfed34a342906a3546e70496
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 12 15:24:08 2011 +0200

    ZMQ_FILTER socket option added

    This option is a performance tweak. In devices XSUB socket filters
    the messages just to send them to XPUB socket which filters them
    once more. Setting ZMQ_FILTER option to 0 allows to switch the
    filtering in XSUB socket off.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 19 ++++++++++++++++++-
 doc/zmq_setsockopt.txt | 19 +++++++++++++++++++
 include/zmq.h          |  1 +
 src/options.cpp        | 19 +++++++++++++++++++
 src/options.hpp        |  3 +++
 src/xsub.cpp           |  4 ++--
 6 files changed, 62 insertions(+), 3 deletions(-)

commit e080e3e8b620b0e7ed02c28712a0c92b08de3451
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jun 12 10:19:21 2011 +0200

    Publisher-side filtering for multi-part messages fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp |  8 +++++---
 src/dist.hpp | 10 ++++++----
 src/xpub.cpp | 25 ++++++++++++++++++++-----
 src/xpub.hpp |  3 +++
 4 files changed, 34 insertions(+), 12 deletions(-)

commit bd86def1c799a35d5cef0c0a9a1347a18fea227e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jun 11 20:29:56 2011 +0200

    Actual message filtering happens in XPUB socket

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp  | 47 ++++++++++++++++++++++++++++++++++++++---------
 src/dist.hpp  | 20 +++++++++++++++++++-
 src/mtrie.cpp | 21 ++++++++++++++++-----
 src/mtrie.hpp | 11 +++++++----
 src/xpub.cpp  | 16 ++++++++++++++--
 src/xpub.hpp  |  3 +++
 src/xsub.cpp  |  4 ++--
 7 files changed, 99 insertions(+), 23 deletions(-)

commit 3935258b826adc31815be4f91b2f6eb02bb3c8ed
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jun 1 11:54:33 2011 +0200

    Minor code beautification for mtrie_t

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mtrie.cpp | 42 +++++++++++++++++++++++++++---------------
 src/mtrie.hpp |  4 ++++
 2 files changed, 31 insertions(+), 15 deletions(-)

commit ee7313b4d896e9f7ff6a035395b20f617e4ff796
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 31 16:21:17 2011 +0200

    Subscriptions are processed immediately in XPUB socket

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xpub.cpp | 127 ++++++++++++++++++++---------------------------------------
 src/xpub.hpp |   8 ----
 2 files changed, 42 insertions(+), 93 deletions(-)

commit a24a7c15a824bb48da38809bff9416673dc5a176
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 31 14:36:51 2011 +0200

    Session termination induced by socket fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pipe.cpp        | 18 ++++++++++++------
 src/pipe.hpp        |  5 +++--
 src/session.cpp     | 21 ++++++---------------
 src/socket_base.cpp |  4 ++--
 4 files changed, 23 insertions(+), 25 deletions(-)

commit 0b59866a84f733e5a53b0d2f32570581691747ef
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 30 10:07:34 2011 +0200

    Patches from sub-forward branch incorporated

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am           |   2 +
 src/command.hpp           |   8 ++
 src/connect_session.cpp   |   7 +-
 src/connect_session.hpp   |   4 +-
 src/fq.cpp                |   7 ++
 src/fq.hpp                |   4 +-
 src/mtrie.cpp             | 218 ++++++++++++++++++++++++++++++++++++++++++++++
 src/mtrie.hpp             |  83 ++++++++++++++++++
 src/named_session.cpp     |   5 +-
 src/named_session.hpp     |   4 +-
 src/object.cpp            |  25 +++++-
 src/object.hpp            |   2 +
 src/pipe.cpp              |  43 +++++++++
 src/pipe.hpp              |  13 ++-
 src/pub.cpp               |  13 +++
 src/pub.hpp               |   4 +
 src/session.cpp           |  28 ++++++
 src/session.hpp           |  21 +++--
 src/socket_base.cpp       |  14 ++-
 src/socket_base.hpp       |   6 +-
 src/sub.cpp               | 115 +-----------------------
 src/sub.hpp               |  21 +----
 src/transient_session.cpp |   6 +-
 src/transient_session.hpp |   4 +-
 src/trie.cpp              |  63 ++++++++++++--
 src/trie.hpp              |  18 +++-
 src/xpub.cpp              | 120 ++++++++++++++++++++++++-
 src/xpub.hpp              |  26 ++++++
 src/xsub.cpp              | 160 +++++++++++++++++++++++++++++++---
 src/xsub.hpp              |  30 ++++++-
 30 files changed, 884 insertions(+), 190 deletions(-)

commit 311fb0d852374e769d8ff791c9df38f0464960c6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat May 28 09:02:21 2011 +0200

    Subscription matching moved from XSUB to SUB socket

    This patch will prevent duplicate matching in devices in the future.
    Instead of matching in both XPUB and XSUB, it'll happen only
    in XPUB. Receiver endpoint will still filter messages via SUB
    socket.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/sub.cpp  | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/sub.hpp  |  19 ++++++++++
 src/xsub.cpp | 107 ++++----------------------------------------------------
 src/xsub.hpp |  17 ---------
 4 files changed, 134 insertions(+), 120 deletions(-)

commit 718885fdcd7af797f940078ca8c22dpbab93c8bb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu May 26 11:30:25 2011 +0200

    Pending messages are delivered even if connection doesn't exist yet

    Bug in previous refactoring fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pipe.cpp       |   3 +-
 src/session.cpp    | 110 +++++++++++++++++++++++++----------------------------
 src/session.hpp    |  10 ++---
 src/tcp_socket.cpp |   2 +-
 4 files changed, 57 insertions(+), 68 deletions(-)

commit 87a6490b39c44e8f9c521f6ccea14f800a712d3f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 25 10:25:51 2011 +0200

    All pipe termination code moved to pipe_t

    Till now the code was spread over mutliple locations.
    Additionally, the code was made more formally correct,
    with explicit pipe state machine etc.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pipe.cpp        | 145 +++++++++++++++++++++++++++++++++++-------------
 src/pipe.hpp        |  29 +++++++---
 src/session.cpp     | 157 +++++++++++++++++++++++-----------------------------
 src/session.hpp     |  27 +++------
 src/socket_base.cpp |   4 +-
 5 files changed, 205 insertions(+), 157 deletions(-)

commit 3d4203decf87a5d5fb1718c2163f6d9c6c24328d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 23 21:37:52 2011 +0200

    Fabien Ninoles added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 71ac91ba4193910359d7671a4e998a17ff506b06
Author: Fabien Ninoles <fabien@tzone.org>
Date:   Mon May 23 21:36:00 2011 +0200

    Add multi-array support to array_item_t.

    Allow to have the same item part of two different arrays, as long as
    they are using different array identifier.

 src/array.hpp       | 116 +++++++++++++---------------------------------------
 src/pipe.hpp        |   8 +++-
 src/socket_base.hpp |   2 +-
 3 files changed, 37 insertions(+), 89 deletions(-)

commit 0f6f7276e32c01ccfe86fb76741a52ac6ffc87af
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 23 20:30:01 2011 +0200

    Move the pipe termination code to socket_base_t

    So far, the pipe termination code was spread among socket type
    classes, fair queuer, load balancer, etc. This patch moves
    all the associated logic to a single place.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/array.hpp                  | 38 ++++++++++++++++++++++-----
 src/dist.cpp                   | 25 ++----------------
 src/dist.hpp                   | 15 +++--------
 src/fq.cpp                     | 30 ++-------------------
 src/fq.hpp                     | 16 +++---------
 src/lb.cpp                     | 25 ++----------------
 src/lb.hpp                     | 15 +++--------
 src/own.cpp                    |  8 +++---
 src/own.hpp                    |  3 +++
 src/pair.cpp                   | 31 +++-------------------
 src/pair.hpp                   | 17 +++---------
 src/pipe.cpp                   |  4 +--
 src/pull.cpp                   | 21 +++------------
 src/pull.hpp                   | 14 +++-------
 src/push.cpp                   | 20 +++-----------
 src/push.hpp                   | 14 +++-------
 src/reaper.cpp                 |  6 +----
 src/socket_base.cpp            | 59 ++++++++++++++++++++++++++++++++++++++++--
 src/socket_base.hpp            | 38 +++++++++++++++------------
 src/sub.hpp                    |  2 +-
 src/xpub.cpp                   | 23 +++-------------
 src/xpub.hpp                   | 14 +++-------
 src/xrep.cpp                   | 33 ++++-------------------
 src/xrep.hpp                   | 18 +++----------
 src/xreq.cpp                   | 20 ++++----------
 src/xreq.hpp                   | 15 +++--------
 src/xsub.cpp                   | 18 ++-----------
 src/xsub.hpp                   | 14 +++-------
 tests/test_shutdown_stress.cpp |  2 +-
 29 files changed, 191 insertions(+), 367 deletions(-)

commit acf0b0e515515e51ad32ba7a2d147ce703579478
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun May 22 17:26:53 2011 +0200

    Introduces bi-directional pipes

    So far, there was a pair of unidirectional pipes between a socket
    and a session (or an inproc peer). This resulted in complex
    problems with half-closed states and tracking which inpipe
    corresponds to which outpipe.

    This patch doesn't add any functionality in itself, but is
    essential for further work on features like subscription
    forwarding.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/array.hpp           |  79 ++++++++---
 src/command.hpp         |  11 +-
 src/connect_session.cpp |   1 +
 src/dist.cpp            |  10 +-
 src/dist.hpp            |  13 +-
 src/fq.cpp              |  12 +-
 src/fq.hpp              |  12 +-
 src/lb.cpp              |   8 +-
 src/lb.hpp              |  14 +-
 src/object.cpp          |  40 +++---
 src/object.hpp          |  19 ++-
 src/options.cpp         |   2 -
 src/options.hpp         |   5 -
 src/own.cpp             |   3 +
 src/pair.cpp            |  98 ++++----------
 src/pair.hpp            |  24 +---
 src/pipe.cpp            | 341 +++++++++++++++++++++++-------------------------
 src/pipe.hpp            | 201 ++++++++++++----------------
 src/pull.cpp            |  26 +++-
 src/pull.hpp            |  13 +-
 src/push.cpp            |  26 +++-
 src/push.hpp            |  13 +-
 src/session.cpp         | 165 ++++++++++-------------
 src/session.hpp         |  29 ++--
 src/socket_base.cpp     |  77 +++++------
 src/socket_base.hpp     |  12 +-
 src/xpub.cpp            |  26 +++-
 src/xpub.hpp            |  12 +-
 src/xrep.cpp            |  84 +++++-------
 src/xrep.hpp            |  24 ++--
 src/xreq.cpp            |  28 +++-
 src/xreq.hpp            |  13 +-
 src/xsub.cpp            |  26 +++-
 src/xsub.hpp            |  13 +-
 34 files changed, 710 insertions(+), 770 deletions(-)

commit 9e6b39925603f9e64db08c469bd628d7ef9465de
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 17 14:27:03 2011 +0200

    Couple of minor issues in MSVC build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.cpp | 2 +-
 src/tcp_socket.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit da7b6d0b3893fd14859b77ec69eed0fc6c8ad689
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 17 10:13:54 2011 +0200

    Paul Colomiets added to AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 38e5f8699ccff09a91e37e139c4a86a259ac597b
Author: Paul Colomiets <pc@gafol.net>
Date:   Tue May 17 10:12:27 2011 +0200

    Better handling of memory error in resolve_ip_hostname

    Signed-off-by: Paul Colomiets <pc@gafol.net>

 src/ip.cpp            | 9 +++++++++
 src/zmq_connecter.cpp | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

commit 864c18f797203c06e66e739166b246cfb3d47ce9
Author: Paul Colomiets <pc@gafol.net>
Date:   Tue May 17 10:09:04 2011 +0200

    zmq_msg_init_data returns ERRNO instead aborting

    Signed-off-by: Paul Colomiets <pc@gafol.net>

 doc/zmq_msg_init_data.txt | 4 +++-
 src/msg.cpp               | 5 ++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

commit d8d5a627b1835d20270125e27a157c9a7460f0e7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 16 10:44:38 2011 +0200

    Duplicate initialisation of PGM_MULTICAST_HOPS removed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.cpp | 72 ++++++++++++++++++++++++++----------------------------
 1 file changed, 34 insertions(+), 38 deletions(-)

commit 5d0cffc52f575ff572751cc85fd43063391a211d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun May 15 18:25:43 2011 +0200

    ZMQ_MULTICAST_HOPS socket option added

    Sets the time-to-live field in every multicast packet sent from the socket.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 15 ++++++++++++++-
 doc/zmq_setsockopt.txt | 12 ++++++++++++
 include/zmq.h          |  1 +
 src/options.cpp        | 18 ++++++++++++++++++
 src/options.hpp        |  3 +++
 src/pgm_socket.cpp     | 14 ++++++++++----
 6 files changed, 58 insertions(+), 5 deletions(-)

commit 49df2f416cd43e9e18f3dbd964271c5cca835729
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun May 15 13:12:09 2011 +0200

    Fixes warning when compiling with MSVC on Win64

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/array.hpp      |  8 ++++----
 src/dist.cpp       |  2 +-
 src/encoder.hpp    |  2 +-
 src/err.cpp        |  2 +-
 src/fq.cpp         |  6 +++---
 src/ip.cpp         | 10 +++++-----
 src/lb.cpp         |  2 +-
 src/own.cpp        |  2 +-
 src/select.cpp     |  7 ++++---
 src/tcp_socket.cpp | 16 ++++++++--------
 src/tcp_socket.hpp |  6 ++++--
 src/xrep.cpp       |  7 +++----
 src/zmq.cpp        |  3 ++-
 13 files changed, 38 insertions(+), 35 deletions(-)

commit 49387874efe790713f4a090e03a97212f4889163
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun May 8 09:03:49 2011 +0200

    Async connect doesn't fail on EWSANETDOWN

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/err.cpp           | 112 ++++++++++++++++++++++++++------------------------
 src/err.hpp           |  12 ++++++
 src/tcp_connecter.cpp |  10 ++---
 3 files changed, 76 insertions(+), 58 deletions(-)

commit da1ef4d2685c02e8320847d49a38726b2b6d52f0
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun May 8 09:02:47 2011 +0200

    Fixed REP assert on missing envelope

    Signed-off-by: Pieter Hintjens <ph@imatix.com>

 src/rep.cpp  | 34 ++++++++++++++++++++++++----------
 src/xrep.cpp | 13 ++++++++++++-
 src/xrep.hpp |  5 +++++
 3 files changed, 41 insertions(+), 11 deletions(-)

commit 0c5b781e97f2bea42925495a5505c51e769fba7f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri May 6 15:51:56 2011 +0200

    urrent pipe pointer in XREP out of range -- fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 3ef7c747ac68214ca463b2f52244fcec92151a46
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 4 12:43:23 2011 +0200

    Tore Halvorsen added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 10120214ac0d3ec4af146fcb95e3a114ed6f8da5
Author: Tore Halvorsen <tore.halvorsen@gmail.com>
Date:   Wed May 4 12:41:10 2011 +0200

    Accessing an iterator after it is accessed is not valid.

    Moving the erase after the access and check agains current_id.

 src/xrep.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ceb5e1a0734b0c73bd7f74ec5094dp6ad4f9dfc4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 3 23:20:43 2011 +0200

    Deallocation functions in zmq.h and msg_t class are consistent.

    The two functions had different calling conventions (C vs. C++).
    It is fixed now.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/msg.cpp |  2 +-
 src/msg.hpp | 15 ++++++++++-----
 2 files changed, 11 insertions(+), 6 deletions(-)

commit 5e329ba7cac8a52fbbd2c347064c2d9355009022
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 3 23:16:03 2011 +0200

    Minor patch to keep ICC compiler happy

    ICC doesn't recognise that assert(false) terminates the program
    and thus complains that certain functions have no return values.
    This patch supplies dummy return values to keep the compiler happy.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/msg.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 6ecec9bbf1cd17666241a3effc31a65e555dbd4a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 2 19:28:51 2011 +0200

    Current inpipe remains unchaged in XREP when other pipe terminates

    When an inpipe terminated within XREP, it was erased from the array
    and thus current_in (which is an index) pointed to a different
    element in the array. This caused problems when we were in the
    middle of reading a multipart message.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e5d4cd39e1c9949b549055f816d60dd35bfacdec
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 2 19:26:30 2011 +0200

    Yet one more fix related to PUB socket and multipart messages

    This patch fixes the activation of the pipes, when they pass
    from passive state directly to active.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

commit e78cc47b184f82fd524da021745b3323df4af507
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon May 2 18:59:55 2011 +0200

    Moved tests off 5555 (conflict with Eclipse)

    Signed-off-by: Pieter Hintjens <ph@imatix.com>

 tests/test_pair_tcp.cpp        | 4 ++--
 tests/test_reqrep_tcp.cpp      | 4 ++--
 tests/test_shutdown_stress.cpp | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

commit eb9bc1b0648d2132e612e2237a0ace47004d6f5c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 30 06:48:18 2011 +0200

    Message atomicity problem in PUB socket fixed.

    Reaching the HWM caused breaking message atomicity when the
    flow was reestablished - initial parts of multipart messages
    may have been lost.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp | 73 +++++++++++++++++++++++++++++++++---------------------------
 src/dist.hpp | 20 ++++++++---------
 2 files changed, 49 insertions(+), 44 deletions(-)

commit fe2e772dd5d36024a91ce3abb86996599960e078
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 30 06:47:36 2011 +0200

    pgm_socket uses binary version of UUID

    pgm_socket used textural form of UUID to generate GSIs.
    The recent patch that removed support for textual UUIDs
    broke the functionality. This patch fixes the problem.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 96213d5735829bfbebfb544a584a34bb8c0081fa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 29 07:23:30 2011 +0200

    WSdpNETUNREACH is a valid networking error

    Till now, 0MQ asserted on Windows when connect () returned
    WSdpNETUNREACH.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_connecter.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b2eb84f8ca2fc2b8a2af6cd2c54c0abc4535cfc4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 29 07:19:22 2011 +0200

    Substantial simplification of uuid_t

    The string format of UUID is not used in 0MQ. Further on,
    it turns out that UUIDs have fixed microarchitecture-agnostic
    binary layout (see RFC4122). Thus, the conversion to string
    and back to binary can be avoided.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/socket_base.cpp |   4 +-
 src/uuid.cpp        | 193 +++++++---------------------------------------------
 src/uuid.hpp        |  84 +----------------------
 src/zmq_init.cpp    |   7 +-
 4 files changed, 33 insertions(+), 255 deletions(-)

commit 10fbc78e5cab494c3af727f5ea451fdced1c9d95
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 22 07:51:24 2011 +0200

    Assert during SUB socket termination fixed.

    Fair queueing algorithm was checking whether the current pipe
    is not closed in the middle of reading a multipart message.
    However, this is OK when the socket is closing down.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/fq.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit e0246e32d79d71f8e73207b43dpd8b23648e4fc7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 21 22:27:48 2011 +0200

    Message-related functionality factored out into msg_t class.

    This patch addresses serveral issues:
    1. It gathers message related functionality scattered over whole
       codebase into a single class.
    2. It makes zmq_msg_t an opaque datatype. Internals of the class
       don't pollute zmq.h header file.
    3. zmq_msg_t size decreases from 48 to 32 bytes. That saves ~33%
       of memory in scenarios with large amount of small messages.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h         |  29 +-----
 src/config.hpp        |   4 +
 src/ctx.cpp           |  14 +--
 src/ctx.hpp           |   2 -
 src/decoder.cpp       |  18 ++--
 src/decoder.hpp       |   5 +-
 src/dist.cpp          |  66 ++++---------
 src/dist.hpp          |   6 +-
 src/encoder.cpp       |  24 +++--
 src/encoder.hpp       |   5 +-
 src/err.cpp           |   2 -
 src/err.hpp           |   3 +
 src/fq.cpp            |  13 +--
 src/fq.hpp            |   3 +-
 src/i_inout.hpp       |   7 +-
 src/io_thread.cpp     |   2 -
 src/ip.cpp            |   4 +-
 src/lb.cpp            |  28 +++---
 src/lb.hpp            |   2 +-
 src/msg.cpp           | 249 +++++++++++++++++++++++++++++++++-----------------
 src/msg.hpp           | 107 +++++++++++++++++++---
 src/object.hpp        |   2 -
 src/options.cpp       |   2 -
 src/pair.cpp          |  25 ++---
 src/pair.hpp          |   4 +-
 src/pipe.cpp          |  49 +++++-----
 src/pipe.hpp          |  13 ++-
 src/pub.cpp           |   1 +
 src/pull.cpp          |   5 +-
 src/pull.hpp          |   2 +-
 src/push.cpp          |   7 +-
 src/push.hpp          |   2 +-
 src/rep.cpp           |  15 ++-
 src/rep.hpp           |   4 +-
 src/req.cpp           |  23 +++--
 src/req.hpp           |   4 +-
 src/session.cpp       |  17 ++--
 src/session.hpp       |   4 +-
 src/socket_base.cpp   |  29 +++---
 src/socket_base.hpp   |  10 +-
 src/sub.cpp           |  17 ++--
 src/sub.hpp           |   2 +-
 src/tcp_connecter.cpp |   2 -
 src/tcp_listener.cpp  |   2 -
 src/xpub.cpp          |   9 +-
 src/xpub.hpp          |   4 +-
 src/xrep.cpp          |  69 +++++++-------
 src/xrep.hpp          |   7 +-
 src/xreq.cpp          |   7 +-
 src/xreq.hpp          |   4 +-
 src/xsub.cpp          |  41 +++++----
 src/xsub.hpp          |  11 +--
 src/zmq.cpp           |  52 ++++++++++-
 src/zmq_init.cpp      |  29 +++---
 src/zmq_init.hpp      |  13 ++-
 55 files changed, 606 insertions(+), 474 deletions(-)

commit 581697695aac72894f2d3fefac904b9d50b3ba67
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Apr 19 08:08:15 2011 +0200

    Message validity is checked in the runtime

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_msg_close.txt |  3 ++-
 doc/zmq_msg_copy.txt  |  3 ++-
 doc/zmq_msg_move.txt  |  3 ++-
 doc/zmq_recv.txt      |  2 ++
 doc/zmq_send.txt      |  2 ++
 include/zmq.h         |  1 +
 src/msg.cpp           | 40 ++++++++++++++++++++++++++++++++--------
 src/req.cpp           |  2 +-
 src/socket_base.cpp   | 14 ++++++++++++++
 src/xrep.cpp          |  2 +-
 10 files changed, 59 insertions(+), 13 deletions(-)

commit 20e0b7cdcb6e8095fbadb80765e9371803184060
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 18 09:11:45 2011 +0200

    zmq_socket(3) describes the EMFILE error code

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_socket.txt | 2 ++
 1 file changed, 2 insertions(+)

commit e3dc0b25d98eb072ab37aac842bba0802c87e3e6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 18 08:55:51 2011 +0200

    OpenPGM compilation error on OSX fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 452ea97f5bb1bdd4d5ba76279de4189e8b8e5662
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 15 08:03:26 2011 +0200

    zmq_send(3) manpage improved

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_send.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 590ad2510bb113fdcd36951f6321fc73be94944a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 15 07:59:28 2011 +0200

    Error handling for accept on Cygwin fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_listener.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5444064c1a195ddpe5e57eb996157393a4eed796
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Apr 13 10:33:54 2011 +0200

    Minor cleanup of preprocessor definitions for OpenPGM

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 933ace0919974628c8ac2f9ada67645fdf4c80e2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Apr 13 10:06:44 2011 +0200

    MSVC build fixed to reflect zmq.cpp split

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 6191213a5737b774d83f341d4507b8baf702d381
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Apr 12 14:20:49 2011 +0200

    Code dealing with messages moved to msg.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am                  |   3 +-
 src/dist.cpp                     |   2 +-
 src/msg.cpp                      | 159 +++++++++++++++++++++++++++++++++++++++
 src/{msg_content.hpp => msg.hpp} |   0
 src/zmq.cpp                      | 131 --------------------------------
 5 files changed, 162 insertions(+), 133 deletions(-)

commit 3b636d7d185cd1a1fa300b4d9ca78d2587cb4bf5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Apr 12 10:00:29 2011 +0200

    zmq_utils implementation moved to zmq_utils.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am   |  3 ++-
 src/zmq.cpp       | 30 ----------------------------
 src/zmq_utils.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 62 insertions(+), 31 deletions(-)

commit e6fd193760952fb7ad9ba787ff210993cf1c2031
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Apr 12 09:22:22 2011 +0200

    OpenPGM now doesn't redefine bool, we can drop the workaround

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.hpp | 5 -----
 src/zmq.cpp        | 5 -----
 2 files changed, 10 deletions(-)

commit a3b49ca958be908b88b17ecc946006dccfbd2a75
Author: Pieter Hintjens <ph@imatix.com>
Date:   Mon Apr 11 12:14:00 2011 +0200

    Fixed example

    Signed-off-by: Pieter Hintjens <ph@imatix.com>

 doc/zmq_getsockopt.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0839cceac9dd29cc64cd9a634b9d3340cfbf3bbe
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 9 09:46:59 2011 +0200

    Missing ENOTSOCK added on Win32

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 3 +++
 1 file changed, 3 insertions(+)

commit b96fe15bb666e59728b6aa02f28c5838020f6bf3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 9 09:35:34 2011 +0200

    Run-time checking for context & socket validity added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_bind.txt       |  4 ++--
 doc/zmq_close.txt      |  4 ++--
 doc/zmq_connect.txt    |  4 ++--
 doc/zmq_getsockopt.txt |  4 ++--
 doc/zmq_recv.txt       |  4 ++--
 doc/zmq_send.txt       |  4 ++--
 doc/zmq_setsockopt.txt |  4 ++--
 doc/zmq_socket.txt     |  2 +-
 doc/zmq_term.txt       |  2 +-
 src/ctx.cpp            |  9 +++++++++
 src/ctx.hpp            |  6 ++++++
 src/socket_base.cpp    |  9 +++++++++
 src/socket_base.hpp    |  6 ++++++
 src/zmq.cpp            | 32 ++++++++++++++++----------------
 14 files changed, 62 insertions(+), 32 deletions(-)

commit e62686aca57ab307e952c53fd3848acaad22735e
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Apr 9 08:45:12 2011 +0200

    RPM packaging improvements

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 Makefile.am                                   | 1 -
 builds/redhat/{zeromq.spec => zeromq.spec.in} | 9 +++++----
 configure.in                                  | 3 ++-
 3 files changed, 7 insertions(+), 6 deletions(-)

commit 6fd403c4d8d22cec6c47aad4b978b3cc78b956c4
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Apr 4 22:52:02 2011 +0200

    Make pkg-config dependency conditional

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 autogen.sh   |  6 ------
 configure.in | 13 ++++++++-----
 2 files changed, 8 insertions(+), 11 deletions(-)

commit 4b52cf949fa02274ec8817f8e704eaa7cc66adbf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 4 17:53:49 2011 +0200

    TCP and IPC connection initiation allow for multiple properties

    So far the only property passed on connection initiation was
    identity. The mechanism was now made extensible. Additional
    properties are needed to introduce functionality such as
    checking the peer's socket type, "subports" etc.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq_init.cpp | 98 +++++++++++++++++++++++++++++++++++++++++---------------
 src/zmq_init.hpp | 18 +++++++++--
 2 files changed, 87 insertions(+), 29 deletions(-)

commit 8203c4dbb2e727ce608590e41c9e0d990c015b3e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 4 13:12:46 2011 +0200

    Another error handling issue on Win32 solved

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 perf/inproc_lat.cpp | 2 +-
 perf/inproc_thr.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 475ba3849dd6563ce7b70c4db4d0ac85ac83658d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 4 12:49:39 2011 +0200

    Issue with error checking on Win32 platform fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/thread.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1842628b9058b9243ebe037a6818c27ea1c8cd8d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 4 12:12:06 2011 +0200

    Unreferenced variable removed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_socket.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 2c7af35827863b1e0a167298140a38180980502c
Author: Robert G. Jakabosky <bobby@sharedrealm.com>
Date:   Sun Apr 3 20:44:02 2011 +0200

    Add note about thread-safety to zmq_msg_init_data() manpage.

    Signed-off-by: Robert G. Jakabosky <bobby@sharedrealm.com>

 doc/zmq_msg_init_data.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 54ea458f629cc380440e1a349ecf572eed2ecbd4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Apr 3 07:36:02 2011 +0200

    Git ignores .gcno files

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit a48b6cfc003833e40198442124d034942f9f41e3
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sun Apr 3 07:34:14 2011 +0200

    Additional gcov changes

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 36 +++++++++++++++++++++++-------------
 1 file changed, 23 insertions(+), 13 deletions(-)

commit 656b646bc634993bd9cb1b036a6838c5d0514fa8
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Apr 2 22:50:46 2011 +0200

    Large rename: AC_ZMQ_ to LIBZMQ_ and ac_zmq_ to libzmq_. Fixes "warning suspicious cache-id"

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 336 +++++++++++++++++++++++++++++------------------------------
 configure.in |  76 +++++++-------
 2 files changed, 206 insertions(+), 206 deletions(-)

commit bdeddb89f727c434ad499da5a349f3959eba3226
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Apr 2 22:49:41 2011 +0200

    Added code coverage checking

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 32 ++++++++++++++++++++++++++++++++
 configure.in |  3 +++
 2 files changed, 35 insertions(+)

commit 7af18468f8ca0c14975ea12a1e6a549d42b81347
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Apr 2 22:48:52 2011 +0200

    Add option to build with system opepgm

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 autogen.sh   |  6 ++++++
 configure.in | 17 +++++++++++++++++
 2 files changed, 23 insertions(+)

commit 0e0e4559a0e1d37fdbf686056f5d869d7a8d0315
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 2 19:32:44 2011 +0200

    Project location on github changed in README file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3e655227bd30d9845b2a0d8b877abe26c5524a3a
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Apr 2 09:22:41 2011 +0200

    Fixed memory leak with threads on win32

    Signed-off-by: Pieter Hintjens <ph@imatix.com>

 src/thread.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 85c2a84036675d40af47b57c410309da04ef742b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 2 09:50:35 2011 +0200

    inproc perf tests now work on Windows

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/inproc_lat/inproc_lat.vcproj | 174 +++++++++++++++++++++++++++++++
 builds/msvc/inproc_thr/inproc_thr.vcproj | 174 +++++++++++++++++++++++++++++++
 builds/msvc/msvc.sln                     |  22 ++++
 perf/inproc_lat.cpp                      |  46 +++++++-
 perf/inproc_thr.cpp                      |  46 +++++++-
 5 files changed, 458 insertions(+), 4 deletions(-)

commit 54830ac0f6869628e1e35cbdp3434ca5e10ad600
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 2 09:03:57 2011 +0200

    MSVC build system updated to match 3.0 changes

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 16 ----------------
 builds/msvc/msvc.sln             | 33 ---------------------------------
 2 files changed, 49 deletions(-)

commit dp90d3bdbe58d73dea5001b2f8cbf6ada9e53332
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 1 11:55:10 2011 +0200

    inproc_lat and inproc_thr added to .gitignore

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 599df5203ca3e4dfa39ea7617616b7886e95aff3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 1 11:53:51 2011 +0200

    PGM wire format specification improved in zmq_pgm(7)

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_pgm.txt | 5 +++++
 1 file changed, 5 insertions(+)

commit cce57617c7d4da78a3fd00e105d4920e34181a07
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 31 23:49:28 2011 +0200

    Ian Barber and Zed Shaw added to credits section

    talks on conferences, videos

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 2 ++
 1 file changed, 2 insertions(+)

commit 5142a1624bcf1659b5ed6b706b8396fc91ecbd00
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 31 23:16:14 2011 +0200

    Robert G. Jakabosky added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit d84558e172f51a9b96659f49c404147315e502f8
Author: Robert G. Jakabosky <bobby@sharedrealm.com>
Date:   Thu Mar 31 23:14:38 2011 +0200

    Adding thread latency/throughput perf. examples.

    Signed-off-by: Robert G. Jakabosky <bobby@sharedrealm.com>

 perf/Makefile.am    |   8 ++-
 perf/inproc_lat.cpp | 190 ++++++++++++++++++++++++++++++++++++++++++++++++
 perf/inproc_thr.cpp | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 401 insertions(+), 1 deletion(-)

commit fbf1f5146860a2557f247cdb0f94bda647c75ceb
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Thu Mar 31 18:42:09 2011 +0200

    Upstream the openpgm build fixes. Add DSO symbol visibility to OpenPGM builds

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 .gitignore                                 |   1 +
 Makefile.am                                |  11 ++-
 configure.in                               | 152 ++++++++---------------------
 foreign/openpgm/Makefile.am                |   8 ++
 foreign/openpgm/libpgm-5.0.92~dfsg.tar.gz  | Bin 444700 -> 0 bytes
 foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz | Bin 0 -> 1054630 bytes
 src/Makefile.am                            |  95 +-----------------
 7 files changed, 59 insertions(+), 208 deletions(-)

commit d36d9a378a9f3c561f2dp7849cee907c59d33b72
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Mar 27 19:41:32 2011 +0200

    Comments improvement

    related to fairness while reading/writing large messages

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq_engine.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 17fdb5e3a8956887e76c487e36d1dc8b667ca248
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Mar 27 09:50:25 2011 +0200

    zmq_recv() returns size of the message even if it's truncated

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 82dbef360c1fd5b20c8b59e1fc7273af14f55502
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 26 11:05:55 2011 +0100

    Memory leak in zmq_recv fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit abb184a051b592b6d4c99fd3299e78ea7c1da826
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 26 10:38:40 2011 +0100

    ZMQ_NOBLOCK renamed ZMQ_DONTWAIT

    Done because of POSIX compliance

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_recv.txt    | 2 +-
 doc/zmq_send.txt    | 2 +-
 include/zmq.h       | 2 +-
 src/socket_base.cpp | 4 ++--
 src/xsub.cpp        | 6 +++---
 tests/test_hwm.cpp  | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

commit bc4a1ce3345f4e5904e4b13c618f90def21256a5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 16:47:33 2011 +0100

    ZMQ_HWM split into ZMQ_SNDHWM and ZMQ_RCVHWM

    These new options allow to control the maximum size of the
    inbound and outbound message pipe separately.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 42 ++++++++++++++++++++++++++++++++----------
 doc/zmq_setsockopt.txt | 36 +++++++++++++++++++++++++++++-------
 include/zmq.h          |  3 ++-
 src/options.cpp        | 30 ++++++++++++++++++++++++------
 src/options.hpp        |  5 +++--
 src/session.cpp        |  6 ++++--
 src/socket_base.cpp    | 21 +++++++++++++--------
 tests/test_hwm.cpp     |  4 ++--
 8 files changed, 109 insertions(+), 38 deletions(-)

commit 507718ee1a56e376c06389c513de3868297fec35
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 15:43:03 2011 +0100

    ZMQ_HWM type changed to int

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt |  4 ++--
 doc/zmq_setsockopt.txt |  2 +-
 src/options.cpp        |  8 ++++----
 src/options.hpp        |  4 +++-
 src/pipe.cpp           | 11 +++++------
 src/pipe.hpp           | 17 ++++++++---------
 src/socket_base.cpp    |  2 +-
 tests/test_hwm.cpp     |  3 +--
 8 files changed, 25 insertions(+), 26 deletions(-)

commit bd9d7715ebe864d1aa85700d1b55b4f37568a1a4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 15:18:20 2011 +0100

    ZMQ_RATE and ZMQ_RECOVERY_IVL types cahnged to int

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt |  4 ++--
 doc/zmq_setsockopt.txt |  4 ++--
 src/options.cpp        | 21 ++++++++++-----------
 src/options.hpp        |  5 +++--
 src/pgm_socket.cpp     |  4 ++--
 5 files changed, 19 insertions(+), 19 deletions(-)

commit d61f067f5bade1269213735b8628a92621b62c91
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 15:07:23 2011 +0100

    ZMQ_EVENTS type changed to int

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt |  2 +-
 src/socket_base.cpp    | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 23bd3726a57793b850cb26e22274fd188fb86e82
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 14:59:43 2011 +0100

    ZMQ_RCVMORE type changed to int

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 2 +-
 src/socket_base.cpp    | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 17e82a361121dc81c90e17f1382dff678537b651
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 14:48:50 2011 +0100

    ZMQ_SNDBUF and ZMQ_RCVBUF type changed to int

    This mimics POSIX specification.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt |  4 ++--
 doc/zmq_setsockopt.txt |  4 ++--
 src/options.cpp        | 22 +++++++++++-----------
 src/options.hpp        |  5 +++--
 src/tcp_socket.cpp     | 15 ++++++---------
 src/tcp_socket.hpp     |  2 +-
 6 files changed, 25 insertions(+), 27 deletions(-)

commit a2252de2bcecb672f09c8a5d0013cce23d1d404f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 14:36:40 2011 +0100

    ZMQ_RECOVERY_IVL and ZMQ_RECOVERY_IVL_MSEC reconciled

    There's only one option now -- ZMQ_RECOVRY_IVL --
    and it's measured in milliseconds.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 24 ++----------------------
 doc/zmq_setsockopt.txt | 31 +++----------------------------
 include/zmq.h          |  1 -
 src/options.cpp        | 22 ++--------------------
 src/options.hpp        |  4 +---
 src/pgm_socket.cpp     | 23 ++++-------------------
 6 files changed, 12 insertions(+), 93 deletions(-)

commit 8463b4d55e45ea29d5a23f867e7f1c0077279ee7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 12:27:06 2011 +0100

    SWAP functionality removed

    On-disk storage should be implemented in devices rather than
    in 0MQ core. 0MQ is a networking library and there's no point
    in storing network buffers on disk.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt |  16 ---
 doc/zmq_setsockopt.txt |  16 ---
 include/zmq.h          |   1 -
 src/Makefile.am        |   2 -
 src/config.hpp         |   4 -
 src/options.cpp        |  18 ---
 src/options.hpp        |   1 -
 src/pipe.cpp           |  93 ++------------
 src/pipe.hpp           |  30 ++---
 src/session.cpp        |   6 +-
 src/socket_base.cpp    |  20 ++-
 src/swap.cpp           | 325 -------------------------------------------------
 src/swap.hpp           | 123 -------------------
 13 files changed, 24 insertions(+), 631 deletions(-)

commit fb27a000d9383b503761d0124e7bd41115d70c9a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 11:53:55 2011 +0100

    send/recv was changed to send/recv/sendmsg/recvmsg

    send/recv now complies with POSIX by using raw buffers instead
    of message objects and by returning number of bytes sent/recvd
    instead of 0/-1.

    The return value is changed accordingly for sendmsg and recvmsg.

    Note that related man pages will be fixed in a separate patch.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h       |  6 ++++--
 perf/local_lat.cpp  | 12 +++++------
 perf/local_thr.cpp  | 12 +++++------
 perf/remote_lat.cpp | 12 +++++------
 perf/remote_thr.cpp |  6 +++---
 src/zmq.cpp         | 59 +++++++++++++++++++++++++++++++++++++++++++++++++----
 tests/test_hwm.cpp  | 34 +++++-------------------------
 tests/testutil.hpp  | 38 ++++++++++------------------------
 8 files changed, 96 insertions(+), 83 deletions(-)

commit d4e83d26014f41eaa1698b4062de88fe7f36a669
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 10:18:06 2011 +0100

    C++ binding removed from the core

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/redhat/zeromq.spec |   1 -
 doc/Makefile.am           |   4 +-
 doc/zmq_cpp.txt           | 212 ----------------------------------
 include/zmq.hpp           | 289 ----------------------------------------------
 src/Makefile.am           |   2 +-
 5 files changed, 3 insertions(+), 505 deletions(-)

commit 7d87db05290e3fd742f381b6f419eb69518ca8cf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 24 10:03:49 2011 +0100

    Auto-tests modified to use C API instead of C++ binding

    As a side effect, broker HWM test was fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 tests/test_hwm.cpp             |  99 ++++++++++++++++++++---------
 tests/test_pair_inproc.cpp     |  30 +++++++--
 tests/test_pair_ipc.cpp        |  30 +++++++--
 tests/test_pair_tcp.cpp        |  30 +++++++--
 tests/test_reqrep_inproc.cpp   |  30 +++++++--
 tests/test_reqrep_ipc.cpp      |  30 +++++++--
 tests/test_reqrep_tcp.cpp      |  30 +++++++--
 tests/test_shutdown_stress.cpp |   2 +-
 tests/testutil.hpp             | 139 ++++++++++++-----------------------------
 9 files changed, 259 insertions(+), 161 deletions(-)

commit 941be8d2175332cb720f390f93d07a0870db8824
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 23 17:44:16 2011 +0100

    zmq_device removed

    Devices are basically applications on top of 0MQ stack. They
    should reside in separate libraties.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/redhat/zeromq.spec |   7 ---
 include/zmq.h             |  10 ----
 include/zmq.hpp           |   7 ---
 src/Makefile.am           |   2 -
 src/device.cpp            | 120 ----------------------------------------------
 src/device.hpp            |  32 -------------
 src/zmq.cpp               |  18 -------
 7 files changed, 196 deletions(-)

commit d4d184a750e2c09a39b95db9a54daf83aac5a446
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 23 17:33:07 2011 +0100

    Pre-compiled devices removed

    Along with the devices, xmlParser which is no longer needed
    is removed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 MAINTAINERS                             |    4 -
 Makefile.am                             |    8 +-
 configure.in                            |    2 -
 devices/Makefile.am                     |    3 -
 devices/zmq_forwarder/Makefile.am       |    8 -
 devices/zmq_forwarder/zmq_forwarder.cpp |  124 --
 devices/zmq_queue/Makefile.am           |    8 -
 devices/zmq_queue/zmq_queue.cpp         |  123 --
 devices/zmq_streamer/Makefile.am        |    8 -
 devices/zmq_streamer/zmq_streamer.cpp   |  123 --
 doc/Makefile.am                         |    6 +-
 doc/zmq_forwarder.txt                   |   33 -
 doc/zmq_queue.txt                       |   33 -
 doc/zmq_streamer.txt                    |   33 -
 foreign/xmlParser/xmlParser.cpp         | 2923 -------------------------------
 foreign/xmlParser/xmlParser.hpp         |  762 --------
 16 files changed, 5 insertions(+), 4196 deletions(-)

commit b45b68dp4ab90af1ce35deec52b0c0492a1f49d4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 23 17:01:39 2011 +0100

    ZMQ_MCAST_LOOP removed

    Multicast loopback is not a real multicast, rather a kernel-space
    simulation. Moreover, it tends to be rather unreliable and lossy.
    Removing the option will force users to use transports better
    suited for the job, such as inproc or ipc.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 17 -----------------
 doc/zmq_pgm.txt        |  5 ++---
 doc/zmq_setsockopt.txt | 17 -----------------
 include/zmq.h          |  1 -
 src/options.cpp        | 25 -------------------------
 src/options.hpp        |  3 ---
 src/pgm_socket.cpp     |  2 +-
 7 files changed, 3 insertions(+), 67 deletions(-)

commit f5e6d67948b8c71c2444046f6246dpbab16546dc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 23 15:50:18 2011 +0100

    Timeout in zmq_poll is in milliseconds

    The old timeout in microsecond haven't been compliant with
    POSIX and was impractical at the same time.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_poll.txt |  2 +-
 src/zmq.cpp      | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

commit e3cf6e9ced979464d30ad4cd63087cfbee33e9bd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 23 15:40:35 2011 +0100

    Obsolete note removed from zmq_poll(3) manpage

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_poll.txt | 3 ---
 1 file changed, 3 deletions(-)

commit 34d7854199ab89faf2edfc3305932cc07b2030ab
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 23 15:26:47 2011 +0100

    Obsolete constants ZMQ_UPSTREAM and ZMQ_DOWNSTREAM removed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 devices/zmq_streamer/zmq_streamer.cpp | 4 ++--
 include/zmq.h                         | 2 --
 2 files changed, 2 insertions(+), 4 deletions(-)

commit dee5f650dde07ec71f482e825984a31028467d1b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 23 15:24:18 2011 +0100

    Version bumped to 3.0.0

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1619b3d84a04fe1886347fd83280a6070c9603f4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Mar 20 20:52:54 2011 +0100

    Message atomicity bug in load-balancer fixed

    If the peer getting the message have disconnected in the middle
    of multiplart message, the remaining part of the message went
    to a different peer. This patch fixes the issue.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/lb.cpp | 25 ++++++++++++++++++++++++-
 src/lb.hpp |  3 +++
 2 files changed, 27 insertions(+), 1 deletion(-)

commit 92c7c18367f91c6341fc617026f5e25000466b05
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Mar 20 11:50:51 2011 +0100

    Message atomicity problem solved in PUB socket

    When new peer connects to a PUB socket while it is in the middle
    of sending of multi-part messages, it gets just the remaining
    part of the message, i.e. message atomicity is broken.

    This patch drops the tail part of the message and starts sending
    to the peer only when new message is started.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/dist.cpp | 44 +++++++++++++++++++++++++++++++++++++++-----
 src/dist.hpp | 15 +++++++++++++++
 2 files changed, 54 insertions(+), 5 deletions(-)

commit fac9c2da56073d15cfe25ea2bb5833cb5b9cfff6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 16 16:32:31 2011 +0100

    zmq_socket(3) and zmq_setsockopt(3) man pages improved

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_setsockopt.txt | 3 ++-
 doc/zmq_socket.txt     | 8 +++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

commit f5015f4c933706f34dbe3cb78e7db29e2ab7f870
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 16 13:48:40 2011 +0100

    Incorrect errno reported from tcp_listener_t::set_address

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/tcp_listener.cpp | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit 32ded2b457b2102dba4c15e00363f031d212b1c4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 16 13:26:23 2011 +0100

    Duplicate identities now checked with zmq_connect

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/connect_session.cpp   | 45 +++++++++++++++++++++++++++++++++++++++++++--
 src/connect_session.hpp   | 10 +++++++++-
 src/named_session.cpp     | 12 +++++++++---
 src/named_session.hpp     |  2 +-
 src/session.cpp           | 38 ++++++++++++++++++++------------------
 src/session.hpp           | 12 ++++++++----
 src/socket_base.cpp       |  4 +++-
 src/transient_session.cpp |  4 +++-
 src/transient_session.hpp |  2 +-
 9 files changed, 97 insertions(+), 32 deletions(-)

commit b79d07b8bc844135c44c1ff8b84b50dc08f56925
Author: Jon Dyte <jon@totient.co.uk>
Date:   Wed Mar 16 09:54:03 2011 +0100

    reset socket state when identity message cannot be written to xrep

     Signed-off-by: Jon Dyte <jon@totient.co.uk>

 src/xrep.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 7045a4a21327f19170e282f6ba2d25caff13aa90
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 15 13:11:20 2011 +0100

    Dead code removed from named_session.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/named_session.cpp | 57 +++++++++++++++------------------------------------
 src/named_session.hpp |  5 ++---
 2 files changed, 18 insertions(+), 44 deletions(-)

commit f987f4b3e28b24fd3e58408c568b688ad1306766
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Mar 14 20:29:00 2011 +0100

    FreeBSD complation error fixed

    There was an error in pgm_receiver wrt strict aliasing.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_receiver.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 2970d6c30b1f57e9a75d46982378b103899bddbc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Mar 14 07:11:30 2011 +0100

    Remove obsolete assert from pgm_socket.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.cpp | 1 -
 1 file changed, 1 deletion(-)

commit d0c8edde3596f512d629c6b075289ebe86488ea9
Author: Guido Goldstein <github@a-nugget.de>
Date:   Sat Mar 12 17:16:27 2011 +0100

    Added missing close method w/ check if socket is already closed.

    Signed-off-by: Guido Goldstein <github@a-nugget.de>

 include/zmq.hpp | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

commit 7b95c5920c3318935b8cd8f3591cd5c65509f819
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 9 16:34:37 2011 +0100

    Windows build fixed

    Compilation of ip.cpp have failed because EPROTONOSUPPORT
    was undefined. Including zmq.h should help as the error
    code is defined there.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ip.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit b00be2651c39d0c08064f206b31a14e810ba0b22
Author: Brett Cameron <Brett.Cameron@hp.com>
Date:   Tue Mar 8 14:39:52 2011 +0100

    Different fixed to make OpenVMS port work.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS           |  2 +-
 src/ip.cpp        | 16 ++++++++++------
 src/ip.hpp        |  2 --
 src/semaphore.hpp |  2 ++
 src/stdint.hpp    | 10 +---------
 5 files changed, 14 insertions(+), 18 deletions(-)

commit 184bdb8e2bb6fe252af1bf4dd16d1c9ed8892f7a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 3 12:37:11 2011 +0100

    Bug caused by interaction of REQ/REP routing and HWM fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

commit 97add1ec2f75858ee950fa19b266396147efa224
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Mar 3 12:15:08 2011 +0100

    Documentation wrt thread-safety cleaned up.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_init.txt   |  5 +++++
 doc/zmq_socket.txt | 13 +++----------
 2 files changed, 8 insertions(+), 10 deletions(-)

commit 18b9ebea32fbf4a4552b0435c8759e5e5c6fe219
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 2 16:30:40 2011 +0100

    The copyrights in file headers updated.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 autogen.sh                              | 8 +++++---
 builds/msvc/platform.hpp                | 3 ++-
 devices/zmq_forwarder/zmq_forwarder.cpp | 3 ++-
 devices/zmq_queue/zmq_queue.cpp         | 3 ++-
 devices/zmq_streamer/zmq_streamer.cpp   | 3 ++-
 include/zmq.h                           | 3 ++-
 include/zmq.hpp                         | 3 ++-
 include/zmq_utils.h                     | 3 ++-
 perf/local_lat.cpp                      | 3 ++-
 perf/local_thr.cpp                      | 3 ++-
 perf/remote_lat.cpp                     | 3 ++-
 perf/remote_thr.cpp                     | 3 ++-
 src/array.hpp                           | 3 ++-
 src/atomic_counter.hpp                  | 3 ++-
 src/atomic_ptr.hpp                      | 3 ++-
 src/blob.hpp                            | 3 ++-
 src/clock.cpp                           | 3 ++-
 src/clock.hpp                           | 3 ++-
 src/command.cpp                         | 3 ++-
 src/command.hpp                         | 3 ++-
 src/config.hpp                          | 3 ++-
 src/connect_session.cpp                 | 3 ++-
 src/connect_session.hpp                 | 3 ++-
 src/ctx.cpp                             | 3 ++-
 src/ctx.hpp                             | 3 ++-
 src/decoder.cpp                         | 3 ++-
 src/decoder.hpp                         | 3 ++-
 src/device.cpp                          | 3 ++-
 src/device.hpp                          | 3 ++-
 src/devpoll.cpp                         | 3 ++-
 src/devpoll.hpp                         | 3 ++-
 src/dist.cpp                            | 3 ++-
 src/dist.hpp                            | 3 ++-
 src/encoder.cpp                         | 3 ++-
 src/encoder.hpp                         | 3 ++-
 src/epoll.cpp                           | 3 ++-
 src/epoll.hpp                           | 3 ++-
 src/err.cpp                             | 3 ++-
 src/err.hpp                             | 3 ++-
 src/fd.hpp                              | 3 ++-
 src/fq.cpp                              | 3 ++-
 src/fq.hpp                              | 3 ++-
 src/i_engine.hpp                        | 3 ++-
 src/i_inout.hpp                         | 3 ++-
 src/i_poll_events.hpp                   | 3 ++-
 src/io_object.cpp                       | 3 ++-
 src/io_object.hpp                       | 3 ++-
 src/io_thread.cpp                       | 3 ++-
 src/io_thread.hpp                       | 3 ++-
 src/ip.cpp                              | 3 ++-
 src/ip.hpp                              | 3 ++-
 src/kqueue.cpp                          | 3 ++-
 src/kqueue.hpp                          | 3 ++-
 src/lb.cpp                              | 3 ++-
 src/lb.hpp                              | 3 ++-
 src/likely.hpp                          | 3 ++-
 src/mailbox.cpp                         | 3 ++-
 src/mailbox.hpp                         | 3 ++-
 src/msg_content.hpp                     | 3 ++-
 src/mutex.hpp                           | 3 ++-
 src/named_session.cpp                   | 3 ++-
 src/named_session.hpp                   | 3 ++-
 src/object.cpp                          | 3 ++-
 src/object.hpp                          | 3 ++-
 src/options.cpp                         | 3 ++-
 src/options.hpp                         | 3 ++-
 src/own.cpp                             | 3 ++-
 src/own.hpp                             | 3 ++-
 src/pair.cpp                            | 3 ++-
 src/pair.hpp                            | 3 ++-
 src/pgm_receiver.cpp                    | 3 ++-
 src/pgm_receiver.hpp                    | 3 ++-
 src/pgm_sender.cpp                      | 3 ++-
 src/pgm_sender.hpp                      | 3 ++-
 src/pgm_socket.cpp                      | 3 ++-
 src/pgm_socket.hpp                      | 3 ++-
 src/pipe.cpp                            | 3 ++-
 src/pipe.hpp                            | 3 ++-
 src/poll.cpp                            | 3 ++-
 src/poll.hpp                            | 3 ++-
 src/poller.hpp                          | 3 ++-
 src/poller_base.cpp                     | 3 ++-
 src/poller_base.hpp                     | 3 ++-
 src/pub.cpp                             | 3 ++-
 src/pub.hpp                             | 3 ++-
 src/pull.cpp                            | 3 ++-
 src/pull.hpp                            | 3 ++-
 src/push.cpp                            | 3 ++-
 src/push.hpp                            | 3 ++-
 src/reaper.cpp                          | 3 ++-
 src/reaper.hpp                          | 3 ++-
 src/rep.cpp                             | 3 ++-
 src/rep.hpp                             | 3 ++-
 src/req.cpp                             | 3 ++-
 src/req.hpp                             | 3 ++-
 src/select.cpp                          | 3 ++-
 src/select.hpp                          | 3 ++-
 src/semaphore.hpp                       | 3 ++-
 src/session.cpp                         | 3 ++-
 src/session.hpp                         | 3 ++-
 src/socket_base.cpp                     | 3 ++-
 src/socket_base.hpp                     | 3 ++-
 src/stdint.hpp                          | 3 ++-
 src/sub.cpp                             | 3 ++-
 src/sub.hpp                             | 3 ++-
 src/swap.cpp                            | 3 ++-
 src/swap.hpp                            | 3 ++-
 src/tcp_connecter.cpp                   | 3 ++-
 src/tcp_connecter.hpp                   | 3 ++-
 src/tcp_listener.cpp                    | 3 ++-
 src/tcp_listener.hpp                    | 3 ++-
 src/tcp_socket.cpp                      | 3 ++-
 src/tcp_socket.hpp                      | 3 ++-
 src/thread.cpp                          | 3 ++-
 src/thread.hpp                          | 3 ++-
 src/transient_session.cpp               | 3 ++-
 src/transient_session.hpp               | 3 ++-
 src/trie.cpp                            | 3 ++-
 src/trie.hpp                            | 3 ++-
 src/uuid.cpp                            | 3 ++-
 src/uuid.hpp                            | 3 ++-
 src/windows.hpp                         | 3 ++-
 src/wire.hpp                            | 3 ++-
 src/xpub.cpp                            | 3 ++-
 src/xpub.hpp                            | 3 ++-
 src/xrep.cpp                            | 3 ++-
 src/xrep.hpp                            | 3 ++-
 src/xreq.cpp                            | 3 ++-
 src/xreq.hpp                            | 4 +++-
 src/xsub.cpp                            | 3 ++-
 src/xsub.hpp                            | 3 ++-
 src/ypipe.hpp                           | 3 ++-
 src/yqueue.hpp                          | 3 ++-
 src/zmq.cpp                             | 3 ++-
 src/zmq_connecter.cpp                   | 3 ++-
 src/zmq_connecter.hpp                   | 3 ++-
 src/zmq_engine.cpp                      | 3 ++-
 src/zmq_engine.hpp                      | 3 ++-
 src/zmq_init.cpp                        | 3 ++-
 src/zmq_init.hpp                        | 3 ++-
 src/zmq_listener.cpp                    | 3 ++-
 src/zmq_listener.hpp                    | 3 ++-
 tests/test_hwm.cpp                      | 3 ++-
 tests/test_pair_inproc.cpp              | 3 ++-
 tests/test_pair_ipc.cpp                 | 3 ++-
 tests/test_pair_tcp.cpp                 | 3 ++-
 tests/test_reqrep_inproc.cpp            | 3 ++-
 tests/test_reqrep_ipc.cpp               | 3 ++-
 tests/test_reqrep_tcp.cpp               | 3 ++-
 tests/test_shutdown_stress.cpp          | 3 ++-
 tests/testutil.hpp                      | 3 ++-
 151 files changed, 306 insertions(+), 153 deletions(-)

commit 5fcef1cac4d9faf0279b83ba48899b0e17b8e2d5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 2 09:00:36 2011 +0100

    ZMQ_MAXMSGSIZE option added

    The new option allows user to guard against peers sending
    oversized messages. Connection to peer sending oversized message
    is dropped.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 14 ++++++++++++++
 doc/zmq_setsockopt.txt | 12 ++++++++++++
 include/zmq.h          |  1 +
 src/decoder.cpp        | 21 +++++++++++++++++----
 src/decoder.hpp        |  5 ++++-
 src/options.cpp        | 18 ++++++++++++++++++
 src/options.hpp        |  3 +++
 src/pgm_receiver.cpp   |  3 ++-
 src/zmq_engine.cpp     |  2 +-
 9 files changed, 72 insertions(+), 7 deletions(-)

commit 4c7446211a02937f3e2522dpce163d417b4ad0b9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 1 16:08:40 2011 +0100

    Explicit identities bug in inproc transport fixed.

    The identity of bound socket was not used. Instead, transient
    identity was generated.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 67b1f14190186f54fc5954a70f7214411d780dpa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 26 08:42:20 2011 +0100

    Memory leak in PUB/XPUB sockets fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xpub.cpp | 14 ++++++--------
 src/xpub.hpp |  4 ----
 src/xsub.cpp |  7 ++-----
 src/xsub.hpp |  4 ----
 4 files changed, 8 insertions(+), 21 deletions(-)

commit d4e418f5f48a4d73e0a80a54593d11a6cd86d7bc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 25 08:58:01 2011 +0100

    Socket with no owner objects is deallocated immediately

    Till now the deallocation of such socket was delayed
    till zmq_term() thus creating a "leak".

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/reaper.cpp      |  7 ++++---
 src/socket_base.cpp | 24 ++++++++++++++----------
 src/socket_base.hpp |  4 ++++
 3 files changed, 22 insertions(+), 13 deletions(-)

commit c22e52737a5f12f0edfe3f669fa2bfd6e372dec7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 24 16:57:53 2011 +0100

    Minor patch to zmq_getsockopt(3) man page

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 29e0e7dbadfcd0bab70feee119bd7c5e623b38d4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 23 11:48:49 2011 +0100

    Incorrect PGM sender/receiver creation fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/connect_session.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 820fec7f28b54dc5fc16a38eceb405e9af41260c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 22 21:43:52 2011 +0100

    Version bumped to 2.2.0

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 43e8868875e1d5287979e5b9060a9b16be45cc79
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 22 16:23:36 2011 +0100

    Added explicit error message in case of memory exhaustion

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/connect_session.cpp |  6 +++---
 src/ctx.cpp             |  6 +++---
 src/decoder.hpp         |  2 +-
 src/encoder.hpp         |  2 +-
 src/epoll.cpp           |  2 +-
 src/err.hpp             | 20 +++++++++++++-------
 src/io_thread.cpp       |  2 +-
 src/ip.cpp              |  2 +-
 src/kqueue.cpp          |  2 +-
 src/object.cpp          |  4 ++--
 src/pgm_receiver.cpp    |  1 +
 src/pgm_sender.cpp      |  2 +-
 src/pgm_socket.cpp      |  3 ++-
 src/pipe.cpp            |  8 ++++----
 src/reaper.cpp          |  2 +-
 src/session.cpp         |  2 --
 src/socket_base.cpp     |  6 +++---
 src/swap.cpp            | 13 ++++++++-----
 src/trie.cpp            |  6 +++---
 src/yqueue.hpp          |  4 ++--
 src/zmq.cpp             |  8 ++++----
 src/zmq_connecter.cpp   |  2 +-
 src/zmq_init.cpp        |  6 +++---
 src/zmq_listener.cpp    |  2 +-
 24 files changed, 61 insertions(+), 52 deletions(-)

commit 98ccff1a24a056dpf15372b131eee1c1bf8f62ca
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Feb 21 23:40:48 2011 +0100

    Fixes build on at least CentOS 5

    Signed-off-by: Mikko Koppanen <mikko.koppanen@gmail.com>

 builds/redhat/zeromq.spec | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

commit 0eea93526d210372c23041d50f4b401a94e3a006
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 21 17:49:12 2011 +0100

    Fix for memory leak caused by long identities

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq_init.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 5c0931121ba1854766599b6b7dbd1a7937febd6d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 21 11:22:54 2011 +0100

    Computation of buffer size for PGM fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.cpp | 41 +++++++++++++++++++++++++++++------------
 src/pgm_socket.hpp |  3 +++
 2 files changed, 32 insertions(+), 12 deletions(-)

commit 12486fecc4f8d9a3bed37cf3d732b1250b075e24
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 18 17:57:59 2011 +0100

    Fix MSVC and SunStudio builds with OpenPGM

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.hpp | 5 +++++
 src/zmq.cpp        | 6 ++++++
 2 files changed, 11 insertions(+)

commit 17e2ca71b4f6db76a4848d366defa36f1b19bdd7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 18 14:15:10 2011 +0100

    Logging of duplicit identities added

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ctx.cpp     | 12 ++++++++++--
 src/ctx.hpp     |  3 ++-
 src/object.cpp  |  8 ++++++--
 src/object.hpp  |  2 +-
 src/session.cpp |  1 +
 5 files changed, 20 insertions(+), 6 deletions(-)

commit 1f536b2d3820ba5435086a77ad34d86a432b94c7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 17 14:20:19 2011 +0100

    Init object is child of listener

    This means that all the handshaking while accepting incoming
    connection is done exclusively in I/O threads, thus it won't
    overload the application thread's mailbox.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq_listener.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 28f3e87fc6c8c5c7046234bf9a08dp62f26d7f3a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 17 10:33:38 2011 +0100

    Add delay before reconnecting

    So far ZMQ_RECONNECT_IVL delay was used only when TCP connect
    failed. Now it is used even if connect succeeds and the peer
    closes the connection afterwards.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/config.hpp          | 3 ---
 src/connect_session.cpp | 9 +++++----
 src/connect_session.hpp | 2 +-
 src/zmq_connecter.cpp   | 4 ++--
 src/zmq_connecter.hpp   | 2 +-
 5 files changed, 9 insertions(+), 11 deletions(-)

commit fbe5d859f461b0deaa6083fdee077e01e9b47b91
Author: Michdpl Compton <michdpl.compton@littleedge.co.uk>
Date:   Tue Feb 15 09:33:19 2011 +0100

    Added note regarding setting sockopt before bind/connect

    Signed-off-by: Michdpl Compton <michdpl.compton@littleedge.co.uk>

 AUTHORS                | 1 +
 doc/zmq_setsockopt.txt | 1 +
 2 files changed, 2 insertions(+)

commit ba26cc9938c33fe0837322ea34bcd438f9b7d207
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Feb 13 10:07:10 2011 +0100

    Build problem with OpenPGM and MSVC fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 14a0e147b2b89fc7fed92c7d9c806b6c53380400
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Feb 12 18:36:21 2011 +0100

    Fixed win32 issue with WSAStartup

     - ctx constructor was calling mailbox_t constructor implicitly
     - moved WSAStartup and WSACleanup to be outside constructor/destructor

    Signed-off-by: Pieter Hintjens <ph@imatix.com>

 src/ctx.cpp | 17 -----------------
 src/zmq.cpp | 19 +++++++++++++++++++
 2 files changed, 19 insertions(+), 17 deletions(-)

commit e94790006ea6f4c64cc1df1c193aa1cf89a75100
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 9 22:33:57 2011 +0100

    reaper added to MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 5b82b1ba30d136655c72f116ee2e372ded453952
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 9 22:23:21 2011 +0100

    Reaper thread waits for commands rather them retrieving them periodically

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/command.hpp     |  5 +++++
 src/object.cpp      | 20 +++++++++++++++++
 src/object.hpp      |  2 ++
 src/reaper.cpp      | 64 ++++++++++++++++++-----------------------------------
 src/reaper.hpp      | 13 ++++-------
 src/socket_base.cpp | 53 ++++++++++++++++++++++++++++++--------------
 src/socket_base.hpp | 21 ++++++++++++++----
 7 files changed, 106 insertions(+), 72 deletions(-)

commit 80ac398bba928fa7f245d2e107071677a13185cf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 9 15:32:15 2011 +0100

    Initial implementation of reaper thread.

    Reaper thread destroys the socket asynchronously.
    zmq_term() can be interrupted by a signal (EINTR).
    zmq_socket() will return ETERM after zmq_term() was called.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_socket.txt  |   3 +-
 doc/zmq_term.txt    |   2 +
 src/Makefile.am     |   2 +
 src/command.hpp     |  15 ++++-
 src/ctx.cpp         | 158 ++++++++++++++++++++++++----------------------------
 src/ctx.hpp         |  43 +++++++-------
 src/io_thread.cpp   |   2 +-
 src/io_thread.hpp   |   3 +
 src/object.cpp      |  42 ++++++++++++--
 src/object.hpp      |   8 +--
 src/reaper.cpp      | 139 +++++++++++++++++++++++++++++++++++++++++++++
 src/reaper.hpp      |  81 +++++++++++++++++++++++++++
 src/socket_base.cpp |  18 +++---
 src/socket_base.hpp |   8 ++-
 14 files changed, 394 insertions(+), 130 deletions(-)

commit 889424e675eecd9d9c7d1121456401d5c43029a5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 8 16:19:37 2011 +0100

    max_sockets honoured precisely

    The internal log socket was subtracted from the number of
    available sockets. So, if max_sockets was set to 100,
    you could create only 99 sockets. Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ctx.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5dcbc34396bb4d256916fafcbb2ddd646ad179e6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 8 14:46:27 2011 +0100

    zmq_poll with no fds behaves decently

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 908b39bf8309044913a34c632cd432958dcf6960
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Feb 7 15:06:20 2011 +0100

    m4_esyscmd_s doesnt seem to be portable across different systems

    Signed-off-by: Mikko Koppanen <mikko.koppanen@gmail.com>

 configure.in | 2 +-
 version.sh   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit c8e5be87d82e73cfc8a6655d2c2b6779f7c223a5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 5 15:04:15 2011 +0100

    test-hwm added to .gitignore

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 4efead1bbb8f3d2b84ad8e1fc88b65bc621f987f
Author: Chris Rempel <csrl@gmx.com>
Date:   Sat Feb 5 14:42:21 2011 +0100

    Fixed autogen.sh warnings on Debian 6 systems.

    Signed-off-by: Chris Rempel <csrl@gmx.com>

    Please enter the commit message for your changes. Lines starting

 AUTHORS      | 1 +
 configure.in | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 042e34a5d99a9d39b0680d063878f13f5d7e7337
Author: Thijs Terlouw <thijsterlouw@gmail.com>
Date:   Fri Feb 4 16:44:13 2011 +0100

    operator void* () added to context_t.

    Makes it possible to share the context from C++ to C.

    Signed-off-by: Thijs Terlouw <thijsterlouw@gmail.com>

 include/zmq.hpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 3f758ab2f45a07e3e77af4f1b32dc876f5a151ad
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 3 09:59:54 2011 +0100

    Don't use RLIMIT_NOFILES in devpoll_t.

    The patch allows for running 0MQ on Solaris and HP-UX
    even though ulimit for max number of file descriptors
    is set to unlimited.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/devpoll.cpp | 20 ++++++++++----------
 src/devpoll.hpp |  3 ++-
 2 files changed, 12 insertions(+), 11 deletions(-)

commit ca1acc340c256a35f0db58805bba7cb337d9a5a3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 3 08:46:04 2011 +0100

    RLIMIT_NOFILE not used in poll_t anymore

    The problem was that RLIMIT_NOFILE can be set to RLIM_INIFINITY
    (and that appears to be default on AIX) which caused 0MQ to fail.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/poll.cpp | 20 ++++++++++----------
 src/poll.hpp |  3 ++-
 2 files changed, 12 insertions(+), 11 deletions(-)

commit 1e0302633ea10766d21b2a70d62e6f16440c18d4
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sun Jan 30 12:43:17 2011 +0100

    Added WithOpenPGM configuration into MSVC builds

    Signed-off-by: Mikko Koppanen <mikko.koppanen@gmail.com>

 builds/msvc/libzmq/libzmq.vcproj | 77 ++++++++++++++++++++++++++++++++++++++++
 builds/msvc/msvc.sln             | 17 +++++++++
 2 files changed, 94 insertions(+)

commit 72d320366f2a1076ced81f4e871c7affbb9ffb9d
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sun Jan 30 11:51:30 2011 +0100

    Added test for HWM

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 tests/Makefile.am  |  5 +++-
 tests/test_hwm.cpp | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 1 deletion(-)

commit 1b15eba9a9718adfeea5cecf499b8247596f6c71
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 28 07:50:21 2011 +0100

    Fixed the problem of subscription forwarding and PGM interaction

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/socket_base.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f7f1dfc86dd649edbd789a5d157d74721338c912
Author: Thijs Terlouw <thijsterlouw@gmail.com>
Date:   Wed Jan 26 07:01:06 2011 +0100

    ZMQ_RECONNECT_IVL_MAX socket option added

    It allows for exponential back-off strategy when reconnecting.

    Signed-off-by: Thijs Terlouw <thijsterlouw@gmail.com>

 AUTHORS                |  1 +
 doc/zmq_getsockopt.txt | 23 +++++++++++++++++++--
 doc/zmq_setsockopt.txt | 24 +++++++++++++++++++---
 include/zmq.h          |  3 ++-
 src/options.cpp        | 22 ++++++++++++++++++++
 src/options.hpp        |  6 +++++-
 src/zmq_connecter.cpp  | 55 ++++++++++++++++++++++++++++++++++----------------
 src/zmq_connecter.hpp  | 12 +++++++++--
 8 files changed, 120 insertions(+), 26 deletions(-)

commit 8e61a11b398c95d829f24c388737eb122405c97b
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Thu Jan 20 22:13:01 2011 +0100

    Do not execute ipc tests under MinGW

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 tests/Makefile.am | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 8561a55d2ca3f99ef7d122cf621b2379924152a5
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Thu Jan 20 22:12:25 2011 +0100

    Remove unnecessary visibility pragmas

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 src/zmq.cpp | 9 ---------
 1 file changed, 9 deletions(-)

commit c91bf25645b27fb903886093b27fa153c60be2fd
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Thu Jan 20 07:52:40 2011 +0100

    Fix handle connection reset during session init

    Patch to handle nmap version probes.

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/decoder.hpp    | 4 ++++
 src/zmq_engine.cpp | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

commit 56bdba592cf336b2bd4241a2b8e331cd38a089e4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 18 15:57:45 2011 +0100

    Fix cppcheck warnings:  Prefer prefix ++/-- operators for non-primitive types.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ctx.cpp          | 6 +++---
 src/epoll.cpp        | 4 ++--
 src/kqueue.cpp       | 2 +-
 src/own.cpp          | 2 +-
 src/pgm_receiver.cpp | 2 +-
 src/poller_base.cpp  | 2 +-
 src/select.cpp       | 4 ++--
 src/xrep.cpp         | 8 ++++----
 8 files changed, 15 insertions(+), 15 deletions(-)

commit b262f2fe9ba02a6d2749e286eaadc65d489600c9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 17 14:51:01 2011 +0100

    Typo fixed in zmq_send(3) man page.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_send.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 667b247e322e2f0e99b680170a1d004f124b0568
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Jan 17 14:45:24 2011 +0100

    Cancel pending timers when decoder for PGM stalls

    Otherwise the timer event can raise an input event
    causing assertion on unprocessed data.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/pgm_receiver.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit a249d152003d7a7ebf048c2a9a0307abc1adb704
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 15 20:16:00 2011 +0100

    Fix MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 59fa0c9b46a7f8291c68564ad71ef97dd0bdp69e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 14 12:41:12 2011 +0100

    Gerard Toonstra added to the authors file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit a348d94c09ab93a19a57ec22a86782e45f1d06ac
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 14 12:38:07 2011 +0100

    Fair queueing of subscriptions added to XPUB socket

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xpub.cpp | 19 ++++++++++++++++---
 src/xpub.hpp |  6 ++++++
 2 files changed, 22 insertions(+), 3 deletions(-)

commit 58c9830d90fc39727cec88e48f8985a499aa0ee7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 14 12:25:54 2011 +0100

    XSUB socket has a subscription distributor

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xsub.cpp | 7 +++++--
 src/xsub.hpp | 4 ++++
 2 files changed, 9 insertions(+), 2 deletions(-)

commit 8edp7d8507b1c96dpc28bca20a157bb7537c3eb8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 14 12:05:10 2011 +0100

    'message distribution mechanism' separated from XPUB socket

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am |   2 +
 src/dist.cpp    | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/dist.hpp    |  76 ++++++++++++++++++++++++++
 src/xpub.cpp    | 119 +++--------------------------------------
 src/xpub.hpp    |  23 ++------
 5 files changed, 249 insertions(+), 132 deletions(-)

commit 18f29ded6a83875c27395d254c25e3d152dp1cc6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 13 11:44:23 2011 +0100

    Make cppcheck not complain about "'operator=' should return something"

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/array.hpp             | 4 ++--
 src/atomic_counter.hpp    | 2 +-
 src/atomic_ptr.hpp        | 2 +-
 src/clock.hpp             | 2 +-
 src/connect_session.hpp   | 2 +-
 src/ctx.hpp               | 2 +-
 src/decoder.hpp           | 2 +-
 src/devpoll.hpp           | 2 +-
 src/encoder.hpp           | 2 +-
 src/epoll.hpp             | 2 +-
 src/fq.hpp                | 2 +-
 src/io_object.hpp         | 2 +-
 src/kqueue.hpp            | 2 +-
 src/lb.hpp                | 2 +-
 src/mailbox.hpp           | 2 +-
 src/mutex.hpp             | 2 +-
 src/named_session.hpp     | 2 +-
 src/object.hpp            | 2 +-
 src/own.hpp               | 2 +-
 src/pair.hpp              | 2 +-
 src/pgm_receiver.hpp      | 2 +-
 src/pgm_sender.hpp        | 2 +-
 src/pipe.hpp              | 4 ++--
 src/poll.hpp              | 2 +-
 src/poller_base.hpp       | 2 +-
 src/pub.hpp               | 2 +-
 src/pull.hpp              | 2 +-
 src/push.hpp              | 2 +-
 src/rep.hpp               | 2 +-
 src/req.hpp               | 2 +-
 src/select.hpp            | 2 +-
 src/semaphore.hpp         | 6 +++---
 src/session.hpp           | 2 +-
 src/socket_base.hpp       | 2 +-
 src/sub.hpp               | 2 +-
 src/swap.hpp              | 4 ++++
 src/tcp_connecter.hpp     | 2 +-
 src/tcp_listener.hpp      | 2 +-
 src/tcp_socket.hpp        | 2 +-
 src/thread.hpp            | 2 +-
 src/transient_session.hpp | 2 +-
 src/trie.hpp              | 2 +-
 src/xpub.hpp              | 2 +-
 src/xrep.hpp              | 2 +-
 src/xreq.hpp              | 2 +-
 src/xsub.hpp              | 2 +-
 src/ypipe.hpp             | 2 +-
 src/yqueue.hpp            | 2 +-
 src/zmq_connecter.hpp     | 2 +-
 src/zmq_engine.hpp        | 2 +-
 src/zmq_init.hpp          | 2 +-
 src/zmq_listener.hpp      | 2 +-
 52 files changed, 59 insertions(+), 55 deletions(-)

commit 70513871082462c957e46986040ebe7b10d64557
Author: Neale Ferguson <neale@sinenomine.net>
Date:   Wed Jan 12 09:22:25 2011 +0100

    Support dynamic generation of C preprocessor definitions for PGM rather than hardcoding them.

    Signed-off-by: Neale Ferguson <neale@sinenomine.net>

 AUTHORS         |  1 +
 configure.in    | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 src/Makefile.am | 14 +-------------
 src/clock.cpp   |  5 +++++
 4 files changed, 60 insertions(+), 19 deletions(-)

commit 725ebce13ca7871002063c4a254bf532d35ee878
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 11 21:12:51 2011 +0100

    Version bumped to 2.1.1

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bd0ba6e89a709cc8afbd5a7c3c4f9f533c428249
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 10 13:53:30 2011 +0100

    Size of inproc hwm and swap is sum of peers' hwms and swaps

    The meat of the patch was contributed by Douglas Creager.
    Martin Sustrik implemented storing peer options in inproc
    endpoint repository.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS             |  1 +
 src/ctx.cpp         | 18 +++++++++---------
 src/ctx.hpp         | 15 ++++++++++++---
 src/object.cpp      |  6 +++---
 src/object.hpp      |  4 ++--
 src/socket_base.cpp | 34 +++++++++++++++++++++++++---------
 6 files changed, 52 insertions(+), 26 deletions(-)

commit babdf48aacc585d57457da8dec1fb6ce262bf719
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Fri Jan 7 13:28:35 2011 +0100

    Fix pipe writer termination

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/pipe.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 8e0049e2fb60d31c07786fffe39fdc9c63369dfa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 7 12:59:48 2011 +0100

    Disable sending messages on SUB socket

    The ability was inherited from XSUB socket.
    Now it's properly disabled.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/sub.cpp | 15 ++++++++++++++-
 src/sub.hpp |  2 ++
 2 files changed, 16 insertions(+), 1 deletion(-)

commit 08cd2ce05da74143b6154f7d665756870077c38d
Author: Min RK <benjaminrk@gmail.com>
Date:   Thu Jan 6 08:42:57 2011 +0100

    resolve "function declaration isn't a prototype"

    change two declarations in headers to form f(void); instead of f();
    which eliminates the warnings when compiling against zeromq

    Signed-off-by: MinRK <benjaminrk@gmail.com>

 AUTHORS             | 1 +
 include/zmq.h       | 2 +-
 include/zmq_utils.h | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

commit 472bdcd6b4995d2ab92e97aafa898f083ce1f3ba
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 5 16:57:51 2011 +0100

    Return ETERM from getsockopt(ZMQ_EVETS) if zmq_term() was called

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95eebbfffaf512d81721697026dbb5434c12c27d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 3 20:50:24 2011 +0100

    sunos/gcc3 compilation issue fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/sub.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 51d2d9b9f82526a9b471dda272c1d54b3d1b1152
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 20 13:06:36 2010 +0100

    Yet one more fix for oversized messages.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/decoder.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 112d0cd52ec959a6bb4cf02ab03977bc22478246
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 20 11:47:41 2010 +0100

    Fix the segfault when over-sized message is rejected.

    The in_progress message inside of decoder was left
    uninitialised in such a case.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/decoder.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit cbbb1e925d699c8b42b2724740d68839c81684c3
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Dec 18 12:13:10 2010 +0100

    Fix passing through CFLAGS/CPPFLAGS/CXXFLAGS when using --enable-debug

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 12 ++++++------
 configure.in |  5 +++++
 2 files changed, 11 insertions(+), 6 deletions(-)

commit d15e881ea02232c3e875699b3c25f43ad2fd093c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 17 16:30:42 2010 +0100

    unplugged engine tries to manipulate the pollset -- fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq_engine.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b19ee99bb1a2b19a6bf78c7fa2159a85aa608a10
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Fri Dec 17 15:30:56 2010 +0100

    fix race condition in session init

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/zmq_engine.cpp | 22 +++++++++++++++++++---
 src/zmq_engine.hpp |  3 +++
 src/zmq_init.cpp   | 44 +++++++++++++++++++++++++++-----------------
 src/zmq_init.hpp   |  4 ++++
 4 files changed, 53 insertions(+), 20 deletions(-)

commit 27e83cc5258e191a7d5977e202046447df7896b9
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Dec 15 20:10:27 2010 +0100

    Fixes assertion on pipe.cpp:237 when swap fills up.

    Fixes swap::full () functionality

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 src/lb.cpp   |  9 ++++++++-
 src/pair.cpp |  5 ++++-
 src/pipe.cpp |  8 ++++----
 src/pipe.hpp |  6 +++---
 src/swap.cpp | 15 ++++++++++++++-
 src/swap.hpp |  8 ++++++--
 6 files changed, 39 insertions(+), 12 deletions(-)

commit a46980babe076d34347629a54e9635466e6e2a9f
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Dec 15 14:41:18 2010 +0100

    Remove assertions from devices

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 devices/zmq_forwarder/zmq_forwarder.cpp |  6 +++++-
 devices/zmq_queue/zmq_queue.cpp         |  6 +++++-
 devices/zmq_streamer/zmq_streamer.cpp   |  6 +++++-
 src/device.cpp                          | 33 +++++++++++----------------------
 4 files changed, 26 insertions(+), 25 deletions(-)

commit f749f2d21c1b47e6dcd626633acff764a4484b99
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Mon Dec 13 15:40:26 2010 +0100

    add basic uri validations

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/socket_base.cpp | 50 ++++++++++++++++++++++++++++----------------------
 src/socket_base.hpp |  4 ++++
 2 files changed, 32 insertions(+), 22 deletions(-)

commit 22b2b9a2b6e1dd18d58ef51f453d2b4777e71be4
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Mon Dec 13 14:18:47 2010 +0100

    fix overwriting errno on bind failure

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/tcp_listener.cpp | 7 +++++--
 src/tcp_listener.hpp | 3 +++
 2 files changed, 8 insertions(+), 2 deletions(-)

commit a9d969a73e303db2f6ddf436740d0bbef7e63dba
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Dec 9 21:44:15 2010 +0100

    Bob Beaty added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit fcfad5682ed7a7f5108853d2a7039dpdfd9a9ac2
Author: Bob Beaty <rbeaty@peak6.com>
Date:   Thu Dec 9 21:42:58 2010 +0100

    Added Recovery Interval in Milliseconds

    For very high-speed message systems, the memory used for recovery can get to
    be very large. The corrent limitation on that reduction is the ZMQ_RECOVERY_IVL
    of 1 sec. I added in an additional option ZMQ_RECOVERY_IVL_MSEC, which is the
    Recovery Interval in milliseconds. If used, this will override the previous
    one, and allow you to set a sub-second recovery interval. If not set, the
    default behavior is to use ZMQ_RECOVERY_IVL.

    Signed-off-by: Bob Beaty <rbeaty@peak6.com>

 doc/zmq_getsockopt.txt | 20 ++++++++++++++++++++
 doc/zmq_setsockopt.txt | 24 ++++++++++++++++++++++++
 include/zmq.h          |  1 +
 src/options.cpp        | 18 ++++++++++++++++++
 src/options.hpp        |  2 ++
 src/pgm_socket.cpp     | 32 ++++++++++++++++++--------------
 6 files changed, 83 insertions(+), 14 deletions(-)

commit 1d81d2f1d4549c2cd0999c9544b059c29706f260
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Tue Dec 7 11:15:51 2010 +0100

    tar doesn't accept -C flag on solaris while extracting

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 configure.in | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit a3353150f845cf0f6e8f2355d3aad760bfba4b64
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Tue Dec 7 11:15:18 2010 +0100

    Fix werror flag store/restore

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dpd2eeafdc2fce93738368749b61b36f98ea6cd6
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Tue Dec 7 11:14:46 2010 +0100

    Fix visibility on rhel4

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
 configure.in | 16 +++++++---------
 2 files changed, 53 insertions(+), 11 deletions(-)

commit 9bb5323a1abce0dcf8ed56734313a5249003d868
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Dec 7 11:10:21 2010 +0100

    Clarify zmq_send() operation for ZMQ_PUB sockets

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 doc/zmq_socket.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 73bbcb552d6fbd1b3744a1ee29202a19e4d2f46e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 6 23:10:50 2010 +0100

    MSVC build fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 32 ++++++++------------------------
 1 file changed, 8 insertions(+), 24 deletions(-)

commit 8d6cafe06696e17afff03adf4b33bd504b55e277
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 6 22:57:29 2010 +0100

    All devices conflated into a single implementation.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/Makefile.am               |  8 ++----
 src/{queue.cpp => device.cpp} |  4 +--
 src/{queue.hpp => device.hpp} |  6 ++---
 src/forwarder.cpp             | 60 -------------------------------------------
 src/forwarder.hpp             | 31 ----------------------
 src/streamer.cpp              | 60 -------------------------------------------
 src/streamer.hpp              | 31 ----------------------
 src/zmq.cpp                   | 24 +++++++----------
 8 files changed, 16 insertions(+), 208 deletions(-)

commit ec61751e17fe4ceb62cc16750b12df6056c5962a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 6 22:36:10 2010 +0100

    options.type correctly set for PUB/SUB/XPUB/XSUB

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pub.cpp  | 1 +
 src/sub.cpp  | 1 +
 src/xpub.cpp | 2 +-
 src/xsub.cpp | 2 +-
 4 files changed, 4 insertions(+), 2 deletions(-)

commit 8a6ff4ccd2ecbbfb7b2fd80fe621b8a05b0f9bbd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 6 09:44:23 2010 +0100

    xup and xsub files added to the MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 2daa0bb49d52dpb1aa60c94505bdad72348e5d8e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 5 09:48:52 2010 +0100

    XSUB accepts (un)subscriptions in form of messages.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/sub.cpp  | 31 +++++++++++++++++++++++++++++++
 src/sub.hpp  |  4 ++++
 src/xsub.cpp | 40 +++++++++++++++++++++++++---------------
 src/xsub.hpp |  3 ++-
 4 files changed, 62 insertions(+), 16 deletions(-)

commit c80e7b80cc726ca7c29493c2553c8d19792bb6e5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Dec 4 23:14:38 2010 +0100

    XPUB and XSUB socket types added.

    These are just placeholders. At the moment XPUB behaves th same
    as PUB and XSUB as SUB.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h       |   4 +-
 src/Makefile.am     |   4 ++
 src/pub.cpp         | 144 +------------------------------------------
 src/pub.hpp         |  34 +----------
 src/socket_base.cpp |  11 +++-
 src/sub.cpp         | 134 +---------------------------------------
 src/sub.hpp         |  38 +-----------
 src/xpub.cpp        | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/xpub.hpp        |  73 ++++++++++++++++++++++
 src/xsub.cpp        | 161 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/xsub.hpp        |  78 ++++++++++++++++++++++++
 11 files changed, 506 insertions(+), 346 deletions(-)

commit abc8b5e40c55deb96e7674b15629f2affa4eb92a
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Dec 1 11:55:56 2010 +0100

    Update NEWS file for 2.1.0 release

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 NEWS | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

commit 4a3ed39a22655406e17c49fab4912c4681f3d7bf
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Wed Dec 1 11:52:05 2010 +0100

    Bump OpenPGM to 5.0.92.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 configure.in                              |   2 +-
 foreign/openpgm/libpgm-5.0.91~dfsg.tar.gz | Bin 444731 -> 0 bytes
 foreign/openpgm/libpgm-5.0.92~dfsg.tar.gz | Bin 0 -> 444700 bytes
 3 files changed, 1 insertion(+), 1 deletion(-)

commit 520d621016691bcb2a0551147aaa38a9891080b3
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Dec 1 11:11:25 2010 +0100

    Bump ABI version to 1:0:0 for ZeroMQ 2.1.0 release

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 configure.in | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit b70d628fad5ab97d24473b83fd18997b4e87477d
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Dec 1 10:57:37 2010 +0100

    Documentation updates for 2.1

    - Clarify ZMQ_LINGER, zmq_close (), zmq_term () relationship
    - New socket options
    - Clarify thread safety of sockets and migration between threads
    - Other minor and spelling fixes

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 doc/zmq.txt            |  12 +++--
 doc/zmq_close.txt      |  12 +++--
 doc/zmq_errno.txt      |   2 +-
 doc/zmq_getsockopt.txt | 128 ++++++++++++++++++++++++++++++++-----------------
 doc/zmq_pgm.txt        |   6 +--
 doc/zmq_poll.txt       |  11 +++--
 doc/zmq_setsockopt.txt |  79 ++++++++++++++++++------------
 doc/zmq_socket.txt     |  24 +++++++---
 doc/zmq_tcp.txt        |   6 +--
 doc/zmq_term.txt       |  27 +++++++----
 doc/zmq_version.txt    |   2 +-
 11 files changed, 198 insertions(+), 111 deletions(-)

commit 5bb0a339be31064900257e04e2ffd32e80911d63
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Dec 1 10:33:07 2010 +0100

    Prefix variables with "ac_zmq_"

     - Added a macro for checking clang compiler
     - Moved basic compiler checks to a macro
     - Added a macro for checking if compiler supports a flag
     - Added --enable-debug flag
     - Added a macro for running normal autoconf check with compiler flags
     - Added a macro for checking for verbose flag for different compilers (-Wall)
     - Added a macro for turning on strict standards compliance
     - Added a macro for turning warnings to errors
     - Added a macro for checking if compiler supports given pragma
     - Most of the flags now go through checks if the compilers supports them
       rather than enumerating different compilers
     - Added DSO symbol visibility for sun compiler
     - Enabled verbose mode for sun compiler
     - Fixed build for ICC 12.x by adding -wd279 to size_t checks
     - Removed pkg-config checks as those don't seem to be used anywhere

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4        | 461 +++++++++++++++++++++++++++++++++++++++++++++++-----
 autogen.sh          |   6 -
 configure.in        | 212 ++++++++++++------------
 include/zmq.h       |  14 +-
 include/zmq_utils.h |  14 +-
 5 files changed, 532 insertions(+), 175 deletions(-)

commit 17d7e6ede0f907461130302cf4bddcdf9e2737cf
Merge: 28db150a 289b1f5c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 1 10:27:24 2010 +0100

    Merge branch 'maint'

    * maint:
      Remove unnecessary cast in kevent_delete

    Conflicts:
            src/kqueue.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

commit 289b1f5ced492a2dc62edaba0016abde21093692
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Dec 1 10:25:31 2010 +0100

    Remove unnecessary cast in kevent_delete

    Fixes the build on NetBSD where the compiler complains about casting NULL
    to (int).

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 src/kqueue.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 28db150aaf7b1cffb996f1b27bc082f75acec261
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Nov 29 10:52:22 2010 +0100

    Fix thread thunker scope for MSVC.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/thread.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 325dd2f0914de502dp7687f94927fa98c20380c9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 27 22:19:43 2010 +0100

    Functions passed to pthread_create are declared as extern "C"

    So far these were declared as C++ static functions which
    was incorrect and caused warnings with SunStudio.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/thread.cpp                 | 54 +++++++++++++++++++++++-------------------
 src/thread.hpp                 | 10 ++++----
 tests/test_shutdown_stress.cpp | 19 ++++++++-------
 3 files changed, 46 insertions(+), 37 deletions(-)

commit 0bc2a05d84dc8e496a60d0c8def7689783e08e01
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 27 12:51:43 2010 +0100

    .gitignore modified to ignore test executables

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 .gitignore | 7 +++++++
 1 file changed, 7 insertions(+)

commit c9584096e033850c77c4c3d4ee99e8073f7b26da
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Nov 25 17:12:31 2010 +0100

    Control symbol exports using -fvisibility

    On systems using GCC 4.0 or newer which support symbol visibility in shared
    libraries, use -fvisibility=hidden and only export explict API functions
    defined in zmq.cpp. We do not enable -fvisibility on MinGW since this uses a
    separate mechanism (__declspec).

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 configure.in        | 12 ++++++++++++
 include/zmq.h       |  8 ++++++++
 include/zmq_utils.h |  6 ++++++
 src/Makefile.am     |  3 +--
 src/zmq.cpp         |  8 ++++++++
 5 files changed, 35 insertions(+), 2 deletions(-)

commit 734624be760b3c7942eb26bea77fca918cb1540d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 25 14:05:43 2010 +0100

    Typo fixed in a comment.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/i_engine.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 92618fd99ac19f3169552c25cbabffbe9e983f7f
Author: Sebastian Otdpgui <feniix@gmail.com>
Date:   Thu Nov 25 14:04:53 2010 +0100

    Small fix for the rhel6 spec

    Signed-off-by: Sebastian Otdpgui <feniix@gmail.com>

 builds/redhat/zeromq.spec | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit a689047de091b2ffbc58cde4a89e98119dp0f599
Merge: ac40680e 83d9af99
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Nov 22 16:07:15 2010 +0100

    Merge branch 'maint'

    * maint:
      Mikko Koppanen becomes a maintainer of the build system.

commit 83d9af99516fc620ffdfa6cd5a226ab70673cb5d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Nov 22 16:06:20 2010 +0100

    Mikko Koppanen becomes a maintainer of the build system.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ac40680ea2f6b32a3c451db1b606524e86a347dd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 19 12:35:06 2010 +0100

    Problem with blob_t initialisation fixed.

    HP's version of STL doesn't allow for initialisation of basic_string
    (blob_t) using NULL pointer, while SGI's implementation is OK with
    that. Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/object.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit edf7c18d79b195001d7ed7d05ac30a4d7a64bce1
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Nov 19 09:10:26 2010 +0100

    Add a check that the compiler actually works.

    The patch tests that the C and C++ compilers actually exist
    and work. autoconf seems to default to 'g++' when C++ compiler is not
    found, which causes the following error (when the compiler isn't
    there):

    checking for uuid_generate in -luuid... no
    configure: error: cannot link with -luuid, install uuid-dev.

    The config.log contains the real error message "g++ command not found"
    but the error message shown to the user is misleading.

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 18 ++++++++++++++++++
 configure.in |  6 +++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

commit 945c931daf0c053a9cdbfdbb3ec7d0e90c29fc10
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Thu Nov 18 11:51:27 2010 +0100

    Run autoupdate on the configure.in

    I ran autoupdate on the configure.in, which generated most of the
    patch attached. There is also a small manual fix in which removes the
    warning "Remember to add LT_INIT to configure.in" which I assume is
    because AC_PROG_LIBTOOL was called inside a macro.

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 |  3 ---
 configure.in | 13 +++++++------
 2 files changed, 7 insertions(+), 9 deletions(-)

commit 72a7b93f124cddpe8082aff218f6497c366f53f9
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Nov 17 15:10:43 2010 +0100

    Allow building without documentation.

    Allows building without documentation even if asciidoc and xmlto are
    installed. This eases up working with the build system because doc
    generation take quite a while on repeated builds.

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 43 ++++++++++++++++++++++++++-----------------
 1 file changed, 26 insertions(+), 17 deletions(-)

commit c86375831d4002ac58501bacebb3fd12d5c651b8
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Nov 17 15:09:06 2010 +0100

    Remove unneeded substitutions

    Couldn't find a place where these substs were actually used

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 configure.in | 15 ---------------
 1 file changed, 15 deletions(-)

commit b83d0a1bc077fdcc481fee40dcf4780669c3f3d2
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Nov 17 15:07:59 2010 +0100

    Remove unnecessary conditional

    This conditional is unnecessary as BUILD_PGM can be negated in the test.

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 configure.in    | 1 -
 src/Makefile.am | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

commit 925595259b51dd84711b620afdf02245e537a38f
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Nov 17 15:06:51 2010 +0100

    MinGW32 build fixes

    After long discussions in IRC we came to conclusion that there is no
    elegant way to handle static builds with MinGW32. This patch sets
    AC_DISABLE_STATIC by default on MinGW32 and Cygwin

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 27 +++++++++++++++++++++++++++
 configure.in | 19 ++++++++++++++-----
 2 files changed, 41 insertions(+), 5 deletions(-)

commit 3dbd5d58723bdc31eb00a6ebf4f643059a432f8c
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Wed Nov 17 15:05:01 2010 +0100

    Fix mingw32 build

    MinGW32 defines __int64_t as long long, which causes the build to fail
    unless -Wno-long-long is used. In addition the shutdown_stress test
    isn't currently compatible with Win.

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 configure.in      | 3 ++-
 tests/Makefile.am | 9 +++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

commit 34f50a6840fdf638bbd7887aa2438006bdpb884d
Merge: bd0ecf47 152c64f2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 16 14:26:04 2010 +0100

    Merge branch 'maint'

    * maint:
      FD_SETSIZE defaults to 1024 in MSVC build

    Conflicts:
            builds/msvc/libzmq/libzmq.vcproj

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

commit bd0ecf478466b27103af92db33ffebc3948f2e4e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 16 14:15:29 2010 +0100

    FD_SETSIZE defaults to 1024 in MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 152c64f25df9d037e7f51874d2d66724337aad38
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 16 14:04:55 2010 +0100

    FD_SETSIZE defaults to 1024 in MSVC build

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/libzmq/libzmq.vcproj | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

commit da3327cf8780ea4d454e0aa8904b5aab3c446b23
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Mon Nov 15 17:02:36 2010 +0100

    Build refactoring

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4    | 53 +++++++++++++++++++++++++++++++
 configure.in    | 97 +++++++++++++++++++++++++++++++--------------------------
 src/Makefile.am |  3 +-
 3 files changed, 106 insertions(+), 47 deletions(-)

commit f77c8ca47ff77af44eab7b4b8538ed49ec428eda
Merge: a2500dp3 ffcb0baa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 13 18:16:13 2010 +0100

    Merge branch 'maint'

    * maint:
      Couple of patches for AIX build

commit ffcb0baa735538b8b4a0f00799d1185adba2761f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 13 18:08:18 2010 +0100

    Couple of patches for AIX build

    - RAND_bytes function resides in crypto library
    - pollfd on AIX used 'reqevents' instead of events and 'retnevents'
      instead of 'revents'

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS      |  1 +
 configure.in |  1 +
 src/zmq.cpp  | 23 ++++++++++++++---------
 3 files changed, 16 insertions(+), 9 deletions(-)

commit a2500dp3485d6243778b832d22dc6dc02a00f025
Author: Chia-liang Kao <clkao@clkao.org>
Date:   Fri Nov 12 19:16:00 2010 +0100

    Fix a bug that zmq_poll's select backend spins when timeout=-1, due to
    ptimeout not properly recalculated after first pass.

    Signed-off-by: Chia-liang Kao <clkao@clkao.org>

 AUTHORS     |  1 +
 src/zmq.cpp | 32 ++++++++++++++++----------------
 2 files changed, 17 insertions(+), 16 deletions(-)

commit 8abe67357ab905c5c86191c1d9005666f66b6ca0
Merge: c0217027 f7123de9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 12 14:47:26 2010 +0100

    Merge branch 'maint'

    * maint:
      Fix socket_t::recv() hang scenario where initial call to process_commands() eats signal

    Conflicts:
            src/socket_base.cpp

commit f7123de9434a96794e6a7cd83b398ceb18c9de8b
Author: Marc Rossi <mrossi19@gmail.com>
Date:   Fri Nov 12 14:38:25 2010 +0100

    Fix socket_t::recv() hang scenario where initial call to process_commands() eats signal

    Added block boolean var to second process_commands() invocation for blocking sockets
    instead of always using true.  This prevents the process_commands() call from hanging
    when a message is received with an empty queue after the call to xrecv() but
    prior to the initial call to process_commands() invoked when ++ticks == inbound_poll_rate.

    Signed-off-by: Marc Rossi <mrossi19@gmail.com>

 AUTHORS             | 1 +
 src/socket_base.cpp | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit c0217027ccd2267b05e017af436a842755d044b0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 6 08:02:14 2010 +0100

    Coding style cleanup in mailbox.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/mailbox.cpp | 39 +++++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 18 deletions(-)

commit 9da84a5239e5356e34d872c2b5af1d19b9c7eb4f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 5 17:39:51 2010 +0100

    signaler renamed to mailbox

    For historical reasons queue to transfer commands between
    threads was called 'signaler'. Given that it was used to
    pass commands rather than signals it was renamed to 'mailbox',
    see Erlang mailboxes.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 MAINTAINERS                       |  2 +-
 builds/msvc/libzmq/libzmq.vcproj  |  4 ++--
 src/Makefile.am                   |  4 ++--
 src/ctx.cpp                       | 14 +++++++-------
 src/ctx.hpp                       |  6 +++---
 src/io_thread.cpp                 | 12 ++++++------
 src/io_thread.hpp                 | 15 +++++++--------
 src/{signaler.cpp => mailbox.cpp} | 36 ++++++++++++++++++++++++------------
 src/{signaler.hpp => mailbox.hpp} | 16 ++++++++--------
 src/own.cpp                       |  2 +-
 src/socket_base.cpp               | 12 ++++++------
 src/socket_base.hpp               | 10 +++++-----
 12 files changed, 72 insertions(+), 61 deletions(-)

commit 9cfdb441f45057c7106a101835d65164fce9470a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Nov 5 16:38:52 2010 +0100

    slots renamed to tids

    Threads were so far identified by integers called 'slots'.
    This patch renames them to more comprehensible 'tid's (thread IDs).

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ctx.cpp         | 12 ++++++------
 src/ctx.hpp         |  6 +++---
 src/io_thread.cpp   |  4 ++--
 src/io_thread.hpp   |  2 +-
 src/object.cpp      | 14 +++++++-------
 src/object.hpp      |  8 ++++----
 src/own.cpp         |  4 ++--
 src/own.hpp         |  2 +-
 src/pair.cpp        |  4 ++--
 src/pair.hpp        |  2 +-
 src/pub.cpp         |  4 ++--
 src/pub.hpp         |  2 +-
 src/pull.cpp        |  4 ++--
 src/pull.hpp        |  2 +-
 src/push.cpp        |  4 ++--
 src/push.hpp        |  2 +-
 src/rep.cpp         |  4 ++--
 src/rep.hpp         |  2 +-
 src/req.cpp         |  4 ++--
 src/req.hpp         |  2 +-
 src/socket_base.cpp | 24 ++++++++++++------------
 src/socket_base.hpp |  4 ++--
 src/sub.cpp         |  4 ++--
 src/sub.hpp         |  2 +-
 src/xrep.cpp        |  4 ++--
 src/xrep.hpp        |  2 +-
 src/xreq.cpp        |  4 ++--
 src/xreq.hpp        |  2 +-
 28 files changed, 67 insertions(+), 67 deletions(-)

commit 623a9c9f1b53bdda9ad61f58cdc7a286e3e474cd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 4 21:23:07 2010 +0100

    Jacob Rideout added to the AUTGORS file.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 0ada4f8e30088e6a91fef7a45fd7e5dd7bdb9d1d
Author: Jacob Rideout <jacob.rideout@returnpath.net>
Date:   Thu Nov 4 21:21:01 2010 +0100

    Fix documentation typos

    Signed-off-by: Jacob Rideout <jacob.rideout@returnpath.net>

 doc/zmq_getsockopt.txt |  6 +++---
 doc/zmq_setsockopt.txt | 12 ++++++------
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 1b39bcd88336ebed002e13a8ac3d4bc104b13718
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Nov 4 17:54:47 2010 +0100

    Automatically resize signalling socket buffer if full

    If the socketpair used by signaler_t fills up, this can lead to deadlock.
    This patch provides partial resolution by attempting to resize SO_SNDBUF on
    the writer side, and if that fails we shall at least assert rather than
    hang.

    I've also refactored the signaler_t code to make the platform-dependent
    parts clearer and have tested both the MSG_DONTWAIT and standard POSIX path
    in recv.

    The Win32 implementation currently does not implement resizing as I'm not
    convinced that it's safe, but it will also assert like other platforms if
    signaler_t::send() cannot succeed.

    The OpenVMS implementation has been carried forward but is untested.

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 src/config.hpp   |   4 -
 src/signaler.cpp | 415 +++++++++++++++++++++++++++----------------------------
 src/signaler.hpp |  18 +--
 3 files changed, 207 insertions(+), 230 deletions(-)

commit 756f7df8c8e82a67f033049af47a3f783ad951e1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 4 16:11:04 2010 +0100

    Previous FD_STSIZE patch reverted.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/select.cpp | 3 ---
 1 file changed, 3 deletions(-)

commit 2246689c8fcf37cd69bd8098b21dc28a9abbcdeb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 4 13:12:40 2010 +0100

    FD_SETSIZE for internal polling defaults to 1024

    If, when compiling 0MQ you don't set FD_SETSIZE,
    it defaults to 1024 rather than to 64.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/select.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit b90e621329688c83f21f26bbe0367966a245e607
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 4 10:01:58 2010 +0100

    minor typo fixed

    Devpoll polling mechanism used ZMQ_HAVE_SOLRIS instead of
    ZMQ_HAVE_SOLARIS in one case. Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/devpoll.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d4a41067d3e873ba4a87c4711ad2f755e7de9157
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 2 14:27:24 2010 +0100

    HP-UX has no OPEN_MAX defined

    devpoll_t used this constant to determine how many events to
    retrieve from the poller in one go. The implementation was
    changed not to depend on this constant.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/devpoll.cpp | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit de93f6359f061d08846cd203ad3ba4fda915e504
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 2 13:30:20 2010 +0100

    crypto library is needed on HP-UX to generate UUIDs

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in | 1 +
 1 file changed, 1 insertion(+)

commit dbcd38252435ff69f1043649a94ec985e7f1ff5b
Merge: 0ad71f88 eb83678b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Nov 1 14:13:36 2010 +0100

    Merge branch 'maint'

    * maint:
      Add INSTALL to Git, thus making it a normal file

commit eb83678b2b5eaca07d6813cab5c7dea493ac4bc8
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Nov 1 14:12:33 2010 +0100

    Add INSTALL to Git, thus making it a normal file

    INSTALL gets added in somewhat magically by automake, or not. Adding it into
    Git ensures it's always included in the distribution.

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 .gitignore |   1 -
 INSTALL    | 237 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 237 insertions(+), 1 deletion(-)

commit 0ad71f88fe5531011c0354f22eeb070b1f729c7d
Author: Mikdpl Helbo Kjdpr <mhk@designtech.dk>
Date:   Mon Nov 1 12:54:58 2010 +0100

    select now uses Erase-Remove idiom for retired fds

    Signed-off-by: Mikdpl Helbo Kjdpr <mhk@designtech.dk>

 src/select.cpp | 17 ++++++++---------
 src/select.hpp |  3 +++
 2 files changed, 11 insertions(+), 9 deletions(-)

commit 085b709021c44673d9bf65a5d639e3c2e99703af
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 30 18:17:53 2010 +0200

    Documentation for zmq_close and zmq_term fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_close.txt | 12 ++++++------
 doc/zmq_term.txt  | 21 +++++++++------------
 2 files changed, 15 insertions(+), 18 deletions(-)

commit 3d8eb071a2a664d8de1e2e2fa7cb46a4f2764e5e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 30 16:17:08 2010 +0200

    Coding style fixed for pgm_socket

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_socket.cpp | 211 +++++++++++++++++++++++++++++++++--------------------
 src/pgm_socket.hpp |   5 +-
 2 files changed, 132 insertions(+), 84 deletions(-)

commit b358df9fffd6a4155318356024358b8a1e2b9c9c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 30 15:08:28 2010 +0200

    Name of "GNU Lesser Public License" corrected.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/platform.hpp                |  6 +++---
 devices/zmq_forwarder/zmq_forwarder.cpp |  6 +++---
 devices/zmq_queue/zmq_queue.cpp         |  6 +++---
 devices/zmq_streamer/zmq_streamer.cpp   |  6 +++---
 include/zmq.h                           |  6 +++---
 include/zmq.hpp                         |  6 +++---
 include/zmq_utils.h                     |  6 +++---
 perf/local_lat.cpp                      |  6 +++---
 perf/local_thr.cpp                      |  6 +++---
 perf/remote_lat.cpp                     |  6 +++---
 perf/remote_thr.cpp                     |  6 +++---
 src/array.hpp                           |  6 +++---
 src/atomic_counter.hpp                  |  6 +++---
 src/atomic_ptr.hpp                      |  6 +++---
 src/blob.hpp                            |  6 +++---
 src/clock.cpp                           |  6 +++---
 src/clock.hpp                           |  6 +++---
 src/command.cpp                         |  6 +++---
 src/command.hpp                         |  6 +++---
 src/config.hpp                          |  6 +++---
 src/connect_session.cpp                 |  6 +++---
 src/connect_session.hpp                 |  6 +++---
 src/ctx.cpp                             |  6 +++---
 src/ctx.hpp                             |  6 +++---
 src/decoder.cpp                         |  6 +++---
 src/decoder.hpp                         |  6 +++---
 src/devpoll.cpp                         |  6 +++---
 src/devpoll.hpp                         |  6 +++---
 src/encoder.cpp                         |  6 +++---
 src/encoder.hpp                         |  6 +++---
 src/epoll.cpp                           |  6 +++---
 src/epoll.hpp                           |  6 +++---
 src/err.cpp                             |  6 +++---
 src/err.hpp                             |  6 +++---
 src/fd.hpp                              |  6 +++---
 src/forwarder.cpp                       |  6 +++---
 src/forwarder.hpp                       |  6 +++---
 src/fq.cpp                              |  6 +++---
 src/fq.hpp                              |  6 +++---
 src/i_engine.hpp                        |  6 +++---
 src/i_inout.hpp                         |  6 +++---
 src/i_poll_events.hpp                   | 32 ++++++++++++++++----------------
 src/io_object.cpp                       |  6 +++---
 src/io_object.hpp                       |  6 +++---
 src/io_thread.cpp                       |  6 +++---
 src/io_thread.hpp                       |  6 +++---
 src/ip.cpp                              |  6 +++---
 src/ip.hpp                              |  6 +++---
 src/kqueue.cpp                          |  6 +++---
 src/kqueue.hpp                          |  6 +++---
 src/lb.cpp                              |  6 +++---
 src/lb.hpp                              |  6 +++---
 src/likely.hpp                          |  6 +++---
 src/msg_content.hpp                     |  6 +++---
 src/mutex.hpp                           |  6 +++---
 src/named_session.cpp                   |  6 +++---
 src/named_session.hpp                   |  6 +++---
 src/object.cpp                          |  6 +++---
 src/object.hpp                          |  6 +++---
 src/options.cpp                         |  6 +++---
 src/options.hpp                         |  6 +++---
 src/own.cpp                             |  6 +++---
 src/own.hpp                             |  6 +++---
 src/pair.cpp                            |  6 +++---
 src/pair.hpp                            |  6 +++---
 src/pgm_receiver.cpp                    |  6 +++---
 src/pgm_receiver.hpp                    |  6 +++---
 src/pgm_sender.cpp                      |  6 +++---
 src/pgm_sender.hpp                      |  6 +++---
 src/pgm_socket.cpp                      |  6 +++---
 src/pgm_socket.hpp                      |  6 +++---
 src/pipe.cpp                            |  6 +++---
 src/pipe.hpp                            |  6 +++---
 src/poll.cpp                            |  6 +++---
 src/poll.hpp                            |  6 +++---
 src/poller.hpp                          |  6 +++---
 src/poller_base.cpp                     |  6 +++---
 src/poller_base.hpp                     |  6 +++---
 src/pub.cpp                             |  6 +++---
 src/pub.hpp                             |  6 +++---
 src/pull.cpp                            |  6 +++---
 src/pull.hpp                            |  6 +++---
 src/push.cpp                            |  6 +++---
 src/push.hpp                            |  6 +++---
 src/queue.cpp                           |  6 +++---
 src/queue.hpp                           |  6 +++---
 src/rep.cpp                             |  6 +++---
 src/rep.hpp                             |  6 +++---
 src/req.cpp                             |  6 +++---
 src/req.hpp                             |  6 +++---
 src/select.cpp                          |  6 +++---
 src/select.hpp                          |  6 +++---
 src/semaphore.hpp                       |  6 +++---
 src/session.cpp                         |  6 +++---
 src/session.hpp                         |  6 +++---
 src/signaler.cpp                        |  6 +++---
 src/signaler.hpp                        |  6 +++---
 src/socket_base.cpp                     |  6 +++---
 src/socket_base.hpp                     |  6 +++---
 src/stdint.hpp                          |  6 +++---
 src/streamer.cpp                        |  6 +++---
 src/streamer.hpp                        |  6 +++---
 src/sub.cpp                             |  6 +++---
 src/sub.hpp                             |  6 +++---
 src/swap.cpp                            |  6 +++---
 src/swap.hpp                            |  6 +++---
 src/tcp_connecter.cpp                   |  6 +++---
 src/tcp_connecter.hpp                   |  6 +++---
 src/tcp_listener.cpp                    |  6 +++---
 src/tcp_listener.hpp                    |  6 +++---
 src/tcp_socket.cpp                      |  6 +++---
 src/tcp_socket.hpp                      |  6 +++---
 src/thread.cpp                          |  6 +++---
 src/thread.hpp                          |  6 +++---
 src/transient_session.cpp               |  6 +++---
 src/transient_session.hpp               |  6 +++---
 src/trie.cpp                            |  6 +++---
 src/trie.hpp                            |  6 +++---
 src/uuid.cpp                            | 13 +++----------
 src/uuid.hpp                            |  6 +++---
 src/windows.hpp                         |  6 +++---
 src/wire.hpp                            |  6 +++---
 src/xrep.cpp                            |  6 +++---
 src/xrep.hpp                            |  6 +++---
 src/xreq.cpp                            |  6 +++---
 src/xreq.hpp                            |  6 +++---
 src/ypipe.hpp                           |  6 +++---
 src/yqueue.hpp                          |  6 +++---
 src/zmq.cpp                             |  6 +++---
 src/zmq_connecter.cpp                   |  6 +++---
 src/zmq_connecter.hpp                   |  6 +++---
 src/zmq_engine.cpp                      |  6 +++---
 src/zmq_engine.hpp                      |  6 +++---
 src/zmq_init.cpp                        |  6 +++---
 src/zmq_init.hpp                        |  6 +++---
 src/zmq_listener.cpp                    |  6 +++---
 src/zmq_listener.hpp                    |  6 +++---
 tests/test_pair_inproc.cpp              |  6 +++---
 tests/test_pair_ipc.cpp                 |  6 +++---
 tests/test_pair_tcp.cpp                 |  6 +++---
 tests/test_reqrep_inproc.cpp            |  6 +++---
 tests/test_reqrep_ipc.cpp               |  6 +++---
 tests/test_reqrep_tcp.cpp               |  6 +++---
 tests/test_shutdown_stress.cpp          |  6 +++---
 tests/testutil.hpp                      |  6 +++---
 145 files changed, 448 insertions(+), 455 deletions(-)

commit 3d01b929fe5e57311ea62fff4a37abbeaab1b3eb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 29 08:19:07 2010 +0200

    Peter Bourgon added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 9384faf7e5f2fb58d976df8b29f979402346207a
Author: Peter Bourgon <peter.bourgon@gmail.com>
Date:   Fri Oct 29 08:16:59 2010 +0200

    Add function to zmq::error_t to access errnum

    Signed-off-by: Peter Bourgon <peter.bourgon@gmail.com>

 include/zmq.hpp | 5 +++++
 1 file changed, 5 insertions(+)

commit dace2473f1cfea902dfd3be4a233f4092397d65a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 28 08:44:53 2010 +0200

    Burak Arslan added to the AUTHORS file

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 3eb935ef6e211d2fa5094dp032777ed319253d11
Author: Burak Arslan <burak-github@arskom.com.tr>
Date:   Thu Oct 28 08:41:28 2010 +0200

    switch to c++-specific headers

    Signed-off-by: Burak Arslan <burak-github@arskom.com.tr>

 include/zmq.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9a1d4df0fd29e040756bff6302cf9a134074d9b9
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Wed Oct 27 09:37:32 2010 +0200

    fix typo, destroy new engine

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/session.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 465da7b17eef4c86020a5def41a87977410b965a
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Tue Oct 26 16:02:47 2010 +0200

    drop connection requests with duplicate peer identity

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/session.cpp  | 9 +++++++--
 src/zmq_init.hpp | 2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)

commit 401986e6bb565f94d975acaba9504eb6ee3c8598
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Oct 26 15:35:56 2010 +0200

    Build with MSVC2005 fixed

    To use __rdtsc() function MSVC2005 requires including intrin.h

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 AUTHORS       | 1 +
 src/clock.cpp | 4 ++++
 2 files changed, 5 insertions(+)

commit e1debf15bbdb0747cffb6013d59fb3f73462a600
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Oct 26 14:24:07 2010 +0200

    Update to OpenPGM 5.0.91.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 configure.in                              |   2 +-
 foreign/openpgm/libpgm-5.0.78.tar.gz      | Bin 511599 -> 0 bytes
 foreign/openpgm/libpgm-5.0.91~dfsg.tar.gz | Bin 0 -> 444731 bytes
 3 files changed, 1 insertion(+), 1 deletion(-)

commit 11af0fcc54d06052bbbf20c64a3ce31000d02f7d
Merge: 71bef330 8ef53c0d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 23 22:12:47 2010 +0200

    Merge branch 'maint'

    * maint:
      Fixes build on Linux using Sun Studio compiler

commit 8ef53c0dc6d625bdeb95b7f9626cf58cf6babfed
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Oct 15 10:43:22 2010 +0200

    Fixes build on Linux using Sun Studio compiler

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 configure.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 71bef330fc9f09ee070c90d174fc0bcb7783b38d
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Sat Oct 23 20:59:54 2010 +0200

    handle decoding malformed messages

    Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>

 src/decoder.cpp    | 26 ++++++++++++++++++--------
 src/decoder.hpp    | 23 +++++++++++++++++++----
 src/zmq_engine.cpp | 26 ++++++++++++++++----------
 3 files changed, 53 insertions(+), 22 deletions(-)

commit 8d6979922efff7183ce03b49715472e5b2a6a1df
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Sat Oct 23 14:35:02 2010 +0200

    Changes for MSVC OpenPGM build.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/pgm_socket.cpp | 1 -
 src/pgm_socket.hpp | 1 +
 src/zmq.cpp        | 1 +
 3 files changed, 2 insertions(+), 1 deletion(-)

commit da59f8dd7a7f275eff98e5705767ac89ac503912
Merge: e73c96ba 21b0c0b4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 23 13:51:12 2010 +0200

    Merge branch 'maint'

    * maint:
      SunStudio fixed.

commit 21b0c0b4f7896facbfcaf10c8eb777e72a505a45
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 23 13:49:13 2010 +0200

    SunStudio fixed.

    With SunStudio's implementation of STL basic_string constructor
    doesn't accept NULL as a parameter even though size of string
    is set to zero. Fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/object.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e73c96ba30c5e9ada83592bc2289a56eeadf6155
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 18 09:11:36 2010 +0200

    Minor comment improvement.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/session.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 0c86f90280d69bd360f7566f9549c904c26d5e42
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Oct 17 10:26:06 2010 +0200

    Minor typo fixed in zmq_getsockopt(3) man page.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a780833683ed1f5bc4a112644836973f8282434b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Oct 17 10:23:58 2010 +0200

    ZMQ_BACKLOG socket option added.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 13 +++++++++++++
 doc/zmq_setsockopt.txt | 13 +++++++++++++
 include/zmq.h          |  1 +
 src/config.hpp         |  4 ----
 src/options.cpp        | 19 +++++++++++++++++++
 src/options.hpp        |  3 +++
 src/tcp_listener.cpp   | 12 +++++++-----
 src/tcp_listener.hpp   |  3 ++-
 src/zmq_listener.cpp   |  2 +-
 9 files changed, 59 insertions(+), 11 deletions(-)

commit e8e2944f45eab3e22dc46ceac3225a886ca468ad
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Oct 17 09:54:12 2010 +0200

    ZMQ_RECONNECT_IVL socket options added.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 15 +++++++++++--
 doc/zmq_setsockopt.txt | 13 +++++++++++
 include/zmq.h          |  1 +
 src/config.hpp         |  3 ---
 src/options.cpp        | 59 +++++++++++++++++++++++++++++++++++---------------
 src/options.hpp        |  3 +++
 src/zmq_connecter.cpp  | 15 +++++++------
 src/zmq_connecter.hpp  |  2 +-
 8 files changed, 80 insertions(+), 31 deletions(-)

commit 8b8837688a97c4d05aff01a6dea7ac5a35b21fa2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 17:56:25 2010 +0200

    Couple of bugs in zmq_poll fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

commit 72b15a6ddp6c199d847ebde5ac73de238f0ebf75
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 16:05:34 2010 +0200

    Implementation of zmq_strerror moved from zmq.cpp to err.cpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/err.cpp | 41 +++++++++++++++++++++++++++++++++++++++++
 src/err.hpp |  9 ++++++---
 src/zmq.cpp | 38 +-------------------------------------
 3 files changed, 48 insertions(+), 40 deletions(-)

commit 61d38fbeed89d69516b9976c60b7711fefed6411
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 14:48:06 2010 +0200

    Bug in low precision clock fixed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/clock.cpp | 4 ++--
 src/clock.hpp | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 0a03e86e9547fa7c221b316a5a943467adea3dfd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 10:53:29 2010 +0200

    ZMQ_LINGER socket option added.

        1. ZMQ_LINGER option can be set/get
        2. options are part of own_t base class rather than being declared
           separately by individual objects
        3. Linger option is propagated with "term" command so that the
           newest value of it is used rather than the stored old one.
        4. Session sets the linger timer if needed and terminates
           as soon as it expires.
        5. Corresponding documentation updated.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_getsockopt.txt | 16 ++++++++++++++++
 doc/zmq_setsockopt.txt | 16 ++++++++++++++++
 include/zmq.h          |  1 +
 src/command.hpp        |  1 +
 src/object.cpp         |  7 ++++---
 src/object.hpp         |  4 ++--
 src/options.cpp        | 18 ++++++++++++++++++
 src/options.hpp        |  3 +++
 src/own.cpp            | 20 ++++++++++++--------
 src/own.hpp            |  8 ++++++--
 src/pair.cpp           |  4 ++--
 src/pair.hpp           |  2 +-
 src/pub.cpp            |  4 ++--
 src/pub.hpp            |  2 +-
 src/pull.cpp           |  4 ++--
 src/pull.hpp           |  2 +-
 src/push.cpp           |  4 ++--
 src/push.hpp           |  2 +-
 src/session.cpp        | 40 ++++++++++++++++++++++++++++++++++++----
 src/session.hpp        | 17 ++++++++++++-----
 src/socket_base.cpp    |  4 ++--
 src/socket_base.hpp    |  6 +-----
 src/sub.cpp            |  4 ++--
 src/sub.hpp            |  2 +-
 src/xrep.cpp           |  4 ++--
 src/xrep.hpp           |  2 +-
 src/xreq.cpp           |  4 ++--
 src/xreq.hpp           |  2 +-
 src/zmq_connecter.cpp  |  5 ++---
 src/zmq_connecter.hpp  |  4 ----
 src/zmq_init.cpp       |  3 +--
 src/zmq_init.hpp       |  4 ----
 src/zmq_listener.cpp   |  7 +++----
 src/zmq_listener.hpp   |  6 +-----
 34 files changed, 158 insertions(+), 74 deletions(-)

commit a1474e305762d32df2b79300d124aac7fa0181c8
Author: Toralf Wittner <toralf.wittner@gmail.com>
Date:   Sat Oct 16 08:27:57 2010 +0200

    Cancel tx_timer_id in pgm_sender_t::out_event().

    Signed-off-by: Toralf Wittner <toralf.wittner@gmail.com>

 AUTHORS            | 1 +
 src/pgm_sender.cpp | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

commit 733c6780c557a0eaacdf17961fb8f3841c65f862
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 01:22:18 2010 +0200

    Minor code clean-up to keep clang compiler happy.

    "warning: extra ';' inside a struct or union [-pedantic]"

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pipe.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b95f11aa0a7887f5eb8eb8e2e0f09532bc3604ba
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Sat Oct 16 01:05:15 2010 +0200

    Don't set pedantic to yes if using ICC

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 acinclude.m4 | 17 +++++++++++++++++
 configure.in | 13 +++++++++----
 2 files changed, 26 insertions(+), 4 deletions(-)

commit 48b0a901b8056957e36ba52dp4416d656971bb47
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 00:53:50 2010 +0200

    Obsolete compile-time option removed.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/config.hpp | 4 ----
 1 file changed, 4 deletions(-)

commit dp5a3c8a99a30b54d0b079bbd98be286685056e8
Merge: 18d46c81 710615cd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 00:49:01 2010 +0200

    Merge branch 'maint'

    * maint:
      Version number increased.

    Conflicts:
            include/zmq.h

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

commit 710615cdab8c8e500c259bb27df2af70f5dp8275
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 16 00:47:31 2010 +0200

    Version number increased.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 include/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 18d46c81047fc2f8449a5b4ff3e41cc25bd1cfc2
Merge: 027eed41 53d1677c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 15 19:38:52 2010 +0200

    Merge branch 'maint'

commit 53d1677c8b0f85e309c6a067b47c80dedcffb5aa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 15 19:37:41 2010 +0200

    Update NEWS for 2.0.10 release

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 NEWS | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 027eed41b8bf16cb8b2f9f83be1fe286b39e4fd8
Merge: 2e9871ce 6e952053
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 15 17:46:21 2010 +0200

    Merge branch 'maint'

    * maint:
      Fix memory leak under Windows

commit 6e9520533395b19ed6f6a17de6f196aa5e93da9f
Author: Taras Shpot <taras.shpot@eleks.com>
Date:   Fri Oct 15 17:45:02 2010 +0200

    Fix memory leak under Windows

    The comment about memory ownership in uuid_t::to_string
    was misleading as on most platforms the buffer is a field
    of the object;
    The string allocated in UuidToString() wasn't properly freed
    with RpcStringFree()

    Signed-off-by: Taras Shpot <taras.shpot@eleks.com>

 AUTHORS      | 1 +
 src/uuid.cpp | 2 ++
 src/uuid.hpp | 2 +-
 3 files changed, 4 insertions(+), 1 deletion(-)

commit 2e9871ce34b5abc60ebc37c1887b76895537d62a
Merge: eeb8e7c8 5b440256
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Oct 15 17:30:03 2010 +0200

    Merge branch 'maint'

    Conflicts:
            configure.in

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

commit 5b44025602b6af952fc434a6e7bf8dff65a00be6
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Oct 15 17:27:10 2010 +0200

    maint: Upgrade OpenPGM to 2.1.28~dfsg

    Upgrade OpenPGM to version 2.1.28 for ZeroMQ 2.0.x. Now we also use the
    DFSG-compliant upstream release tarball.

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 configure.in                              |   2 +-
 foreign/openpgm/libpgm-2-1-28~dfsg.tar.gz | Bin 0 -> 340501 bytes
 foreign/openpgm/libpgm-2.1.26.tar.gz      | Bin 413863 -> 0 bytes
 3 files changed, 1 insertion(+), 1 deletion(-)

commit eeb8e7c8beef83fe8c23bde888a1081fc9e8e3ec
Merge: 7b9e3972 3cf01bf5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 15 17:13:36 2010 +0200

    Merge branch 'maint'

    * maint:
      Makefile.am: Add missing files to distribution, improve maintainer-clean
      configure.in: Extract API version from zmq.h
      Added bin directory to ignore list.

    Conflicts:
            configure.in
            include/zmq.h

commit 3cf01bf56e66657da795e43f09fa2499b2381dc9
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Oct 15 15:30:10 2010 +0200

    Makefile.am: Add missing files to distribution, improve maintainer-clean

    Add missing files needed for regenerating configure to the distribution;
    add MAINTAINERS; improve maintainer-clean to produce a really clean tree.

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 Makefile.am | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit 3b3df731e60d604794538d0b9f6cb5b802a8745d
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Oct 15 15:05:54 2010 +0200

    configure.in: Extract API version from zmq.h

    * Added a version.sh and relevant changes to configure.in to extract the API
      version from zmq.h at the time autogen.sh is run.
    * Moved the version macros to be next to zmq_version in zmq.h and improved
      the comments.
    * Modified ZMQ_MAKE_VERSION to use (x) instead of plain x when expanding
      macro parameters.

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 Makefile.am   |  1 +
 configure.in  |  8 +++++---
 include/zmq.h | 21 +++++++++++----------
 version.sh    | 21 +++++++++++++++++++++
 4 files changed, 38 insertions(+), 13 deletions(-)

commit 7b9e39724eeecf33dde3b0e4fd9f205480afb977
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 15 11:31:20 2010 +0200

    Minor fix in devpoll.hpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/devpoll.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 17b0785744287d0897175ed13000fba710c2dc5b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 15 11:29:20 2010 +0200

    Destructor of poller_base_t made virtual.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/poller_base.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3e74a439c4b7901f3d3607a2d4142266bc1781b4
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Oct 15 11:21:56 2010 +0200

    Cast execute_timers() result to int

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 src/devpoll.cpp | 2 +-
 src/epoll.cpp   | 2 +-
 src/kqueue.cpp  | 2 +-
 src/poll.cpp    | 2 +-
 src/select.cpp  | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit b64b50dp218dbbc362edpb0571a337650f623e3c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 15 10:58:19 2010 +0200

    Timers correctly canceled by PGM engines on shutdown.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/pgm_receiver.cpp | 10 +++++++---
 src/pgm_sender.cpp   | 17 ++++++++++++++---
 src/pgm_sender.hpp   |  3 ++-
 3 files changed, 23 insertions(+), 7 deletions(-)

commit e288f7a347eb5a2fd38043d930fc67c8e8bcce9b
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Oct 15 10:43:22 2010 +0200

    Fixes build on Linux using Sun Studio compiler

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 configure.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit e33e4d7650e36af7d09569de21f7f71b5670945c
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Oct 15 10:38:09 2010 +0200

    ICC related qualifier fix

    Signed-off-by: Mikko Koppanen <mkoppanen@php.net>

 AUTHORS      | 1 +
 src/pipe.hpp | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 03a18c27ace49cbcbb0c495e4c575c34b8f862a4
Author: Martin Pales <m.pales@gmail.com>
Date:   Thu Oct 14 16:31:58 2010 +0200

    zmq::clock_t : return correct value in rdtsc() on solaris

    Function clock_t::rdtsc() now returns correct value when compiled
    with sunstudio 12 compiler.

    Signed-off-by: Martin Pales <m.pales@gmail.com>

 src/clock.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 26d7669464054a4dpd3f0ee9643bffa0e01aab5c
Author: Gonzalo Diethelm <gonzalo.diethelm@diethelm.org>
Date:   Thu Oct 14 08:02:43 2010 -0300

    Added bin directory to ignore list.

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit b7386f5b5031b2e75fb4370069935d7f6a0eedbb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 14 12:13:52 2010 +0200

    To insert to associateive STL containers value_type used instead of make_pair

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/ctx.cpp          | 4 ++--
 src/pgm_receiver.cpp | 2 +-
 src/socket_base.cpp  | 2 +-
 src/xrep.cpp         | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit f9e6d94be56fab6d1d8e281e48bb5d6091562acb
Author: Martin Pales <m.pales@gmail.com>
Date:   Thu Oct 14 12:02:05 2010 +0200

    zmq::poller_base_t : workaround for sunstudio compiler in add_timer()

    A minor workaround to resolve compilation error with sunstudio compiler,
    which does not yet support member templates for std::multimap.

    Signed-off-by: Martin Pales <m.pales@gmail.com>

 src/poller_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cafcdbbe2bc9c78899568bb6cb957b700e12c66b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 14 09:34:09 2010 +0200

    Safety measure in zmq_msg_close implemented

    zmq_msg_close now empties the message on zmq_msg_close, thus not
    leaving random data in the structure, that may be mistaken for
    a valid message.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

commit b174ad2c45c746e56b41671a3d68ef496bba6b97
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 14 09:16:49 2010 +0200

    zmq_poll man page fixed to reflect the precise timeout semantics.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 doc/zmq_poll.txt | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit da73b7c6f60f2ea1adc6fbd99e22576b9ce2f316
Author: Martin Pales <m.pales@gmail.com>
Date:   Thu Oct 14 08:38:11 2010 +0200

    zmq::devpoll_t : correct a typo in loop()

    A minor typo correction to resolve compilation error on Solaris.

    Signed-off-by: Martin Pales <m.pales@gmail.com>

 AUTHORS         | 1 +
 src/devpoll.cpp | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit e2167cecdpfec6557c7a5712fb75e51487ff69a6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Oct 13 21:39:20 2010 +0200

    Precise timouts in zmq_poll implemented

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/zmq.cpp | 131 ++++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 92 insertions(+), 39 deletions(-)

commit 9d96e0037a9d027fd286f771fa2a8db5def485c8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Oct 13 10:09:46 2010 +0200

    Clean-up of the code related to attaching/detaching engines to sessions.

    Session base class now handles the engine events exclusively. It notifies
    derived session types using dedicated "attached" and "detached" events.

    Couple of bugs was fixed along the way.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/connect_session.cpp   |  9 ++++-----
 src/connect_session.hpp   |  3 ++-
 src/named_session.cpp     | 15 +++++----------
 src/named_session.hpp     |  5 +----
 src/session.cpp           | 18 ++++++++----------
 src/session.hpp           | 12 ++++++------
 src/transient_session.cpp |  4 ++++
 src/transient_session.hpp |  3 ++-
 8 files changed, 32 insertions(+), 37 deletions(-)

commit 5dp878b891fa5189f5202f1577d22bdb9ba51f77
Merge: 954d7f74 2568947a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Oct 13 08:01:13 2010 +0200

    Merge branch 'maint'

    * maint:
      Add support for RHEL6 in the spec file

commit 2568947a71adc0e8ddad54b6054a3b3e532e1613
Author: Sebastian Otdpgui <feniix@gmail.com>
Date:   Wed Oct 13 07:59:50 2010 +0200

    Add support for RHEL6 in the spec file

    Signed-off-by: Sebastian Otdpgui <feniix@gmail.com>

 AUTHORS                   | 1 +
 builds/redhat/zeromq.spec | 7 +++++++
 2 files changed, 8 insertions(+)

commit 954d7f743dbc0c159794915c6deadc374dbf64d2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Oct 12 17:55:09 2010 +0200

    Avoid duplicate creation of pipes for a single session

    When a session is being closed down its inbound and outbound
    pipe pointers are set to null. If (re) connection happens at
    that time, session may try to reinistantiate the pipes which
    is wrong. This patch allows session to attach pipes only once
    in its lifetime.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/session.cpp | 40 ++++++++++++++++++++++++----------------
 src/session.hpp |  3 +++
 2 files changed, 27 insertions(+), 16 deletions(-)

commit c6d74e0a0345cdp2c09c6fb29911159331c93e64
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Oct 12 12:26:21 2010 +0200

    Drop PGM parameters to 100mb friendly range.

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/pgm_socket.cpp | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

commit 5b8af52efc0ddf1df5506a2800aa69bc50a44ddb
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Oct 11 17:59:58 2010 +0200

    Fix assertion in PGM transports on cancel_timer

    Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>

 src/pgm_receiver.cpp |  2 ++
 src/pgm_sender.cpp   | 12 ++++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

commit e168173162dd26238a799c19142bab8b7885ebb3
Merge: f22e85f1 57428db8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 11 16:42:10 2010 +0200

    Merge branch 'maint'

    * maint:
      configure.in: Do not patch libtool rpath handling
      Fixing the Red Hat packaging

commit 57428db89885631128cb9a48b334b050eb83a512
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Oct 11 16:39:48 2010 +0200

    configure.in: Do not patch libtool rpath handling

    For historic reasons (mainly compatbility with really old libtool), configure was
    patching libtool to not use rpath in binaries. This breaks (among other things)
    correct operation of "make check" since the test binaries may not be run with
    the correct shared library version.

    Current best practice as seen e.g. at http://wiki.debian.org/RpathIssue suggests
    that this is no longer an issue, so I'm removing the code that patches libtool.

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 configure.in | 11 -----------
 1 file changed, 11 deletions(-)

commit 6cd0867f0208b4fca4cfca2a2ff7bc0de5199d4a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 11 16:32:27 2010 +0200

    Fixing the Red Hat packaging

    When adding ZMQ_VERSION macros, I incorrectly removed
    the PACKAGE_VERSION macro. Adding it back.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 configure.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f22e85f19f2bf58285e4984e875487f17c85e791
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Oct 11 12:23:18 2010 +0200

    Reverting commit 1d431190f50c86f62460

    The patch was supposed to check that pipe writer sends messages
    in atomic fashion. However, it prevented the user to read
    half of a message and close the socket.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 7 -------
 1 file changed, 7 deletions(-)

commit 73e7ef37c2e72dd542d20ddc5be30cedce68e329
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Oct 10 09:23:37 2010 +0200

    When XREP silently drops message, it does not empty it -- fixed

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/xrep.cpp | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

commit f5030a93a52fc73292c16ddp5f8e0e1b39732df0
Author: Christian Gudrian <christian.gudrian@fluidon.com>
Date:   Sat Oct 9 19:19:50 2010 +0200

    Execute the timers before pollset initialisation.

    Since executing the timers might modify the source pollsets we have
    to defer the initialisation until after the timers have executed.

    Signed-off-by: Christian Gudrian <christian.gudrian@fluidon.com>

 AUTHORS        | 1 +
 src/select.cpp | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

commit 318cdd1f24cd663702222cc182dp2ccac5e76870
Merge: 214b5607 ef8db789
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 9 08:03:58 2010 +0200

    Merge branch 'maint'

    * maint:
      Version macros added

    Conflicts:
            builds/msvc/platform.hpp

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

commit ef8db789a1c97152e84ff03c9a7f6e1e77d95981
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Oct 9 07:53:24 2010 +0200

    Version macros added

    Macro ZMQ_VERSION represents the current version of 0MQ
    Macro ZMQ_MAKE_VERSION(major,minor,patch) allows to create
    a representation of the specified version.
    The versions can be compared using simple <, >, ==, etc.
    operators.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 builds/msvc/platform.hpp |  6 +-----
 configure.in             | 13 -------------
 include/zmq.h            | 10 ++++++++++
 src/zmq.cpp              |  6 +++---
 4 files changed, 14 insertions(+), 21 deletions(-)

commit 214b56077a7e5d12813c8034013171d33283566c
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Oct 8 22:06:41 2010 +0200

    Fix missing platform.hpp in zmq_connecter.cpp

    Missed testing on Win32

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 src/zmq_connecter.cpp | 1 +
 1 file changed, 1 insertion(+)

commit daf5d3273b1930af7e4c54ee597b89ecb3763000
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 8 21:42:55 2010 +0200

    More cleanup of session termination process.

    Fix in termination of session attached to a REP socket.
    Several fixes of session termination in case of disconnection.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/connect_session.cpp |  2 ++
 src/named_session.cpp   |  1 +
 src/session.cpp         | 10 ++++++++--
 3 files changed, 11 insertions(+), 2 deletions(-)

commit f90c8d957ea2a11c73a307adp2494a26d22c2f3b
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Oct 8 17:49:40 2010 +0200

    Scalability improvements for large amounts of connections

    Add signaler_sndbuf_size option to config.hpp which allows the user to
    increase the size of the send buffer used by the signalling socketpair.

    Implement random backoff for reconnection attempts using a primitive
    pseudo-random generation to prevent reconnection storms.

    Add wait_before_connect option to config.hpp to allow the user to enable
    random delay even on initial connect. Default is false for low latency.

    Signed-off-by: Martin Lucina <mato@kotelna.sk>

 src/config.hpp        |  9 ++++++++-
 src/signaler.cpp      | 39 ++++++++++++++++++++++++++++++++-------
 src/zmq_connecter.cpp | 25 +++++++++++++++++++++----
 src/zmq_connecter.hpp |  3 +++
 4 files changed, 64 insertions(+), 12 deletions(-)

commit 7a685b0f88386b11c4c1fcbb45324aa28f4e2eac
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 8 17:23:21 2010 +0200

    Clean-up of session termination process

    Specifically, shutdown of child objects is initiated *before* termination
    handshake with socket object.

    Signed-off-by: Martin Sustrik <sustrik@250bpm.com>

 src/fq.cpp      |   4 ++
 src/fq.hpp      |   1 +
 src/pair.cpp    |  12 ++++--
 src/pair.hpp    |   1 +
 src/pipe.cpp    |   7 ++++
 src/pipe.hpp    |   1 +
 src/session.cpp | 111 +++++++++++++++++++++++++++++---------------------------
 src/session.hpp |  25 ++++++++-----
 src/xrep.cpp    |   4 ++
 src/xrep.hpp    |   1 +
 10 files changed, 99 insertions(+), 68 deletions(-)

commit 965fb7755b50ca1522f076da46fa3651812126e1
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Oct 4 16:22:30 2010 +0200

    configure.in: OpenPGM no longer requires pkg-config

 configure.in | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

commit d62d721f1a6f7c9df627b3f3fa8e200ddc9bf5f5
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Mon Oct 4 16:14:57 2010 +0200

    configure.in: Add amd64 to OpenPGM supported platforms

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1d431190f50c86f624605ab11c1580b2d2f7ee06
Author: Nir Soffer <nirsof@gmail.com>
Date:   Sat Oct 2 10:01:18 2010 +0200

    make sure that reader does not terminate in the middle of a multipart message

 AUTHORS      | 1 +
 src/xrep.cpp | 7 +++++++
 2 files changed, 8 insertions(+)

commit 2142b8918a0cea79c79c8ed8ce5652148abe4a39
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 1 18:46:32 2010 +0200

    issue 92 -- Assertion failed: inpipe && outpipe (pair.cpp:86) -- fixed

 src/pair.cpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 1a6cd59e8b423cdf3a4f4f854b37c5e0693bdpf6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 1 16:03:08 2010 +0200

    stress test for shutdown process added

 tests/Makefile.am              |  7 +++-
 tests/test_shutdown_stress.cpp | 83 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 88 insertions(+), 2 deletions(-)

commit 2a85cce189dp915e85bb567b1401d063284e622f
Merge: 0bb76b66 8f9080eb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 1 13:37:59 2010 +0200

    Merge branch 'master' of github.com:zeromq/zeromq2

commit 0bb76b667b277b143a9a2901e8bf407f34da469d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 1 13:37:46 2010 +0200

    assert when xrep socket gets reconnected in the middle of the shutdown -- fixed

 src/xrep.cpp | 35 ++++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 13 deletions(-)

commit 8f9080ebb9ea5576c87a1412748dpf1faf0653f6
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Sep 30 15:30:24 2010 +0200

    zmq_poll(): Fix busy-loop if timeout is zero

    Fix a case where zmq_poll() (poll-based version) could go off into a busy-loop
    if no revents are returned and the timeout passed in is zero.

 src/zmq.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit ac9b05c36b9d1f5bb3f8465b4c56478c399a01f3
Merge: 98fa2fa8 79dpa5ff
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 30 15:12:06 2010 +0200

    Merge branch 'maint'

    * maint:
      zmq_msg_move called on uninitialised message in xrep_t::xrecv -- fixed

commit 79dpa5ffa61f969ec66205f7c9c8c1611a2fd8da
Author: Max Wolf <YIDIEPXGXGPN@spammotel.com>
Date:   Thu Sep 30 15:10:47 2010 +0200

    zmq_msg_move called on uninitialised message in xrep_t::xrecv -- fixed

 AUTHORS      | 1 +
 src/xrep.cpp | 7 ++++---
 2 files changed, 5 insertions(+), 3 deletions(-)

commit 98fa2fa802773252a2c569ffea99bce1c5f9cd4c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 30 14:03:54 2010 +0200

    fix in XREP's fair queueing mechanism

 src/xrep.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 7881ba1bcd2c940037e54a74d6dpb8376329cde4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 30 11:35:14 2010 +0200

    minor whitespace fix

 src/pgm_socket.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eaa925eca7a3e0c64d184a4a96fec139166a7470
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Thu Sep 30 11:33:35 2010 +0200

    FreeBSD doesn't define MSG_ERRQUEUE -- now it's defined in 0MQ

 src/pgm_socket.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit ec2e85919e4a34a313e6d0df84cc421bc9682ad8
Author: Ilja Golshtein <ilejncs@narod.ru>
Date:   Wed Sep 29 10:09:03 2010 +0200

    C++ binding destructors don't throw exceptions

 AUTHORS         | 1 +
 include/zmq.hpp | 6 ++----
 2 files changed, 3 insertions(+), 4 deletions(-)

commit d14be62499478f31cf641399982ecdf4f6f158c4
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Sep 28 22:46:56 2010 +0200

    more fixes to (e)pgm transport

 src/pgm_receiver.cpp | 21 +++++++++++++-
 src/pgm_receiver.hpp |  7 +++++
 src/pgm_sender.cpp   | 37 ++++++++++++++++++++++--
 src/pgm_sender.hpp   |  7 +++++
 src/pgm_socket.cpp   | 81 ++++++++++++++++++++++++++++++++++++++--------------
 src/pgm_socket.hpp   |  5 ++++
 6 files changed, 134 insertions(+), 24 deletions(-)

commit 96d85b20982926e60d5065cba3203971c9eeed63
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Sep 28 16:58:51 2010 +0200

     * Add assertions to check for OpenPGM calls with invalid parameters.
     * Assertion to check that pgm_getaddrinfo is actually returning something.
     * Missing pgm_connect call.
     * Typo on TOS causing immediate abort.
     * Placeholder calls for timeouts whilst continuing spin loop functionality.
     * OpenPGM v5 now supports reference counting so remove init checks.
     * Duplicate UDP unicast port setting, requires one unicast and one multicast.
     * Incorrectly set socket rcvbuf size with sndbuf.
     * Replace std::lexicographical_compare of TSI's with long word integer comparisons.
     * pgm_socket_t::receive returns -1 on no data.

 src/pgm_receiver.cpp |   2 +-
 src/pgm_receiver.hpp |  12 +++---
 src/pgm_socket.cpp   | 109 +++++++++++++++++++++++++++++++++------------------
 src/zmq.cpp          |  24 +++++-------
 4 files changed, 87 insertions(+), 60 deletions(-)

commit 00cd7d49c7f2b532b2349581b82577bc714f9bf8
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Tue Sep 28 16:35:29 2010 +0200

    Upgrade to OpenPGM-5.0.78

 configure.in                         |  16 +-
 foreign/openpgm/libpgm-2.1.26.tar.gz | Bin 413863 -> 0 bytes
 foreign/openpgm/libpgm-5.0.78.tar.gz | Bin 0 -> 511599 bytes
 src/Makefile.am                      |  96 +++---
 src/pgm_socket.cpp                   | 582 ++++++++++++++++++-----------------
 src/pgm_socket.hpp                   |   2 +-
 src/zmq.cpp                          |  26 +-
 7 files changed, 373 insertions(+), 349 deletions(-)

commit 10bb9d0405169487cd53c6f109091e036577860e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 28 15:32:12 2010 +0200

    Dhammika Pathirana was missing from the AUTOHRS file for some reason -- fixed

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 87beaaa00d49d216f856b8322f1ad04e4f9ecea3
Author: Gonzalo Diethelm <gdiethelm@dcv.cl>
Date:   Tue Sep 28 15:27:45 2010 +0200

    ZMQ_TYPE socket option added

 .gitignore             |  1 +
 doc/zmq_getsockopt.txt | 13 +++++++++++++
 include/zmq.h          |  1 +
 src/options.cpp        | 10 ++++++++++
 src/options.hpp        |  3 +++
 src/pair.cpp           |  1 +
 src/pub.cpp            |  1 +
 src/pull.cpp           |  1 +
 src/push.cpp           |  1 +
 src/rep.cpp            |  1 +
 src/req.cpp            |  1 +
 src/sub.cpp            |  1 +
 src/xrep.cpp           |  1 +
 src/xreq.cpp           |  1 +
 14 files changed, 37 insertions(+)

commit 6715f9b1858587db6dpc826bdc9a7905bba8030e
Merge: 16c3884a c1deb226
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 28 07:51:59 2010 +0200

    Merge branch 'maint'

    * maint:
      crash when closing an ypipe -- fixed

commit c1deb226f4d1bc94c158c050088813adp96775e9
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Tue Sep 28 07:46:17 2010 +0200

    crash when closing an ypipe -- fixed

 src/ypipe.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f61921d09679c4bed15204ec4e55d1c7313e3f6a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 28 07:39:16 2010 +0200

    REQ socket can die when reply is delivered on wrong unerlying connection -- fixed

 src/req.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 16c3884a61b146040277ec61bfdbc553c883b4d6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 27 11:18:21 2010 +0200

    MSVC build fixed

 builds/msvc/libzmq/libzmq.vcproj | 42 +++++++++++++++++++++++++++++++++++-----
 src/clock.cpp                    |  2 +-
 src/ctx.cpp                      |  6 ++++++
 src/select.cpp                   |  3 ++-
 4 files changed, 46 insertions(+), 7 deletions(-)

commit e2f834d2947ad7e7f4e6bfb5be653af8b8a2a576
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 27 09:53:30 2010 +0200

    ZMQ_FD and ZMQ_EVENTS documentation added

 doc/zmq_getsockopt.txt | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 30c1cba4e4276f4ddcb5a455fdd62d4d6bd1edd2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 27 09:34:00 2010 +0200

    latency optimisation for the case where there are no timers

 src/poller_base.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 238640a526c419392bf2df95de196db89ea6eb73
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 26 21:42:23 2010 +0200

    timers properly implemented

 src/config.hpp        |  4 ----
 src/devpoll.cpp       | 35 +++++-----------------------------
 src/devpoll.hpp       |  6 ------
 src/epoll.cpp         | 43 +++++++-----------------------------------
 src/epoll.hpp         |  6 ------
 src/kqueue.cpp        | 40 ++++++---------------------------------
 src/kqueue.hpp        |  6 ------
 src/poll.cpp          | 33 +++++++-------------------------
 src/poll.hpp          |  6 ------
 src/poller_base.cpp   | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/poller_base.hpp   | 27 ++++++++++++++++++++++++++
 src/select.cpp        | 37 +++++++-----------------------------
 src/select.hpp        |  6 ------
 src/zmq_connecter.cpp |  3 ++-
 src/zmq_connecter.hpp |  2 +-
 15 files changed, 113 insertions(+), 193 deletions(-)

commit 8d7bf6684cbb9625ec7c963b8867e2411b49eb57
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 26 19:22:33 2010 +0200

    common base for all pollers created; the only thing it handles at the moment is 'load'

 src/Makefile.am     |  2 ++
 src/devpoll.cpp     | 13 ++-----------
 src/devpoll.hpp     |  9 ++-------
 src/epoll.cpp       | 12 ++----------
 src/epoll.hpp       |  9 ++-------
 src/kqueue.cpp      | 15 +++++---------
 src/kqueue.hpp      |  9 ++-------
 src/poll.cpp        | 12 ++----------
 src/poll.hpp        |  9 ++-------
 src/poller_base.cpp | 44 +++++++++++++++++++++++++++++++++++++++++
 src/poller_base.hpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/select.cpp      | 12 ++----------
 src/select.hpp      |  9 ++-------
 13 files changed, 125 insertions(+), 86 deletions(-)

commit cf815e8c785254d97190f223765fbbd19a1e6d52
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 26 18:30:03 2010 +0200

    new interfaces for timers; the implementation is not changed yet

 src/config.hpp        |  4 ++++
 src/devpoll.cpp       |  6 +++---
 src/devpoll.hpp       |  7 +++----
 src/epoll.cpp         |  6 +++---
 src/epoll.hpp         |  4 ++--
 src/i_poll_events.hpp |  2 +-
 src/io_object.cpp     | 10 +++++-----
 src/io_object.hpp     |  6 +++---
 src/io_thread.cpp     |  2 +-
 src/io_thread.hpp     |  2 +-
 src/kqueue.cpp        |  6 +++---
 src/kqueue.hpp        |  4 ++--
 src/poll.cpp          |  6 +++---
 src/poll.hpp          |  4 ++--
 src/select.cpp        |  6 +++---
 src/select.hpp        |  4 ++--
 src/zmq_connecter.cpp |  8 ++++----
 src/zmq_connecter.hpp |  3 +++
 18 files changed, 48 insertions(+), 42 deletions(-)

commit be79a9fbc26a55c90b693485f69dfd17f710cb13
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 26 18:01:59 2010 +0200

    minor beautifications

 src/config.hpp            | 4 +++-
 src/connect_session.hpp   | 3 +++
 src/named_session.hpp     | 3 +++
 src/transient_session.hpp | 3 +++
 4 files changed, 12 insertions(+), 1 deletion(-)

commit 5ddp27d0ed92aba070f824a4bf5dfa7845aa165d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 26 16:55:54 2010 +0200

    clock_t class added

 src/Makefile.am     |   2 ++
 src/clock.cpp       | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/clock.hpp       |  56 +++++++++++++++++++++++++++++
 src/config.hpp      |   7 ++++
 src/socket_base.cpp |  36 +++++--------------
 src/socket_base.hpp |   2 +-
 src/zmq.cpp         |  43 +++-------------------
 7 files changed, 180 insertions(+), 66 deletions(-)

commit 7d5061798c93655796b1cf64afd7f5b8146a7681
Merge: e478468e 9129b792
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 26 13:36:05 2010 +0200

    Merge branch 'maint'

    * maint:
      if TSC jumps backwards (in case of migration to a different CPU core) latency peak may occur -- fixed

    Conflicts:
            src/app_thread.cpp

commit 9129b792486b87d4f54607321427c2df783c9ec1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 26 13:30:33 2010 +0200

    if TSC jumps backwards (in case of migration to a different CPU core) latency peak may occur -- fixed

 src/app_thread.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit e478468e52fcb085f9d429cee5dd6938c80343bc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 21 09:10:17 2010 +0200

    minor error in comment fixed

 src/socket_base.hpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9c118866003277222173ea04916c3e3b82c88b95
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 21 09:00:46 2010 +0200

    The flag in the socket has clear semantics now -- it tracks whether corresponding context was closed, it doesn't track whether zmq_close was called on the socket itself

 src/socket_base.cpp | 41 +++++++++++++----------------------------
 src/socket_base.hpp |  6 ++----
 2 files changed, 15 insertions(+), 32 deletions(-)

commit 4d51a52874b814f65a31a0c1b8e0a36cb671697c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 20 17:25:04 2010 +0200

    zmq_poll (select version) now correctly assumes that ZMQ_FD is edge-trigerred

 src/zmq.cpp | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

commit f49b77eedcdacf9663050a20723ac964af7cdac0
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Sep 20 16:55:46 2010 +0200

    zmq_poll honours ZMQ_FORCE_POLL and ZMQ_FORCE_SELECT options

 src/zmq.cpp | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

commit 1abfc92d265bce4f60d63cd302319c451d2c451a
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Sep 20 16:45:25 2010 +0200

    minor problem in zmq_poll (select version) fixed

 src/zmq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 328c92a0a70b98b4a3bf09132bd8f8041e4c8628
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 20 00:06:05 2010 +0200

    problem with engine being attached to session while it's being terminated fixed

 src/encoder.hpp    |  2 +-
 src/session.cpp    | 40 ++++++++++++++++++++++++++++++++++++++--
 src/session.hpp    |  2 ++
 src/zmq_engine.hpp |  5 +----
 4 files changed, 42 insertions(+), 7 deletions(-)

commit 1d2399720b3fd06da5e7f9f4a211f30c57a9ce2d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 19 22:45:48 2010 +0200

    zmq_init_t destroyed zmq_engine_t before plugging it out from the poller first -- fixed

 src/zmq_engine.cpp | 10 +++++++++-
 src/zmq_engine.hpp |  7 ++++++-
 src/zmq_init.cpp   |  2 +-
 3 files changed, 16 insertions(+), 3 deletions(-)

commit cda3c96a7fed0ee603c13e787ac511a1ea171367
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 19 22:17:37 2010 +0200

    minor code reorganisation in ctx_t::terminate

 src/ctx.cpp | 37 ++++++++++++++++++-------------------
 1 file changed, 18 insertions(+), 19 deletions(-)

commit 938689a49128ca17d2bc9662f311c6dbb70240db
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 19 21:40:26 2010 +0200

    synchronisation problem fixed in ctx_t

 src/ctx.cpp      | 2 ++
 src/zmq_init.cpp | 5 ++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

commit 471013a59fc7f41b694c0bc0b11a459d4c19700d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 19 20:43:14 2010 +0200

    two races fixed in session creation

 src/zmq_init.cpp | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit 1f10208ad065c01e172669affdd48b6f2698ff4c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 19 08:42:19 2010 +0200

    termination of pipe via delimiter message could stuck when no data were read from the pipe (because connection wasn't active) -- fixed

 src/session.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit 5153b6368be58d0fcdpa262463a3fc08ea658f78
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 19 08:39:53 2010 +0200

    obsolete 'active' flag removed from session_t

 src/session.cpp | 11 +++--------
 src/session.hpp |  3 ---
 2 files changed, 3 insertions(+), 11 deletions(-)

commit 4c6d07d3668558d910c9b1d19d52ccdeacc90574
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 18 07:37:36 2010 +0200

    single term ack counting mechanism for every socket (no separate mechanisms for fq_t and lb_t)

 src/Makefile.am            |  1 -
 src/fq.cpp                 | 18 ++++++++----------
 src/fq.hpp                 |  4 ++--
 src/i_terminate_events.hpp | 38 --------------------------------------
 src/lb.cpp                 | 18 ++++++++----------
 src/lb.hpp                 |  4 ++--
 src/own.hpp                | 16 ++++++++--------
 src/pull.cpp               |  7 -------
 src/pull.hpp               |  6 +-----
 src/push.cpp               |  7 -------
 src/push.hpp               |  6 +-----
 src/sub.cpp                |  7 -------
 src/sub.hpp                |  6 +-----
 src/xreq.cpp               |  7 -------
 src/xreq.hpp               |  6 +-----
 15 files changed, 32 insertions(+), 119 deletions(-)

commit fb6ce536d96c82e8f4378a87a5d59dpfcc57a96d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 18 06:48:45 2010 +0200

    more details on launch_sibling in comments

 src/own.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 0c215fada4f448788069e42bda34609f74c8b64b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 18 06:42:46 2010 +0200

    potential duplicate termination of pipes removed

 src/fq.cpp          |  1 +
 src/lb.cpp          |  1 +
 src/socket_base.cpp | 10 ----------
 3 files changed, 2 insertions(+), 10 deletions(-)

commit c7b9ba3ccdd5a18afb22dda1afee16c938076c25
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 17 12:58:20 2010 +0200

    reconnection process fixed when failure occurs during init phase

 src/command.hpp | 3 ++-
 src/session.cpp | 8 ++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

commit 85aa25e56cbf6f4194162235fc06bed8683b1bad
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 17 12:32:46 2010 +0200

    bug in REQ+multipart fixed

 src/req.cpp | 1 +
 1 file changed, 1 insertion(+)

commit ff1080728f3a587ee472a64533fd7e44b365e6f0
Merge: be159b63 e2802d9a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 15 16:58:00 2010 +0200

    Merge branch 'maint'

    * maint:
      values of RATE, RECOVERY_IVL and SWAP options are checked for negative values

commit e2802d9a4b7e518c549e8dd95a34d2424058f086
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 15 16:44:57 2010 +0200

    values of RATE, RECOVERY_IVL and SWAP options are checked for negative values

 src/options.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit be159b63169474b644ebd38177bf4e808ebb5487
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Sep 13 13:27:48 2010 +0200

    zmq::writer_t: Add missing test for swap

 src/pipe.cpp | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 92f9136ca6c69d2d1588ff5ff65e668e40e0f7eb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 10 13:11:08 2010 +0200

    lefover assert removed

 src/lb.cpp | 3 ---
 1 file changed, 3 deletions(-)

commit a68e6739f4248e25a0f9a64c89729f55dfacb842
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 9 08:25:00 2010 +0200

    when no I/O threads are available error is raised instead of assertion

 doc/zmq_bind.txt        |  2 ++
 doc/zmq_connect.txt     |  2 ++
 include/zmq.h           |  2 +-
 src/connect_session.cpp | 15 ++++++++++-----
 src/ctx.cpp             |  7 +++++--
 src/ctx.hpp             |  5 +++--
 src/object.cpp          |  4 ++--
 src/object.hpp          |  2 +-
 src/socket_base.cpp     | 21 ++++++++++++++++++---
 src/zmq.cpp             |  2 ++
 src/zmq_connecter.cpp   |  9 +++++++--
 src/zmq_listener.cpp    |  9 +++++++--
 12 files changed, 60 insertions(+), 20 deletions(-)

commit 47e87b7e4b8dd6a0cfbc1f30ffcb06edfa83c853
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 8 15:45:59 2010 +0200

    EMTHREAD error code returned to zmq.h to ensure backward compatibility

 include/zmq.h | 1 +
 1 file changed, 1 insertion(+)

commit 91ea20464439b5359a5d803181141fc756fa817c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 8 08:39:27 2010 +0200

    EINTR returned from the blocking functions

 doc/zmq_getsockopt.txt |  2 ++
 doc/zmq_poll.txt       |  2 ++
 doc/zmq_recv.txt       |  3 +++
 doc/zmq_send.txt       |  3 +++
 doc/zmq_setsockopt.txt |  2 ++
 src/ctx.cpp            |  5 ----
 src/ctx.hpp            |  3 ---
 src/io_thread.cpp      |  8 ++++--
 src/signaler.cpp       | 47 ++++++++++++++++-----------------
 src/signaler.hpp       |  2 +-
 src/socket_base.cpp    | 71 +++++++++++++++++++++++++++-----------------------
 src/socket_base.hpp    |  3 +--
 src/zmq.cpp            | 26 ++++++++----------
 13 files changed, 93 insertions(+), 84 deletions(-)

commit f374431ebe0f3e18a2b2adeafa8093ff59a9eac2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 7 17:06:33 2010 +0200

    get rid of 'has virtual functions but non-virtual destructor' warnings in pipe.hpp

 src/pipe.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 6d4ffd90dbda943e5d1215fb56d06eeac1b4420f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 7 15:49:54 2010 +0200

    Bug in fq_t and lb_t (when used via ZMQ_EVENTS option) fixed

 src/fq.cpp | 7 +++++--
 src/lb.cpp | 6 +++---
 2 files changed, 8 insertions(+), 5 deletions(-)

commit b4740c14e7fc68040037d65bdfac4233b08c5a08
Merge: d4c8de50 01c463cc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 4 19:10:17 2010 +0200

    Merge branch 'maint'

    * maint:
      Version number incremented to 2.0.10
      NEWS updated for 2.0.9

    Conflicts:
            builds/msvc/platform.hpp
            configure.in

commit 01c463cc89626bf9d69500ab1f4957705663788e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 4 19:08:55 2010 +0200

    Version number incremented to 2.0.10

 builds/msvc/platform.hpp | 2 +-
 configure.in             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit ebf3089735329f0d083a992c98a9fd63b128346e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 4 18:38:20 2010 +0200

    NEWS updated for 2.0.9

 NEWS | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit d4c8de5050a183f4df72062ce3ff6ceca0128fdf
Merge: 76f2e5d5 1e845196
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 17:49:40 2010 +0200

    Merge branch 'maint'

    * maint:
      Update .gitignore
      doc: Add 0MQ version to XHTML11 backend footer
      build: Generate ChangeLog in 'make dist', ZIP automatically

commit 1e8451961e498abd1da61e64f5baf48890e1563e
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 17:44:11 2010 +0200

    Update .gitignore

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 32fd916c731901944e01c0cb445d32ce0d162693
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 17:42:33 2010 +0200

    doc: Add 0MQ version to XHTML11 backend footer

    Thanks to Matt Weinstein for the suggestion.

 doc/asciidoc.conf | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit a6d3629fb4f87c018c7ba2f8c4ff69f7eda07790
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 17:26:36 2010 +0200

    build: Generate ChangeLog in 'make dist', ZIP automatically

    Change 'make dist' to generate the Git ChangeLog file, that way it doesn't
    have to be manually updated nor kept in Git which causes unnecessary work.

    Also change 'make dist' to invoke 'dist-zip' automatically to generate a
    ZIP as well as a .tar.gz.

    Thanks to http://live.gnome.org/Git/ChangeLog for the inspiration to
    automatically generate ChangeLog.

 ChangeLog    | 2724 ----------------------------------------------------------
 Makefile.am  |   20 +-
 configure.in |    2 +-
 3 files changed, 17 insertions(+), 2729 deletions(-)

commit 76f2e5d5442d3200c8ca09681a887830775c84c0
Merge: ca176121 db7fe858
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 4 17:19:38 2010 +0200

    Merge branch 'maint'

    * maint:
      Broken device numbering reverted
      assert on malformed messages
      forwarder and streamer devices handle multi-part messages correctly
      improved null checking in zmq_term

    Conflicts:
            AUTHORS
            include/zmq.h
            src/zmq.cpp

commit db7fe858d6356988fb9a9270c235178e523b2370
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 4 17:12:08 2010 +0200

    Broken device numbering reverted

 include/zmq.h | 64 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 32 insertions(+), 32 deletions(-)

commit 10227899b1ccddpcf709fbfc7b765e147baf3080
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Fri Aug 27 18:06:37 2010 +0200

    assert on malformed messages

 src/zmq_decoder.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit c2f3b3b4458187085e148850068f9719c2567614
Author: Jon Dyte <jon@totient.co.uk>
Date:   Fri Aug 27 06:59:55 2010 +0200

    forwarder and streamer devices handle multi-part messages correctly

 src/forwarder.cpp | 17 ++++++++++++++---
 src/queue.cpp     | 15 ++++++++-------
 src/streamer.cpp  | 17 ++++++++++++++---
 3 files changed, 36 insertions(+), 13 deletions(-)

commit dp567be0c295d9c18da5ba4be4f8403cc844a9a3
Author: Ivo Danihelka <ivo@danihelka.net>
Date:   Thu Aug 26 12:14:53 2010 +0200

    improved null checking in zmq_term

 AUTHORS     | 1 +
 src/zmq.cpp | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

commit ca176121deb8dbdc62d8a37fec377c07fc786480
Merge: 2673a84e 51a84c15
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 16:24:21 2010 +0200

    Merge branch 'maint'

    * maint:
      zmq::select_t, zmq_poll(): assert if FD_SETSIZE reached
      zmq.h: Fix typo and use of C99 comment

    Conflicts:
            src/zmq.cpp

commit 51a84c15ded2d70985c9d971ebdf3f3c9c18d590
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 16:12:33 2010 +0200

    zmq::select_t, zmq_poll(): assert if FD_SETSIZE reached

    Ensure that 0MQ does not attempt to call select() on more than FD_SETSIZE
    file descriptors.

 src/select.cpp | 4 ++++
 src/zmq.cpp    | 4 ++++
 2 files changed, 8 insertions(+)

commit f850190c16df0d55015dc15cd5c0c50289db5dda
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 16:10:14 2010 +0200

    zmq.h: Fix typo and use of C99 comment

 include/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2673a84e07b93b8607958516c55341c2eb220a6e
Merge: 0a1f7e35 ee3444ff
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 16:01:31 2010 +0200

    Merge branch 'maint'

    * maint:
      doc: Update zmq_socket(3) for 2.0.8 API changes
      Revert "Added man page for the zmq_device method"
      Revert "Added clean target that deletes generated man pages"
      Revert "Various changes to documentation project:"
      Revert "Reverting 'clean' change to Makefile"
      Revert "Removed empty man pages for old standalone devices"
      Revert "Further cleanups on reference manual"
      Revert "Small improvements to zmq_device(3) page"
      Revert "Removed wip zmq_deviced from master"

commit ee3444ff93888a052cd1ba48aa22892f7077a7a0
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 16:00:26 2010 +0200

    doc: Update zmq_socket(3) for 2.0.8 API changes

 doc/zmq_socket.txt | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

commit 26b39bcdef390f45bb316c4488b51470c27086e2
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:55:41 2010 +0200

    Revert "Added man page for the zmq_device method"

    This reverts commit f575f252c99c99d3622f313d6bbad6635197a1e4.

    Conflicts:

            doc/zmq_device.txt

 doc/zmq_device.txt | 99 ------------------------------------------------------
 1 file changed, 99 deletions(-)

commit 8800ac7de5d50426b0459ebea4568bb77954ea3d
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:55:19 2010 +0200

    Revert "Added clean target that deletes generated man pages"

    This reverts commit 6cd90304476c1c6873d67068009def63e520b848.

 doc/Makefile.am | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 32bdpb610e779862b58c56f66571b01599743a9e
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:55:11 2010 +0200

    Revert "Various changes to documentation project:"

    This reverts commit 77a3c36ff1f11215229a4efdb821a3cb83a9d6fc.

 doc/asciidoc.conf         |  15 ------
 doc/zmq.txt               |  19 +++++++
 doc/zmq_bind.txt          |   9 +++-
 doc/zmq_close.txt         |   4 ++
 doc/zmq_connect.txt       |   4 ++
 doc/zmq_cpp.txt           |   4 ++
 doc/zmq_deviced.txt       | 123 ----------------------------------------------
 doc/zmq_errno.txt         |   4 ++
 doc/zmq_forwarder.txt     |   4 ++
 doc/zmq_getsockopt.txt    |   4 ++
 doc/zmq_init.txt          |   4 ++
 doc/zmq_inproc.txt        |   4 ++
 doc/zmq_ipc.txt           |   4 ++
 doc/zmq_msg_close.txt     |   4 ++
 doc/zmq_msg_copy.txt      |   4 ++
 doc/zmq_msg_data.txt      |   4 ++
 doc/zmq_msg_init.txt      |   4 ++
 doc/zmq_msg_init_data.txt |   4 ++
 doc/zmq_msg_init_size.txt |   4 ++
 doc/zmq_msg_move.txt      |   4 ++
 doc/zmq_msg_size.txt      |   4 ++
 doc/zmq_pgm.txt           |   5 +-
 doc/zmq_poll.txt          |   4 ++
 doc/zmq_queue.txt         |   4 ++
 doc/zmq_recv.txt          |   4 ++
 doc/zmq_send.txt          |   4 ++
 doc/zmq_setsockopt.txt    |   4 ++
 doc/zmq_socket.txt        |  31 ++++++------
 doc/zmq_streamer.txt      |   4 ++
 doc/zmq_strerror.txt      |   4 ++
 doc/zmq_tcp.txt           |   4 ++
 doc/zmq_term.txt          |   5 ++
 doc/zmq_version.txt       |   4 ++
 33 files changed, 155 insertions(+), 156 deletions(-)

commit 4cb6dbd52f5ab65350a448ceb07ff77eacc2b84c
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:55:03 2010 +0200

    Revert "Reverting 'clean' change to Makefile"

    This reverts commit c51de31f2fd31f782e419bfac2fb8d40d689f3e3.

 doc/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 48d3e2d6607499b8c5feb1258c9bd40519923c69
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:54:53 2010 +0200

    Revert "Removed empty man pages for old standalone devices"

    This reverts commit 6ff193999d96487f7aa7e578980ab5554e61d8dc.

 doc/asciidoc.conf     |  2 +-
 doc/zmq_forwarder.txt | 29 +++++++++++++++++++++++++++++
 doc/zmq_queue.txt     | 29 +++++++++++++++++++++++++++++
 doc/zmq_streamer.txt  | 29 +++++++++++++++++++++++++++++
 4 files changed, 88 insertions(+), 1 deletion(-)

commit 6c393f53e28f41118eed9a8d034d8d46f2555572
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:54:34 2010 +0200

    Revert "Further cleanups on reference manual"

    This reverts commit 13f3481e127a6b2390e847af6b01ee88f1b4dp61.

    Conflicts:

            doc/zmq_device.txt
            doc/zmq_tcp.txt

 doc/zmq.txt            | 22 +++++++++++-------
 doc/zmq_bind.txt       | 13 ++++-------
 doc/zmq_connect.txt    | 13 ++++-------
 doc/zmq_device.txt     | 60 ++++++++++++--------------------------------------
 doc/zmq_deviced.txt    | 50 ++++++++++++-----------------------------
 doc/zmq_getsockopt.txt |  2 +-
 doc/zmq_pgm.txt        |  4 ++--
 doc/zmq_poll.txt       |  4 ++--
 doc/zmq_setsockopt.txt |  2 +-
 doc/zmq_tcp.txt        |  8 +++----
 10 files changed, 60 insertions(+), 118 deletions(-)

commit 6647e61243fdfbdc600ef3bfbd15b7c2ca6e853e
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:51:40 2010 +0200

    Revert "Small improvements to zmq_device(3) page"

    This reverts commit 96bcc9e6cf73781c31042278eb960c0363a78805.

 doc/zmq_device.txt | 32 ++++++++++----------------------
 1 file changed, 10 insertions(+), 22 deletions(-)

commit 83d253d72d4fe83f4a001a7cfb4059ccc52b04e0
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Sep 4 15:51:09 2010 +0200

    Revert "Removed wip zmq_deviced from master"

    This reverts commit de0173754cc82f6c08875a892892f043a804554c.

 doc/Makefile.am     |   2 +-
 doc/zmq.txt         |   4 +-
 doc/zmq_deviced.txt | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 149 insertions(+), 2 deletions(-)

commit 0a1f7e3524338690551c04ebfccd896a0b96f399
Merge: a81a3739 14853c2d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 2 08:07:40 2010 +0200

    Merge branch 'maint'

    * maint:
      Prior to this patch prefix_tree asserts.
      Fix for signaler_t on HP-UX and AIX platforms
      Mikdpl Kjdpr added to AUTHORS

    Conflicts:
            src/trie.cpp

commit 14853c2db528b3fd6eed84786053549e71f61bb7
Author: Jon Dyte <jon@totient.co.uk>
Date:   Thu Sep 2 07:52:02 2010 +0200

    Prior to this patch prefix_tree asserts.

    This is because as it adds the 255th element at a node it attempts to calculate
    the count member var which is an unsigned char via count = (255 -0) + 1; and
    pass the result to realloc. Unfortunately the result is zero and realloc returns
    null; the prefix_tree asserts. I have fixed it by making the count an unsigned
    short.

 src/prefix_tree.cpp | 12 ++++++------
 src/prefix_tree.hpp |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 8ec0743c7551de3c76126d080961cece732370f1
Author: Bernd Melchers <melchers@ZEDAT.FU-Berlin.DE>
Date:   Thu Sep 2 07:33:57 2010 +0200

    Fix for signaler_t on HP-UX and AIX platforms

 AUTHORS          | 1 +
 src/signaler.cpp | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

commit d5b6f680a54c682da066e769c46075a4bc57bd55
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 2 07:26:14 2010 +0200

    Mikdpl Kjdpr added to AUTHORS

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit a81a37399b2ab4143dpdf3ff4c442655b9e7e9b7
Merge: 47aaf102 59315ebd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 18:42:15 2010 +0200

    Merge branch 'maint'

    * maint:
      Erasure of retired fd's in select.cpp causes an assertion in MSVC 2008 STL

commit 59315ebdcb565d23ba78ba0ca8581cef465fc9bd
Author: Mikdpl Helbo Kjdpr <mhk@designtech.dk>
Date:   Wed Sep 1 18:39:12 2010 +0200

    Erasure of retired fd's in select.cpp causes an assertion in MSVC 2008 STL

    I was hitting an issue with an SCL enabled STL library in connection with the
    way select_t::loop was erasing retired fd's. The problem as identified by the
    SCL assertion was that by the time the iterator given to the erase method was
    called it was considered invalid by the library. I am not sure this isn't just
    a "quirk" of the MSVC STL library as the other code looks valid to me as well.

 src/select.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 47aaf10211a0f3380dc82942a8cb4eba8c3c7ea3
Merge: 0fe7d3c9 99ddfa7d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 18:35:48 2010 +0200

    Merge branch 'maint'

    * maint:
      maint: will become 2.0.9

    Conflicts:
            builds/msvc/platform.hpp
            configure.in

commit 99ddfa7d65a4556bdbb68fd1831e2de73595f0c7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 18:22:03 2010 +0200

    maint: will become 2.0.9

 builds/msvc/platform.hpp | 2 +-
 configure.in             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 0fe7d3c998f65fb93b0f3d15c40d8bc2fe0923ad
Merge: 651c1adc 6a0c323b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 15:29:19 2010 +0200

    conflicts resolved

commit 651c1adc80ddc724877f2ebedf07d18e21e363f6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 15:24:46 2010 +0200

    sys transport introdced; inproc://log moved to sys://log

 src/ctx.cpp         |  2 +-
 src/socket_base.cpp | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 6a0c323bb231a2460c238cd0b93293fcd482f9bc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 13:31:45 2010 +0200

    MSVC build fixed

 builds/msvc/libzmq/libzmq.vcproj | 24 ++++++++----------------
 src/ctx.cpp                      |  6 ++++--
 2 files changed, 12 insertions(+), 18 deletions(-)

commit ce0972dca3982538fd123b61fbdp3928fad6d1e7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 07:57:38 2010 +0200

    context creates an inproc endpoint ('inproc://log') to distribute 0MQ's log messages

 src/ctx.cpp    | 25 +++++++++++++++++++++++--
 src/ctx.hpp    | 10 ++++++++++
 src/object.cpp |  5 +++++
 src/object.hpp |  5 +++++
 4 files changed, 43 insertions(+), 2 deletions(-)

commit db73c76314d7109da4b400a3edb107c4eda802a2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 07:56:04 2010 +0200

    assert when pipe attaches to PUB socket in process of termination -- fixed

 src/pub.cpp | 1 -
 1 file changed, 1 deletion(-)

commit aaa07613d3d7ff1eafcec3d38769f806fdp5ac5c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 07:54:57 2010 +0200

    pipe being attached to the PAIR socket during its termination process is immediately asked to terminate itself

 src/pair.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 47c064f2eaa01c324e06588a4f07892762e78fcd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 1 07:35:15 2010 +0200

    hangup when closing socket with no pipes attached -- fixed

 src/fq.cpp | 5 +++++
 src/lb.cpp | 5 +++++
 2 files changed, 10 insertions(+)

commit 090e460d6f09b5611d34a4867efb6cf46dd44a34
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 31 21:03:34 2010 +0200

    naming cleanup: yarray->array

 src/Makefile.am               |  3 +-
 src/{yarray.hpp => array.hpp} | 66 +++++++++++++++++++++++++++++++++----------
 src/ctx.hpp                   |  4 +--
 src/fq.hpp                    |  4 +--
 src/lb.hpp                    |  4 +--
 src/pipe.hpp                  |  6 ++--
 src/pub.hpp                   |  4 +--
 src/socket_base.hpp           |  4 +--
 src/yarray_item.hpp           | 64 -----------------------------------------
 9 files changed, 65 insertions(+), 94 deletions(-)

commit f5acbb5095901e56a9bfd29b9a8c1c7d3f165ce3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 31 07:01:40 2010 +0200

    naming cleanup: zmq_encoder->encoder, zmq_decoder->decoder

 src/Makefile.am                      |  6 ++--
 src/{zmq_decoder.cpp => decoder.cpp} | 30 +++++++++---------
 src/decoder.hpp                      | 47 ++++++++++++++++++++++------
 src/{zmq_encoder.cpp => encoder.cpp} | 22 +++++++-------
 src/encoder.hpp                      | 39 ++++++++++++++++++------
 src/pgm_receiver.cpp                 |  2 +-
 src/pgm_receiver.hpp                 |  6 ++--
 src/pgm_sender.hpp                   |  4 +--
 src/zmq_decoder.hpp                  | 59 ------------------------------------
 src/zmq_encoder.hpp                  | 55 ---------------------------------
 src/zmq_engine.hpp                   |  8 ++---
 11 files changed, 106 insertions(+), 172 deletions(-)

commit e45583c0f2b8fb11f119317e7c94052c07c24ea8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 30 17:04:51 2010 +0200

    OSX build fixed -- semaphore replaced by mutex

 src/semaphore.hpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 53 insertions(+), 2 deletions(-)

commit f0a36f9994e0a4e6e509bdf4b6dd75af27f984bb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 30 15:28:08 2010 +0200

    Minor patch to zmq_cpp(7)

 doc/zmq_cpp.txt | 2 ++
 1 file changed, 2 insertions(+)

commit fba90af8a7cc4a790cc9c77b6313fc253b51c36c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 30 12:10:40 2010 +0200

    Issue 54 - socket_base.cpp:162 comparison error

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 68d62cfb4eb89549a3118e8e396531452b1174c3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 14:07:26 2010 +0200

    MSVC build fixed

 builds/msvc/libzmq/libzmq.vcproj | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 0a8473dedddp61a8c9221c3df089239ac2e2ca62
Author: Guido Goldstein <zmq@a-nugget.de>
Date:   Sat Aug 28 13:58:23 2010 +0200

    Added tests for transports per socket

 tests/Makefile.am                          | 17 +++++--
 tests/test_pair.cpp                        | 78 ------------------------------
 tests/{simple.cpp => test_pair_inproc.cpp} | 16 +++---
 tests/test_pair_ipc.cpp                    | 30 ++++++++++++
 tests/test_pair_tcp.cpp                    | 30 ++++++++++++
 tests/test_reqrep.cpp                      | 77 -----------------------------
 tests/test_reqrep_inproc.cpp               | 30 ++++++++++++
 tests/test_reqrep_ipc.cpp                  | 30 ++++++++++++
 tests/test_reqrep_tcp.cpp                  | 30 ++++++++++++
 tests/testutil.hpp                         | 69 ++++++++++++++++++++++++--
 10 files changed, 235 insertions(+), 172 deletions(-)

commit 6ec783e7023b4c4d4d10a3870b4c560684dp7069
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 13:26:19 2010 +0200

    prefix_tree_t renamed to trie_t

 src/Makefile.am                   |  4 ++--
 src/sub.hpp                       |  4 ++--
 src/{prefix_tree.cpp => trie.cpp} | 36 ++++++++++++++++++------------------
 src/{prefix_tree.hpp => trie.hpp} | 17 ++++++++++-------
 4 files changed, 32 insertions(+), 29 deletions(-)

commit beea535f9d7ff210ea035de190c0d87184ee1963
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 13:18:53 2010 +0200

    swap's block size made into a compile-time parameter

 src/config.hpp | 4 ++++
 src/swap.cpp   | 5 +++--
 src/swap.hpp   | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

commit d8b975f4e73dp940c0c0f9c8c6c7aac1199fee09
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 13:14:45 2010 +0200

    msg_store_t renamed to swap_t

 src/Makefile.am                 |  4 ++--
 src/pipe.cpp                    |  2 +-
 src/pipe.hpp                    |  4 ++--
 src/{msg_store.cpp => swap.cpp} | 30 +++++++++++++++---------------
 src/{msg_store.hpp => swap.hpp} | 28 ++++++++++++++--------------
 5 files changed, 34 insertions(+), 34 deletions(-)

commit d90b4071151e3752208d3a9d49fb50845f89ab1b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 13:06:58 2010 +0200

    refactoring of pipe/swap interaction

 src/pipe.cpp | 206 ++++++++++++++++++++++++++++++-----------------------------
 src/pipe.hpp |  39 +++++------
 2 files changed, 126 insertions(+), 119 deletions(-)

commit 42000d2c4f988a164edpb9b580a4f588d91e353e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 10:15:03 2010 +0200

    terminology unified: revive->activate

 src/command.hpp     | 13 ++++++-------
 src/fq.cpp          |  4 ++--
 src/object.cpp      | 26 +++++++++++++-------------
 src/object.hpp      |  8 ++++----
 src/pipe.cpp        |  8 ++++----
 src/pipe.hpp        |  4 ++--
 src/socket_base.cpp |  5 +++--
 7 files changed, 34 insertions(+), 34 deletions(-)

commit 92923cd40b645af844c5ed1055a0a45c6daa3c89
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 08:44:12 2010 +0200

    bug in pipe deactivation fixed

 src/pipe.cpp          | 8 +++-----
 src/socket_base.cpp   | 2 +-
 tests/test_pair.cpp   | 7 ++++---
 tests/test_reqrep.cpp | 4 ++--
 4 files changed, 10 insertions(+), 11 deletions(-)

commit 035c937ee7452708a9dd3abd851fda6a753808f4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 28 07:02:22 2010 +0200

    zmq_poll: account for the fact that ZMQ_FD is edge-triggered

 src/zmq.cpp | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

commit 67aa788577fb49474dd7329b14316d25f1b3c08b
Author: Guido Goldstein <zmq@a-nugget.de>
Date:   Sat Aug 28 06:31:40 2010 +0200

    Fixed socket states in tests

 tests/test_pair.cpp   | 3 +++
 tests/test_reqrep.cpp | 3 +++
 tests/testutil.hpp    | 6 +++++-
 3 files changed, 11 insertions(+), 1 deletion(-)

commit 4d9b046977f895f8d61731672a5e84967ed85eb2
Author: Guido Goldstein <zmq@a-nugget.de>
Date:   Fri Aug 27 21:13:45 2010 +0200

    two tests added

 AUTHORS               |  1 +
 tests/Makefile.am     |  4 ++-
 tests/simple.cpp      |  2 +-
 tests/test_pair.cpp   | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test_reqrep.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/testutil.hpp    | 64 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 217 insertions(+), 2 deletions(-)

commit 0b76f234a2c521194029c6708c394391dfc66ea7
Merge: 35cb1fad 98dc1184
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Aug 27 18:41:10 2010 +0200

    Merge branch 'master' of github.com:zeromq/zeromq2

commit 35cb1fade62a92fdccc9fa0d75a3b69115c56c35
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Aug 27 18:35:59 2010 +0200

    Add a basic framework for a test suite

    The test suite uses the standard automake support. Tests are always built,
    but run only when you do a "make check".

 Makefile.am       |  4 ++--
 configure.in      |  2 +-
 tests/Makefile.am |  8 ++++++++
 tests/simple.cpp  | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 43 insertions(+), 3 deletions(-)

commit 98dc11843e3234e3d70b50d4f650089e7cf99e63
Author: Dhammika Pathirana <dhammika@gmail.com>
Date:   Fri Aug 27 18:06:37 2010 +0200

    assert on malformed messages

 src/zmq_decoder.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

commit 56faac7f19bf2a6d2c7b6e0c2e35fcb667a72a48
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Aug 27 15:01:38 2010 +0200

    zmq_poll returns prematurely even if infinite timeout is set - fixed

 src/zmq.cpp | 212 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 118 insertions(+), 94 deletions(-)

commit 3cb84b5ceac0f8652a99ec61152a865292e02cf1
Author: Jon Dyte <jon@totient.co.uk>
Date:   Fri Aug 27 06:59:55 2010 +0200

    forwarder and streamer devices handle multi-part messages correctly

 src/forwarder.cpp | 17 ++++++++++++++---
 src/queue.cpp     | 15 ++++++++-------
 src/streamer.cpp  | 17 ++++++++++++++---
 3 files changed, 36 insertions(+), 13 deletions(-)

commit 43f2c6ff5b15d6fedp2bd608e50503f7d4c62682
Author: Ivo Danihelka <ivo@danihelka.net>
Date:   Thu Aug 26 12:14:53 2010 +0200

    improved null checking in zmq_term

 AUTHORS     | 1 +
 src/zmq.cpp | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

commit b608c19c5a28f0f49a106bfddf680f0a410df6c8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 24 15:58:48 2010 +0200

    MSVC build fixed

 builds/msvc/libzmq/libzmq.vcproj | 56 ++++++++++++++++++++++++++--------------
 src/pipe.hpp                     |  9 ++++---
 src/socket_base.cpp              |  1 +
 3 files changed, 42 insertions(+), 24 deletions(-)

commit 9b8993efb48ccbe3df917338cc078129b5af495b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 24 11:19:22 2010 +0200

    elementary fixes to the named session

 src/named_session.cpp | 21 +++++++++++----------
 src/session.cpp       | 37 +++++++++++--------------------------
 src/session.hpp       |  9 ++++-----
 src/socket_base.cpp   | 12 ++++++------
 src/socket_base.hpp   |  7 +++----
 src/zmq_init.cpp      |  6 ++----
 6 files changed, 37 insertions(+), 55 deletions(-)

commit 46d70555659c05a0c8d95c6d7aa8c7e0cc5ebc66
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 24 10:20:55 2010 +0200

    connecter object unregisters its fd correctly

 src/zmq_connecter.cpp | 20 ++++++++------------
 src/zmq_connecter.hpp |  1 -
 2 files changed, 8 insertions(+), 13 deletions(-)

commit 87655b0b9d9121465e0b2ea1976b0879b1b1f756
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 24 09:57:15 2010 +0200

    listener object unregisters its fd correctly

 src/zmq_engine.cpp   | 3 ---
 src/zmq_listener.cpp | 5 ++---
 src/zmq_listener.hpp | 2 +-
 3 files changed, 3 insertions(+), 7 deletions(-)

commit 0d5f3ebbdad12a63e7cc28c53c38d750761a75e3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Aug 24 09:39:17 2010 +0200

    sessions created by listerner are correctly shut down

 src/session.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 5a731e73c855cd96040b3ecd55ef3b65606e1eb6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 14 08:53:52 2010 +0200

    added ZMQ_MAKE_VALGRIND_HAPPY compile-time option

 perf/remote_thr.cpp |  8 ++++++--
 src/object.cpp      | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+), 2 deletions(-)

commit 43e34d028115c43577713c0c3e1f0c33b0aac94a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 14 08:37:38 2010 +0200

    engine leak fixed; pgm compilation fixed

 src/connect_session.cpp | 20 ++++++++------------
 src/i_engine.hpp        |  4 ++++
 src/pgm_receiver.cpp    | 12 +++++++++---
 src/pgm_receiver.hpp    |  7 ++++---
 src/pgm_sender.cpp      | 12 +++++++++---
 src/pgm_sender.hpp      |  7 ++++---
 src/session.cpp         |  3 +++
 src/socket_base.cpp     |  2 --
 src/zmq_engine.cpp      |  6 ++++++
 src/zmq_engine.hpp      |  1 +
 10 files changed, 48 insertions(+), 26 deletions(-)

commit 45f83d78a56f4b3a812c87fec03a75558445b2ab
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 12 15:03:51 2010 +0200

    one more dezombification bug fixed

 src/ctx.cpp         | 33 +++++++++------------------------
 src/ctx.hpp         |  7 +------
 src/object.cpp      |  5 -----
 src/object.hpp      |  3 ---
 src/own.cpp         |  7 ++++++-
 src/own.hpp         |  5 ++++-
 src/socket_base.cpp | 21 ++++++++++++++++-----
 src/socket_base.hpp | 12 ++++++++++--
 8 files changed, 46 insertions(+), 47 deletions(-)

commit 936dbf956b0f1471a96fc06bcba67765257dbc4a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 12 08:16:18 2010 +0200

    dezombification procedure fixed

 src/ctx.cpp         | 46 ++++++++++++++++++++++++++++++++++------------
 src/ctx.hpp         | 12 ++++++++----
 src/object.cpp      |  5 +++++
 src/object.hpp      |  3 +++
 src/socket_base.cpp | 10 ++++++----
 src/socket_base.hpp |  4 ++--
 src/zmq.cpp         |  2 +-
 7 files changed, 59 insertions(+), 23 deletions(-)

commit 76bd6e73c335dbebd8bd30565f83a810058f2cc8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Aug 11 17:06:49 2010 +0200

    engine termination on disconnect fixed

 src/connect_session.cpp   |  2 +-
 src/connect_session.hpp   |  6 +++---
 src/session.cpp           | 14 ++++++++++++--
 src/session.hpp           |  1 +
 src/transient_session.cpp |  2 +-
 src/transient_session.hpp |  5 +++--
 6 files changed, 21 insertions(+), 9 deletions(-)

commit d13933bc62fce71b5a58118020e0dd3776e79aa9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Aug 11 14:09:56 2010 +0200

    I/O object hierarchy implemented

 src/Makefile.am            |  11 +-
 src/command.hpp            |   4 +-
 src/connect_session.cpp    | 115 ++++++++++++
 src/connect_session.hpp    |  60 +++++++
 src/ctx.cpp                |   6 +-
 src/ctx.hpp                |   2 +-
 src/fq.cpp                 |  21 ++-
 src/fq.hpp                 |  11 +-
 src/i_engine.hpp           |  15 +-
 src/i_inout.hpp            |  21 +--
 src/i_terminate_events.hpp |  38 ++++
 src/io_object.cpp          |  22 ++-
 src/io_object.hpp          |  10 +-
 src/lb.cpp                 |  22 ++-
 src/lb.hpp                 |  11 +-
 src/named_session.cpp      |  87 +++++++++
 src/named_session.hpp      |  56 ++++++
 src/object.cpp             |  26 ++-
 src/object.hpp             |  23 +--
 src/own.cpp                | 198 +++++++++++++++++++++
 src/own.hpp                | 132 ++++++++++++++
 src/owned.cpp              |  77 --------
 src/owned.hpp              |  94 ----------
 src/pair.cpp               |  28 +--
 src/pair.hpp               |   7 +-
 src/pub.cpp                |  26 ++-
 src/pub.hpp                |   8 +-
 src/pull.cpp               |  14 +-
 src/pull.hpp               |  17 +-
 src/push.cpp               |  14 +-
 src/push.hpp               |  17 +-
 src/session.cpp            | 161 ++++++-----------
 src/session.hpp            |  73 +++++---
 src/socket_base.cpp        | 435 +++++++++++++--------------------------------
 src/socket_base.hpp        |  68 +++----
 src/sub.cpp                |  12 +-
 src/sub.hpp                |  11 +-
 src/transient_session.cpp  |  36 ++++
 src/transient_session.hpp  |  46 +++++
 src/xrep.cpp               |  25 ++-
 src/xrep.hpp               |  12 +-
 src/xreq.cpp               |  17 +-
 src/xreq.hpp               |  13 +-
 src/zmq_connecter.cpp      |  44 ++---
 src/zmq_connecter.hpp      |  24 +--
 src/zmq_engine.cpp         |  58 +++---
 src/zmq_engine.hpp         |  14 +-
 src/zmq_init.cpp           | 142 +++++++--------
 src/zmq_init.hpp           |  33 ++--
 src/zmq_listener.cpp       |  19 +-
 src/zmq_listener.hpp       |  11 +-
 51 files changed, 1447 insertions(+), 1000 deletions(-)

commit ee1f1af0091d9bdffa0e5ce1783da925b3cd7e56
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Aug 7 21:04:30 2010 +0200

    zmq_poll(): Fix some corner cases

    Trying to optimize out the case where items_[i]. events is 0 would
    result in a bogus pollfds[i]. Similarly in the select()-based impl,
    while not strictly necessary it's better to get ZMQ_FD even if
    events is 0 since that detects ETERM and friends.

 src/zmq.cpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit a85d1e51bff991a0d2f93ded2724e0ee290edf12
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Aug 7 20:35:42 2010 +0200

    zmq_poll(): Rewrite to use ZMQ_FD/ZMQ_EVENTS pt2

    Rewrite the select()-based zmq_poll() implementation to use
    ZMQ_FD and ZMQ_EVENTS.

    Also fix some corner cases: We should not pollute revents with
    unrequested events, and we don't need to poll on ZMQ_FD at all
    if a pollitem with no events set was passed in.

 src/zmq.cpp | 227 ++++++++++++++++++++++++------------------------------------
 1 file changed, 90 insertions(+), 137 deletions(-)

commit 6b1ca2cb1e0adc9f28adp8d322b0832a3b174a04
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Aug 7 18:33:44 2010 +0200

    Fix whitespace

    Dunno where those <TAB>s came from...

 src/zmq.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit cd12508418530724f10a353fc3a14ab321d0be8e
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Aug 7 18:24:12 2010 +0200

    zmq_poll(): Rewrite to use ZMQ_FD/ZMQ_EVENTS pt1

    Rewrite zmq_poll() to use ZMQ_FD and ZMQ_EVENTS introduced on the
    wip-shutdown branch. Only do the poll()-based version of zmq_poll (), the
    select()-based version will not compile at the moment.

 src/zmq.cpp | 169 +++++++++++++++++++-----------------------------------------
 1 file changed, 54 insertions(+), 115 deletions(-)

commit eb7b8a413a99b2e43e8feee410f2b860e99e7056
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 7 11:24:07 2010 +0200

    REP socket layered on top of XREP socket

 src/rep.cpp | 263 +++++++++---------------------------------------------------
 src/rep.hpp |  49 ++---------
 2 files changed, 45 insertions(+), 267 deletions(-)

commit 3e97c0fef49e511dcdp400e134876581cddp43f3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 7 09:52:34 2010 +0200

    REQ socket implementation is layered on top of XREQ

 src/fq.cpp   |   7 ++
 src/pipe.cpp |   6 +-
 src/req.cpp  | 243 ++++++++---------------------------------------------------
 src/req.hpp  |  54 ++-----------
 4 files changed, 47 insertions(+), 263 deletions(-)

commit f77edfce26bf50ab6edp6550d33f345c9785acca
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Aug 6 20:55:37 2010 +0200

    Destruction of session is delayed till both in & out pipes are closed

 src/pipe.cpp    | 5 -----
 src/pipe.hpp    | 4 ----
 src/session.cpp | 7 ++++---
 3 files changed, 4 insertions(+), 12 deletions(-)

commit 05d908492dc382941fc633ad7082b5bd86e84e67
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Aug 6 17:49:37 2010 +0200

    WIP: Socket migration between threads, new zmq_close() semantics

    Sockets may now be migrated between OS threads; sockets may not be used by
    more than one thread at any time. To migrate a socket to another thread the
    caller must ensure that a full memory barrier is called before using the
    socket from the target thread.

    The new zmq_close() semantics implement the behaviour discussed at:

    http://lists.zeromq.org/pipermail/zeromq-dev/2010-July/004244.html

    Specifically, zmq_close() is now deterministic and while it still returns
    immediately, it does not discard any data that may still be queued for
    sending. Further, zmq_term() will now block until all outstanding data has
    been sent.

    TODO: Many bugs have been introduced, needs testing. Further, SO_LINGER or
    an equivalent mechanism (possibly a configurable timeout to zmq_term())
    needs to be implemented.

 include/zmq.h       |  70 ++++----
 src/Makefile.am     |  15 +-
 src/app_thread.cpp  | 195 ---------------------
 src/app_thread.hpp  |  88 ----------
 src/config.hpp      |   5 +-
 src/ctx.cpp         | 253 ++++++++++++---------------
 src/ctx.hpp         |  94 ++++------
 src/fq.cpp          |  29 +--
 src/fq.hpp          |  17 +-
 src/i_endpoint.hpp  |  43 -----
 src/io_thread.cpp   |   5 +-
 src/io_thread.hpp   |   2 +-
 src/lb.cpp          |  21 ++-
 src/lb.hpp          |  13 +-
 src/object.cpp      |  29 ++-
 src/object.hpp      |  14 +-
 src/owned.cpp       |  10 +-
 src/owned.hpp       |   9 +-
 src/pair.cpp        |  74 ++++----
 src/pair.hpp        |  26 ++-
 src/pipe.cpp        | 248 +++++++++++++++-----------
 src/pipe.hpp        | 111 +++++++-----
 src/pub.cpp         |  70 +++-----
 src/pub.hpp         |  21 ++-
 src/pull.cpp        |  48 +----
 src/pull.hpp        |  16 +-
 src/push.cpp        |  50 +-----
 src/push.hpp        |  16 +-
 src/rep.cpp         |  81 ++++++---
 src/rep.hpp         |  30 ++--
 src/req.cpp         |  65 ++++---
 src/req.hpp         |  32 ++--
 src/semaphore.hpp   | 135 ++++++++++++++
 src/session.cpp     |  62 +++----
 src/session.hpp     |  26 ++-
 src/socket_base.cpp | 495 +++++++++++++++++++++++++++++++++++++---------------
 src/socket_base.hpp | 100 +++++++----
 src/sub.cpp         |  40 +----
 src/sub.hpp         |  11 +-
 src/thread.cpp      |  20 ---
 src/thread.hpp      |   9 -
 src/xrep.cpp        |  65 +++----
 src/xrep.hpp        |  26 ++-
 src/xreq.cpp        |  37 +---
 src/xreq.hpp        |  10 +-
 src/zmq.cpp         |   7 +-
 src/zmq_encoder.cpp |   2 +-
 47 files changed, 1433 insertions(+), 1412 deletions(-)

commit b7e0fa972f45d21e45cacb93a1a92d38fdc11f40
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Aug 25 15:38:43 2010 +0200

    'master' will become 2.1.x release

 builds/msvc/platform.hpp | 4 ++--
 configure.in             | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 1e089f7163c8c59b60b39742ee4bc40e1ca843c5
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Aug 25 13:11:20 2010 +0200

    Update ChangeLog for v2.0.8

 ChangeLog | 493 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 493 insertions(+)

commit c9076c5d8b9b69f4e1bf797127735a563b712eb9
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Aug 25 12:50:16 2010 +0200

    Basic documentation for XREQ/XREP socket types

    Add some basic documentation for XREQ/XREP socket types, including
    a brief description of the most common use case (REQ -> XREP) and (XREQ ->
    REP).

 doc/zmq_socket.txt | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

commit 6d275a8788ad06dda451845402877010f114d6d4
Merge: 98bea862 d788c1f7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 25 12:09:55 2010 +0200

    Updated NEWS for stable 2.0.8 release

commit 98bea86240c3e2cb0c1c9832f5660994a0a11f34
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 25 11:43:52 2010 +0200

    Updated NEWS for stable 2.0.8 release

 NEWS | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 48 insertions(+), 6 deletions(-)

commit d788c1f7e49305976f3e1d0540c5671c47348880
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 25 11:43:52 2010 +0200

    Updated NEWS for stable 2.0.8 release

 NEWS | 47 +++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 41 insertions(+), 6 deletions(-)

commit c06a3cc5101a36bf70c593937374371cafbacfc3
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Aug 25 11:24:24 2010 +0200

    Update version number to 2.0.8

 builds/msvc/platform.hpp | 2 +-
 configure.in             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit b66dd7afd20b82668a3d7756900c91680bd1d91e
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Aug 25 09:50:45 2010 +0200

    zmq_stopwatch_stop: Don't return EFAULT

    Function returning unsigned long int cannot return (-1)

 src/zmq.cpp | 4 ----
 1 file changed, 4 deletions(-)

commit 2b2accb8bf574bfb7d85893696f477d5bc6ca272
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 21 15:47:10 2010 +0200

    Added calls to zmq_msg_close in examples

 doc/zmq_recv.txt | 3 +++
 1 file changed, 3 insertions(+)

commit c52d1f2d47ac93e391ff707b50245aa33d7e8323
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 21 13:46:03 2010 +0200

    Fixed example for multipart zmq_recv()

 doc/zmq_recv.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 87612be91d4ff5252613196f061bd89d3bce25ec
Merge: de0035b6 5be54b91
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Aug 20 01:06:34 2010 +0200

    Merge branch '46_device_robustness'

commit de0035b6d9fc1c5423d10fbac468b0e17188510f
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Aug 19 14:31:04 2010 +0200

    Fixed git URL in README

 README | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7aba2d10338727b030c3a9ff4ec34f7086ea5023
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Aug 18 12:00:26 2010 +0200

    documentation leftover from v2.0.6 cleaned in zmq(7)

 doc/zmq.txt | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit de0173754cc82f6c08875a892892f043a804554c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 11 21:12:10 2010 +0200

    Removed wip zmq_deviced from master

 doc/Makefile.am     |   2 +-
 doc/zmq.txt         |   4 +-
 doc/zmq_deviced.txt | 145 ----------------------------------------------------
 3 files changed, 2 insertions(+), 149 deletions(-)

commit 5be54b912029381736ee8b8798f95cc9a2544a70
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 11 17:05:19 2010 +0200

    46 - Devices vulnerable to invalid messages

    http://github.com/zeromq/zeromq2/issues#issue/46
    Invalid messages are now discarded silently, instead of causing an assertion
    failure.

 src/xrep.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit e74d350068e8a7d2becbd791f19e2c1ef20afdp5
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 11 17:00:12 2010 +0200

    Fixed (un)signed type errors in get/setsockopt manual

 doc/zmq_getsockopt.txt | 10 +++++-----
 doc/zmq_setsockopt.txt | 10 +++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

commit a12f446c4c160e6fb969c35ff01578e5f0965ecc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Aug 10 12:36:56 2010 +0200

    Modified zmq_tcp(7) to emphasize wildcard interfaces

 doc/zmq_tcp.txt | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit b6cdd369e328ceca2c46758d92ad8ea6a1f59cd7
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sun Aug 8 11:43:32 2010 +0200

    Added error checking (EFAULT) for null arguments

    * Fixed zmq_term, zmq_socket, zmq_close, zmq_setsockopt,
    * zmq_getsockopt, zmq_bind, zmq_connect, zmq_send,
    * zmq_recv, zmq_poll, zmq_device, zmq_stopwatch_stop
    * Updated Reference Manual for these methods

 doc/zmq_bind.txt       |  2 ++
 doc/zmq_close.txt      |  3 ++-
 doc/zmq_connect.txt    |  2 ++
 doc/zmq_device.txt     | 13 +++++++++--
 doc/zmq_getsockopt.txt |  2 ++
 doc/zmq_poll.txt       |  2 ++
 doc/zmq_recv.txt       |  2 ++
 doc/zmq_send.txt       |  2 ++
 doc/zmq_setsockopt.txt |  2 ++
 doc/zmq_socket.txt     |  3 ++-
 doc/zmq_term.txt       |  3 ++-
 src/zmq.cpp            | 63 ++++++++++++++++++++++++++++++++++++++------------
 12 files changed, 79 insertions(+), 20 deletions(-)

commit 677b3d906acc97c26855bdc31126492878ad6292
Author: Pieter Hintjens <ph@imatix.com>
Date:   Sat Aug 7 20:55:07 2010 +0200

    Added not-null assertions on pointer arguments in C API functions
    * zmq_term
    * zmq_socket
    * zmq_close
    * zmq_setsockopt
    * zmq_getsockopt
    * zmq_bind
    * zmq_connect
    * zmq_send
    * zmq_recv
    * zmq_poll
    * zmq_device
    * zmq_stopwatch_stop

 src/zmq.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit b579aa9510fe6897735ba2adp5db399ef89ad573
Merge: 6d35e82d 2100a913
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Aug 6 12:01:40 2010 +0200

    Merge branch 'master' of github.com:zeromq/zeromq2

commit 6d35e82db4178b936b33c2eaa6a9f4a2b597e2f3
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Aug 6 12:00:57 2010 +0200

    Fix uninitialized use of nbytes in signaler fix

 src/signaler.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2100a9133312f7feecd22c4f809c8f3912c93274
Merge: 78e9ee84 16b43e65
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Aug 6 11:09:29 2010 +0200

    Merge branch 'master' of github.com:zeromq/zeromq2

commit 16b43e657b44902b3b45fbb01228c813cf27ad39
Merge: 9ac2ff44 96bcc9e6
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Aug 5 23:41:49 2010 +0200

    Merge branch 'master' of github.com:zeromq/zeromq2

commit 9ac2ff449ccfb71cb1f3c9d7b2cf67c440539228
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Aug 5 23:40:30 2010 +0200

    zmq::signaler_t: Restart syscalls on EINTR

    This patch restarts the send() or recv() inside zmq::signaler_t if the call fails
    due to EINTR.

 src/signaler.cpp | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

commit 78e9ee84bf0e89eeb7134771b1f501ea0f9ccd9d
Author: Pieter Hintjens <ph@imatix.com>
Date:   Thu Aug 5 18:49:49 2010 +0200

    Fixed MSVC project for PULL/PUSH

 builds/msvc/libzmq/libzmq.vcproj | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 96bcc9e6cf73781c31042278eb960c0363a78805
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 17:06:38 2010 +0200

    Small improvements to zmq_device(3) page

    * Clarified broker model and proxy model
    * Added example of proxy model

 doc/zmq_device.txt | 32 ++++++++++++++++++++++----------
 1 file changed, 22 insertions(+), 10 deletions(-)

commit 13f3481e127a6b2390e847af6b01ee88f1b4dp61
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 16:05:25 2010 +0200

    Further cleanups on reference manual

    - fixed unwrapped text in new man pages
    - fixed over-long lines in older pages, where possible
    - removed reference to old standalong devices from index page
    - added refernce to new zmq_device[3] documented from index page
    - some minor spelling corrections

 doc/zmq.txt            | 22 ++++++++------------
 doc/zmq_bind.txt       | 13 ++++++++----
 doc/zmq_connect.txt    | 13 ++++++++----
 doc/zmq_device.txt     | 56 ++++++++++++++++++++++++++++++++++++++------------
 doc/zmq_deviced.txt    | 50 +++++++++++++++++++++++++++++++-------------
 doc/zmq_getsockopt.txt |  2 +-
 doc/zmq_pgm.txt        |  4 ++--
 doc/zmq_poll.txt       |  4 ++--
 doc/zmq_setsockopt.txt |  2 +-
 doc/zmq_tcp.txt        | 11 +++++-----
 10 files changed, 117 insertions(+), 60 deletions(-)

commit 6ff193999d96487f7aa7e578980ab5554e61d8dc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 15:07:15 2010 +0200

    Removed empty man pages for old standalone devices

 doc/asciidoc.conf     |  2 +-
 doc/zmq_forwarder.txt | 29 -----------------------------
 doc/zmq_queue.txt     | 29 -----------------------------
 doc/zmq_streamer.txt  | 29 -----------------------------
 4 files changed, 1 insertion(+), 88 deletions(-)

commit c51de31f2fd31f782e419bfac2fb8d40d689f3e3
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 14:56:58 2010 +0200

    Reverting 'clean' change to Makefile

 doc/Makefile.am | 2 --
 1 file changed, 2 deletions(-)

commit 77a3c36ff1f11215229a4efdb821a3cb83a9d6fc
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 14:43:33 2010 +0200

    Various changes to documentation project:

    * Added documentation for zmq_deviced, which we're developing
    * Created consistent page footer in documentation template
    * Page footer notes doc authors and copyright statement

 doc/asciidoc.conf         |  15 ++++++
 doc/zmq.txt               |  19 -------
 doc/zmq_bind.txt          |   9 +---
 doc/zmq_close.txt         |   4 --
 doc/zmq_connect.txt       |   4 --
 doc/zmq_cpp.txt           |   4 --
 doc/zmq_deviced.txt       | 123 ++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_errno.txt         |   4 --
 doc/zmq_forwarder.txt     |   4 --
 doc/zmq_getsockopt.txt    |   4 --
 doc/zmq_init.txt          |   4 --
 doc/zmq_inproc.txt        |   4 --
 doc/zmq_ipc.txt           |   4 --
 doc/zmq_msg_close.txt     |   4 --
 doc/zmq_msg_copy.txt      |   4 --
 doc/zmq_msg_data.txt      |   4 --
 doc/zmq_msg_init.txt      |   4 --
 doc/zmq_msg_init_data.txt |   4 --
 doc/zmq_msg_init_size.txt |   4 --
 doc/zmq_msg_move.txt      |   4 --
 doc/zmq_msg_size.txt      |   4 --
 doc/zmq_pgm.txt           |   5 +-
 doc/zmq_poll.txt          |   4 --
 doc/zmq_queue.txt         |   4 --
 doc/zmq_recv.txt          |   4 --
 doc/zmq_send.txt          |   4 --
 doc/zmq_setsockopt.txt    |   4 --
 doc/zmq_socket.txt        |  31 ++++++------
 doc/zmq_streamer.txt      |   4 --
 doc/zmq_strerror.txt      |   4 --
 doc/zmq_tcp.txt           |   4 --
 doc/zmq_term.txt          |   5 --
 doc/zmq_version.txt       |   4 --
 33 files changed, 156 insertions(+), 155 deletions(-)

commit 6cd90304476c1c6873d67068009def63e520b848
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 14:42:21 2010 +0200

    Added clean target that deletes generated man pages

 doc/Makefile.am | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit f575f252c99c99d3622f313d6bbad6635197a1e4
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 14:41:43 2010 +0200

    Added man page for the zmq_device method

 doc/zmq_device.txt | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

commit 11a410b65827a3958fb5f417c29e95c1953a0b42
Author: Pieter Hintjens <ph@imatix.com>
Date:   Wed Aug 4 14:38:56 2010 +0200

    Renamed ZMQ_UPSTREAM to ZMQ_PULL, and ZMQ_DOWNSTREAM to ZMQ_PUSH.  Left the old
    definitions as aliases, to be removed in release 3.0.  Also renamed the source
    files implementing these two socket types.  This change does not break existing
    applications nor bindings, but allows us to fix the documentation and user guide
    now, rather than keeping the old (confusing) names.

 include/zmq.h                    | 61 +++++++++++++++++++++-------------------
 src/Makefile.am                  |  8 +++---
 src/app_thread.cpp               | 12 ++++----
 src/{upstream.cpp => pull.cpp}   | 28 +++++++++---------
 src/{upstream.hpp => pull.hpp}   | 14 ++++-----
 src/{downstream.cpp => push.cpp} | 28 +++++++++---------
 src/{downstream.hpp => push.hpp} | 14 ++++-----
 7 files changed, 84 insertions(+), 81 deletions(-)

commit 544b36da68729daffefa8f40d2efed5945851a01
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jul 30 16:49:06 2010 +0200

    XREQ: Correct behaviour on hitting ZMQ_HWM

    This reverts part of commit 84e0c7991a9b316ed571533abc628cc1175750a3 to get
    correct ZMQ_HWM semantics with XREQ sockets:

    When sending a message to an XREQ socket, the underlying pipe is selected in
    a round-robin fashion. If an underlying pipe is full it is skipped. If there
    are no underlying pipes, or all underlying pipes are full then zmq_send()
    shall block or return EAGAIN, depending on whether or not the call is blocking.
    Messages are never dropped.

 src/xreq.cpp | 27 +++------------------------
 src/xreq.hpp |  3 ---
 2 files changed, 3 insertions(+), 27 deletions(-)

commit 66470b2c55d74fb137211f4264bbfc5e3f454534
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jul 26 12:24:00 2010 +0200

    perf: fix typo

 perf/local_thr.cpp  | 2 +-
 perf/remote_thr.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 10533a560b4af1d3ddp63c87c737e25bbdb78998
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 14 18:31:17 2010 +0200

    pipe: check_read() should check for message delimiter

 src/pipe.cpp  | 27 ++++++++++++++++++++++-----
 src/pipe.hpp  |  3 +++
 src/ypipe.hpp | 11 +++++++++++
 3 files changed, 36 insertions(+), 5 deletions(-)

commit e1c596b37eef2c2c72c605d7bf4a5c97050add6b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jul 24 16:57:13 2010 +0200

    Make sure lwm > 0 when hwm > 0

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5b1a6a4bea1cebe860769f82702410f6c1d0ab1b
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Jul 21 17:33:40 2010 +0200

    Issue 42 - getaddrinfo() fails

 src/ip.cpp | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit dpdf3f808befd8cf32a16e34b907c60c79eabfd7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jul 19 08:38:24 2010 +0200

    EHOSTUNREACH is a valid return value from recv()

 src/tcp_socket.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 269904361b565efa54a106e3eda96091320439bd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 13 11:46:56 2010 +0200

    minor comment clarification

 src/tcp_connecter.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit da49e5a4dd4602bf893193a5e6e64af54695b51c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jul 13 07:57:29 2010 +0200

    devices exit in case of context termination

 src/forwarder.cpp | 15 +++++++++++++--
 src/queue.cpp     | 42 +++++++++++++++++++++++++++++++++++-------
 src/streamer.cpp  | 15 +++++++++++++--
 3 files changed, 61 insertions(+), 11 deletions(-)

commit ca057c7db8dcb2384e2498c938f3d83f64b78a7d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jul 10 22:57:47 2010 +0200

    Fix identity generation for transient inproc connections

 src/socket_base.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1f61c87ac527e2a75cabbce4ea4c5f916f4532e7
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Jul 7 17:15:32 2010 +0200

    issue 40 - nbytes != -1 (tcp_socket.cpp:216)

 src/tcp_socket.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit fd707fedc59124ed627780efed081acf33f455d2
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Jul 6 22:47:07 2010 +0200

    issue 38 - Assertion failed: fetched (xrep.cpp:196)

 src/xrep.cpp | 20 ++++++++++++--------
 src/xrep.hpp |  6 ++++++
 2 files changed, 18 insertions(+), 8 deletions(-)

commit 805af8241d7450fe1e60174739a78325677897f6
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Jun 30 16:23:07 2010 +0200

    asciidoc.conf was missing from distribution tarball

 doc/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0ab65324195ad70205514d465b03d851a6de051c
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 29 21:08:41 2010 +0200

    Prevent socket reuse by second bind, on win32

 src/tcp_listener.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 79a3d07c8587e840548791efc314b0184c584881
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jun 29 07:45:11 2010 +0200

    MSVC build fixed

 src/msg_store.cpp | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit ba91644fdb48cec97edc6965c4ca7ab564a3513f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jun 26 20:11:40 2010 +0200

    msg_store added to MSVC build

 builds/msvc/libzmq/libzmq.vcproj | 8 ++++++++
 src/msg_store.cpp                | 2 ++
 2 files changed, 10 insertions(+)

commit 1dda8a2aaabd3b7705b0ecd67d6d9737d1978946
Author: Pieter Hintjens <ph@imatix.com>
Date:   Fri Jun 25 18:35:42 2010 +0200

    Used more expressive variable names

 src/msg_store.cpp | 73 ++++++++++++++++++++++++-------------------------------
 1 file changed, 32 insertions(+), 41 deletions(-)

commit fca2e8e8cc30bcd134839f6d0f5f9963323dad2b
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Jun 21 15:06:51 2010 +0200

    Add SWAP support

 src/Makefile.am     |   2 +
 src/msg_store.cpp   | 313 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/msg_store.hpp   | 114 +++++++++++++++++++
 src/pipe.cpp        | 114 +++++++++++++++----
 src/pipe.hpp        |  29 +++--
 src/session.cpp     |   4 +-
 src/socket_base.cpp |   8 +-
 7 files changed, 545 insertions(+), 39 deletions(-)

commit 10c28c1fc2f06c93e12a7c60f79a315cec7c5a52
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 19 20:46:16 2010 +0200

    Revive reader on pipe termination

 src/pipe.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2c3913bb19fa95e7decaa7967e2469dc428e46b0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Sat Jun 19 19:46:35 2010 +0200

    fix double free error in PAIR socket

 src/pair.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit cff7ba2315c0f62fa3679afa24ecea88da38a365
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 17 17:09:51 2010 +0200

    Windows build fixed

 builds/msvc/c_local_lat/c_local_lat.vcproj   | 4 ----
 builds/msvc/c_local_thr/c_local_thr.vcproj   | 4 ----
 builds/msvc/c_remote_lat/c_remote_lat.vcproj | 4 ----
 builds/msvc/c_remote_thr/c_remote_thr.vcproj | 4 ----
 include/zmq_utils.h                          | 8 ++++++++
 src/zmq.cpp                                  | 1 +
 6 files changed, 9 insertions(+), 16 deletions(-)

commit 7f01e9970d211235fc8057de6dc41ba8ceafe795
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 17 16:51:53 2010 +0200

    stopwatch returned to libzmq

 include/zmq.h                         |  2 +
 perf/helpers.h => include/zmq_utils.h | 25 ++++++----
 perf/Makefile.am                      |  9 ++--
 perf/helpers.cpp                      | 86 -----------------------------------
 perf/local_lat.cpp                    |  4 +-
 perf/local_thr.cpp                    |  6 +--
 perf/remote_lat.cpp                   |  6 +--
 perf/remote_thr.cpp                   |  4 +-
 src/Makefile.am                       |  2 +-
 src/zmq.cpp                           | 63 +++++++++++++++++++++++++
 10 files changed, 97 insertions(+), 110 deletions(-)

commit 4777fe4010572d381a2ad8eb63df2fc5fb7e6642
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Thu Jun 17 12:45:14 2010 +0200

    pipe: fix bug in rollback() method

    The msgs_written variable keeps track how many complete
    messages have been written so far. The rollback operation drops all
    fragments of the last incomplete message so it shouldn't
    change this variable at all.

 src/pipe.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 9151de38959a21829d4ab60324d6750d2e1a4357
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 17 11:01:18 2010 +0200

    generate identity for transient inproc connections

 src/socket_base.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 341e8a267309179bbb8249845e7efb14faf93d4d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jun 15 14:01:44 2010 +0200

    test commit

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 9858447fad3260cb16b1f2e56a14cfe3db737a36
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jun 15 08:01:43 2010 +0200

    getsockopt documentation fixed

 doc/zmq_getsockopt.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit ac90b7e0ba497bfec09d7a69a2e01dc6d94a9c9a
Author: Brian Buchanan <bwb@holo.org>
Date:   Fri Jun 11 08:03:34 2010 +0200

    issue 35 - ZMQ_RCVMORE sometimes erroneously returns false

 AUTHORS             | 1 +
 src/socket_base.cpp | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 5ee355d1880bc7391c199ea29adc620ceb0d96f1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jun 11 07:02:36 2010 +0200

    if connect asserts, exact error is reported

 src/tcp_connecter.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 27877d73ea7dd972a773c7e960706130daaf5925
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jun 11 06:55:30 2010 +0200

    EHOSTUNREACH is acceptable outcome from connect

 src/tcp_connecter.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit c818b14bbd261aa836400e9dfb4848117dd2edb6
Author: Piotr Trojanek <piotr.trojanek@gmail.com>
Date:   Thu Jun 10 12:57:42 2010 +0200

    clearing thread info structure

 src/ctx.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 74a3907be285891d90b82e2d315d03141a398752
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 10 12:36:27 2010 +0200

    couple of ICC warnings fixed

 src/encoder.hpp | 2 +-
 src/uuid.cpp    | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 8782b4d696da7b1527f69e819d75d691bc3df105
Author: Piotr Trojanek <piotr.trojanek@gmail.com>
Date:   Thu Jun 10 07:34:11 2010 +0200

    -lcrypto added to linking flags for QNX

 configure.in | 1 +
 1 file changed, 1 insertion(+)

commit 76e0153d4f3ef1d5fef1a9b926e0e8e3ab2d9685
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 10 07:21:05 2010 +0200

    issue 33 - missing virtual destructors

 src/decoder.hpp     | 4 +++-
 src/encoder.hpp     | 2 ++
 src/yarray_item.hpp | 4 +++-
 src/ypipe.hpp       | 6 ++++++
 4 files changed, 14 insertions(+), 2 deletions(-)

commit d329c55da9c503e82831e940b0fc8dc9e5479975
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jun 10 07:12:00 2010 +0200

    issue 31 - Assertion failed: err == ECONNREFUSED || err == ETIMEDOUT (tcp_connecter.cpp:296)

 src/tcp_connecter.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 604f7475ec1d19df416156879db3ddd3c90d5a13
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jun 9 17:49:08 2010 +0200

    issue 32 - poll_t poller broken

 src/poll.cpp | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

commit 7a29e8594fb539e37b9d08982b1f491b0794b7d2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jun 9 17:07:45 2010 +0200

    Piotr Trojanek added to AUTHORS file

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 751b60a18d028d9859394c7abe960cb1c42e605e
Author: Piotr Trojanek <piotr.trojanek@gmail.com>
Date:   Wed Jun 9 17:06:32 2010 +0200

    extra ';' inside a struct or union -- clang warnings fixed

 foreign/xmlParser/xmlParser.hpp | 2 +-
 src/i_poll_events.hpp           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 240fc33f65c6cd9f1ed0a511daf4ad00ff37f163
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 7 20:23:48 2010 +0200

    minor comment clarification

 src/tcp_connecter.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 784e73a7c84f2c0a454f4a9ef69586755482a9d5
Merge: ce53d02e 8f51a109
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 7 09:03:56 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit ce53d02e0580755055245cc1050f1dd3a26a3f22
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jun 7 09:03:40 2010 +0200

    C++ docs for zmq::poll function improved

 doc/zmq_cpp.txt | 4 ++++
 1 file changed, 4 insertions(+)

commit 8f51a10918d54e24818b863a9e3d530a00de21b5
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 19:30:47 2010 +0200

    Update ChangeLog for v2.0.7

 ChangeLog | 848 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 848 insertions(+)

commit 5c97ff9a2eb3e55007fd90b5c3a1c433de7bc60c
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 19:27:55 2010 +0200

    More NEWS for 2.0.7

 NEWS | 9 +++++++++
 1 file changed, 9 insertions(+)

commit e8a9614adpb45fc619eed2983f93edb744b4cef4
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 19:20:37 2010 +0200

    Update NEWS for 2.0.7 release

 NEWS | 58 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 41 insertions(+), 17 deletions(-)

commit 9b8f902d72438752b00d4c1bb3887c40423777e0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jun 4 18:49:55 2010 +0200

    initial version of 2.0.7 NEWS

 NEWS | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

commit baf659fde5136c20f879ef713ec3effc34854ba6
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 17:12:51 2010 +0200

    Move news from ChangeLog into NEWS

 ChangeLog | 397 +------------------------------------------------------------
 NEWS      | 398 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 400 insertions(+), 395 deletions(-)

commit 94dfe1368ac1cd4a456c86b8fc800d7c3911cfd3
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 17:02:16 2010 +0200

    Fix MINGW build

    Mingw seems to define NOMINMAX, so don't redefine it if already defined

 src/windows.hpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit cf048bb1f8a665370d9e39dpe2a7363327911b08
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jun 4 16:29:36 2010 +0200

    platform.hpp for MSVC contains only very basic stuff

 builds/msvc/platform.hpp | 29 -----------------------------
 perf/helpers.cpp         |  4 +++-
 src/encoder.hpp          |  5 +++++
 src/prefix_tree.cpp      |  5 +++++
 src/uuid.cpp             |  1 -
 src/uuid.hpp             |  1 +
 src/windows.hpp          |  4 ++++
 src/zmq_engine.cpp       |  6 +++++-
 8 files changed, 23 insertions(+), 32 deletions(-)

commit 927993863eda325c66fc678810eeadd0c744cdf2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jun 4 15:47:22 2010 +0200

    MSVC build fixed

 builds/msvc/c_local_lat/c_local_lat.vcproj   | 4 ++++
 builds/msvc/c_local_thr/c_local_thr.vcproj   | 4 ++++
 builds/msvc/c_remote_lat/c_remote_lat.vcproj | 4 ++++
 builds/msvc/c_remote_thr/c_remote_thr.vcproj | 4 ++++
 foreign/xmlParser/xmlParser.cpp              | 2 +-
 perf/helpers.cpp                             | 4 +---
 6 files changed, 18 insertions(+), 4 deletions(-)

commit 621d7415b3cdee1f79787e2961f113b00d237615
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 15:35:14 2010 +0200

    Fix Solaris/NetBSD breakage in atomic_ptr.hpp

 src/atomic_ptr.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 67ca7dcbe6b072b74a112ce4df4529cda82c0f13
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jun 4 15:24:06 2010 +0200

    obsolete API elements removed - this commit breaks backward compatibility

 devices/zmq_forwarder/zmq_forwarder.cpp |  2 +-
 devices/zmq_queue/zmq_queue.cpp         |  2 +-
 devices/zmq_streamer/zmq_streamer.cpp   |  2 +-
 include/zmq.h                           | 11 +----------
 include/zmq.hpp                         |  4 ++--
 perf/local_lat.cpp                      |  2 +-
 perf/local_thr.cpp                      |  2 +-
 perf/remote_lat.cpp                     |  2 +-
 perf/remote_thr.cpp                     |  2 +-
 src/zmq.cpp                             |  4 +---
 10 files changed, 11 insertions(+), 22 deletions(-)

commit d844a90690af357988b1c5ba027c740d4182d753
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 15:00:31 2010 +0200

    zmqd: Removing for now, not ready for 2.0.7

 Makefile.am      |   4 +-
 configure.in     |   2 +-
 zmqd/Makefile.am |   8 --
 zmqd/zmqd.cpp    | 364 -------------------------------------------------------
 4 files changed, 3 insertions(+), 375 deletions(-)

commit 606c77368cccd2a277437b5de8764772295fdf89
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 14:48:49 2010 +0200

    Move perf helper functions to perf/helpers.cpp

 include/zmq.h       | 17 -----------
 perf/Makefile.am    |  9 +++---
 perf/helpers.cpp    | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 perf/helpers.h      | 40 +++++++++++++++++++++++++
 perf/local_lat.cpp  |  3 +-
 perf/local_thr.cpp  |  5 ++--
 perf/remote_lat.cpp |  5 ++--
 perf/remote_thr.cpp |  3 +-
 src/zmq.cpp         | 58 ------------------------------------
 9 files changed, 141 insertions(+), 85 deletions(-)

commit 05b4a7dp787760d5c24e048612b786fa0283854a
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 13:58:49 2010 +0200

    Remove PGM examples from build

 configure.in     |   9 -----
 perf/Makefile.am | 112 +------------------------------------------------------
 2 files changed, 1 insertion(+), 120 deletions(-)

commit 4d65d7a5a98cbb95430a5b02706ab87d3fa0f56c
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Jun 4 13:53:40 2010 +0200

    Documentation: zmq_tcp(7) update for 2.0.7

    Document MORE bit in flags field

 doc/zmq_tcp.txt | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 7fc15c21a17cfa58e60e4a513360cb12b542a570
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Jun 3 14:36:44 2010 +0200

    Documentation: zmq_cpp(7) update for 2.0.7

 doc/zmq_cpp.txt | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit 10f4bf3f35ab3da05fe5ca8a28cd131e3781249f
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Jun 3 14:15:05 2010 +0200

    Documentation: Cosmetic changes

 doc/zmq_getsockopt.txt | 10 ++++++++++
 doc/zmq_setsockopt.txt | 11 +++++++++++
 2 files changed, 21 insertions(+)

commit 8076fd1a3abece7dc91c2b2309dd0ecba57e882f
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Jun 3 14:08:36 2010 +0200

    Documentation: zmq_errno(3)

 doc/Makefile.am   |  2 +-
 doc/zmq.txt       |  9 ++++++---
 doc/zmq_errno.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 57 insertions(+), 4 deletions(-)

commit 7c9b09bc511236c8cc5f6cea7623a8b98fedf302
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Jun 2 18:36:34 2010 +0200

    Documentation: Flow control, zmq_socket(3)

    Mostly Flow control and additions to zmq_socket(3)
    Removed/changed lots of text regarding message queues
    More fixes for 2.0.7 changes

 doc/zmq.txt            |  18 ++----
 doc/zmq_getsockopt.txt |  23 ++++---
 doc/zmq_poll.txt       |  28 ++++----
 doc/zmq_recv.txt       |  22 +++----
 doc/zmq_send.txt       |   9 ++-
 doc/zmq_setsockopt.txt |  25 +++----
 doc/zmq_socket.txt     | 172 +++++++++++++++++++++++++++++++++++++++++--------
 7 files changed, 205 insertions(+), 92 deletions(-)

commit 9d00d300b0d6b45d2954792540cc95a0c3fb6a01
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Jun 1 22:22:50 2010 +0200

    Documentation: zmq_init() API changes for 2.0.7

 doc/zmq_init.txt | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

commit 8ba1d3c8ed32b39bb1133330d496587d96020e7e
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Jun 1 22:22:29 2010 +0200

    Documentation: zmq_term() and ETERM for 2.0.7

 doc/zmq_bind.txt       |  2 +-
 doc/zmq_connect.txt    |  2 +-
 doc/zmq_getsockopt.txt |  1 -
 doc/zmq_poll.txt       |  6 ++----
 doc/zmq_setsockopt.txt |  1 -
 doc/zmq_term.txt       | 20 +++++++++++++++++---
 6 files changed, 21 insertions(+), 11 deletions(-)

commit 74a03dfd7dbb762be5d50eca4df214f8825ad44a
Merge: 99e6179e 8a771350
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Jun 1 21:49:50 2010 +0200

    Merge branch 'master' of github.com:sustrik/zeromq2

commit 8a771350795dc4f9adp6a89534f1391d7b63b10c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jun 1 10:42:55 2010 +0200

    Pieter Hintjens added to 'authors' section

 AUTHORS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0b0716661e99a2b55151650ec94cd5fd268d0334
Author: Pieter Hintjens <ph@imatix.com>
Date:   Tue Jun 1 10:40:12 2010 +0200

    multiple vulnerabilities in xml pdprser fixed

 foreign/xmlParser/xmlParser.cpp | 37 +++++++++++++++++++++++++++++++------
 1 file changed, 31 insertions(+), 6 deletions(-)

commit 99e6179edd9e3552fcdb7f4fce3306cd174f3359
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 17:24:50 2010 +0200

    Documentation updates

    The option_value parameter for zmq_getsockopt is in and out.

 doc/zmq_getsockopt.txt | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit b4f3e0acd72de97bc5ef46ea74d9cd7ed7f9efc2
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 17:21:51 2010 +0200

    Documentation updates

    Clarify multi-part messages

 doc/zmq_recv.txt | 16 ++++++++--------
 doc/zmq_send.txt | 13 ++++++-------
 2 files changed, 14 insertions(+), 15 deletions(-)

commit 7bbe754cb4987669d4273ec37f5f50d29b9931df
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 17:21:12 2010 +0200

    Documentation updates

    Clarify pipeline and exclusive pair patterns

 doc/zmq_socket.txt | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

commit 8a4df431de872623c761fdeb291748d3d153b8d1
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 14:18:51 2010 +0200

    Documentation updates

    Add getsockopt to Makefile.am

 doc/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dfbaf4f9668f0493649d6ba1328cced64e5340b0
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 14:18:37 2010 +0200

    Documentation updates

    Multi-part messages

 doc/zmq_recv.txt | 5 +++--
 doc/zmq_send.txt | 7 ++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

commit 0fa73b039462c1754d407de85306904e9b0c73be
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 14:13:41 2010 +0200

    Documentation updates

    Add getsockopt to index

 doc/zmq.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit eb9ff1e77977c6199c0a0439f4dd35fa39f3bd3c
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 14:12:27 2010 +0200

    Documentation updates

    Multi-part messages

 doc/zmq_getsockopt.txt | 17 +++++++++++++++++
 doc/zmq_recv.txt       | 37 ++++++++++++++++++++++++++++++++++++-
 doc/zmq_send.txt       | 33 ++++++++++++++++++++++++++++++++-
 3 files changed, 85 insertions(+), 2 deletions(-)

commit 8becacf82c950af951f477e3dc3f7ac79e110fc1
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 31 12:53:40 2010 +0200

    Documentation updates

    Add zmq_getsockopt(3), clean up zmq_setsockopt(3).

 doc/zmq_getsockopt.txt | 209 +++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_setsockopt.txt |  62 ++++++++-------
 2 files changed, 241 insertions(+), 30 deletions(-)

commit be6019abd1ac6fe11c9c51dbadf9c72b37349c2a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 31 09:28:36 2010 +0200

    issue 28. - SNDMORE/ RCVMORE is dropping every other message

 src/req.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 2e9be56a4059cf230f6aa92eb1c71db5f1200b8e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 31 06:17:58 2010 +0200

    memory leak in REQ socket fixed

 src/req.cpp | 34 ++++------------------------------
 1 file changed, 4 insertions(+), 30 deletions(-)

commit 3bb60da0d085b1089ddec4617fcd40f2cda88567
Merge: 04fcd4d5 da37c45b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 31 06:11:42 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 04fcd4d55b3b01e75d1d0d547987841811a2d610
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 31 06:11:20 2010 +0200

    memory leak in REP socket fixed

 src/rep.cpp | 34 ++++------------------------------
 1 file changed, 4 insertions(+), 30 deletions(-)

commit da37c45b0c7200eea96118952e671972b71df4ce
Author: Martin Lucina <martin@lucina.net>
Date:   Fri May 28 01:38:43 2010 +0200

    Clarify zmq_bind/zmq_connect

    Use the term 'endpoint' correctly, and drop the nonsense about local/remote addresses which doesn't clearly explain what is going on

 doc/zmq_bind.txt    | 28 +++++++++++++++-------------
 doc/zmq_connect.txt | 26 ++++++++++++++------------
 2 files changed, 29 insertions(+), 25 deletions(-)

commit 74f1a4a579d3b09b3420092d9f076827be31c4e7
Author: Martin Lucina <martin@lucina.net>
Date:   Fri May 28 00:55:04 2010 +0200

    RPM packaging cleanups

    - ditch -utils package
    - add descriptions from Debian packaging

 builds/redhat/zeromq.spec | 41 +++++++++++++++++------------------------
 1 file changed, 17 insertions(+), 24 deletions(-)

commit b4cc7b97ecaf743f3259f9df7d687558892b8a72
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Apr 16 10:26:22 2010 +0100

    dist-hook for copying zeromq.spec to top-level

 Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 8bd3f743f50a61355b6cf18046d59c7d0289836b
Author: Mikko Koppanen <mikko.koppanen@gmail.com>
Date:   Fri Apr 16 00:01:13 2010 +0100

    Import redhat packaging

 builds/redhat/zeromq.spec | 137 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 137 insertions(+)

commit 5219e4ce8f9aa082c5f91e248a9f66639c69727d
Author: Martin Lucina <martin@lucina.net>
Date:   Fri May 28 00:49:13 2010 +0200

    Clarify socket types in documentation, reinstate ZMQ_PAIR

 doc/zmq.txt            |  4 +-
 doc/zmq_setsockopt.txt | 14 +++----
 doc/zmq_socket.txt     | 99 ++++++++++++++++++++++++++++++--------------------
 3 files changed, 69 insertions(+), 48 deletions(-)

commit 8408dp066dce123fc93e4f53dbadb1f60b7f2e8a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 25 15:03:57 2010 +0200

    LWM is computed rather than explicitly specified by user

 doc/zmq_setsockopt.txt | 15 ---------------
 include/zmq.h          |  1 +
 src/config.hpp         |  5 ++++-
 src/options.cpp        | 18 ------------------
 src/options.hpp        |  1 -
 src/pipe.cpp           | 35 ++++++++++++++++++++++++++++++++---
 src/pipe.hpp           |  4 +++-
 src/session.cpp        |  6 ++----
 src/socket_base.cpp    | 12 ++++--------
 9 files changed, 46 insertions(+), 51 deletions(-)

commit f34a468a263c7b4013a267297ee7f121e12dfb9d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 25 10:57:54 2010 +0200

    coding style fixed in zmqd

 zmqd/zmqd.cpp | 428 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 212 insertions(+), 216 deletions(-)

commit 7773fdddfb357145cb15faaa5228fb3b2d0f6f78
Merge: 091e92a1 89783c37
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu May 20 18:02:34 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 091e92a11dec353e674cbacbf2455a48bdb4e01d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu May 20 18:01:58 2010 +0200

    Pieter Hintjens added to AUTHORS file

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 89783c37d2b8a7b5519eab7922b460449aa0bf3f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 19 06:31:57 2010 +0200

    incomplete messages can be stored in ypipe

 src/pipe.cpp  | 10 ++++------
 src/ypipe.hpp | 46 ++++++++++++++++++++++++++++------------------
 2 files changed, 32 insertions(+), 24 deletions(-)

commit f40ce4e500d32b4240395e09e0ce3359734f0189
Author: Jon Dyte <jon@totient.co.uk>
Date:   Sat May 15 12:37:45 2010 +0200

    single 0MQ ddpmon (zmqd) - initial version

 Makefile.am      |   4 +-
 configure.in     |   2 +-
 zmqd/Makefile.am |   8 ++
 zmqd/zmqd.cpp    | 368 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 379 insertions(+), 3 deletions(-)

commit 6705a3d5807542ee2ed8a1ef6e3d9f769e5d5a93
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Thu May 13 12:43:58 2010 +0200

    some more sanity checks in pgm_socket

 src/pgm_socket.cpp | 1 +
 1 file changed, 1 insertion(+)

commit ff9d3985556aa58a5d120a3eb72867c7ebea924d
Merge: 56262d7b f6c1c972
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu May 13 12:41:39 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 56262d7ba79a9ba19fc1b89fdc07bca3894062f2
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Thu May 13 12:41:20 2010 +0200

    some more sanity checks in pgm_socket

 src/pgm_socket.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit f6c1c972428f15356af09d6922910ef44d1f6cb3
Merge: 52ef3f3f 127cb89a
Author: Martin Lucina <martin@lucina.net>
Date:   Wed May 12 16:49:49 2010 +0200

    Merge branch 'master' of github.com:sustrik/zeromq2

commit 52ef3f3f2c6f3ba1717b2e729556df713c022636
Author: Martin Lucina <martin@lucina.net>
Date:   Wed May 12 16:46:59 2010 +0200

    Revert commit 7cb076e, atomic ops cleanup

    Reverted to using atomic.h on NetBSD
    Removed GNU builtins (see http://lists.zeromq.org/pipermail/zeromq-dev/2010-May/003485.html)
    Removed SPARC native atomic ops as they are untested and have been commented out for years
    Add "memory" to asm clobber for X86 atomic_counter::sub()

 src/atomic_counter.hpp | 65 ++++++++------------------------------------------
 src/atomic_ptr.hpp     | 58 +++++++-------------------------------------
 2 files changed, 19 insertions(+), 104 deletions(-)

commit 127cb89ac1271bf85798294d450509b7c23019bd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 12 16:46:07 2010 +0200

    MAINTAINERS file added

 MAINTAINERS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

commit 8e5ac100c95e02ef60aa827b4199002f324617ed
Merge: 714a8d50 9fbb9141
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 12 12:45:38 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 714a8d50a03e773320a02247847c58020c96e867
Author: Brett Cameron <Brett.Cameron@hp.com>
Date:   Wed May 12 12:45:12 2010 +0200

    fixes for OpenVMS

 src/signaler.cpp      |  1 +
 src/tcp_connecter.cpp | 19 ++++++++++++++++---
 src/tcp_listener.cpp  | 31 +++++++++++++++++++++++++++----
 src/uuid.cpp          | 29 +++++++++++++++++++++++++++++
 src/uuid.hpp          | 11 ++++++++++-
 5 files changed, 83 insertions(+), 8 deletions(-)

commit 9fbb9141a8895ac83e8051ac568223a9e57a278d
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 10 16:39:09 2010 +0200

    Update historic include paths

 devices/zmq_forwarder/Makefile.am | 2 +-
 devices/zmq_queue/Makefile.am     | 2 +-
 devices/zmq_streamer/Makefile.am  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 9d16a415cbfd33f89d2f5afd96ed7cd34a21a634
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 10 16:32:10 2010 +0200

    OpenPGM build flags cleanup

    Removed various exotic -Wxxx flags in the OpenPGM build to get us to what is actually
    required and reasonable; added in -fno-strict-aliasing since OpenPGM generates lots
    of warnings about dereferencing typed-punned pointers; removed the OpenPGM extra flags
    from libzmq_la_CXXFLAGS and left them only in libzmq_la_CFLAGS so that our code
    is not built with the OpenPGM extra flags.

 src/Makefile.am | 23 ++---------------------
 1 file changed, 2 insertions(+), 21 deletions(-)

commit 2cf9f04a460473ea10e901e68e66596583d0d286
Author: Martin Lucina <martin@lucina.net>
Date:   Mon May 10 16:24:53 2010 +0200

    Update OpenPGM to version 2.1.26

 configure.in                         |   2 +-
 foreign/openpgm/libpgm-2.0.24.tar.gz | Bin 407110 -> 0 bytes
 foreign/openpgm/libpgm-2.1.26.tar.gz | Bin 0 -> 413863 bytes
 src/Makefile.am                      |   2 ++
 4 files changed, 3 insertions(+), 1 deletion(-)

commit a25414e55caa975185ac6534c40bb601e5c38a9a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun May 9 16:59:15 2010 +0200

    Fix in zmq_poll (Windows version)

 src/zmq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4d33c43913dd640853cec75ce21080c2b33d8526
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri May 7 21:53:55 2010 +0200

    caution about zmq_msg_init_* functions added to the docs

 doc/zmq_msg_init.txt      | 4 ++++
 doc/zmq_msg_init_data.txt | 4 ++++
 doc/zmq_msg_init_size.txt | 4 ++++
 3 files changed, 12 insertions(+)

commit 4a3b857c4cf35261751d562ad7e4acc5ecf58be0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri May 7 11:08:50 2010 +0200

    commands not processed immediatelly in some scenarios; fixed

 src/app_thread.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 36b044a0d5a9918841839edf12767b31bfec36a0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri May 7 09:21:15 2010 +0200

    ZMQ_PAIR socket removed from the documentation as it is unfinished yet

 doc/zmq_socket.txt | 13 -------------
 1 file changed, 13 deletions(-)

commit f60d891b2309cdc6f2cc1507a238cec85e4aa9e7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu May 6 10:33:01 2010 +0200

    Issue 23. zmq_init() crashes on illegal numbers

 src/zmq.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 64c58662b7f491f2a3c8cb684f27ea1d5c549552
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 5 14:33:02 2010 +0200

    MSVC build fixed

 builds/msvc/libzmq/libzmq.vcproj | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 835e893e54598ff474067cc68b787440baf6b05c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 5 14:24:54 2010 +0200

    dispatcher_t class renamed to ctx_t

 src/Makefile.am                 |  4 ++--
 src/app_thread.cpp              | 10 +++++-----
 src/app_thread.hpp              |  2 +-
 src/{dispatcher.cpp => ctx.cpp} | 30 +++++++++++++++---------------
 src/{dispatcher.hpp => ctx.hpp} | 23 +++++++++++++----------
 src/io_thread.cpp               |  6 +++---
 src/io_thread.hpp               |  2 +-
 src/object.cpp                  | 28 ++++++++++++++--------------
 src/object.hpp                  | 10 +++++-----
 src/socket_base.cpp             | 11 ++++++-----
 src/zmq.cpp                     | 17 ++++++++---------
 src/zmq_encoder.cpp             |  2 +-
 12 files changed, 74 insertions(+), 71 deletions(-)

commit 10f5334f2891b187ce57f38186cf977406097ab0
Merge: 44dd005f 3f5465ad
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 5 13:03:56 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 44dd005ff05431b05a8e04858a23784b252da870
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed May 5 13:03:26 2010 +0200

    number of application threads to use 0MQ sockets is unlimited; app_threads parameter in zmq_init is unused and obsolete

 src/config.hpp     |  4 ++++
 src/dispatcher.cpp | 53 ++++++++++++++++++++++++++++++-----------------------
 src/dispatcher.hpp | 15 +++------------
 src/zmq.cpp        |  6 ++++--
 4 files changed, 41 insertions(+), 37 deletions(-)

commit 3f5465ada1b465ac0e360d0416b8f42b0fddfab0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 4 10:37:10 2010 +0200

    Windows port fixed

 src/signaler.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 235ed3a3dcffb7c658cbc9253edp9de54db24533
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue May 4 10:22:16 2010 +0200

    signaler transports commands per se rather than one-bit signals

 src/app_thread.cpp |  20 ++---
 src/config.hpp     |   5 --
 src/dispatcher.cpp |  71 +++++++----------
 src/dispatcher.hpp |  30 ++-----
 src/io_thread.cpp  |  19 +++--
 src/object.cpp     |   6 +-
 src/pipe.hpp       |   2 +-
 src/signaler.cpp   | 226 ++++++++++++++++++++---------------------------------
 src/signaler.hpp   |  45 +++--------
 src/ypipe.hpp      |  81 +++++--------------
 10 files changed, 175 insertions(+), 330 deletions(-)

commit 8b9bd05726c3df56d7f437889abccba3cbbffdee
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon May 3 16:21:36 2010 +0200

    thread ID and dispatcher made private in object_t

 src/app_thread.cpp | 6 +++---
 src/io_thread.cpp  | 2 +-
 src/object.hpp     | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

commit 84e0c7991a9b316ed571533abc628cc1175750a3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun May 2 20:59:07 2010 +0200

    queue device fixed

 src/queue.cpp | 86 +++++++++++++++++++++++++++++------------------------------
 src/xreq.cpp  | 27 ++++++++++++++++---
 src/xreq.hpp  |  3 +++
 3 files changed, 70 insertions(+), 46 deletions(-)

commit 4a6bac1dedpdb3c111c7e28b2933ed98367cb193
Merge: acfd0f8c beb4da3c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 30 04:54:10 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit acfd0f8ca2d15111f35dp0034ed3ce130c96b910
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 30 04:53:41 2010 +0200

    prefix in XREP recv'd message misses MORE flag

 src/xrep.cpp | 1 +
 1 file changed, 1 insertion(+)

commit beb4da3c28cff501a33de34cec95ca110cd3084e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 29 20:53:46 2010 +0200

    windows port fixed

 builds/msvc/libzmq/libzmq.vcproj | 34 +++++-----------------------------
 src/signaler.cpp                 |  4 +---
 2 files changed, 6 insertions(+), 32 deletions(-)

commit dp93ed318a450d6d763a5f629d478467f7362b07
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 29 20:34:48 2010 +0200

    signaler rewritten in such a way that any number (>64) of threads can be used

 src/app_thread.cpp |  25 +++----
 src/app_thread.hpp |   2 +-
 src/config.hpp     |   4 ++
 src/dispatcher.cpp |  16 ++---
 src/dispatcher.hpp |  10 +--
 src/io_thread.cpp  |  26 +++----
 src/io_thread.hpp  |   2 +-
 src/object.cpp     |  13 ++--
 src/object.hpp     |   9 +--
 src/signaler.cpp   | 202 +++++++++++++++++++++++++++++++----------------------
 src/signaler.hpp   |  24 +++++--
 src/zmq.cpp        |   2 +-
 12 files changed, 189 insertions(+), 146 deletions(-)

commit 1ffc6dd41f2e2ce45c67f3fe08780c5a09cf667d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 29 18:03:54 2010 +0200

    eventfd-style signaling removed

 configure.in     | 26 -------------------
 src/signaler.cpp | 78 +-------------------------------------------------------
 src/signaler.hpp |  6 -----
 3 files changed, 1 insertion(+), 109 deletions(-)

commit 37128b7b1dped9ad2bf6816560b85b5f94dd5bec
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 29 17:31:57 2010 +0200

    fd_signaler_t renamed to signaler_t

 src/Makefile.am                       |  4 +--
 src/app_thread.cpp                    |  3 +-
 src/app_thread.hpp                    |  6 ++--
 src/dispatcher.hpp                    |  4 +--
 src/io_thread.cpp                     |  2 +-
 src/io_thread.hpp                     |  6 ++--
 src/{fd_signaler.cpp => signaler.cpp} | 52 +++++++++++++++++------------------
 src/{fd_signaler.hpp => signaler.hpp} | 14 +++++-----
 8 files changed, 45 insertions(+), 46 deletions(-)

commit c193fd146661b39027c5e3fa0776dcdf8c6af5e2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 29 17:20:23 2010 +0200

    lock-free polling removed; ZMQ_POLL flag removed

 doc/zmq_init.txt         |   8 +-
 include/zmq.h            |   1 +
 src/Makefile.am          |   5 -
 src/app_thread.cpp       |  22 +---
 src/app_thread.hpp       |   8 +-
 src/atomic_bitmap.hpp    | 310 -----------------------------------------------
 src/dispatcher.cpp       |   7 +-
 src/dispatcher.hpp       |   6 +-
 src/fd_signaler.hpp      |   3 +-
 src/i_signaler.hpp       |  55 ---------
 src/io_thread.cpp        |   6 +-
 src/io_thread.hpp        |   5 +-
 src/object.cpp           |   1 -
 src/queue.cpp            |   5 +-
 src/simple_semaphore.hpp | 242 ------------------------------------
 src/ypollset.cpp         |  65 ----------
 src/ypollset.hpp         |  69 -----------
 src/zmq.cpp              |  11 +-
 18 files changed, 28 insertions(+), 801 deletions(-)

commit 7cb076e56a18cb76c49f17bd34bc73c11e01b705
Author: Steven McCoy <steven.mccoy@miru.hk>
Date:   Thu Apr 29 11:36:13 2010 +0200

    Defer NetBSD atomic ops to GCC builtins. Revert Sun atomic ops #define.

 src/atomic_bitmap.hpp  | 72 +++++++++++++++++++++++++++++++++-----------------
 src/atomic_counter.hpp | 42 ++++++++++++++++++-----------
 src/atomic_ptr.hpp     | 25 ++++++++++++------
 3 files changed, 92 insertions(+), 47 deletions(-)

commit ad6fa9d0d4f1cf29ce63998d7efe337b1a784ef6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Apr 27 17:36:00 2010 +0200

    initial version of multi-hop REQ/REP

 src/rep.cpp  |  99 ++++++++++++++++++++----------
 src/req.cpp  |  28 ++++++++-
 src/xrep.cpp | 197 +++++++++++++++++++++++++++++++++++++++++++++++------------
 src/xrep.hpp |  35 +++++++++--
 4 files changed, 282 insertions(+), 77 deletions(-)

commit 1ad6ade0ed465030716ce720077f3aa31e6cd136
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 26 16:58:49 2010 +0200

    MSVC build fixed

 builds/msvc/libzmq/libzmq.vcproj | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit beffee92a8ec9e14cca21e5901970c4d03967c3d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 26 16:51:05 2010 +0200

    P2P renamed to PAIR

 doc/zmq_socket.txt        |  8 ++++----
 include/zmq.h             |  4 +++-
 src/Makefile.am           |  4 ++--
 src/app_thread.cpp        |  6 +++---
 src/{p2p.cpp => pair.cpp} | 28 ++++++++++++++--------------
 src/{p2p.hpp => pair.hpp} | 14 +++++++-------
 6 files changed, 33 insertions(+), 31 deletions(-)

commit 7d9603d722c9c2752dccd0c51f470e68d0e0c48c
Author: Jon Dyte <jon@totient.co.uk>
Date:   Sun Apr 25 15:04:23 2010 +0200

    Bug in zmq_queue fixed

 devices/zmq_queue/zmq_queue.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d524c4e15d3cfa21f265d2c21e8a76ac97bfee2d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 16 09:53:09 2010 +0200

    fix of documentation typo

 doc/zmq_setsockopt.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1c33941be9d564733c15fe0466906fdf0bbd46b8
Merge: ea18d30c 370cde09
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 15 07:32:49 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit ea18d30c209cb4e3f0dd0bc5e4380345e81b6fb6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 15 07:32:25 2010 +0200

    atomic_ptr fix of Win64

 include/zmq.h      | 2 +-
 src/atomic_ptr.hpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 370cde09226d8a1b87eeac306fe97d64b4ea63a3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 12 17:00:11 2010 +0200

    win build fixed

 builds/msvc/libzmq/libzmq.vcproj | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0024d290765f53428ff78eddc5a4bc675a13c6a7
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Apr 12 16:49:13 2010 +0200

    Build fixes for cross compiling and Win32

 configure.in                    | 27 ++++++++++++++++++---------
 foreign/xmlParser/xmlParser.cpp |  2 +-
 include/zmq.h                   | 14 ++++++++------
 src/Makefile.am                 |  2 +-
 4 files changed, 28 insertions(+), 17 deletions(-)

commit 34964769399825e45b3efd02e642af97355707ef
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 12 10:05:24 2010 +0200

    MSVC perf build fixed

 builds/msvc/c_local_lat/c_local_lat.vcproj   | 2 +-
 builds/msvc/c_local_thr/c_local_thr.vcproj   | 2 +-
 builds/msvc/c_remote_lat/c_remote_lat.vcproj | 2 +-
 builds/msvc/c_remote_thr/c_remote_thr.vcproj | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 7668e7976dc6c3e18a314d991381f29f5cbcc6ef
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 12 09:57:34 2010 +0200

    zmq_poll returns ETERM in case of context termination

 doc/zmq_socket.txt |  3 ---
 src/zmq.cpp        | 11 +++++++++--
 2 files changed, 9 insertions(+), 5 deletions(-)

commit 3236cb1a54316206d14a0f925dfa79d5b35f70fc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Apr 12 09:25:04 2010 +0200

    ETERM is accounted for in the documentation

 doc/zmq_bind.txt       | 2 ++
 doc/zmq_connect.txt    | 2 ++
 doc/zmq_poll.txt       | 3 ++-
 doc/zmq_recv.txt       | 2 ++
 doc/zmq_send.txt       | 2 ++
 doc/zmq_setsockopt.txt | 3 +++
 doc/zmq_socket.txt     | 3 +++
 7 files changed, 16 insertions(+), 1 deletion(-)

commit fba28c7c0cddd7c54fe45b38fc38ac6fe5a48438
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Apr 11 16:36:27 2010 +0200

    issue 1 - Change zmq_term semantics

 include/zmq.h       |  1 +
 src/app_thread.cpp  | 25 ++++++++++++++++++++++---
 src/app_thread.hpp  | 18 ++++++++++++++++--
 src/dispatcher.cpp  |  7 +++++++
 src/socket_base.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++-------
 src/zmq.cpp         |  2 ++
 6 files changed, 91 insertions(+), 12 deletions(-)

commit dff79d778db46bebe1e3b0cbd28b328972b9adb8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Apr 11 14:20:00 2010 +0200

    version number bumped to 2.0.7 for MSVC build

 builds/msvc/platform.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6cf076510a39c8eb60b1ec2f28aa895b9fb6eadp
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Apr 11 14:00:40 2010 +0200

    C-style comments in zmq.h

 include/zmq.h | 128 ++++++++++++++++++++++++++--------------------------------
 1 file changed, 57 insertions(+), 71 deletions(-)

commit 00cf3ceb8da8cb58b343cb75798a042588f09752
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Apr 11 10:26:47 2010 +0200

    multi-part message functionality available via ZMQ_SNDMORE and ZMQ_RCVMORE

 include/zmq.h       |  3 +++
 src/socket_base.cpp | 27 ++++++++++++++++++++++-----
 src/socket_base.hpp |  3 +++
 3 files changed, 28 insertions(+), 5 deletions(-)

commit 6fea42258348c8489d2cd64ca0e92981148134f8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Apr 11 07:59:03 2010 +0200

    getsockopt added to c++ binding

 include/zmq.hpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b668387d917cd80c5d4b9631bc0008b6a014c083
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Apr 10 17:04:33 2010 +0200

    Remove -Wxxx gcc-isms from subdir Makefiles

 configure.in                      | 6 +++---
 devices/zmq_forwarder/Makefile.am | 1 -
 devices/zmq_queue/Makefile.am     | 1 -
 devices/zmq_streamer/Makefile.am  | 1 -
 perf/Makefile.am                  | 4 ----
 5 files changed, 3 insertions(+), 10 deletions(-)

commit f6fa41dd7b3677d0f7441db83cbd6c8a0283a499
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Apr 10 16:51:22 2010 +0200

    Compile perf tests with the C++ compiler

    This lets us build the binaries in a portable fashion w/o having to worry
    about how to link with the C++ runtime.

 configure.in                          | 7 -------
 perf/Makefile.am                      | 8 ++++----
 perf/{local_lat.c => local_lat.cpp}   | 2 +-
 perf/{local_thr.c => local_thr.cpp}   | 2 +-
 perf/{remote_lat.c => remote_lat.cpp} | 2 +-
 perf/{remote_thr.c => remote_thr.cpp} | 0
 6 files changed, 7 insertions(+), 14 deletions(-)

commit c214a24f06bb41885dfbd73e42acb6e043df05ef
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Apr 10 16:27:07 2010 +0200

    fix for Sun C++ 5.8

 src/forwarder.cpp | 2 ++
 src/queue.cpp     | 2 ++
 src/streamer.cpp  | 2 ++
 3 files changed, 6 insertions(+)

commit 770dpdbd09fb1e11a4e4880da2603a517856c16c
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Apr 10 16:18:34 2010 +0200

    Build fixes for Solaris and non-GNU compilers

    Compiling C++ code with -D_POSIX_SOURCE on Solaris is unsupported, so remove it.
    Isolate GCC-isms inside checks that we are actually using GCC/G++.
    Only check for -lstdc++ when on GCC and doing static linking.

 configure.in    | 38 ++++++++++++++++++++++++++------------
 src/Makefile.am |  2 +-
 2 files changed, 27 insertions(+), 13 deletions(-)

commit 1dc0380e29fecd70f6299243d81f67db850db616
Author: Martin Lucina <martin@lucina.net>
Date:   Sat Apr 10 13:28:45 2010 +0200

    Debian packaging fixes suitable for 0MQ git

    Removed README.source, TODO.source since these are irrelevant to a generic
    git package.
    Fixed spelling in debian/copyright.
    Removed RFC check in debian/rules, again irrelevant to a generic git package.

 debian/README.source | 37 -------------------------------------
 debian/TODO.source   |  5 -----
 debian/copyright     |  2 +-
 debian/rules         |  6 ------
 4 files changed, 1 insertion(+), 49 deletions(-)

commit 8aa2acd0f8906b95232e765da805e3fab947b76b
Author: Adrian von Bidder <avbidder@fortytwo.ch>
Date:   Sat Apr 10 13:23:09 2010 +0200

    Debian packaging update from Adrian von Bidder

 debian/README.Debian            |  10 +-
 debian/README.source            |  37 ++++++++
 debian/TODO.source              |   5 +
 debian/changelog                |  24 ++++-
 debian/cl-zeromq.files          |   7 --
 debian/cl-zeromq.install        |   6 --
 debian/cl-zeromq.links          |   1 -
 debian/control                  | 197 ++++++++++++----------------------------
 debian/copyright                | 105 +++++++++++++++++++--
 debian/dirs                     |   5 -
 debian/docs                     |   2 -
 debian/libzeromq-dev.files      |  37 --------
 debian/libzeromq-dev.install    |  19 ----
 debian/libzeromq-python.files   |   1 -
 debian/libzeromq-python.install |   1 -
 debian/libzeromq-ruby.files     |   1 -
 debian/libzeromq-ruby.install   |   1 -
 debian/libzeromq0.files         |   2 -
 debian/libzeromq0.install       |   1 -
 debian/libzmq-dev.install       |   5 +
 debian/libzmq-dev.manpages      |   2 +
 debian/libzmq0.install          |   1 +
 debian/libzmq0.manpages         |   5 +
 debian/rules                    | 124 +++++++++----------------
 debian/shlibs.local             |   1 -
 debian/source/format            |   1 +
 debian/source/options           |   1 +
 debian/zeromq-bin.install       |   3 +
 debian/zeromq-bin.manpages      |   3 +
 debian/zeromq-examples.files    |   2 -
 debian/zeromq-examples.install  |   2 -
 debian/zeromq-perf.files        |  10 --
 debian/zeromq-perf.install      |  10 --
 debian/zeromq-utils.files       |   6 --
 debian/zeromq-utils.install     |   6 --
 35 files changed, 283 insertions(+), 361 deletions(-)

commit 1d28dc9059d0014314ad22d98ddb7c6f21c151e7
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Apr 9 19:15:40 2010 +0200

    Fix for Issue #14

    Don't fail hard if an unreleased tarball is being built and asciidoc is
    not installed; instead just print a big fat warning

 configure.in | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

commit 6ea76e95736152e83f977ad860f40a231cedb1ef
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 9 16:24:21 2010 +0200

    version bumped to 2.0.7

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 716f4ac8714d33d21f9853f58482e35c1e3ad934
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Apr 9 13:04:15 2010 +0200

    zmq_getsockopt function added

 include/zmq.h       |   2 +
 src/options.cpp     | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/options.hpp     |   1 +
 src/socket_base.cpp |   7 ++++
 src/socket_base.hpp |   4 +-
 src/zmq.cpp         |   6 +++
 6 files changed, 122 insertions(+), 4 deletions(-)

commit 027bb1d2a7c83c7c719f6bdc3100eb639019d2f0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 8 19:20:42 2010 +0200

    issue 10 - zmq_strerror problem on Windows

 src/zmq.cpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 5cd9f74a70e2c8503c29aaca881c193a936b7b44
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 8 19:04:32 2010 +0200

    few fixed related to multi-part messages in REP socket

 src/rep.cpp | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

commit 77cbd18e9c0480a6c26fd29de5d70569762108be
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 8 11:07:22 2010 +0200

    issue 11 - Assertion failed: it != peers.end () (pgm_receiver.cpp:161)

 src/pgm_receiver.cpp | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit 38e9103e0c82bcbb61a9c23ed3a4ace1c7420f95
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Apr 8 08:33:38 2010 +0200

    issue 13 (Assertion failed: load.get () == 0 (epoll.cpp:49)) fixed

 src/object.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 0f7aab5212ef66f7e292fe4ca891660859972ec4
Merge: 745db9c5 b0250cc8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Apr 7 11:54:34 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 745db9c574153160214470563bea3b53ab4c292a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Apr 7 11:54:09 2010 +0200

    unitialised member in seesion_t class - fixed

 src/session.cpp | 1 +
 1 file changed, 1 insertion(+)

commit b0250cc89df8d6c3d3fff7c8edc17a09ceaaa107
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Apr 7 10:41:11 2010 +0200

    Win32 build fixed

 builds/msvc/libzmq/libzmq.vcproj | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 065e4d00ff628097ce693ac7d9056fbcaf23d0bc
Merge: edfd05df a7973a2c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Apr 7 08:20:24 2010 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit edfd05df8ef58afc498795cb74906c07ee396f76
Author: Jon Dyte <jon@totient.co.uk>
Date:   Wed Apr 7 08:20:01 2010 +0200

    devices can be created via API

 devices/zmq_forwarder/zmq_forwarder.cpp |   6 +-
 devices/zmq_queue/zmq_queue.cpp         | 110 +-------------------------------
 devices/zmq_streamer/zmq_streamer.cpp   |   6 +-
 include/zmq.h                           |  10 +++
 include/zmq.hpp                         |   7 ++
 src/Makefile.am                         |   6 ++
 src/forwarder.cpp                       |  36 +++++++++++
 src/forwarder.hpp                       |  31 +++++++++
 src/queue.cpp                           |  98 ++++++++++++++++++++++++++++
 src/queue.hpp                           |  31 +++++++++
 src/streamer.cpp                        |  36 +++++++++++
 src/streamer.hpp                        |  31 +++++++++
 src/zmq.cpp                             |  20 ++++++
 13 files changed, 309 insertions(+), 119 deletions(-)

commit a7973a2c4997e2ff79126eb073dc675c574de917
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Apr 6 15:23:13 2010 +0200

    Documentation fixes

 doc/zmq_bind.txt       | 6 +++---
 doc/zmq_setsockopt.txt | 7 +++++--
 2 files changed, 8 insertions(+), 5 deletions(-)

commit 0777567e8911382ac42859f907730df023ebec26
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Apr 6 07:33:52 2010 +0200

    ENODEV from zmq_bind error described

 doc/zmq_bind.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 37fd1a77a6927dp351e10fe8d5b68d0b0d525d22
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 31 15:15:16 2010 +0200

    Handle full-pipe for REP sockets more gracefully

 src/rep.cpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 2f219d7c287cd518bc77b576e507d7a17c9535e9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 27 21:25:40 2010 +0100

    ZMQ_TBC renamed to ZMQ_MORE

 include/zmq.h       |  4 ++--
 src/fq.cpp          | 12 ++++++------
 src/fq.hpp          |  2 +-
 src/lb.cpp          | 12 ++++++------
 src/lb.hpp          |  2 +-
 src/pipe.cpp        |  6 +++---
 src/pub.cpp         |  2 +-
 src/rep.cpp         | 22 +++++++++++-----------
 src/rep.hpp         |  2 +-
 src/req.cpp         | 20 ++++++++++----------
 src/req.hpp         |  2 +-
 src/session.cpp     |  2 +-
 src/socket_base.cpp |  6 +++---
 src/sub.cpp         | 14 +++++++-------
 src/sub.hpp         |  2 +-
 src/zmq_encoder.cpp |  6 +++---
 16 files changed, 58 insertions(+), 58 deletions(-)

commit 842b4dd2e492459cbc0cc79ffdb34ddab8f0b528
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 27 14:57:56 2010 +0100

    muti-part message functionality available via API

 include/zmq.h       | 1 +
 src/socket_base.cpp | 5 +++++
 2 files changed, 6 insertions(+)

commit 8d8e0857be3d2ab941de443e436061ef82752c17
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 27 14:50:35 2010 +0100

    as advertised, zmq_flush and ZMQ_NOFLUSH were removed

 include/zmq.h | 2 --
 src/zmq.cpp   | 6 ------
 2 files changed, 8 deletions(-)

commit 06538fc11790a0cf895c43d137a33febf97f3a28
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 27 14:24:57 2010 +0100

    multi-part messages work with REQ/REP sockets

 src/rep.cpp | 71 ++++++++++++++++++++++++++++++++++++++++---------------------
 src/rep.hpp |  9 ++++++--
 src/req.cpp | 57 ++++++++++++++++++++++++++++++++-----------------
 src/req.hpp |  9 ++++++--
 4 files changed, 99 insertions(+), 47 deletions(-)

commit bbfac783f91f6692b7f9c0aa5392ac955f7b49bf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 27 09:43:49 2010 +0100

    multi-part message work with UPSTREAM/DOWNSTREAM

 src/lb.cpp | 25 +++++++++++++++++++------
 src/lb.hpp |  3 +++
 2 files changed, 22 insertions(+), 6 deletions(-)

commit ed291b02516ac5c9fe01f328d505305d36fe6319
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 27 09:24:38 2010 +0100

    multi-part messages work with PUB/SUB

 src/fq.cpp    | 31 +++++++++++++++++++++++++------
 src/fq.hpp    |  4 ++++
 src/pipe.cpp  | 10 ++++++++--
 src/pub.cpp   |  3 ++-
 src/sub.cpp   | 27 +++++++++++++++++++++++++--
 src/sub.hpp   |  4 ++++
 src/ypipe.hpp |  2 +-
 7 files changed, 69 insertions(+), 12 deletions(-)

commit 0b9897b141dp03ccd00132a638d030a2521cf5b3
Merge: 0a53ff7b 783463ac
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Mar 26 12:15:47 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 783463ac49dpb2d1be57dc9b3669d508187415a8
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Mar 25 17:31:18 2010 +0100

    Clarify use of poll() with C++ API, fix typo

 doc/zmq_cpp.txt | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c802a72a0b4adp06cd65158af3c65e65e0dfc2e0
Author: Vitaly Mayatskikh <v.mayatskih@gmail.com>
Date:   Mon Mar 22 22:31:37 2010 +0100

    configure does not mention xmlto when missing

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0a53ff7b9f8a212793c540535c322bfaa93d3430
Merge: f0316771 93bdb792
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 20 19:51:29 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 93bdb792a92b9bd235c7be47a13febf429568301
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 20 19:50:36 2010 +0100

    PUB socket was blocking occassionally - fixed

 src/pub.cpp | 84 ++++++++++++++++++++++++++++---------------------------------
 src/pub.hpp | 17 +++++++------
 2 files changed, 47 insertions(+), 54 deletions(-)

commit f031677100b41347e09932fc973040097a2187e4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 20 15:04:30 2010 +0100

    rollback of half-processed messages in case of disconnection

 src/session.cpp | 27 ++++++++++++++++++++++++++-
 src/session.hpp |  4 ++++
 2 files changed, 30 insertions(+), 1 deletion(-)

commit dfdaff5eba1e6980adb3326c119d2070d0ad42bb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 20 10:58:59 2010 +0100

    XREP-style prefixing/trimming messages removed

 src/i_engine.hpp     | 10 ++--------
 src/options.cpp      |  3 +--
 src/options.hpp      |  3 ---
 src/pgm_receiver.cpp | 12 ------------
 src/pgm_receiver.hpp |  2 --
 src/pgm_sender.cpp   | 12 ------------
 src/pgm_sender.hpp   |  2 --
 src/session.cpp      |  5 -----
 src/xrep.cpp         |  5 ++---
 src/zmq_decoder.cpp  | 48 +++++++-----------------------------------------
 src/zmq_decoder.hpp  |  8 --------
 src/zmq_encoder.cpp  | 31 ++++---------------------------
 src/zmq_encoder.hpp  |  6 ------
 src/zmq_engine.cpp   | 10 ----------
 src/zmq_engine.hpp   |  2 --
 src/zmq_init.cpp     |  3 +--
 16 files changed, 17 insertions(+), 145 deletions(-)

commit cbaf10978a8ffa98d98161dpec8d020c517b127b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Mar 19 09:14:26 2010 +0100

    fixes for building with Sun CC

 src/dispatcher.cpp   | 3 ++-
 src/tcp_listener.cpp | 6 +++---
 2 files changed, 5 insertions(+), 4 deletions(-)

commit dp35a1644cd8f2441de73f1260c46bb0da6a1605
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 19:02:50 2010 +0100

    fix include paths in perf on Win32

 perf/local_lat.c  | 2 +-
 perf/local_thr.c  | 2 +-
 perf/remote_lat.c | 2 +-
 perf/remote_thr.c | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 49a30d49f37148db1be105615668998c8fb8ea86
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 17:49:39 2010 +0100

    Update contributors for 2.0.6

 AUTHORS   | 96 +++++++++++++++++++++++++++++++++------------------------------
 ChangeLog | 19 ++++++++-----
 2 files changed, 62 insertions(+), 53 deletions(-)

commit fe18ce1abab2ef43f97ef6f2b093a69f42cb7103
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 17:11:23 2010 +0100

    ChangeLog for v2.0.6

 ChangeLog | 1499 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1499 insertions(+)

commit 38c942dp648115ac10320968eb4b5e235ef15674
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 17:07:17 2010 +0100

    Add Git location to README

 README | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 6d5a9e96400025044af8172887ef99589c0d1eb1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 16:20:23 2010 +0100

    Update README

 README | 39 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 37 insertions(+), 2 deletions(-)

commit ad75d0213483f3c585ce144386623e64e65eca0d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 15:48:16 2010 +0100

    Add MSVC build files to distribution

 .gitignore              | 12 ++++--------
 Makefile.am             |  2 +-
 builds/msvc/Makefile.am | 12 ++++++++++++
 configure.in            |  3 ++-
 4 files changed, 19 insertions(+), 10 deletions(-)

commit a9e0c3cd7e0c54f872749f387cf3d69b216bc613
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 15:37:47 2010 +0100

    Removing leftover MSVC builds

 builds/msvc/display/display.vcproj | 176 -------------------------------------
 builds/msvc/prompt/prompt.vcproj   | 176 -------------------------------------
 2 files changed, 352 deletions(-)

commit 5472861179ff232c55e7a7021a93da5c680f2017
Merge: 8a3f9740 8fcf6ffb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 15:24:57 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 8a3f97400a2b3ef2ec088a00868087b85cfd81b6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 16 15:23:55 2010 +0100

    Clarify zmq_poll restrictions

 doc/zmq_poll.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 1705ec224745b935e13d8f18ef81bcbef45ff143
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Mar 16 15:19:38 2010 +0100

    C++ interface documentation updates

 doc/zmq_cpp.txt | 205 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 156 insertions(+), 49 deletions(-)

commit 8fcf6ffb67aba2ff9f78f4ba327d29755f03535a
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Mar 15 15:47:17 2010 +0100

    Cleanups to autogen.sh

 autogen.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fceba036279a0e9bb39dpbd862b70ad1bb5b3f40
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Mar 15 15:45:38 2010 +0100

    Cleanups to autogen.sh

    Use POSIX "command -v" construct to test for prerequisite commands
    Clarify error messages on failure

 autogen.sh | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

commit 61ad236e9543a569fe066872a5fda4fa40ea7591
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 13 14:40:10 2010 +0100

    ZMQ_NOFLUSH and zmq_flush obsoleted

 doc/Makefile.am     |  2 +-
 doc/zmq.txt         |  1 -
 doc/zmq_flush.txt   | 55 -----------------------------------------------------
 doc/zmq_send.txt    |  8 --------
 doc/zmq_socket.txt  |  1 -
 include/zmq.hpp     |  7 -------
 src/downstream.cpp  | 10 ----------
 src/downstream.hpp  |  1 -
 src/lb.cpp          |  3 +--
 src/p2p.cpp         | 10 +---------
 src/p2p.hpp         |  1 -
 src/pub.cpp         | 17 +++--------------
 src/pub.hpp         |  1 -
 src/rep.cpp         |  6 ------
 src/rep.hpp         |  1 -
 src/req.cpp         |  6 ------
 src/req.hpp         |  1 -
 src/socket_base.cpp |  5 -----
 src/socket_base.hpp |  2 --
 src/sub.cpp         |  6 ------
 src/sub.hpp         |  1 -
 src/upstream.cpp    |  6 ------
 src/upstream.hpp    |  1 -
 src/xrep.cpp        |  6 ------
 src/xrep.hpp        |  1 -
 src/xreq.cpp        |  7 -------
 src/xreq.hpp        |  1 -
 src/zmq.cpp         |  3 ++-
 28 files changed, 8 insertions(+), 162 deletions(-)

commit c42343d3f027248514344dpc9e3814dfe1047d59
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 13 12:34:55 2010 +0100

    pipe_t::rollback removes only unfinished message from the pipe rather than all unflushed messages

 src/pipe.cpp | 4 ++++
 src/pipe.hpp | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

commit dcb983699e52bf2e075badpef250bcd3c82e4846
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 13 08:59:46 2010 +0100

    zmq_queue implementation added

 devices/zmq_queue/zmq_queue.cpp | 114 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 109 insertions(+), 5 deletions(-)

commit 22db38bf3d9c96a840af50300632d44fd01ed3a8
Author: unknown <bundra@.(none)>
Date:   Fri Mar 12 20:20:25 2010 +0100

    MSVC build: C++ perf tests removed; all executables go into bin directory

 builds/msvc/c_local_lat/c_local_lat.vcproj       |   8 +-
 builds/msvc/c_local_thr/c_local_thr.vcproj       |   8 +-
 builds/msvc/c_remote_lat/c_remote_lat.vcproj     |   8 +-
 builds/msvc/c_remote_thr/c_remote_thr.vcproj     |   8 +-
 builds/msvc/cpp_local_lat/cpp_local_lat.vcproj   | 176 -----------------------
 builds/msvc/cpp_local_thr/cpp_local_thr.vcproj   | 176 -----------------------
 builds/msvc/cpp_remote_lat/cpp_remote_lat.vcproj | 176 -----------------------
 builds/msvc/cpp_remote_thr/cpp_remote_thr.vcproj | 176 -----------------------
 builds/msvc/msvc.sln                             |  44 +-----
 builds/msvc/zmq_forwarder/zmq_forwarder.vcproj   |   2 +
 builds/msvc/zmq_queue/zmq_queue.vcproj           |   2 +
 builds/msvc/zmq_streamer/zmq_streamer.vcproj     |   2 +
 12 files changed, 26 insertions(+), 760 deletions(-)

commit c08a7f8896e8fddp8379d2fce552b360dadpadc8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Mar 12 20:02:19 2010 +0100

    C perf tests are built non-optionally; C++ perf tests removed

 Makefile.am               |   6 +--
 configure.in              |  26 +--------
 perf/Makefile.am          | 131 +++++++++++++++++++++++++++++++++++++++++++++-
 perf/c/Makefile.am        | 129 ---------------------------------------------
 perf/cpp/Makefile.am      |  20 -------
 perf/cpp/local_lat.cpp    |  52 ------------------
 perf/cpp/local_thr.cpp    |  71 -------------------------
 perf/cpp/remote_lat.cpp   |  63 ----------------------
 perf/cpp/remote_thr.cpp   |  54 -------------------
 perf/{c => }/local_lat.c  |   0
 perf/{c => }/local_thr.c  |   0
 perf/{c => }/remote_lat.c |   0
 perf/{c => }/remote_thr.c |   0
 13 files changed, 131 insertions(+), 421 deletions(-)

commit 1fbeba2fe3c3bd6046eea4d6432791194d4238f2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Mar 12 19:05:56 2010 +0100

    simplify configuration summary

 configure.in | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

commit 66b67fbdf2b047ef7adb8ec018a6fe89dd9cbfca
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Mar 12 18:58:29 2010 +0100

    devices are built unconditionally

 configure.in        | 34 ----------------------------------
 devices/Makefile.am | 13 +------------
 src/req.cpp         |  2 +-
 3 files changed, 2 insertions(+), 47 deletions(-)

commit 430aa533347dcbca57857d318a6898f480967cba
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Mar 12 18:42:38 2010 +0100

    text concerning language bindings removed from configure

 configure.in | 3 ---
 1 file changed, 3 deletions(-)

commit 54df388aced3dp059009eec3df66c7dea717747b
Author: unknown <bundra@.(none)>
Date:   Fri Mar 12 18:05:38 2010 +0100

    Java binding removed from MSVC build

 builds/msvc/j_local_lat/j_local_lat.vcproj   |  78 --------
 builds/msvc/j_local_thr/j_local_thr.vcproj   |  78 --------
 builds/msvc/j_remote_lat/j_remote_lat.vcproj |  78 --------
 builds/msvc/j_remote_thr/j_remote_thr.vcproj |  78 --------
 builds/msvc/java/java.vcproj                 | 272 ---------------------------
 builds/msvc/msvc.sln                         |  45 -----
 6 files changed, 629 deletions(-)

commit 6badd204d5686de8b2a6e8ee88da78260c0ff949
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 3 17:25:46 2010 +0100

    Implement flow control for ZMQ_REP sockets

 src/rep.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 923609b0922c3bf07f16c8c99aba4fe98f08ef60
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 2 22:23:34 2010 +0100

    Implement flow control for ZMQ_REQ sockets

 src/req.cpp | 98 ++++++++++++++++++++++++++++++++++++++++++++++++-------------
 src/req.hpp |  3 ++
 2 files changed, 80 insertions(+), 21 deletions(-)

commit 42e575cb6b62fe1e5d12d2e4fb5c6874d47eb57e
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 2 12:41:33 2010 +0100

    Implement flow control fox ZMQ_XREP sockets

 src/xrep.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit e34184acc327dp4b085a1a50ff6502e2dc148522
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 2 11:15:50 2010 +0100

    Implement flow control for ZMQ_XREQ sockets

 src/xreq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 06d7a447378c8e9f0805c219deaf8e7e7ef1eeb0
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 2 10:48:30 2010 +0100

    Implement flow control for ZMQ_PUB sockets

 src/pub.cpp | 34 ++++++++++++++++++++++++++--------
 src/pub.hpp |  7 +++++++
 2 files changed, 33 insertions(+), 8 deletions(-)

commit f9c84a1a689f4f64cfa45cb22d4f02ec246c7f93
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Mar 1 17:21:23 2010 +0100

    Implement flow control for ZMQ_DOWNSTREAM sockets

 src/downstream.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d4f6b18cd57897cc0e77e474118e104a0d5cfc3
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Mar 1 16:55:13 2010 +0100

    Implement flow control for ZMQ_P2P sockets

 src/p2p.cpp | 21 +++++++++++++++------
 src/p2p.hpp |  1 +
 2 files changed, 16 insertions(+), 6 deletions(-)

commit f9521c6b6a35103c03b742a311a34d7b04da0b84
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Tue Mar 2 09:02:40 2010 +0100

    PGM: implement flow control

 src/pgm_receiver.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
 src/pgm_receiver.hpp |  9 +++++++++
 2 files changed, 55 insertions(+), 4 deletions(-)

commit 61ee6fdp536a8000be87b5aaf271f6519a3b7d3f
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Mar 1 10:13:26 2010 +0100

    Implement flow control

    This commit introduces the necessary changes necessary
    for implementing flow control. None of the socket types
    implements the flow control yet. The code will crash when
    the flow control is enabled and the thw lwm is reached.

    The following commits will add flow-control support for
    individual socket types.

 src/command.hpp      |  8 ++++++++
 src/downstream.cpp   |  6 +++++-
 src/downstream.hpp   |  1 +
 src/err.hpp          |  6 ++++++
 src/i_endpoint.hpp   |  1 +
 src/i_engine.hpp     |  2 ++
 src/lb.cpp           | 49 ++++++++++++++++++++------------------------
 src/lb.hpp           |  1 -
 src/object.cpp       | 19 ++++++++++++++++++
 src/object.hpp       |  3 +++
 src/options.cpp      |  8 ++++----
 src/options.hpp      |  4 ++--
 src/p2p.cpp          | 11 ++++++----
 src/p2p.hpp          |  1 +
 src/pgm_receiver.cpp |  5 +++++
 src/pgm_receiver.hpp |  1 +
 src/pgm_sender.cpp   |  5 +++++
 src/pgm_sender.hpp   |  1 +
 src/pipe.cpp         | 57 ++++++++++++++++++++++++++++++++++++++++++----------
 src/pipe.hpp         | 29 +++++++++++++++++---------
 src/pub.cpp          | 16 +++++++++++----
 src/pub.hpp          |  1 +
 src/rep.cpp          | 10 +++++++--
 src/rep.hpp          |  1 +
 src/req.cpp          | 11 ++++++----
 src/req.hpp          |  1 +
 src/session.cpp      |  7 +++++++
 src/session.hpp      |  1 +
 src/socket_base.cpp  |  5 +++++
 src/socket_base.hpp  |  2 ++
 src/sub.cpp          |  5 +++++
 src/sub.hpp          |  1 +
 src/upstream.cpp     |  5 +++++
 src/upstream.hpp     |  1 +
 src/xrep.cpp         |  8 +++++++-
 src/xrep.hpp         |  1 +
 src/xreq.cpp         |  6 +++++-
 src/xreq.hpp         |  1 +
 src/zmq_engine.cpp   | 17 +++++++++++-----
 src/zmq_engine.hpp   |  1 +
 40 files changed, 242 insertions(+), 77 deletions(-)

commit 31d36104aa7cdpad6f299f0c5cb58a9fde7cf9b0
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Mar 12 10:34:11 2010 +0100

    devices/ build fixed

 devices/zmq_forwarder/zmq_forwarder.cpp | 2 +-
 devices/zmq_queue/zmq_queue.cpp         | 2 +-
 devices/zmq_streamer/zmq_streamer.cpp   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 10bbe6af9900b4609cfcadc031dcf4dcb8ebfb3b
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Mar 11 20:43:51 2010 +0100

    Cleanup .gitignore

 .gitignore | 6 ------
 1 file changed, 6 deletions(-)

commit 27e2d08449ea52649e2e42b263f76fbd5d8382c5
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Mar 11 20:33:27 2010 +0100

    Restructure language bindings

    C and C++ headers moved from bindings/ to include/, bindings/ removed
    --with-c and --with-cpp options to configure removed, C and C++ now built
    and installed by default

 configure.in                      | 32 ++------------------------------
 {bindings/c => include}/zmq.h     |  0
 {bindings/cpp => include}/zmq.hpp |  0
 perf/Makefile.am                  | 10 +---------
 perf/c/Makefile.am                |  2 +-
 perf/cpp/Makefile.am              |  2 +-
 src/Makefile.am                   | 12 +-----------
 src/app_thread.cpp                |  2 +-
 src/dispatcher.cpp                |  2 +-
 src/downstream.cpp                |  2 +-
 src/err.cpp                       |  2 +-
 src/fq.cpp                        |  2 +-
 src/i_inout.hpp                   |  2 +-
 src/io_thread.cpp                 |  2 +-
 src/lb.cpp                        |  2 +-
 src/msg_content.hpp               |  2 +-
 src/options.cpp                   |  2 +-
 src/p2p.cpp                       |  2 +-
 src/pipe.cpp                      |  2 +-
 src/pipe.hpp                      |  2 +-
 src/pub.cpp                       |  2 +-
 src/rep.cpp                       |  2 +-
 src/req.cpp                       |  2 +-
 src/socket_base.cpp               |  2 +-
 src/socket_base.hpp               |  2 +-
 src/sub.cpp                       |  2 +-
 src/sub.hpp                       |  2 +-
 src/tcp_connecter.cpp             |  2 +-
 src/tcp_listener.cpp              |  2 +-
 src/upstream.cpp                  |  2 +-
 src/xrep.cpp                      |  2 +-
 src/xreq.cpp                      |  2 +-
 src/zmq.cpp                       |  2 +-
 src/zmq_decoder.hpp               |  2 +-
 src/zmq_encoder.hpp               |  2 +-
 35 files changed, 34 insertions(+), 80 deletions(-)

commit 90944759b66771bbe399922eecedc5095fa2a509
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Mar 11 20:12:55 2010 +0100

    Removed Java binding from core distribution

 Makefile.am                        |   4 +-
 bindings/Makefile.am               |   7 -
 bindings/java/Context.cpp          | 112 ------------
 bindings/java/Makefile.am          |  72 --------
 bindings/java/Poller.cpp           | 126 --------------
 bindings/java/Socket.cpp           | 345 -------------------------------------
 bindings/java/org/zmq/Context.java |  58 -------
 bindings/java/org/zmq/Poller.java  | 135 ---------------
 bindings/java/org/zmq/Socket.java  | 134 --------------
 configure.in                       |  73 +-------
 perf/Makefile.am                   |   8 +-
 perf/java/Makefile.am              |   5 -
 perf/java/local_lat.java           |  55 ------
 perf/java/local_thr.java           |  71 --------
 perf/java/remote_lat.java          |  60 -------
 perf/java/remote_thr.java          |  57 ------
 16 files changed, 9 insertions(+), 1313 deletions(-)

commit 9fda070e4d66d538e3c709c6cb8934cbf4442c29
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Mar 10 23:20:43 2010 +0100

    Typeset literal correctly

 doc/zmq_pgm.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0a1e0beaa2849a51ea659eba0f142ce340d2cc6d
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Mar 10 23:18:08 2010 +0100

    Fixes to PGM wire format description

 doc/zmq_pgm.txt | 69 +++++++++++++++++++++++++++++++--------------------------
 1 file changed, 38 insertions(+), 31 deletions(-)

commit 5fef480dpb28424769d97c92f331d87f87b87c85
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Mar 10 13:52:41 2010 +0100

    Fixes to TCP wire format specification

 doc/zmq_tcp.txt | 42 ++++++++++++++++++++++++++----------------
 1 file changed, 26 insertions(+), 16 deletions(-)

commit 8f90dp8dfdf5efbb6c8429897dc95cad621af00b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Mar 10 12:40:13 2010 +0100

    wire formats in docs clarified

 doc/zmq_pgm.txt | 40 +++++++++++++++++++++++++++++++---------
 doc/zmq_tcp.txt | 22 +++++++++++++---------
 2 files changed, 44 insertions(+), 18 deletions(-)

commit 98801ebcdpa1117dp596a3bdp0653c3720a94359
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Mar 10 12:19:39 2010 +0100

    Documentation fixes

 doc/zmq.txt               |  3 ++-
 doc/zmq_bind.txt          |  4 ++--
 doc/zmq_close.txt         |  2 +-
 doc/zmq_connect.txt       |  4 ++--
 doc/zmq_flush.txt         |  2 +-
 doc/zmq_msg_close.txt     |  2 +-
 doc/zmq_msg_copy.txt      |  2 +-
 doc/zmq_msg_init.txt      |  2 +-
 doc/zmq_msg_init_data.txt |  2 +-
 doc/zmq_msg_init_size.txt |  2 +-
 doc/zmq_msg_move.txt      |  2 +-
 doc/zmq_poll.txt          | 13 +++++++------
 doc/zmq_recv.txt          |  2 +-
 doc/zmq_send.txt          |  2 +-
 doc/zmq_setsockopt.txt    | 18 ++++++++----------
 doc/zmq_socket.txt        |  7 ++++---
 doc/zmq_term.txt          |  2 +-
 17 files changed, 36 insertions(+), 35 deletions(-)

commit bc468b34513a0fd76e69e03f3f978abd7d8c3871
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Mar 9 19:29:41 2010 +0100

    Add missing section with zmq_version()

 doc/zmq.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

commit edebff902a9785ecdb3a27f6a78ac7cc68b38a56
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Mar 9 18:58:59 2010 +0100

    Add dependency for zmq_epgm.7

 doc/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ca70b40383fd12ce866054dd87cecb3d732c8d9f
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Mar 9 18:53:42 2010 +0100

    Hack, zmq_epgm.7 needs to be copied from zmq_pgm.7

 doc/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 1dpe86408d575d6572b071d7564da7f006d1757e
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Mar 9 18:47:31 2010 +0100

    Documentation rewrite

 doc/Makefile.am           |   4 +-
 doc/asciidoc.conf         |   8 ++
 doc/zmq.txt               | 227 ++++++++++++++++++------------
 doc/zmq_bind.txt          |  62 +++++----
 doc/zmq_close.txt         |  37 +++--
 doc/zmq_connect.txt       |  62 ++++++---
 doc/zmq_epgm.txt          |   1 +
 doc/zmq_flush.txt         |  48 +++----
 doc/zmq_forwarder.txt     |  17 +--
 doc/zmq_init.txt          |  52 ++++---
 doc/zmq_inproc.txt        |  85 ++++++++---
 doc/zmq_ipc.txt           |  72 +++++++---
 doc/zmq_java.txt          |  27 ----
 doc/zmq_msg_close.txt     |  43 +++---
 doc/zmq_msg_copy.txt      |  46 +++---
 doc/zmq_msg_data.txt      |  32 ++---
 doc/zmq_msg_init.txt      |  29 ++--
 doc/zmq_msg_init_data.txt |  51 ++++---
 doc/zmq_msg_init_size.txt |  51 +++----
 doc/zmq_msg_move.txt      |  38 +++--
 doc/zmq_msg_size.txt      |  35 ++---
 doc/zmq_pgm.txt           | 176 +++++++++++++----------
 doc/zmq_poll.txt          | 124 +++++++++++------
 doc/zmq_queue.txt         |  17 +--
 doc/zmq_recv.txt          |  53 ++++---
 doc/zmq_send.txt          |  66 +++++----
 doc/zmq_setsockopt.txt    | 348 ++++++++++++++++++++++++++++++----------------
 doc/zmq_socket.txt        | 184 ++++++++++++------------
 doc/zmq_streamer.txt      |  17 +--
 doc/zmq_strerror.txt      |  25 ++--
 doc/zmq_tcp.txt           | 137 ++++++++++++------
 doc/zmq_term.txt          |  33 ++---
 doc/zmq_udp.txt           |  56 --------
 doc/zmq_version.txt       |  23 +--
 34 files changed, 1305 insertions(+), 981 deletions(-)

commit d790940fd06060c8a2c624b0e41e470ad31dp0d8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 9 18:14:49 2010 +0100

    udp transport renamed to epgm

 configure.in        |  4 ++--
 src/socket_base.cpp | 10 ++++------
 2 files changed, 6 insertions(+), 8 deletions(-)

commit 5a776f5597cac632ca507e2d80ca0de064bba1d6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 9 17:34:28 2010 +0100

    PGM late joiners would start receiving a complete message rather than a message part

 src/zmq_encoder.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 0f891e091cc46775226ee1fe28784876395a7b92
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 9 17:24:42 2010 +0100

    message flags from the wire are written to zmq_msg_t and vice versa

 src/zmq_decoder.cpp | 4 ++--
 src/zmq_encoder.cpp | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 531c6af0d4df606ddef15da821dad20399b9480a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 9 16:56:53 2010 +0100

    message flags added to zmq_msg_t strcuture

 bindings/c/zmq.h | 14 +++++++++-----
 src/pipe.cpp     |  2 +-
 src/pub.cpp      |  4 ++--
 src/zmq.cpp      | 14 ++++++++------
 4 files changed, 20 insertions(+), 14 deletions(-)

commit 96ccc1c5fceb56bd7ffc2e6bef9ddab5347d722b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 9 15:10:44 2010 +0100

    'flags' fields added to the wire format

 src/zmq_decoder.cpp | 40 +++++++++++++++++++++++++++++-----------
 src/zmq_decoder.hpp |  1 +
 src/zmq_encoder.cpp | 11 ++++++++---
 src/zmq_encoder.hpp |  2 +-
 4 files changed, 39 insertions(+), 15 deletions(-)

commit e04e2cdbbaf351eb04164bdcd293fcb8fa22a9a4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Mar 9 08:43:20 2010 +0100

    rollback functionality added to pipe

 src/pipe.cpp   | 13 +++++++++++++
 src/pipe.hpp   |  3 +++
 src/ypipe.hpp  | 11 +++++++++++
 src/yqueue.hpp | 37 ++++++++++++++++++++++++++++++++++++-
 4 files changed, 63 insertions(+), 1 deletion(-)

commit 9481c69b0f60068f12aa26699588fed6a8faceec
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Mar 6 16:32:19 2010 +0100

    problem with NIC name resolution on OSX fixed

 src/ip.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 26b0dpa24f9add0a1811e23f709d96b44b459571
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Mar 3 17:01:08 2010 +0100

    Win32 build fixes

 configure.in    |  8 ++++----
 src/Makefile.am |  4 ++++
 src/ip.hpp      | 10 +++++-----
 src/uuid.hpp    |  2 +-
 4 files changed, 14 insertions(+), 10 deletions(-)

commit 352da8dp8775f057a7ec67a7bd3f2270ac1c4d0f
Author: unknown <bundra@.(none)>
Date:   Wed Mar 3 15:47:21 2010 +0100

    type mismatch in tcp_listener (win version) fixed

 src/tcp_listener.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 14054ecce7d367d8e3d47f84f72d2fc748dpc8e4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 3 09:41:57 2010 +0100

    Fix typo: zmq_close -> zmq_msg_close

 src/rep.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 708298d798693a19ace9a4811a3760d8de0a5c1d
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Mar 3 00:08:11 2010 +0100

    Fix possible lockups when reading from ZMQ_REP sockets

 src/rep.cpp | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

commit 157a66fc42d46c79edc01f6feed8f482fb5d53f1
Author: unknown <bundra@.(none)>
Date:   Mon Mar 1 18:33:16 2010 +0100

    polling on POSIX sockets returns POLLERR (win32)

 src/zmq.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 4e7158b67dcbbc307e76616a85aa34cc83ad6606
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Mar 1 17:40:39 2010 +0100

    return POLLERR from polling on POSIX sockets (linux version)

 src/zmq.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit 7442f53956e5d32d9c6a3543f8bef1664a773926
Merge: ea0a44c8 83f85ea5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 27 14:18:21 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit ea0a44c8a964cad4276ec216319d32e95e4a4bc0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 27 14:18:02 2010 +0100

    Ruby binding removed

 bindings/Makefile.am      |   8 +-
 bindings/ruby/Makefile.am |  11 --
 bindings/ruby/extconf.rb  |  28 -----
 bindings/ruby/rbzmq.cpp   | 288 ----------------------------------------------
 configure.in              |  57 +--------
 perf/Makefile.am          |   8 +-
 perf/ruby/Makefile.am     |   1 -
 perf/ruby/local_lat.rb    |  41 -------
 perf/ruby/local_thr.rb    |  61 ----------
 perf/ruby/remote_lat.rb   |  53 ---------
 perf/ruby/remote_thr.rb   |  45 --------
 11 files changed, 7 insertions(+), 594 deletions(-)

commit 83f85ea51dee1fb2fcee22543a90361b860d6cb8
Author: unknown <bundra@.(none)>
Date:   Sat Feb 27 13:49:53 2010 +0100

    ruby binding removed from msvc build

 builds/msvc/msvc.sln         |  9 ------
 builds/msvc/ruby/ruby.vcproj | 68 --------------------------------------------
 2 files changed, 77 deletions(-)

commit 696ada883331359bee76b1ea996d8ac846624bea
Author: unknown <bundra@.(none)>
Date:   Sat Feb 27 13:36:52 2010 +0100

    python binding removed from nsvc build

 builds/msvc/msvc.sln             |   8 --
 builds/msvc/python/python.vcproj | 176 ---------------------------------------
 2 files changed, 184 deletions(-)

commit 45414b5444db0a1f7e325c7dce92fbe84667d093
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 27 12:23:22 2010 +0100

    python binding removed

 bindings/Makefile.am        |   8 +-
 bindings/python/Makefile.am |   7 -
 bindings/python/pyzmq.cpp   | 556 --------------------------------------------
 bindings/python/setup.py.in |  14 --
 configure.in                |  65 +-----
 doc/Makefile.am             |   2 +-
 doc/zmq.txt                 |   3 -
 doc/zmq_python.txt          |  27 ---
 perf/Makefile.am            |   9 +-
 perf/python/Makefile.am     |   1 -
 perf/python/local_lat.py    |  49 ----
 perf/python/local_thr.py    |  70 ------
 perf/python/remote_lat.py   |  61 -----
 perf/python/remote_thr.py   |  53 -----
 14 files changed, 11 insertions(+), 914 deletions(-)

commit efefa069b2ce407a7da4328ab024c47920a76960
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Feb 26 20:03:58 2010 +0100

    Cygwin support

 configure.in | 7 +++++++
 src/uuid.cpp | 3 ++-
 src/uuid.hpp | 6 ++++--
 3 files changed, 13 insertions(+), 3 deletions(-)

commit deda7ca54a3c8f1ba735e8654ca87f8808606122
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 26 17:28:09 2010 +0100

    Java Poller patch

 .gitignore                         |   3 ++
 bindings/java/Context.cpp          | 106 -------------------------------------
 bindings/java/Makefile.am          |  22 ++++++--
 bindings/java/org/zmq/Context.java |  18 -------
 4 files changed, 21 insertions(+), 128 deletions(-)

commit 4a1a83887d6faf36cb01f1c69142e6aafafe5eba
Author: unknown <bundra@.(none)>
Date:   Fri Feb 26 16:42:52 2010 +0100

    Win32 build of Java binding fixed

 builds/msvc/java/java.vcproj | 36 ++++++++++++++++++++++++++++++++----
 1 file changed, 32 insertions(+), 4 deletions(-)

commit 4440b13c359dab2c1ba55e31c604ac093172d68e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 26 15:55:36 2010 +0100

    Poller object implemented in Java binding

 bindings/java/Poller.cpp          | 126 +++++++++++++++++++++++++++++++++++
 bindings/java/org/zmq/Poller.java | 135 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 261 insertions(+)

commit 1c4daf79ce12da75acb8010c99b3c1d509a7a950
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 26 14:28:20 2010 +0100

    MIT license text added

 COPYING.LESSER | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 insertions(+), 3 deletions(-)

commit 57e057c825156b6effd15c07ee302f4ccdd2561c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 25 16:29:17 2010 +0100

    1st version of Java poll added

 bindings/java/Context.cpp          | 140 +++++++++++++++++++++++++++++++------
 bindings/java/Socket.cpp           |  89 +++++++++--------------
 bindings/java/org/zmq/Context.java |  21 +++++-
 bindings/java/org/zmq/Socket.java  |   5 +-
 4 files changed, 173 insertions(+), 82 deletions(-)

commit ed8fe68383ca94ca33a9919bc2ed5b5a5d62cab0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 24 17:27:31 2010 +0100

    handle invalid PGM connection string decently

 src/pgm_socket.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

commit be51cfa419bb6c75eb24d241769a7c5543c432a7
Merge: 0b4172b8 b7f01f90
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 24 16:19:53 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 0b4172b8689b60ce254c6823d69962bbdbd031d4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 24 16:19:14 2010 +0100

    minor cast issues on cygwin fixed

 src/ip.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b7f01f9071c26292c30517bac18ddp92efaf3ffb
Author: unknown <bundra@.(none)>
Date:   Wed Feb 24 15:33:03 2010 +0100

    chat example removed from win build; missing fd_signaler_t::poll on win added

 builds/msvc/msvc.sln | 18 ------------------
 src/fd_signaler.cpp  | 26 +++++++++++++++++++-------
 2 files changed, 19 insertions(+), 25 deletions(-)

commit 476ebde6280a428e2dd8fee7c70670aa449831c9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 24 13:02:29 2010 +0100

    use binary UUIDs instead of string representation to save some bytes

 src/uuid.cpp     | 87 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 src/uuid.hpp     | 22 +++++++++++---
 src/zmq_init.cpp |  6 ++--
 3 files changed, 98 insertions(+), 17 deletions(-)

commit cc5c30f5dc2d6490c0199709ceb2d86e3cc3895d
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Feb 24 12:09:24 2010 +0100

    Fix: OpenPGM is now distributed as .tar.gz

 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bba36e6ee6ecdee5f3ded30b9f11e7684393bfd2
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Feb 24 12:07:24 2010 +0100

    Disable IPv6 support

    The current IPv6 support is half-assed and breaks for too many people.
    Revert back to IPv4 only for now.

 src/ip.cpp | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 39b89619742cf4dpd25a5b3ccc5ff6d23d9d15cf
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Feb 24 09:41:10 2010 +0100

    Update OpenPGM to 2.0.24 (stable)

 .gitignore                               |   1 +
 configure.in                             |  16 ++++++++--------
 foreign/openpgm/libpgm-2.0.23rc8.tar.bz2 | Bin 321822 -> 0 bytes
 foreign/openpgm/libpgm-2.0.24.tar.gz     | Bin 0 -> 407110 bytes
 4 files changed, 9 insertions(+), 8 deletions(-)

commit ccd47f1ee8c9268b99478c6cce3d8b1aada62566
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 24 09:17:05 2010 +0100

    chat example moved to separate repo

 Makefile.am               |  4 +--
 configure.in              | 13 +--------
 examples/Makefile.am      |  7 -----
 examples/chat/Makefile.am | 11 --------
 examples/chat/README      | 42 -----------------------------
 examples/chat/display.cpp | 50 -----------------------------------
 examples/chat/prompt.cpp  | 67 -----------------------------------------------
 7 files changed, 3 insertions(+), 191 deletions(-)

commit 8980a985828579d03f031b18a1bebcd65eded417
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 24 08:29:29 2010 +0100

    zmq_error used from ruby binding

 bindings/ruby/rbzmq.cpp | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

commit 551fa104ffdb8c417b7d75ce70c463992e7d4652
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 23 23:43:31 2010 +0100

    zmq_errno used in C++ binding

 bindings/cpp/zmq.hpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 95329719cda2b941e422d06daad3a7ba4c4a8829
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 23 23:37:05 2010 +0100

    zmq_errno is exported from the DLL

 bindings/c/zmq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2441ef11a22170499d7dp12865dc98a61230f7ed
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 23 23:28:25 2010 +0100

    zmq_errno helper function added

 bindings/c/zmq.h | 10 ++++++++++
 src/zmq.cpp      |  5 +++++
 2 files changed, 15 insertions(+)

commit 2dd55605ea3956413cb25cab705ffdbdb2e00da5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 23 22:13:56 2010 +0100

    recv fails after polling for IN on REQ socket

 src/req.cpp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 025c9e173c58971993858ea66fb2eeaf08de195d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 23 17:22:52 2010 +0100

    execution disabled on certain source files; some comments on java binding; MSVC temp files added to .gitignore

 .gitignore                         | 9 +++++++++
 bindings/java/Context.cpp          | 0
 bindings/java/Socket.cpp           | 0
 bindings/java/org/zmq/Context.java | 2 ++
 bindings/java/org/zmq/Socket.java  | 2 ++
 examples/chat/display.cpp          | 0
 6 files changed, 13 insertions(+)

commit 71b4947f951f0120e4aadccb42f2452bb95dba06
Author: unknown <bundra@.(none)>
Date:   Tue Feb 23 12:02:55 2010 +0100

    Win32 build fixed

 builds/msvc/libzmq/libzmq.vcproj | 4 ++++
 1 file changed, 4 insertions(+)

commit 7c0df6ee02eb792c6afea7f047539840addb2f02
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 23 11:52:33 2010 +0100

    Java binding beautified, inline documentation added

 AUTHORS                            |   1 +
 bindings/java/Context.cpp          | 106 +++++++++++++-------
 bindings/java/Socket.cpp           | 197 ++++++++++++++++++++++++++++---------
 bindings/java/org/zmq/Context.java |  17 ++--
 bindings/java/org/zmq/Socket.java  |  59 +++++++----
 5 files changed, 267 insertions(+), 113 deletions(-)

commit ef1b5974891a30b15299464859023a531c2328f8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 23 10:01:54 2010 +0100

    minor fix in zmq_socket(3) man page

 doc/zmq_socket.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9a612ff3f74a3add607b054213d0f52e85cc426
Merge: f2495551 61f0ef56
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 22 18:19:51 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit f24955519ac0d3b0da5dd87fbb7bfc8cc1e24295
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 22 18:19:26 2010 +0100

    zmq_poll doesn't exit when infinite timeout is set and interrupt occurs

 src/zmq.cpp | 56 +++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 39 insertions(+), 17 deletions(-)

commit 61f0ef569b2f879b6b4e1f247253ceec08e774c7
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 22 18:16:40 2010 +0100

    NetBSD: Check for and use atomic_ops(3) if available

 configure.in | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

commit 3a69cca386a895313729f418ee44443794feed0f
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 22 16:42:13 2010 +0100

    Fix $build_doc/$install_man check yet again

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1294c1d33a1c73218eb94bf18ceb9dp873d08891
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Feb 21 16:58:53 2010 +0100

    typo in zmq_ipc(7) fixed

 doc/zmq_ipc.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ff99d753dp30a7b5fef730fdcf1643e2928d9993
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Sat Feb 20 21:03:12 2010 +0100

    Minor buid system tunning

 autogen.sh   | 8 ++++++++
 configure.in | 1 -
 2 files changed, 8 insertions(+), 1 deletion(-)

commit 740e531fbb47ad324737c075251c674e9dced6f1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 20 09:11:30 2010 +0100

    Aleksey Yeschenko added to the credit section of AUTHORS file

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit 57148b1fdeec0080b77ecfa837add9557226261c
Author: Martin Lucina <martin@lucina.net>
Date:   Fri Feb 19 18:23:54 2010 +0100

    Add missing check for install_man=yes

    Fixes git builds w/o asciidoc, bug introduced in 46824abe

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8b86dcf81cc7b80267f334f4f26dfd319532ad25
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 19 17:50:47 2010 +0100

    build on cygwin enabled

 AUTHORS        | 1 +
 configure.in   | 3 +++
 src/poller.hpp | 2 ++
 3 files changed, 6 insertions(+)

commit 727054547f32680f7db098497c2d7b1a0b20e2d8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 19 17:02:07 2010 +0100

    don't check for identity, if the connection is anonymous

 src/session.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit aff1f6621dp13083c7f15f7f1f808560254a2dcb
Merge: 75f571c8 2a79a943
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 19 15:25:05 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 75f571c8844231f4172f131e1dd6ba2348eb54e5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 19 15:24:43 2010 +0100

    Multi-hop REQ/REP, part XII., generate unique identities for anonymous connections

 doc/zmq_setsockopt.txt | 10 ++++++----
 src/options.cpp        |  9 +++++++++
 src/session.cpp        |  6 +++---
 src/uuid.hpp           |  6 +++---
 src/zmq_encoder.cpp    |  1 -
 src/zmq_engine.cpp     |  4 +++-
 src/zmq_init.cpp       | 40 ++++++++++++++++++++--------------------
 7 files changed, 44 insertions(+), 32 deletions(-)

commit 2a79a943de417679c562cd4a917e1d1bc19b0d25
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 18 19:38:15 2010 +0100

    Add NetBSD support

 configure.in           | 13 +++++++++++++
 src/atomic_bitmap.hpp  | 16 ++++++++--------
 src/atomic_counter.hpp | 14 +++++++-------
 src/atomic_ptr.hpp     | 14 +++++++-------
 src/ip.cpp             | 11 ++---------
 src/ip.hpp             | 10 ++++++++++
 src/kqueue.cpp         | 17 ++++++++++++++---
 src/kqueue.hpp         |  3 ++-
 src/poll.cpp           |  3 ++-
 src/poll.hpp           |  3 ++-
 src/poller.hpp         |  2 ++
 src/tcp_listener.cpp   |  2 +-
 src/uuid.cpp           |  2 +-
 src/uuid.hpp           |  4 ++--
 src/zmq.cpp            |  6 ++++--
 15 files changed, 77 insertions(+), 43 deletions(-)

commit 776b12633981fd95050e138ddpeba00a65d9532b
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 18 19:27:35 2010 +0100

    Fix typo

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ab27f84b14a317d78a9dd145ef5c82e0ef88f583
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 18 19:27:15 2010 +0100

    libstdc++ depends on libm on some platforms

 configure.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 495f0d105f809a265c34aa9a0eb20af0dcdcf283
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 18 17:29:14 2010 +0100

    Fix detection of libstdc++

    We only care about libstdc++ when using GNU C++.
    Further, libstdc++ depends on libm on some platforms, fix this.

 configure.in | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 46824abeb2b016c51f406401d965816f71189dpd
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 18 17:25:49 2010 +0100

    Never build docs from tarball releases

    This fixes the build_doc logic to work as advertised and never
    try to (re)build documentation when working with a tarball release.

 configure.in    | 14 +++++++++++---
 doc/Makefile.am |  3 ++-
 2 files changed, 13 insertions(+), 4 deletions(-)

commit 8be491b7bdb8525eb37cebf355697c566a482e2d
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 18 13:46:00 2010 +0100

    Use feature test macros more conservatively

    It turns out that feature test macros are a complete mess, and defining
    _GNU_SOURCE and _POSIX_C_SOURCE together breaks some systems. So we try
    and define the appropriate "make everything visible" combination specific
    to each system instead. This may still break something, so people should
    test their platforms and speak up if so.

 configure.in | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit d008637bc42da3fca50e423c2df0736be2745ac7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 17 21:16:59 2010 +0100

    one more attempt to fix the previous win32 problem

 src/socket_base.cpp | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit f97da5e6449b183ad3ebb9b0ba8c37ff3dc17387
Merge: e385319e 41354bfa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 17 20:33:46 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit e385319e5aaff6deafddfb216b24f026b461caa6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 17 20:33:00 2010 +0100

    recv returning -1 while errno=0 fixed

 src/socket_base.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 41354bfa9820eb4495cf98342177d036df2a7dc7
Author: unknown <bundra@.(none)>
Date:   Wed Feb 17 20:16:19 2010 +0100

    zmq_version fixed on Win32 platform

 builds/msvc/platform.hpp | 5 +++++
 1 file changed, 5 insertions(+)

commit f745c96a9bcf930d10fe31de5f7b3e772cccfa83
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Feb 17 15:40:26 2010 +0100

    Add POSIX and GNU Feature Test Macros

    This should fix more exotic POSIX platforms such as HPUX which insist on
    having _POSIX_C_SOURCE defined to get proper threading behaviour. We also
    define _GNU_SOURCE so that we get any extensions on systems with glibc, e.g.
    eventfd.

 configure.in | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

commit 9d8623b28f09f5a6db94c7d69dp264984ef1fbe3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 17 08:30:27 2010 +0100

    ZMQII-76: Bug in how replies are handled when the REQ endpoint goes away

 src/rep.cpp | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

commit 33cb20a747a2ca2c7b0487b023cfd6548ffe11e8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 16 23:31:17 2010 +0100

    ZMQII-77: Put librbzmq symbols into ZMQ module

 AUTHORS                 |  1 +
 bindings/ruby/rbzmq.cpp | 69 ++++++++++++++++++++++++++-----------------------
 perf/ruby/local_lat.rb  |  4 +--
 perf/ruby/local_thr.rb  |  6 ++---
 perf/ruby/remote_lat.rb |  4 +--
 perf/ruby/remote_thr.rb |  4 +--
 6 files changed, 46 insertions(+), 42 deletions(-)

commit 1e7878489dc5d3013b5e5858fe404ab6b4a6947a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 16 23:02:59 2010 +0100

    exconf.rb checks for libzmq.so installation

 AUTHORS                  | 1 +
 bindings/ruby/extconf.rb | 8 ++++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 8214d386c3f10dcc7f034a1159e82aa2d470829f
Merge: 4190f64d 96b26907
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 16 22:20:09 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 4190f64d8cfc3950bc456ea7793db72130d05feb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 16 22:19:33 2010 +0100

    Special exception clause added to LGPL license

 COPYING.LESSER | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit 96b2690716a811a4c782de0eccfb9affa398cfe4
Merge: 60ce5cc8 a2f9899f
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Feb 16 19:59:32 2010 +0100

    Merge branch 'master' of github.com:sustrik/zeromq2

commit 60ce5cc82a48d5881cb493a5b6b3afba19bd0863
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Feb 16 19:58:55 2010 +0100

    PGM tarball should be removed on 'distclean', not 'clean'

 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9caa319e279cd8cd367e0a64308b9e80c4ead3d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 16 18:30:38 2010 +0100

    Multi-hop REQ/REP, part XI., finalise the XREQ/XREP functionality

 src/downstream.cpp   |  2 +-
 src/downstream.hpp   |  3 ++-
 src/i_endpoint.hpp   |  4 +++-
 src/i_engine.hpp     |  9 +++++----
 src/p2p.cpp          |  2 +-
 src/p2p.hpp          |  3 ++-
 src/pgm_receiver.cpp |  8 +++++++-
 src/pgm_receiver.hpp |  3 ++-
 src/pgm_sender.cpp   |  8 +++++++-
 src/pgm_sender.hpp   |  3 ++-
 src/pub.cpp          |  2 +-
 src/pub.hpp          |  3 ++-
 src/rep.cpp          |  2 +-
 src/rep.hpp          |  3 ++-
 src/req.cpp          |  2 +-
 src/req.hpp          |  3 ++-
 src/session.cpp      |  7 ++++++-
 src/session.hpp      |  3 ++-
 src/socket_base.cpp  | 12 ++++++------
 src/socket_base.hpp  |  5 +++--
 src/sub.cpp          |  2 +-
 src/sub.hpp          |  3 ++-
 src/upstream.cpp     |  2 +-
 src/upstream.hpp     |  3 ++-
 src/xrep.cpp         | 51 +++++++++++++++++++++++++++++++++++++++++++++------
 src/xrep.hpp         | 10 +++++++++-
 src/xreq.cpp         |  2 +-
 src/xreq.hpp         |  3 ++-
 src/zmq_decoder.cpp  | 48 ++++++++++++++++++++++++++++++------------------
 src/zmq_encoder.cpp  | 15 +++++++++++----
 src/zmq_engine.cpp   | 10 +++++++---
 src/zmq_engine.hpp   |  3 ++-
 src/zmq_init.cpp     |  6 +-----
 33 files changed, 172 insertions(+), 73 deletions(-)

commit 2ddce205350f11dacd8d8550f7d4e6e088c7fbcd
Merge: 43620b3d a2f9899f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 16 18:03:41 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit a2f9899f6a1fad3f9c73fc7599445bdde0b95ec4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 16 17:50:36 2010 +0100

    missing COPYING file added

 .gitignore       |   1 -
 COPYING          | 674 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/zmq_poll.txt |   3 +-
 3 files changed, 676 insertions(+), 2 deletions(-)

commit afb526f31a82b8697b5f7e73e50b14705a3a74b2
Author: Martin Lucina <martin@lucina.net>
Date:   Tue Feb 16 00:11:38 2010 +0100

    Fix 'make dist' to work with no special magic

 bindings/java/Makefile.am | 13 +++++++------
 perf/c/Makefile.am        |  4 ++--
 2 files changed, 9 insertions(+), 8 deletions(-)

commit 8e9b78af271dp54882abf3010260d1e80ddd70f2
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 23:59:35 2010 +0100

    Correct path for pgm distclean

 Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit df0c18ca17aa0dcd0e9f3737666a794b943f0982
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 23:54:49 2010 +0100

    Missed one instance of pgm2

 Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit b09eeeb2fac380da1e3455cdf97278850842e1c8
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 23:52:08 2010 +0100

    Update gitignore

 .gitignore | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 80c820d758aa65d71fbf4a24fd59d11de1f72fa5
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 23:51:05 2010 +0100

    Cleaning up more PGM cruft

 Makefile.am        |  3 +++
 configure.in       | 65 +++++++++++++++++++-----------------------------------
 perf/c/Makefile.am |  4 ++--
 src/Makefile.am    | 12 +++++++---
 4 files changed, 37 insertions(+), 47 deletions(-)

commit 635e314643885ce8508ee64632bed7d6228fe8b6
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 23:09:57 2010 +0100

    Clarify python.h messages

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 55800cea8c63ea84bd99e4c660ef1fd17a353e32
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 23:02:24 2010 +0100

    Fix typo

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5687661ba4a1ecf70e130047dc288cb6cff6f21a
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 22:58:45 2010 +0100

    Cleanup messages from configure.in

 configure.in | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

commit 48a90cfb347bc983362ce2bc021591d513d6a5ec
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 22:25:01 2010 +0100

    Replace check for sparc with host_cpu

 configure.in | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)

commit 0ded6c1973596436d7e5c54cfb89ada4d6c7473d
Author: Martin Lucina <martin@lucina.net>
Date:   Mon Feb 15 22:17:18 2010 +0100

    Multiple fixes to --with-pgm

    Disallow build --with-pgm on non-x86/AMB64 CPUs
    Check correctly for all dependencies required by --with-pgm
    Don't assume tar has -j
    Reorder --with-pgm checks

 configure.in | 78 +++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 46 insertions(+), 32 deletions(-)

commit 94c74d5c18183b49507d633c7b06713841cfcb03
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 15 21:04:34 2010 +0100

    Brian Granger added to credits list

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit f96f53c9687b5a032ef45ce42154a7f944492eec
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 15 21:03:11 2010 +0100

    ZMQ_POLLERR placeholder added to zmq.h

 bindings/c/zmq.h | 1 +
 1 file changed, 1 insertion(+)

commit 5041b0bc0bce43e5b6d8b6c6264141d33f3c2a7c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 15 20:35:00 2010 +0100

    fixing the previous commit :(

 src/ip.cpp | 1 -
 1 file changed, 1 deletion(-)

commit 7778010d76e6da534307ca3f0a3506d3d7f0ec5d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 15 19:58:47 2010 +0100

    care taken of the fact that AI_NUMERICSERV is not defined on OSX 10.5

 src/ip.cpp | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 817c89a78ea7b773046b010ca129fd1206e1c8f0
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Feb 15 19:42:05 2010 +0100

    removed first dummy run of PKG_CHECK_EXISTS

 configure.in | 5 -----
 1 file changed, 5 deletions(-)

commit 43620b3d35e3f3a6e49046fdc0426651bf58dedb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Feb 14 13:34:48 2010 +0100

    Multi-hop REQ/REP, part X., optional delayed creation of pipes during connect

 src/options.cpp     |  1 +
 src/options.hpp     |  6 ++++++
 src/rep.cpp         |  5 +++++
 src/session.cpp     | 46 +++++++++++++++++++++-----------------------
 src/socket_base.cpp | 55 ++++++++++++++++++++++++++++++++++-------------------
 src/xrep.cpp        |  4 ++++
 6 files changed, 73 insertions(+), 44 deletions(-)

commit 4405250d93a2ad6eb3940c4bc4fe8ea32bd52f9e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 13 15:30:03 2010 +0100

    Multi-hop REQ/REP, part IX., pass the peer identity as far as socket_base_t

 src/command.cpp     |  4 ++++
 src/command.hpp     |  2 ++
 src/object.cpp      | 28 ++++++++++++++++++++++++----
 src/object.hpp      |  4 ++--
 src/options.cpp     |  2 +-
 src/options.hpp     |  5 ++---
 src/pgm_socket.cpp  |  7 +++++--
 src/session.cpp     |  2 +-
 src/socket_base.cpp |  5 +++--
 src/socket_base.hpp |  3 ++-
 10 files changed, 46 insertions(+), 16 deletions(-)

commit f5ce81f2893ec0707c2f4346740878e68b51e13a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 13 14:07:30 2010 +0100

    Multi-hop REQ/REP, part VIII., new blob_t type used for holding identity

 src/Makefile.am      |  1 +
 src/blob.hpp         | 33 +++++++++++++++++++++++++++++++++
 src/i_engine.hpp     |  5 +++--
 src/object.cpp       | 19 +++++++++----------
 src/object.hpp       |  7 ++++---
 src/pgm_receiver.cpp |  3 +--
 src/pgm_receiver.hpp |  2 +-
 src/pgm_sender.cpp   |  3 +--
 src/pgm_sender.hpp   |  2 +-
 src/session.cpp      | 32 +++++++++++---------------------
 src/session.hpp      | 13 +++++--------
 src/socket_base.cpp  | 24 ++++++++++--------------
 src/socket_base.hpp  | 14 ++++++--------
 src/zmq_decoder.cpp  | 34 +++++++++++++---------------------
 src/zmq_decoder.hpp  |  6 +++---
 src/zmq_engine.cpp   |  5 ++---
 src/zmq_engine.hpp   |  2 +-
 src/zmq_init.cpp     | 17 ++++++-----------
 src/zmq_init.hpp     |  5 ++---
 19 files changed, 113 insertions(+), 114 deletions(-)

commit cdc2efe9b5f0d1f45065b1c32e5eabd7e9f78a12
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 13 13:07:33 2010 +0100

    Multi-hop REQ/REP, part VII., identity-related algorithms rewritten

 src/session.cpp     | 114 +++++++++++++++++++++++++++++++---------------------
 src/session.hpp     |  10 +----
 src/socket_base.cpp |  25 +++++++-----
 src/socket_base.hpp |   9 +++--
 src/zmq_init.cpp    |   4 +-
 5 files changed, 93 insertions(+), 69 deletions(-)

commit 923eacd28a725a6b32de588fe7a54dbe252d84aa
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Feb 13 09:09:40 2010 +0100

    Multi-hop REQ/REP, part VI., session 'name' renamed to 'peer_identity'

 src/session.cpp  | 16 ++++++++--------
 src/session.hpp  | 14 +++++++++-----
 src/zmq_init.cpp |  7 ++++---
 3 files changed, 21 insertions(+), 16 deletions(-)

commit 2e78e48503375a415d95ee8df80df9c065172abc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 12 20:49:00 2010 +0100

    Multi-hop REQ/REP, part V., peer identity is passed from init object to session

 src/command.cpp  | 10 ++++++++++
 src/command.hpp  |  2 ++
 src/object.cpp   | 22 ++++++++++++++++++++--
 src/object.hpp   |  6 ++++--
 src/session.cpp  |  3 ++-
 src/session.hpp  |  3 ++-
 src/zmq_init.cpp |  3 ++-
 7 files changed, 42 insertions(+), 7 deletions(-)

commit d8430f4b9a43bf8c99854298edc9f1bc35c0e8ec
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 12 20:03:02 2010 +0100

    Multi-hop REQ/REP, part IV., add command deallocation mechanism

 src/Makefile.am    |  1 +
 src/command.cpp    | 24 ++++++++++++++++++++++++
 src/command.hpp    |  3 +++
 src/dispatcher.cpp |  4 ++++
 src/object.cpp     | 18 +++++++++++-------
 5 files changed, 43 insertions(+), 7 deletions(-)

commit 313b5dfadd8753b341197cc109bce40e08856cf6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 12 19:42:35 2010 +0100

    Multi-hop REQ/REP, part III., change 'type' in options to simple 'traceroute' flag

 src/downstream.cpp | 1 -
 src/options.cpp    | 4 ++--
 src/options.hpp    | 6 +++---
 src/p2p.cpp        | 1 -
 src/pub.cpp        | 1 -
 src/rep.cpp        | 1 -
 src/req.cpp        | 1 -
 src/sub.cpp        | 1 -
 src/upstream.cpp   | 1 -
 src/xrep.cpp       | 5 ++++-
 src/xreq.cpp       | 1 -
 src/zmq_init.cpp   | 2 +-
 12 files changed, 10 insertions(+), 15 deletions(-)

commit 96e0442332fcc680ddafdcaa8fcbdc6acd992c76
Merge: 36a57637 dc8f4b1b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 12 15:58:22 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 36a576370ccfed3c104850b5b95a6ed3870edbea
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 12 15:57:54 2010 +0100

    Multi-hop REQ/REP, part I., tracerouting switched on on XREP socket

 src/i_engine.hpp     |  8 ++++++++
 src/pgm_receiver.cpp |  9 ++++++++-
 src/pgm_receiver.hpp |  1 +
 src/pgm_sender.cpp   |  9 ++++++++-
 src/pgm_sender.hpp   |  1 +
 src/zmq_decoder.cpp  | 27 +++++++++++++--------------
 src/zmq_decoder.hpp  |  6 +++++-
 src/zmq_encoder.cpp  | 13 +++++++++----
 src/zmq_encoder.hpp  |  8 ++++++--
 src/zmq_engine.cpp   | 11 +++++++++--
 src/zmq_engine.hpp   |  1 +
 src/zmq_init.cpp     |  6 ++++++
 12 files changed, 75 insertions(+), 25 deletions(-)

commit dc8f4b1b761103784b422b7604bc8f36d429d3f4
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Feb 12 15:08:57 2010 +0100

    Fix memory leak in bind()

 src/socket_base.cpp  | 4 +++-
 src/zmq_listener.hpp | 3 +--
 2 files changed, 4 insertions(+), 3 deletions(-)

commit 7b4cf2a4d040057f6f378cac2cd125513a859c1b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 12 13:33:50 2010 +0100

    Multi-hop REQ/REP, part I., socket type is known to all associated objects

 src/downstream.cpp | 1 +
 src/options.cpp    | 1 +
 src/options.hpp    | 3 +++
 src/p2p.cpp        | 1 +
 src/pub.cpp        | 1 +
 src/rep.cpp        | 1 +
 src/req.cpp        | 1 +
 src/sub.cpp        | 1 +
 src/upstream.cpp   | 1 +
 src/xrep.cpp       | 1 +
 src/xreq.cpp       | 1 +
 11 files changed, 13 insertions(+)

commit cd7300fd4f25754f844b17a77685ec837ebecbbb
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Fri Feb 12 12:12:49 2010 +0100

    Resolve command starvation in recv()

 src/socket_base.cpp | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit 7f7ac843d58b3d8a77f681fa4c35bd21726b6f31
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 11 17:51:47 2010 +0100

    Next 0MQ release will be 2.0.6

    As decided on the mailing list, there have been five 2.x releases to
    date, so the upcoming release will be numbered 2.0.6.

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit de41c9da31246314bb2b0c55dfe3b2884d48df3b
Merge: 30b967e2 92d0147b
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 11 17:51:08 2010 +0100

    Merge branch 'master' of github.com:sustrik/zeromq2

commit 30b967e2a439ce76b1141d34fa3c8ee9f87a88a8
Author: Martin Lucina <martin@lucina.net>
Date:   Thu Feb 11 17:49:40 2010 +0100

    Integrate version numbering into autoconf

    configure.in is now the master source for the package version number,
    this propagates to src/platform.hpp (for zmq_version) and doc/Makefile.am
    (for documentation generation) automagically.

 configure.in      | 28 +++++++++++++++++++++++++++-
 doc/Makefile.am   |  6 ++++--
 doc/asciidoc.conf |  2 +-
 src/config.hpp    |  5 -----
 src/zmq.cpp       |  6 +++---
 5 files changed, 35 insertions(+), 12 deletions(-)

commit 92d0147b20f77cad5d20e257dpc502f628e7889e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 11 16:50:40 2010 +0100

    python binding build with 2.4 version of python fixed

 bindings/python/pyzmq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 432fbd796bb4905fb19ceee802009b17e88e9256
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 11 10:43:59 2010 +0100

    ZMQII-72: Add zmq_version function (documentation)

 doc/Makefile.am     |  4 ++--
 doc/zmq_version.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 2 deletions(-)

commit bd9213e71222df66634d59581264ffe67210222c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 11 10:29:33 2010 +0100

    ZMQII-72: Add zmq_version function

 bindings/c/zmq.h | 6 ++++++
 src/config.hpp   | 4 ++++
 src/zmq.cpp      | 8 ++++++++
 3 files changed, 18 insertions(+)

commit 7cab423fc20e46f54fa561e51b566cc8a63ca5c1
Merge: bc9b7f1f 354efc51
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Feb 10 17:14:21 2010 +0100

    Merge branch 'master' of github.com:sustrik/zeromq2

commit bc9b7f1f54b9dcf754021f1f7eb766d71cc97f29
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Feb 10 12:48:04 2010 +0100

    lb: bugfix - never skip active pipe when sending msg

 src/lb.cpp | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

commit 6b3c1798e7554dd1ce63b2ad137e327f3f32fcf1
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Feb 10 12:47:34 2010 +0100

    fq: bugfix - don't read msg from inactive pipe

 src/fq.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 354efc513fdb4096f8830e6c2e3e8f1311303e61
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Feb 10 16:18:46 2010 +0100

    Convert documentation to AsciiDoc

 .gitignore                                         |   5 +
 Makefile.am                                        |   8 +-
 configure.in                                       |  19 ++-
 doc/Makefile.am                                    |  41 ++++++
 doc/asciidoc.conf                                  |  34 +++++
 man/man7/zmq.7 => doc/zmq.txt                      | 162 ++++++++++++---------
 doc/zmq_bind.txt                                   |  67 +++++++++
 doc/zmq_close.txt                                  |  52 +++++++
 doc/zmq_connect.txt                                |  63 ++++++++
 doc/zmq_cpp.txt                                    |  89 +++++++++++
 man/man3/zmq_flush.3 => doc/zmq_flush.txt          |  66 ++++++---
 doc/zmq_forwarder.txt                              |  32 ++++
 doc/zmq_init.txt                                   |  61 ++++++++
 man/man7/zmq_inproc.7 => doc/zmq_inproc.txt        |  44 +++---
 man/man7/zmq_ipc.7 => doc/zmq_ipc.txt              |  40 +++--
 doc/zmq_java.txt                                   |  27 ++++
 doc/zmq_msg_close.txt                              |  53 +++++++
 doc/zmq_msg_copy.txt                               |  60 ++++++++
 doc/zmq_msg_data.txt                               |  50 +++++++
 doc/zmq_msg_init.txt                               |  54 +++++++
 doc/zmq_msg_init_data.txt                          |  67 +++++++++
 doc/zmq_msg_init_size.txt                          |  61 ++++++++
 doc/zmq_msg_move.txt                               |  55 +++++++
 doc/zmq_msg_size.txt                               |  53 +++++++
 man/man7/zmq_pgm.7 => doc/zmq_pgm.txt              |  72 +++++----
 doc/zmq_poll.txt                                   |  85 +++++++++++
 doc/zmq_python.txt                                 |  27 ++++
 doc/zmq_queue.txt                                  |  32 ++++
 man/man3/zmq_recv.3 => doc/zmq_recv.txt            |  84 ++++++-----
 doc/zmq_send.txt                                   |  77 ++++++++++
 .../zmq_setsockopt.3 => doc/zmq_setsockopt.txt     | 128 +++++++++-------
 doc/zmq_socket.txt                                 | 126 ++++++++++++++++
 doc/zmq_streamer.txt                               |  32 ++++
 doc/zmq_strerror.txt                               |  50 +++++++
 man/man7/zmq_tcp.7 => doc/zmq_tcp.txt              |  49 ++++---
 doc/zmq_term.txt                                   |  49 +++++++
 man/man7/zmq_udp.7 => doc/zmq_udp.txt              |  41 ++++--
 man/Makefile.am                                    |  22 ---
 man/convert2html.sh                                |  55 -------
 man/convert2pdf.sh                                 |  88 -----------
 man/man1/zmq_forwarder.1                           |  11 --
 man/man1/zmq_queue.1                               |  11 --
 man/man1/zmq_streamer.1                            |  11 --
 man/man3/zmq_bind.3                                |  52 -------
 man/man3/zmq_close.3                               |  30 ----
 man/man3/zmq_connect.3                             |  49 -------
 man/man3/zmq_init.3                                |  40 -----
 man/man3/zmq_msg_close.3                           |  32 ----
 man/man3/zmq_msg_copy.3                            |  43 ------
 man/man3/zmq_msg_data.3                            |  27 ----
 man/man3/zmq_msg_init.3                            |  33 -----
 man/man3/zmq_msg_init_data.3                       |  55 -------
 man/man3/zmq_msg_init_size.3                       |  44 ------
 man/man3/zmq_msg_move.3                            |  38 -----
 man/man3/zmq_msg_size.3                            |  30 ----
 man/man3/zmq_poll.3                                |  71 ---------
 man/man3/zmq_send.3                                |  64 --------
 man/man3/zmq_socket.3                              | 110 --------------
 man/man3/zmq_strerror.3                            |  27 ----
 man/man3/zmq_term.3                                |  25 ----
 man/man7/zmq_cl.7                                  | 124 ----------------
 man/man7/zmq_cpp.7                                 | 103 -------------
 man/man7/zmq_java.7                                |   9 --
 man/man7/zmq_python.7                              |   9 --
 64 files changed, 1827 insertions(+), 1501 deletions(-)

commit 2d44bf3644c8e12aa86c48e9da4df19bfa9ea703
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 10 11:04:28 2010 +0100

    ZMQII-69: Make 0MQ build on HP-UX

 src/fd_signaler.cpp   | 4 ++--
 src/tcp_connecter.cpp | 6 +++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 8c25bab31d63bf5e2c4eec6d9084cf7d1c1e5dd3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 10 10:42:54 2010 +0100

    ZMQII-70: zmq_poll on win32 fails with EINVAL

 src/zmq.cpp | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

commit 8f86cac2f6721eec4b600383eb113f7fedf41ce1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 9 19:23:15 2010 +0100

    ZMQII-69: Make 0MQ build on HP-UX

 src/fd_signaler.cpp   | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ip.cpp            |  4 +--
 src/tcp_connecter.hpp |  9 +++++-
 3 files changed, 87 insertions(+), 4 deletions(-)

commit fd673dp231119682a242967551cfa034fa32791a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 9 15:21:26 2010 +0100

    couple of typos in the documentation fixed

 examples/chat/README | 2 +-
 man/man3/zmq_term.3  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 6b2ca4e158c3394f5aba8f0f01ff1734423683f9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 9 15:15:44 2010 +0100

    ZMQII-67: Build checks for python even if it's not needed

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4c870ede7fdecaf1f952b01096e09cc03a7c7dpf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 9 09:08:37 2010 +0100

    ZMQII-57: Shutdown OpenPGM library

 src/pgm_socket.cpp | 31 +------------------------------
 src/zmq.cpp        | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 47 insertions(+), 31 deletions(-)

commit 396e41a2a4b31f91ef4c4458d53be9e3a9b4bb92
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 8 18:55:51 2010 +0100

    minor change to README

 README | 2 --
 1 file changed, 2 deletions(-)

commit 01533a5dpfb49e23be95cab9cfa5ca32cd438d25
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 8 18:37:48 2010 +0100

    ZMQII-65: Two OS threads are mapped to the same app_thread_t

 src/app_thread.cpp | 23 +++-------------
 src/app_thread.hpp | 19 -------------
 src/dispatcher.cpp | 79 ++++++++++++++++++++++++++++++++++--------------------
 src/dispatcher.hpp | 29 +++++++++++++++-----
 4 files changed, 76 insertions(+), 74 deletions(-)

commit 7593d815ac57f2877480c5056b2f1aa65460f5c3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Feb 8 10:34:12 2010 +0100

     ZMQII-64: First message stuck in 0MQ in case of immediate disconnection

 src/zmq_engine.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 427bc3276aa236c8691fee7e634717d0579a3055
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Feb 7 16:24:14 2010 +0100

    minor code cleanup

 src/socket_base.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b0ee6b0c8ab8a5052a5e111dda24308dd00c0d62
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Feb 7 11:31:05 2010 +0100

    ZMQII-62: zmq_close after sending message via P2P socket fails

 src/p2p.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit bbaa494fb569d94c356ddecca7dbf249ffc217cf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Feb 7 09:14:43 2010 +0100

    ZMQII-59: TCP server crashes sometimes when message is send and socket is closed immediately

 src/dispatcher.cpp | 23 +++++++++++++++++++++++
 src/dispatcher.hpp | 16 ++--------------
 src/object.cpp     | 12 +++++-------
 3 files changed, 30 insertions(+), 21 deletions(-)

commit d21bf21a362cf6d20d8d060bb91ee2fdca1dd88b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Feb 5 13:00:49 2010 +0100

    allow async connect on Win32 return WSdpCONNABORTED

 src/tcp_connecter.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0888fcd06f1c66ec3dfab744bfc24d1486737c7e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 4 23:58:41 2010 +0100

    yqueue_t uses malloc/free instead of new/delete

 src/yqueue.hpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 30076c4f7a5b0c70ef0c5a6574cac531bc996f5e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 4 17:46:47 2010 +0100

    ZMQII-58: TCP connecting asserts on Win32 (same fix for POSIX)

 src/tcp_connecter.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c46b7ed1978ead346022577ff015b092f3257c84
Author: unknown <bundra@.(none)>
Date:   Thu Feb 4 17:40:04 2010 +0100

    ZMQII-58: TCP connecting asserts on Win32

 src/tcp_connecter.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b86483acbe109566f4e0fb43266fdd98e7648d55
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 4 14:50:59 2010 +0100

    ZMQII-50: Document Ruby Bindings

 man/Makefile.am     | 2 +-
 man/convert2html.sh | 1 -
 man/convert2pdf.sh  | 2 --
 man/man7/zmq_ruby.7 | 9 ---------
 4 files changed, 1 insertion(+), 13 deletions(-)

commit bc90231227a84f4b7dffe432a8efa70b75c19031
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Feb 4 09:39:57 2010 +0100

    contrain interface name resolving in OpenPGM to IPv4 interfaces

 src/pgm_socket.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 0f697fe2b460dfbec7481f6d535b95f6b4cc2eac
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 3 20:04:44 2010 +0100

    ZMQII-56: Avoid allocation of chunk in yqueue.hpp by keeping a spare one

 AUTHORS        |  1 +
 src/yqueue.hpp | 31 ++++++++++++++++++++++++++-----
 2 files changed, 27 insertions(+), 5 deletions(-)

commit 72bbc92b70a67fab1dbba6fbd53f574944bdd8e4
Merge: 6502c16a 4172fdd6
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Feb 3 15:54:39 2010 +0100

    Merge branch 'master' of github.com:sustrik/zeromq2

commit 6502c16a7fd878e61f0672a47e2cdb4d56ab0eb2
Author: Martin Lucina <martin@lucina.net>
Date:   Wed Feb 3 15:52:11 2010 +0100

    Update OpenPGM to 2.0.23rc8

 configure.in                             |  10 +++++-----
 foreign/openpgm/libpgm-2.0.21rc6.tar.bz2 | Bin 323697 -> 0 bytes
 foreign/openpgm/libpgm-2.0.23rc8.tar.bz2 | Bin 0 -> 321822 bytes
 src/Makefile.am                          |   3 ++-
 4 files changed, 7 insertions(+), 6 deletions(-)

commit 4172fdd6970d4b42443442bf6633f9a9bd4c6f2b
Author: unknown <bundra@.(none)>
Date:   Wed Feb 3 14:55:46 2010 +0100

    Win32 build fixed

 builds/msvc/libzmq/libzmq.vcproj |  8 +++++
 builds/msvc/msvc.sln             |  9 ++++++
 builds/msvc/ruby/ruby.vcproj     | 68 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 85 insertions(+)

commit 7c25feb51bdbc9563cc65ff4829f761ef7231483
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Feb 3 13:06:34 2010 +0100

    ZMQII-55: At most one PGM/UDP transport can be opened

 src/pgm_socket.cpp | 38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

commit 9cee8f9c3e22f1e880988271ab1c31c92827efde
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 2 15:11:25 2010 +0100

    problem with PGM messages larger than 1 MTU fixed

 src/pgm_receiver.cpp | 124 ++++++++++++++++++++++++++-------------------------
 1 file changed, 64 insertions(+), 60 deletions(-)

commit 27e47bdcc0358b84a57378e19359556e2dbcb50e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 2 13:29:31 2010 +0100

    ZMQII-54: Affinity isn't honoured

 src/dispatcher.cpp | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit 5d16070ffcd426e81ea27520f6847d68e5e5af80
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 2 08:46:35 2010 +0100

    ZMQII-53: Memory leak when using invalid socket type

 src/dispatcher.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit a1e70f29575994798df1d57314193782f6d9cdcb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 2 08:27:38 2010 +0100

    ZMQII-52: Asserion during reconnection

 src/zmq_init.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 528610ff55ef283b99cbcda007200a6b4092be59
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Feb 2 08:14:23 2010 +0100

    typo in zmq_socket(3) man page fixed

 man/man3/zmq_socket.3 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 00b9a5dedeb47efd78dpa59b579a4b5befba743a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jan 31 20:14:30 2010 +0100

    ZMQII-51: Implement O(1) topic matching

 src/Makefile.am     |   2 +
 src/prefix_tree.cpp | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/prefix_tree.hpp |  55 +++++++++++++++++
 src/sub.cpp         |  44 ++-----------
 src/sub.hpp         |  13 ++--
 5 files changed, 242 insertions(+), 47 deletions(-)

commit 70ea8e9d4b88a1ecb1c076eccc2e9bd872c2230c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 30 13:40:50 2010 +0100

    ZMQII-48: Implement P2P socket type

 src/p2p.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
 src/p2p.hpp |  5 +++++
 2 files changed, 49 insertions(+), 12 deletions(-)

commit eb47c1b064ec2f433d3889b7fd4a297a965166bb
Merge: 2784f90d 4d5e6432
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 29 08:39:36 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 2784f90d595a253e071244d440f78e667f6a957c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 29 08:39:19 2010 +0100

    moving debian directory to the root of the project

 {packages/debian => debian}/README.Debian            | 0
 {packages/debian => debian}/changelog                | 0
 {packages/debian => debian}/cl-zeromq.files          | 0
 {packages/debian => debian}/cl-zeromq.install        | 0
 {packages/debian => debian}/cl-zeromq.links          | 0
 {packages/debian => debian}/compat                   | 0
 {packages/debian => debian}/control                  | 0
 {packages/debian => debian}/copyright                | 0
 {packages/debian => debian}/dirs                     | 0
 {packages/debian => debian}/docs                     | 0
 {packages/debian => debian}/libzeromq-dev.files      | 0
 {packages/debian => debian}/libzeromq-dev.install    | 0
 {packages/debian => debian}/libzeromq-python.files   | 0
 {packages/debian => debian}/libzeromq-python.install | 0
 {packages/debian => debian}/libzeromq-ruby.files     | 0
 {packages/debian => debian}/libzeromq-ruby.install   | 0
 {packages/debian => debian}/libzeromq0.files         | 0
 {packages/debian => debian}/libzeromq0.install       | 0
 {packages/debian => debian}/rules                    | 0
 {packages/debian => debian}/shlibs.local             | 0
 {packages/debian => debian}/zeromq-examples.files    | 0
 {packages/debian => debian}/zeromq-examples.install  | 0
 {packages/debian => debian}/zeromq-perf.files        | 0
 {packages/debian => debian}/zeromq-perf.install      | 0
 {packages/debian => debian}/zeromq-utils.files       | 0
 {packages/debian => debian}/zeromq-utils.install     | 0
 26 files changed, 0 insertions(+), 0 deletions(-)

commit 4d5e643299e22b53120173319490957b98c0199e
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Jan 28 19:19:25 2010 +0100

    patching libtool script moved at the end of configure

 configure.in | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 849095a042b8326f5789baa04d1dbb7ca36d4632
Merge: f17f0fa6 e5ff617c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 28 12:45:37 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit f17f0fa67bc5a373f3fc7964aaad4f08aa1dc761
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 28 12:45:12 2010 +0100

    CL binding ripped out of the tree

 .gitignore                  |   3 +
 bindings/Makefile.am        |   8 +-
 bindings/cl/Makefile.am     |   9 --
 bindings/cl/meta.lisp       |  59 -----------
 bindings/cl/package.lisp    | 108 -------------------
 bindings/cl/zeromq-api.lisp | 180 -------------------------------
 bindings/cl/zeromq.asd      |  38 -------
 bindings/cl/zeromq.lisp     | 250 --------------------------------------------
 configure.in                |  21 ----
 perf/Makefile.am            |   2 +-
 perf/cl/Makefile.am         |   2 -
 perf/cl/lat-parms.lisp      |  22 ----
 perf/cl/local-lat-poll.lisp |  43 --------
 perf/cl/local-lat.lisp      |  52 ---------
 perf/cl/local-thr.lisp      |  54 ----------
 perf/cl/remote-lat.lisp     |  50 ---------
 perf/cl/remote-thr.lisp     |  41 --------
 perf/cl/thr-parms.lisp      |  25 -----
 18 files changed, 6 insertions(+), 961 deletions(-)

commit e5ff617c4e061d29c9a019efa2292fd09c87a71e
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Jan 27 20:58:40 2010 +0100

    fixed OpenPGM compilation on mingw32

 src/windows.hpp | 4 ++++
 1 file changed, 4 insertions(+)

commit 8f57ff4634dp44cd998bc0b864a8987f241e2fce
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Jan 27 20:45:43 2010 +0100

    fixed OpenPGM compilation on mingw32

 perf/c/Makefile.am | 1 +
 src/Makefile.am    | 1 +
 2 files changed, 2 insertions(+)

commit 2056c888d2567ab96c3539fd60bfb652e19df335
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Jan 27 18:29:45 2010 +0100

    changed version of the master branch back to dev

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0b97e7a4f23f7add763ac6e0fc945c9a342a7d32
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Jan 27 11:30:22 2010 +0100

    libpgm updated to 2.6.21rc6

 configure.in                             |  12 ++++++------
 foreign/openpgm/libpgm-2.0.20rc5.tar.bz2 | Bin 316958 -> 0 bytes
 foreign/openpgm/libpgm-2.0.21rc6.tar.bz2 | Bin 0 -> 323697 bytes
 perf/c/Makefile.am                       |   6 ++++++
 src/Makefile.am                          |  13 +++++++++++--
 src/pgm_socket.cpp                       |  25 +++++++++++++++++++------
 6 files changed, 42 insertions(+), 14 deletions(-)

commit 943125bd12dbf181f4dfce7babddf1af7bcb7e18
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 27 08:47:01 2010 +0100

    Hard-wired constant on OpenVMS replaced by symbolic constant

 src/fd_signaler.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit aa27034db5d47f4630f464da53f63a0e62c34daa
Author: unknown <bundra@.(none)>
Date:   Sun Jan 24 08:38:18 2010 +0100

    IPv6 patch - part V. (win32)

 src/ip.cpp | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

commit adc5d7693d9279134c0494210b9d2b885e95d950
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jan 24 08:19:02 2010 +0100

    IPv6 patch - part IV.

 src/ip.cpp | 41 ++++++++++++++++++++++++++++++++++-------
 1 file changed, 34 insertions(+), 7 deletions(-)

commit fca9a2159a1fb963901d11dc6f734a622baa92d6
Merge: 079d3276 454f43a4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 23 11:14:53 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 079d327670d9137d93f4dbe9eb6cfa6d4165b903
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 23 11:14:30 2010 +0100

    IPv6 patch - part III.

 src/ip.cpp | 42 ++++++++++++++++++++++++------------------
 1 file changed, 24 insertions(+), 18 deletions(-)

commit 454f43a45b2d453b53984387e8a8a50cad568f41
Author: unknown <bundra@.(none)>
Date:   Sat Jan 23 09:08:31 2010 +0100

    IP address resolving on Win32 fixed

 src/ip.cpp | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

commit df4548aa76617314cb1a47e6d408cc663640cd70
Merge: 26349349 d762e1a9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 23 08:20:01 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 2634934999408124837afceaf577b75ed58116d7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 23 08:19:30 2010 +0100

    IPv6 patch part 2/2

 src/ip.cpp            | 26 +++++++++++++++++++-------
 src/ip.hpp            | 11 +++++++----
 src/tcp_connecter.cpp | 17 ++++++++++-------
 src/tcp_connecter.hpp |  1 +
 src/tcp_listener.cpp  | 11 ++++++-----
 src/tcp_listener.hpp  |  1 +
 6 files changed, 44 insertions(+), 23 deletions(-)

commit 6aaf095dd259dc42d78cc7bd8c5a7f867eb23166
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 22 16:32:48 2010 +0100

    IPv6 support -part II.

 src/ip.cpp | 162 +++++++++++++++++++++++--------------------------------------
 1 file changed, 62 insertions(+), 100 deletions(-)

commit d762e1a9c976680dde2d2f38dac9f5861bd82dad
Author: unknown <bundra@.(none)>
Date:   Fri Jan 22 13:29:46 2010 +0100

    Win32 build fixed

 bindings/cpp/zmq.hpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 34d65e22c557671c74d6c51026b2434912966319
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 22 13:13:52 2010 +0100

    Tero Marttila's Ipv6 patch - part I.

 src/fd_signaler.cpp   |  1 -
 src/ip.cpp            | 24 ++++++++++++++----------
 src/ip.hpp            |  6 +++---
 src/tcp_connecter.cpp | 17 +++++++++--------
 src/tcp_connecter.hpp |  2 +-
 src/tcp_listener.cpp  | 16 ++++++++--------
 6 files changed, 35 insertions(+), 31 deletions(-)

commit 6edec4fe93c60693a5fdpe7e4e8821eac4f43d4d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 22 11:38:17 2010 +0100

    zmq_udp(7) man page fixed

 man/man7/zmq_udp.7 | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 70601c243fa7e91f5cceaa80190d7b413940020b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 22 11:21:28 2010 +0100

    zmq_pgm(7) man page fixed

 man/man7/zmq_pgm.7 | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d1e09578b275aca93c50cde078322a0348342c60
Author: unknown <bundra@.(none)>
Date:   Fri Jan 22 07:54:16 2010 +0100

    Hardcoded loopback address removed from fd_signaler

 AUTHORS             | 1 +
 src/fd_signaler.cpp | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit f4832faf29df6470bf59f1f1866c07fa4278a75b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 21 16:30:42 2010 +0100

    small fix to man pages to comply with lintian

 man/Makefile.am       | 2 +-
 man/convert2html.sh   | 1 +
 man/convert2pdf.sh    | 2 ++
 man/man7/zmq_cl.7     | 2 +-
 man/man7/zmq_cpp.7    | 2 +-
 man/man7/zmq_inproc.7 | 2 +-
 man/man7/zmq_ipc.7    | 2 +-
 man/man7/zmq_java.7   | 9 +++++++++
 man/man7/zmq_pgm.7    | 2 +-
 man/man7/zmq_python.7 | 2 +-
 man/man7/zmq_ruby.7   | 2 +-
 man/man7/zmq_tcp.7    | 2 +-
 man/man7/zmq_udp.7    | 2 +-
 13 files changed, 22 insertions(+), 10 deletions(-)

commit b1b66df37c0b05ba05d9636234bad0cc02a1bd03
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 21 12:07:42 2010 +0100

    PGM man page improved

 man/man7/zmq_pgm.7 | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 66ef22993f22a0d47703c1203f57d95c4316bc70
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 21 10:38:40 2010 +0100

    zmq_close man page improved

 man/man3/zmq_close.3 | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit a008af6088ef1ad3baf1b9e6dp699cc07367efa3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 21 10:01:05 2010 +0100

    Asko Kauppi added to the list of authors

 AUTHORS | 1 +
 1 file changed, 1 insertion(+)

commit f0757c003eb232247a460631276b40e4fc02f3c9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 21 09:58:49 2010 +0100

    ZMQII-43: Race condition when writing to pipe

 src/session.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a46ca75e5970733cfe135ecf77074b69fdda34f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 20 09:22:41 2010 +0100

    ZMQ-42: Building with ICC fails

 src/tcp_connecter.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 111f0ff078372e8a0f5c0b98170d451d6561e85e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 20 09:19:03 2010 +0100

    ZMQII-41: Poll function in C++ binding doesn't convert errors to exceptions

 bindings/cpp/zmq.hpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 6b0457fcaad3fa9a2e632b3799119c40da8dd6ca
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 19 12:48:38 2010 +0100

    minor documentation patch

 man/man3/zmq_setsockopt.3 | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 7094edd6baf0d69c3879da7f16c7222388952931
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 18 15:57:33 2010 +0100

    error handling in C perf tests improved

 perf/c/local_lat.c  | 51 ++++++++++++++++++++++++++++++++++----------
 perf/c/local_thr.c  | 61 +++++++++++++++++++++++++++++++++++++++++------------
 perf/c/remote_lat.c | 51 ++++++++++++++++++++++++++++++++++----------
 perf/c/remote_thr.c | 41 +++++++++++++++++++++++++++--------
 4 files changed, 160 insertions(+), 44 deletions(-)

commit 4ceb83935062bb84fd5da702679a126d12dpd8be
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 18 13:16:14 2010 +0100

    typos in man pages fixed

 .gitignore             | 13 +++++++++++++
 man/man3/zmq_bind.3    |  2 +-
 man/man3/zmq_connect.3 |  2 +-
 man/man3/zmq_recv.3    |  2 +-
 man/man3/zmq_send.3    |  2 +-
 man/man3/zmq_socket.3  |  8 ++++----
 man/man7/zmq.7         |  4 ++--
 man/man7/zmq_cpp.7     |  2 +-
 man/man7/zmq_inproc.7  |  2 +-
 man/man7/zmq_ipc.7     |  8 ++++----
 man/man7/zmq_pgm.7     | 10 +++++-----
 man/man7/zmq_tcp.7     |  4 ++--
 man/man7/zmq_udp.7     | 12 ++++++------
 13 files changed, 42 insertions(+), 29 deletions(-)

commit bddff50271b7c4c15c34d7a0aa1c04f3e3e3c107
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 18 11:01:41 2010 +0100

    ZMQII-40: wrong return code from recolve_ip_interface

 src/ip.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 55944729ed5527692b1ead17af553aa32c316781
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 18 10:53:46 2010 +0100

    ChangeLog modified for 2.0-beta2 version

 ChangeLog | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit f40e3a6931fb6463c349ef765d99515edc569fd7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jan 17 17:49:34 2010 +0100

    version number bumped

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 51e012c446b500fe3dfb46b6475ebf018ecfeaa0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 16 09:39:44 2010 +0100

    Solaris build fixed

 AUTHORS               | 1 +
 src/ip.cpp            | 2 +-
 src/tcp_connecter.cpp | 6 ++++--
 src/tcp_listener.cpp  | 7 +++----
 4 files changed, 9 insertions(+), 7 deletions(-)

commit a507d16e13fdd6b13e1e69d0d305750995513a1f
Author: unknown <bundra@.(none)>
Date:   Fri Jan 15 14:21:20 2010 +0100

    Win32 build fixed

 src/tcp_connecter.cpp | 2 ++
 src/tcp_listener.cpp  | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

commit 2bb57ac57ace37203c505ff17147210feca34d73
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 15 14:11:39 2010 +0100

    ZMQII-39: Implement IPC transport

 man/Makefile.am       |   2 +-
 man/convert2html.sh   |   1 +
 man/convert2pdf.sh    |   2 +
 man/man7/zmq.7        |   3 +
 man/man7/zmq_inproc.7 |   3 +-
 man/man7/zmq_ipc.7    |  34 +++++++++++
 man/man7/zmq_pgm.7    |   1 +
 man/man7/zmq_tcp.7    |   1 +
 man/man7/zmq_udp.7    |   1 +
 src/ip.cpp            |  17 ++++++
 src/ip.hpp            |   9 +++
 src/socket_base.cpp   |  23 +++++--
 src/tcp_connecter.cpp | 117 +++++++++++++++++++++++------------
 src/tcp_connecter.hpp |   4 +-
 src/tcp_listener.cpp  | 164 +++++++++++++++++++++++++++++++++++---------------
 src/tcp_listener.hpp  |  10 ++-
 src/zmq_connecter.cpp |  10 +--
 src/zmq_connecter.hpp |   7 ++-
 src/zmq_engine.cpp    |   9 ++-
 src/zmq_engine.hpp    |   6 +-
 src/zmq_init.cpp      |   4 +-
 src/zmq_init.hpp      |   3 +-
 src/zmq_listener.cpp  |   6 +-
 src/zmq_listener.hpp  |   4 +-
 24 files changed, 322 insertions(+), 119 deletions(-)

commit 56c369272c279224562d11b0a66590ac7826f4f3
Merge: b9b0124d b60342dp
Author: unknown <bundra@.(none)>
Date:   Thu Jan 14 15:50:54 2010 +0100

    Merge branch 'master' of github.com:sustrik/zeromq2

commit b9b0124d553b30932d8b78fb774dp258fa0d0f4d
Author: unknown <bundra@.(none)>
Date:   Thu Jan 14 15:50:12 2010 +0100

    ZMQII-34: ensure that poll won't return POLLIN event when the message will be filtered out anyway (Win32)

 src/zmq.cpp | 54 +++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 17 deletions(-)

commit b60342dp1a95dbb303705f5b89a94b33805a3841
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 14 14:11:34 2010 +0100

    man pages are more specific on NIC name issue

 man/man3/zmq_bind.3    | 12 ++++++++----
 man/man3/zmq_connect.3 | 12 ++++++++----
 man/man7/zmq_pgm.7     |  5 +++++
 man/man7/zmq_tcp.7     |  5 +++++
 man/man7/zmq_udp.7     |  5 +++++
 5 files changed, 31 insertions(+), 8 deletions(-)

commit 067ba3b9f77a253d4ce58e05ef1fa7702c32b2a3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 13 19:21:23 2010 +0100

    ZMQII-34: ensure that poll won't return POLLIN event when the message will be filtered out anyway (POSIX)

 src/socket_base.cpp |  4 +--
 src/sub.cpp         | 92 ++++++++++++++++++++++++++++++++++++++---------------
 src/sub.hpp         | 10 ++++++
 src/zmq.cpp         | 50 ++++++++++++++++++-----------
 4 files changed, 110 insertions(+), 46 deletions(-)

commit 06105d164230800e8ea42ddd513e2f7fb27e6f2f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 13 15:15:01 2010 +0100

    transports man pages updated

 man/man7/zmq_inproc.7 | 34 ++++++++++++++++++++++-
 man/man7/zmq_pgm.7    | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 man/man7/zmq_tcp.7    |  5 ++++
 man/man7/zmq_udp.7    | 32 ++++++++++++++++++++-
 4 files changed, 145 insertions(+), 3 deletions(-)

commit 30a107e06d48ebbc7a635ba4fb21a24e385cf4e4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 13 13:35:13 2010 +0100

    timeout parameter for zmq_poll added in cl binding

 bindings/cl/zeromq-api.lisp | 12 +++++++-----
 bindings/cl/zeromq.lisp     |  3 ++-
 2 files changed, 9 insertions(+), 6 deletions(-)

commit 20a8edcf5c2d9d5099d194e5a87c501d49c47328
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 13 13:24:29 2010 +0100

    ZMQII-38: Compiler complains about missing virtual constructors

 src/i_endpoint.hpp | 2 ++
 src/i_inout.hpp    | 2 ++
 2 files changed, 4 insertions(+)

commit 76dbb4f3bb88f73bc40e3de72e258e321375cd2f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 12 13:08:37 2010 +0100

    zmq_tcp man page added

 man/man7/zmq_tcp.7 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 61 insertions(+), 1 deletion(-)

commit bcd278a5a5fa9c08af6786c6f3c1ec5fa974fadf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 12 08:14:55 2010 +0100

    ZMQII-37: SIGSEGV when polling on REQ socket

 src/req.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4c613b39fdpbe18af95cab07a7d5f687285c4655
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 12 08:02:03 2010 +0100

    script to convert man pages to html added

 man/convert2html.sh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit 72b2f07a707724b353e9733f60cb4bade9b43966
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 11 07:47:19 2010 +0100

    ZMQII-36: Chat example & forwarder broken because of changes subscribe semantics

 devices/zmq_forwarder/zmq_forwarder.cpp | 2 +-
 examples/chat/display.cpp               | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 65f450f22e311d9a9251d05f8fb902a8fa2afe54
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Jan 10 17:41:59 2010 +0100

    minor man page fix

 man/man3/zmq_connect.3 | 2 --
 1 file changed, 2 deletions(-)

commit bd07baf0281ddb5f332bd03b06038fc0ac048285
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Jan 9 22:24:59 2010 +0100

    ZMQII-33: zmq_poll may exceed timeout if signal interrupts the waiting

 src/zmq.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e806615dd18e625b0b7fb1074cc4da5fda18529b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Jan 8 15:44:51 2010 +0100

    ZMQII-31: memory leak in zmq_poll (on timeout)

 AUTHORS     | 1 +
 src/zmq.cpp | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit 9fc8827b8a8e9d842b85b7f7f9790fc0a2ef88f6
Merge: ddf5f755 e9a4ad38
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 7 14:45:13 2010 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit ddf5f75549f01a0615ee3f49b6b5d53dpfd8fbd2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jan 7 14:44:43 2010 +0100

    zmq.cpp build probelm on non-linux platforms fixed

 man/man3/zmq_setsockopt.3 | 10 ++++------
 src/zmq.cpp               |  5 ++++-
 2 files changed, 8 insertions(+), 7 deletions(-)

commit e9a4ad38ce04ee21a7f81d5a36e3c58cf7138f5d
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Jan 6 20:10:27 2010 +0100

    updated version to 2.0-beta1 in configure.in

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7546526e667b35c05c80515d651e950a771813e1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jan 6 19:42:15 2010 +0100

    ChangeLog updated for 2.0-beta1

 ChangeLog | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit e21b33e9cfe12725de23bf2ef44967f53bcb2a10
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Jan 5 18:34:27 2010 +0100

    forced WINVER to 0x0501 for mingv32 build

 src/windows.hpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit ef049efe2ec56bb0ff5395ba8cba6e1722922e43
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 5 14:45:10 2010 +0100

    perf tests modified to reflect change in subscription format

 perf/c/local_thr.c       | 2 +-
 perf/cl/local-thr.lisp   | 2 +-
 perf/cpp/local_thr.cpp   | 2 +-
 perf/java/local_thr.java | 2 +-
 perf/python/local_thr.py | 2 +-
 perf/ruby/local_thr.rb   | 2 +-
 src/zmq_engine.cpp       | 8 +++++---
 7 files changed, 11 insertions(+), 9 deletions(-)

commit 8d339e959694107df8f1666634a34f54ad76dp41
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Jan 5 13:46:35 2010 +0100

    Fixed newer autotools warningng about AC_CONFIG_MACRO_DIR

 Makefile.am  | 2 ++
 configure.in | 1 +
 2 files changed, 3 insertions(+)

commit 11fec367d1a13c3f0248f8542eb805b8d9571685
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Jan 5 11:22:14 2010 +0100

    added pending event fd handling by the pgm_sender

 src/pgm_sender.cpp |  9 ++++++++-
 src/pgm_sender.hpp |  1 +
 src/pgm_socket.cpp | 12 ++++++++----
 src/pgm_socket.hpp |  2 +-
 4 files changed, 18 insertions(+), 6 deletions(-)

commit 472ddf8de2c93f750831d52b5473cdbed1db51e8
Merge: d10c605f 4f6baf4d
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Jan 5 11:05:03 2010 +0100

    fixed failed merge with autogen.sh

commit d10c605fa94a8fe8265785043dpef63983e07f3f
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Jan 5 10:51:54 2010 +0100

    updated to libpgm-2.0.20rc5

 configure.in                             |  10 +++++-----
 foreign/openpgm/libpgm-2.0.19rc4.tar.bz2 | Bin 317223 -> 0 bytes
 foreign/openpgm/libpgm-2.0.20rc5.tar.bz2 | Bin 0 -> 316958 bytes
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 4f6baf4dde627656b63cc4e2acdb78a8577ba640
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Jan 5 08:29:35 2010 +0100

    Copyrights transferred from FastMQ to iMatix

 autogen.sh                              | 7 +------
 bindings/c/zmq.h                        | 2 +-
 bindings/cpp/zmq.hpp                    | 2 +-
 bindings/java/Context.cpp               | 2 +-
 bindings/java/Socket.cpp                | 2 +-
 bindings/java/org/zmq/Context.java      | 2 +-
 bindings/java/org/zmq/Socket.java       | 2 +-
 bindings/python/pyzmq.cpp               | 2 +-
 bindings/ruby/extconf.rb                | 2 +-
 bindings/ruby/rbzmq.cpp                 | 2 +-
 builds/msvc/platform.hpp                | 2 +-
 devices/zmq_forwarder/zmq_forwarder.cpp | 2 +-
 devices/zmq_queue/zmq_queue.cpp         | 2 +-
 devices/zmq_streamer/zmq_streamer.cpp   | 2 +-
 examples/chat/display.cpp               | 2 +-
 examples/chat/prompt.cpp                | 2 +-
 man/convert2pdf.sh                      | 2 +-
 man/man1/zmq_forwarder.1                | 2 +-
 man/man1/zmq_queue.1                    | 2 +-
 man/man1/zmq_streamer.1                 | 2 +-
 man/man3/zmq_bind.3                     | 2 +-
 man/man3/zmq_close.3                    | 2 +-
 man/man3/zmq_connect.3                  | 2 +-
 man/man3/zmq_flush.3                    | 2 +-
 man/man3/zmq_init.3                     | 2 +-
 man/man3/zmq_msg_close.3                | 2 +-
 man/man3/zmq_msg_copy.3                 | 2 +-
 man/man3/zmq_msg_data.3                 | 2 +-
 man/man3/zmq_msg_init.3                 | 2 +-
 man/man3/zmq_msg_init_data.3            | 2 +-
 man/man3/zmq_msg_init_size.3            | 2 +-
 man/man3/zmq_msg_move.3                 | 2 +-
 man/man3/zmq_msg_size.3                 | 2 +-
 man/man3/zmq_poll.3                     | 2 +-
 man/man3/zmq_recv.3                     | 2 +-
 man/man3/zmq_send.3                     | 2 +-
 man/man3/zmq_setsockopt.3               | 2 +-
 man/man3/zmq_socket.3                   | 2 +-
 man/man3/zmq_strerror.3                 | 2 +-
 man/man3/zmq_term.3                     | 2 +-
 man/man7/zmq.7                          | 2 +-
 man/man7/zmq_cl.7                       | 2 +-
 man/man7/zmq_cpp.7                      | 2 +-
 man/man7/zmq_inproc.7                   | 2 +-
 man/man7/zmq_pgm.7                      | 2 +-
 man/man7/zmq_python.7                   | 2 +-
 man/man7/zmq_ruby.7                     | 2 +-
 man/man7/zmq_tcp.7                      | 2 +-
 man/man7/zmq_udp.7                      | 2 +-
 packages/debian/copyright               | 2 +-
 perf/c/local_lat.c                      | 2 +-
 perf/c/local_thr.c                      | 2 +-
 perf/c/remote_lat.c                     | 2 +-
 perf/c/remote_thr.c                     | 2 +-
 perf/cpp/local_lat.cpp                  | 2 +-
 perf/cpp/local_thr.cpp                  | 2 +-
 perf/cpp/remote_lat.cpp                 | 2 +-
 perf/cpp/remote_thr.cpp                 | 2 +-
 perf/java/local_lat.java                | 2 +-
 perf/java/local_thr.java                | 2 +-
 perf/java/remote_lat.java               | 2 +-
 perf/java/remote_thr.java               | 2 +-
 perf/python/local_lat.py                | 2 +-
 perf/python/local_thr.py                | 2 +-
 perf/python/remote_lat.py               | 2 +-
 perf/python/remote_thr.py               | 2 +-
 perf/ruby/local_lat.rb                  | 2 +-
 perf/ruby/local_thr.rb                  | 2 +-
 perf/ruby/remote_lat.rb                 | 2 +-
 perf/ruby/remote_thr.rb                 | 2 +-
 src/app_thread.cpp                      | 2 +-
 src/app_thread.hpp                      | 2 +-
 src/atomic_bitmap.hpp                   | 2 +-
 src/atomic_counter.hpp                  | 2 +-
 src/atomic_ptr.hpp                      | 2 +-
 src/command.hpp                         | 2 +-
 src/config.hpp                          | 2 +-
 src/decoder.hpp                         | 2 +-
 src/devpoll.cpp                         | 2 +-
 src/devpoll.hpp                         | 2 +-
 src/dispatcher.cpp                      | 2 +-
 src/dispatcher.hpp                      | 2 +-
 src/downstream.cpp                      | 2 +-
 src/downstream.hpp                      | 2 +-
 src/encoder.hpp                         | 2 +-
 src/epoll.cpp                           | 2 +-
 src/epoll.hpp                           | 2 +-
 src/err.cpp                             | 2 +-
 src/err.hpp                             | 2 +-
 src/fd.hpp                              | 2 +-
 src/fd_signaler.cpp                     | 2 +-
 src/fd_signaler.hpp                     | 2 +-
 src/fq.cpp                              | 2 +-
 src/fq.hpp                              | 2 +-
 src/i_endpoint.hpp                      | 2 +-
 src/i_engine.hpp                        | 2 +-
 src/i_inout.hpp                         | 2 +-
 src/i_poll_events.hpp                   | 2 +-
 src/i_signaler.hpp                      | 2 +-
 src/io_object.cpp                       | 2 +-
 src/io_object.hpp                       | 2 +-
 src/io_thread.cpp                       | 2 +-
 src/io_thread.hpp                       | 2 +-
 src/ip.cpp                              | 2 +-
 src/ip.hpp                              | 2 +-
 src/kqueue.cpp                          | 2 +-
 src/kqueue.hpp                          | 2 +-
 src/lb.cpp                              | 2 +-
 src/lb.hpp                              | 2 +-
 src/likely.hpp                          | 2 +-
 src/msg_content.hpp                     | 2 +-
 src/mutex.hpp                           | 2 +-
 src/object.cpp                          | 2 +-
 src/object.hpp                          | 2 +-
 src/options.cpp                         | 2 +-
 src/options.hpp                         | 2 +-
 src/owned.cpp                           | 2 +-
 src/owned.hpp                           | 2 +-
 src/p2p.cpp                             | 2 +-
 src/p2p.hpp                             | 2 +-
 src/pgm_receiver.cpp                    | 2 +-
 src/pgm_receiver.hpp                    | 2 +-
 src/pgm_sender.cpp                      | 2 +-
 src/pgm_sender.hpp                      | 2 +-
 src/pgm_socket.cpp                      | 2 +-
 src/pgm_socket.hpp                      | 2 +-
 src/pipe.cpp                            | 2 +-
 src/pipe.hpp                            | 2 +-
 src/poll.cpp                            | 2 +-
 src/poll.hpp                            | 2 +-
 src/poller.hpp                          | 2 +-
 src/pub.cpp                             | 2 +-
 src/pub.hpp                             | 2 +-
 src/rep.cpp                             | 2 +-
 src/rep.hpp                             | 2 +-
 src/req.cpp                             | 2 +-
 src/req.hpp                             | 2 +-
 src/select.cpp                          | 2 +-
 src/select.hpp                          | 2 +-
 src/session.cpp                         | 2 +-
 src/session.hpp                         | 2 +-
 src/simple_semaphore.hpp                | 2 +-
 src/socket_base.cpp                     | 2 +-
 src/socket_base.hpp                     | 2 +-
 src/stdint.hpp                          | 2 +-
 src/sub.cpp                             | 2 +-
 src/sub.hpp                             | 2 +-
 src/tcp_connecter.cpp                   | 2 +-
 src/tcp_connecter.hpp                   | 2 +-
 src/tcp_listener.cpp                    | 2 +-
 src/tcp_listener.hpp                    | 2 +-
 src/tcp_socket.cpp                      | 2 +-
 src/tcp_socket.hpp                      | 2 +-
 src/thread.cpp                          | 2 +-
 src/thread.hpp                          | 2 +-
 src/upstream.cpp                        | 2 +-
 src/upstream.hpp                        | 2 +-
 src/uuid.cpp                            | 2 +-
 src/uuid.hpp                            | 2 +-
 src/windows.hpp                         | 2 +-
 src/wire.hpp                            | 2 +-
 src/xrep.cpp                            | 2 +-
 src/xrep.hpp                            | 2 +-
 src/xreq.cpp                            | 2 +-
 src/xreq.hpp                            | 2 +-
 src/yarray.hpp                          | 2 +-
 src/yarray_item.hpp                     | 2 +-
 src/ypipe.hpp                           | 2 +-
 src/ypollset.cpp                        | 2 +-
 src/ypollset.hpp                        | 2 +-
 src/yqueue.hpp                          | 2 +-
 src/zmq.cpp                             | 2 +-
 src/zmq_connecter.cpp                   | 2 +-
 src/zmq_connecter.hpp                   | 2 +-
 src/zmq_decoder.cpp                     | 2 +-
 src/zmq_decoder.hpp                     | 2 +-
 src/zmq_encoder.cpp                     | 2 +-
 src/zmq_encoder.hpp                     | 2 +-
 src/zmq_engine.cpp                      | 2 +-
 src/zmq_engine.hpp                      | 2 +-
 src/zmq_init.cpp                        | 2 +-
 src/zmq_init.hpp                        | 2 +-
 src/zmq_listener.cpp                    | 2 +-
 src/zmq_listener.hpp                    | 2 +-
 184 files changed, 184 insertions(+), 189 deletions(-)

commit bf01727f4b5d2e12daa5e4289c556fb3b7ade3f3
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Jan 4 16:04:40 2010 +0100

    updated to libpgm 2.0.19rc4

 configure.in                             |  10 +++++-----
 foreign/openpgm/libpgm-2.0.18rc3.tar.bz2 | Bin 315989 -> 0 bytes
 foreign/openpgm/libpgm-2.0.19rc4.tar.bz2 | Bin 0 -> 317223 bytes
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 1528edb963b2c9d292758f7704eeda336d358db2
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Jan 4 16:03:49 2010 +0100

    fixed autogen.sh complaining about existing config dir

 autogen.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f2b235db165e459f7f265993477ddp0dc987125a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 4 15:46:20 2010 +0100

    ZMQII-29: Add timeout to zmq_poll function

 bindings/c/zmq.h     |  2 +-
 bindings/cpp/zmq.hpp |  4 ++--
 man/man3/zmq_poll.3  | 10 ++++++++--
 src/zmq.cpp          | 23 ++++++++++++++++++-----
 4 files changed, 29 insertions(+), 10 deletions(-)

commit 7884f4541aa6f95b76e0b2429baaf11108c543a1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Jan 4 15:13:04 2010 +0100

    problem with new version of autoreconf fixed

 autogen.sh | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 1b90e5f6f50ecb512b22f73850f763a9a009c483
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Dec 31 16:53:00 2009 +0100

    added missing likely.hpp file into the dist

 src/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 9bda63cd6378682af3b685dbbe0c47cdc4455295
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Dec 31 16:35:04 2009 +0100

    fixed minor gcc warning in src/pgm_receiver.cpp

 src/pgm_receiver.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 819590c04cb24f1627b140883e4106bb8a6f62eb
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Dec 31 16:31:13 2009 +0100

    libpgm updated to 2.0.18rc3

 configure.in                             |  10 +++++-----
 foreign/openpgm/libpgm-2.0.17rc2.tar.bz2 | Bin 315051 -> 0 bytes
 foreign/openpgm/libpgm-2.0.18rc3.tar.bz2 | Bin 0 -> 315989 bytes
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 9fadf0b218b66e8448a2356f124dc1bb10f1f81d
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Dec 31 16:18:45 2009 +0100

    fixed minor gcc warning in src/pgm_socket.cpp

 src/pgm_socket.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d6da7903d0fc42356adbf4c43e04774a1b465632
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Dec 31 15:47:44 2009 +0100

    removed unused foreign/openpgm/create_custom_gsi_1.patch file

 Makefile.am                               |  1 -
 foreign/openpgm/create_custom_gsi_1.patch | 43 -------------------------------
 2 files changed, 44 deletions(-)

commit 7cb02fb3e7cbe614cdpfbb5d9ab34936fba2724f
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Dec 31 15:44:42 2009 +0100

    fixed make dist for non pgm configuration

 configure.in | 3 +++
 1 file changed, 3 insertions(+)

commit 102077471c5863242b5e9a2e063e272edd5b48ea
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 29 16:50:28 2009 +0100

    error in zmq_poll manpage fixed

 man/man3/zmq_poll.3 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e9cebc86ed8eeff2cc5dde49807a4851b43d1232
Author: unknown <bundra@.(none)>
Date:   Tue Dec 29 16:42:56 2009 +0100

    EINPROGRESS definition added on Win32 platform

 bindings/c/zmq.h | 3 +++
 1 file changed, 3 insertions(+)

commit 23e5c3b342793ca871747b7d6681d445b34925bb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 29 07:53:33 2009 +0100

    polling on SUB socket fixed

 src/sub.cpp | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 72161fb075025410312c6735d681c3de9a36a4e5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 28 21:29:31 2009 +0100

    format of subscriptions changed (no * needed anymore)

 src/socket_base.cpp | 11 ++++---
 src/sub.cpp         | 90 ++++++++++++++++++++++-------------------------------
 src/sub.hpp         |  9 ++----
 src/zmq_engine.cpp  |  7 +++--
 4 files changed, 51 insertions(+), 66 deletions(-)

commit c97967ed4b70de700db38cc2661bbe43262bc029
Author: unknown <bundra@.(none)>
Date:   Mon Dec 28 16:20:21 2009 +0100

    MSVC build fixed

 builds/msvc/libzmq/libzmq.vcproj | 24 ++++++++----------------
 src/zmq_init.cpp                 |  1 +
 2 files changed, 9 insertions(+), 16 deletions(-)

commit 5852db451a76905336601c5ba3e4f33006f007fb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 28 11:51:06 2009 +0100

    PGM code cleanup

 src/pgm_receiver.cpp | 154 +++++++++++++++++---------------------------
 src/pgm_receiver.hpp |  13 ++--
 src/pgm_sender.cpp   |  94 ++++++++++-----------------
 src/pgm_sender.hpp   |  16 +----
 src/pgm_socket.cpp   | 178 +++++++++++++++------------------------------------
 src/pgm_socket.hpp   |  37 ++---------
 6 files changed, 162 insertions(+), 330 deletions(-)

commit dpbff623f36efddc0de7a3192832b61802f8cec8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 23 19:37:56 2009 +0100

    ZMQII-28: Bidirectional introduction on TCP connection establishment

 src/Makefile.am                             |   8 +-
 src/i_inout.hpp                             |   6 +-
 src/pgm_receiver.cpp                        |   3 +-
 src/pgm_receiver.hpp                        |   6 +-
 src/pgm_sender.cpp                          |   3 +-
 src/pgm_sender.hpp                          |   6 +-
 src/session.cpp                             |  54 ++++++--
 src/session.hpp                             |  24 +++-
 src/socket_base.cpp                         |  83 ++++++++----
 src/socket_base.hpp                         |  27 ++--
 src/zmq_connecter.cpp                       |  15 ++-
 src/zmq_connecter.hpp                       |   8 +-
 src/zmq_connecter_init.cpp                  | 132 -------------------
 src/zmq_connecter_init.hpp                  |  79 -----------
 src/zmq_engine.cpp                          |   2 +-
 src/zmq_init.cpp                            | 195 ++++++++++++++++++++++++++++
 src/{zmq_listener_init.hpp => zmq_init.hpp} |  52 +++++---
 src/zmq_listener.cpp                        |   6 +-
 src/zmq_listener_init.cpp                   | 137 -------------------
 19 files changed, 387 insertions(+), 459 deletions(-)

commit b3bd4c15fe869de4f5c530ecc5942968677a85c3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 22 09:01:01 2009 +0100

    OpenPGM error handling fixed

 src/pgm_socket.cpp | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit 7cf18a2dpc8300099e3c3e236ac3cefa3be746d0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 21 20:45:52 2009 +0100

    minor fixes

 src/app_thread.cpp | 4 ++--
 src/object.hpp     | 4 ----
 2 files changed, 2 insertions(+), 6 deletions(-)

commit 5a0674dfeccf0d80dc92e77a8630be280c71fb84
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 21 18:50:24 2009 +0100

    OpenPGM error handling improved

 bindings/python/pyzmq.cpp |  2 +-
 src/pgm_socket.cpp        | 64 ++++++++++++++++++++++++++++++++++++-----------
 src/pgm_socket.hpp        | 12 ++++-----
 3 files changed, 57 insertions(+), 21 deletions(-)

commit 990a1e8686bdeb3472a27d00cb2436936a4d0d26
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 18 16:01:58 2009 +0100

    zmq_cl(7) man page added

 man/man7/zmq_cl.7 | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 118 insertions(+), 3 deletions(-)

commit bad224251e97205abaf987e8e998bc14af32223c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 18 15:46:21 2009 +0100

    minor errors in zmq_cpp man page fixed

 man/man7/zmq_cpp.7 | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit d50c7daf9eafe36ca2df7210ff2e82487e85f842
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 18 14:34:57 2009 +0100

    hint parameter (zmq_free_fn) added to Lisp binding

 bindings/cl/zeromq.lisp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 1924cba88985a36cb1422efd2fb287292b41eb44
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 18 14:33:22 2009 +0100

    memory management in Lisp binding fixed

 bindings/cl/zeromq-api.lisp | 59 +++++++++++++++++++++++++++++++--------------
 1 file changed, 41 insertions(+), 18 deletions(-)

commit 86d68cbcbd24e6dfe6dd1ed230c7806408b70668
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 18 14:19:28 2009 +0100

    memory leaks related to OpenPGM errors fixed

 src/pgm_socket.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 500d32a540d762d30a59e952a4f2216d73e4654c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 16 17:19:20 2009 +0100

    examples & perf added to the Debian package

 packages/debian/control                 | 50 +++++++++++++++++++++++++++++----
 packages/debian/dirs                    |  3 ++
 packages/debian/rules                   |  7 +++--
 packages/debian/zeromq-examples.files   |  2 ++
 packages/debian/zeromq-examples.install |  2 ++
 packages/debian/zeromq-perf.files       | 10 +++++++
 packages/debian/zeromq-perf.install     | 10 +++++++
 7 files changed, 75 insertions(+), 9 deletions(-)

commit 667d1a8280e2dedd7f3ccdbd39605263ba8e98d7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 16 15:20:14 2009 +0100

    man page updated to match change in zmq_free_fn

 man/man3/zmq_msg_init_data.3 | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

commit ab5abf6c7ec7668c4a8373d87c491d22d0db144d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 16 15:08:37 2009 +0100

    hint parameter added to zmq_free function

 bindings/c/zmq.h     |  4 ++--
 bindings/cpp/zmq.hpp | 10 ++++++----
 src/msg_content.hpp  |  1 +
 src/zmq.cpp          |  6 ++++--
 4 files changed, 13 insertions(+), 8 deletions(-)

commit 02202ec30ecca9e538cc807ce86b54d822c823bd
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 16 14:54:11 2009 +0100

    addition to CREDITS section of AUTHORS file

 AUTHORS | 2 ++
 1 file changed, 2 insertions(+)

commit 5e77a1daa46f1b757b08f65895778f803575469c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 16 14:43:50 2009 +0100

    debian package added

 packages/debian/README.Debian            |   6 ++
 packages/debian/changelog                |   6 ++
 packages/debian/cl-zeromq.files          |   7 ++
 packages/debian/cl-zeromq.install        |   6 ++
 packages/debian/cl-zeromq.links          |   1 +
 packages/debian/compat                   |   1 +
 packages/debian/control                  | 123 ++++++++++++++++++++++++++++
 packages/debian/copyright                |  18 +++++
 packages/debian/dirs                     |   2 +
 packages/debian/docs                     |   2 +
 packages/debian/libzeromq-dev.files      |  37 +++++++++
 packages/debian/libzeromq-dev.install    |  19 +++++
 packages/debian/libzeromq-python.files   |   1 +
 packages/debian/libzeromq-python.install |   1 +
 packages/debian/libzeromq-ruby.files     |   1 +
 packages/debian/libzeromq-ruby.install   |   1 +
 packages/debian/libzeromq0.files         |   2 +
 packages/debian/libzeromq0.install       |   1 +
 packages/debian/rules                    | 135 +++++++++++++++++++++++++++++++
 packages/debian/shlibs.local             |   1 +
 packages/debian/zeromq-utils.files       |   6 ++
 packages/debian/zeromq-utils.install     |   6 ++
 22 files changed, 383 insertions(+)

commit 7479871cde46371c593f35c0ace3d9e984fddb1a
Merge: 8aa09086 3e640836
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 15 23:50:32 2009 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 8aa0908635f255e2d533539d5330b92b62dc88ba
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 15 23:49:55 2009 +0100

    all news converted to nothrow variant

 src/app_thread.cpp         | 23 ++++++++++++-----------
 src/dispatcher.cpp         | 12 ++++++++----
 src/epoll.cpp              |  3 ++-
 src/io_thread.cpp          |  4 +++-
 src/kqueue.cpp             |  3 ++-
 src/pgm_receiver.cpp       |  4 +++-
 src/pgm_socket.cpp         |  2 ++
 src/session.cpp            |  8 ++++++--
 src/socket_base.cpp        | 33 +++++++++++++++++++++------------
 src/tcp_listener.cpp       |  1 -
 src/yqueue.hpp             |  5 +++--
 src/zmq.cpp                |  4 ++--
 src/zmq_connecter.cpp      |  6 ++++--
 src/zmq_connecter_init.cpp |  5 ++++-
 src/zmq_engine.cpp         |  4 +++-
 src/zmq_listener.cpp       |  6 ++++--
 src/zmq_listener_init.cpp  |  9 ++++++---
 17 files changed, 85 insertions(+), 47 deletions(-)

commit 3e640836674872961f48efb4dc7badb20d736407
Author: unknown <bundra@.(none)>
Date:   Tue Dec 15 18:00:00 2009 +0100

    win32 build fixed

 builds/msvc/libzmq/libzmq.vcproj | 16 ++++++++++++++++
 src/zmq_listener_init.cpp        |  1 +
 2 files changed, 17 insertions(+)

commit 2cef05d86976784f4bc1083cb0fa548e267ac132
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 15 17:49:40 2009 +0100

    reconnection mechanism added to tcp transport

 src/i_inout.hpp            | 15 +++++++++++++--
 src/io_object.hpp          |  1 +
 src/io_thread.hpp          |  1 +
 src/object.hpp             |  5 +++--
 src/session.cpp            | 23 +++++++++++++++++++++--
 src/session.hpp            |  5 ++++-
 src/zmq_connecter.cpp      | 10 +++++++---
 src/zmq_connecter.hpp      |  5 ++++-
 src/zmq_connecter_init.cpp | 36 +++++++++++++++++++++---------------
 src/zmq_connecter_init.hpp | 11 +++++++----
 src/zmq_engine.cpp         | 23 ++++++++++++++++++++---
 src/zmq_engine.hpp         |  5 ++++-
 src/zmq_listener_init.cpp  | 22 ++++++++++++++++++++--
 src/zmq_listener_init.hpp  |  5 ++++-
 14 files changed, 130 insertions(+), 37 deletions(-)

commit 14b112301e62af5115ab870d97dp448c2e3deddb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 15 13:58:21 2009 +0100

    handle error during connecting by eventual reconnection

 src/zmq_connecter.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit e49115224a7957b0e5d49326bc02dp6af186eaf9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 15 09:09:19 2009 +0100

    zmq_encoder/decoder are able to add/trim prefixes from messages; fair queueing and load balancing algorithms factorised into separate classes

 src/Makefile.am      |   4 ++
 src/downstream.cpp   |  34 +++-------------
 src/downstream.hpp   |  10 ++---
 src/fq.cpp           | 106 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/fq.hpp           |  64 +++++++++++++++++++++++++++++
 src/lb.cpp           | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/lb.hpp           |  63 +++++++++++++++++++++++++++++
 src/pgm_receiver.cpp |   2 +-
 src/pgm_sender.cpp   |   2 +-
 src/sub.cpp          |  50 ++++-------------------
 src/sub.hpp          |  21 +++-------
 src/upstream.cpp     |  58 ++++-----------------------
 src/upstream.hpp     |  14 ++-----
 src/xrep.cpp         |  17 ++++----
 src/xrep.hpp         |   5 ++-
 src/xreq.cpp         |  28 ++++++-------
 src/xreq.hpp         |   8 +++-
 src/zmq_decoder.cpp  |  40 +++++++++++++++----
 src/zmq_decoder.hpp  |   7 +++-
 src/zmq_encoder.cpp  |  21 ++++++++--
 src/zmq_encoder.hpp  |   4 +-
 src/zmq_engine.cpp   |   4 +-
 22 files changed, 476 insertions(+), 197 deletions(-)

commit bd792faa9d6c78c375dbc52c6d773e157335da36
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 14 11:46:30 2009 +0100

    ZMQ_SNDBUF and ZMQ_RCVBUF honoured in PGM transport

 src/pgm_socket.cpp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

commit 68488215da8e03a74ca4da6b822e4cfa3b71d73a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 13 18:32:22 2009 +0100

    Man pages for XREQ/XREP/zmq_queue updated

 man/Makefile.am       |  2 +-
 man/convert2pdf.sh    |  2 ++
 man/man1/zmq_queue.1  | 11 +++++++++++
 man/man3/zmq_socket.3 | 37 +++++++++++++++++++++++++++++++++++--
 4 files changed, 49 insertions(+), 3 deletions(-)

commit 0637e06387ac0676e9595246eb60a6809664b01a
Author: unknown <bundra@.(none)>
Date:   Sun Dec 13 14:59:25 2009 +0100

    zmq_streamer & zmq_queue are built under MSVC

 builds/msvc/libzmq/libzmq.vcproj             |  24 +++-
 builds/msvc/msvc.sln                         |  18 +++
 builds/msvc/zmq_queue/zmq_queue.vcproj       | 174 +++++++++++++++++++++++++++
 builds/msvc/zmq_streamer/zmq_streamer.vcproj | 174 +++++++++++++++++++++++++++
 src/xrep.cpp                                 |   5 +
 src/xreq.cpp                                 |   5 +
 6 files changed, 396 insertions(+), 4 deletions(-)

commit fa6bf24d8030b0e54fd25b167064482e4cf08a36
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 13 14:45:23 2009 +0100

    XREP & XREQ socket types added; zmq_queue device added

 bindings/c/zmq.h                        |   6 +-
 bindings/cl/zeromq.lisp                 |   6 +-
 bindings/java/org/zmq/Socket.java       |   6 +-
 bindings/python/pyzmq.cpp               |   6 ++
 bindings/ruby/rbzmq.cpp                 |   2 +
 configure.in                            |  15 +++-
 devices/Makefile.am                     |   8 ++-
 devices/zmq_forwarder/Makefile.am       |   2 +-
 devices/zmq_forwarder/zmq_forwarder.cpp |   2 +-
 devices/zmq_queue/Makefile.am           |   9 +++
 devices/zmq_queue/zmq_queue.cpp         | 122 ++++++++++++++++++++++++++++++++
 devices/zmq_streamer/Makefile.am        |   2 +-
 devices/zmq_streamer/zmq_streamer.cpp   |   2 +-
 src/Makefile.am                         |   4 ++
 src/app_thread.cpp                      |   8 +++
 src/pgm_sender.cpp                      |   4 --
 src/xrep.cpp                            |  95 +++++++++++++++++++++++++
 src/xrep.hpp                            |  57 +++++++++++++++
 src/xreq.cpp                            |  95 +++++++++++++++++++++++++
 src/xreq.hpp                            |  57 +++++++++++++++
 20 files changed, 490 insertions(+), 18 deletions(-)

commit c43aded531014895973c283fdd82bb2e5e85c789
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 13 11:27:43 2009 +0100

    debug code removed from PGM engines

 src/pgm_receiver.cpp | 21 ------------
 src/pgm_receiver.hpp | 10 +++---
 src/pgm_sender.cpp   | 33 ++-----------------
 src/pgm_socket.cpp   | 92 +++++-----------------------------------------------
 src/pgm_socket.hpp   | 24 +++++---------
 5 files changed, 24 insertions(+), 156 deletions(-)

commit f4ac8d7a443bd1afb35634d1cccb79943cc316e0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 13 09:56:02 2009 +0100

    OpenPGM v1 support removed

 Makefile.am                           |   4 +-
 configure.in                          | 134 ++------------------
 foreign/openpgm/libpgm-1.2.14.tar.bz2 | Bin 280029 -> 0 bytes
 foreign/openpgm/lost_data_tsi.patch   |  76 ------------
 src/Makefile.am                       |  59 ---------
 src/pgm_receiver.cpp                  |  10 --
 src/pgm_sender.cpp                    |  18 ---
 src/pgm_sender.hpp                    |   2 -
 src/pgm_socket.cpp                    | 226 +---------------------------------
 src/pgm_socket.hpp                    |  16 ---
 10 files changed, 18 insertions(+), 527 deletions(-)

commit 73b765e4b497f6a505cbf88c524085fa0e58e59c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Dec 13 09:11:08 2009 +0100

    PGM transport fixed

 src/encoder.hpp      |  26 ++++---
 src/pgm_receiver.cpp |   5 +-
 src/pgm_sender.cpp   |   6 +-
 src/pgm_socket.cpp   | 193 ++++++++++++++++++++-------------------------------
 src/pgm_socket.hpp   |   5 +-
 src/zmq_engine.cpp   |   4 +-
 6 files changed, 105 insertions(+), 134 deletions(-)

commit d5670f34baa0751a5b4567a28cdpa4e4fa208727
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 11 22:29:04 2009 +0100

    ZMQII-26: Use zero-copy for large messages (rx side)

 src/decoder.hpp     |  87 ++++++++++++++++++++++++++++++++++--------
 src/encoder.hpp     | 107 +++++++++++++++++++++++++++++++---------------------
 src/zmq_decoder.cpp |   3 +-
 src/zmq_decoder.hpp |   2 +-
 src/zmq_encoder.cpp |   3 +-
 src/zmq_encoder.hpp |   2 +-
 src/zmq_engine.cpp  |  72 +++++++++++++++--------------------
 src/zmq_engine.hpp  |  15 +++-----
 8 files changed, 175 insertions(+), 116 deletions(-)

commit 770178724f9493e99c832863031dpf016f143e9f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Dec 10 21:34:40 2009 +0100

    errors are never predicted in branch prediction (likely/unlikely macros added)

 src/atomic_counter.hpp |  1 -
 src/err.hpp            | 89 ++++++++++++++++++++++++++++++--------------------
 src/likely.hpp         | 32 ++++++++++++++++++
 3 files changed, 86 insertions(+), 36 deletions(-)

commit d4fdc26efc6b21103e446f712a484af910a57f2f
Author: unknown <bundra@.(none)>
Date:   Thu Dec 10 16:46:22 2009 +0100

    zmq_poll implemented on Win32 platform

 bindings/c/zmq.h |   7 ++++
 src/zmq.cpp      | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 125 insertions(+), 7 deletions(-)

commit 986ab66b8f260614b2bd18f870ad98402c0f247a
Author: unknown <bundra@.(none)>
Date:   Thu Dec 10 10:39:24 2009 +0100

    ZMQII-27: Allow setting SNDBUF and RCVBUF size from 0MQ API (Win32)

 src/tcp_socket.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 8d58643655b653c520fcdcc2a89b5067788f32fc
Author: unknown <bundra@.(none)>
Date:   Thu Dec 10 10:33:07 2009 +0100

    MSVC build for chat example added

 builds/msvc/display/display.vcproj | 176 +++++++++++++++++++++++++++++++++++++
 builds/msvc/msvc.sln               |  18 ++++
 builds/msvc/prompt/prompt.vcproj   | 176 +++++++++++++++++++++++++++++++++++++
 examples/chat/prompt.cpp           |   5 ++
 4 files changed, 375 insertions(+)

commit 2e39f892c353851fe90261db0a0875abab50539f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Dec 10 09:47:24 2009 +0100

    ZMQII-27: Allow setting SNDBUF and RCVBUF size from 0MQ API (POSIX)

 bindings/c/zmq.h                  |  2 ++
 bindings/cl/zeromq.lisp           |  2 ++
 bindings/java/org/zmq/Socket.java |  2 ++
 bindings/python/pyzmq.cpp         |  6 ++++++
 bindings/ruby/rbzmq.cpp           |  2 ++
 man/man3/zmq_setsockopt.3         | 24 ++++++++++++++++++++++++
 src/options.cpp                   | 18 ++++++++++++++++++
 src/options.hpp                   |  3 +++
 src/tcp_socket.cpp                | 17 +++++++++++++++--
 src/tcp_socket.hpp                |  3 ++-
 src/zmq_connecter_init.cpp        |  2 +-
 src/zmq_engine.cpp                |  8 +++++---
 src/zmq_engine.hpp                |  5 ++++-
 src/zmq_listener_init.cpp         |  2 +-
 14 files changed, 87 insertions(+), 9 deletions(-)

commit 72dacc35702a14ab0bb5a2650dffbb3bbda63175
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Dec 10 08:25:21 2009 +0100

    zero-copy on tx side optimised to minimise number of user/kernel space transitions

 src/encoder.hpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 1c1dfb50f88002ce7a024f2d8980b968d3dpe1dp
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 9 14:12:25 2009 +0100

    zmq_cpp(7) man page filled in

 man/man7/zmq_cpp.7 | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 95 insertions(+), 2 deletions(-)

commit cab5a4a1596e5019c7fd306ad49aac67209b467c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 9 09:19:16 2009 +0100

    minor documentation updates

 examples/chat/README |  4 ++--
 src/encoder.hpp      | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

commit c98e29fb6e017a667452cd0a50536da691600353
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 8 21:48:39 2009 +0100

    README added to chat example

 examples/chat/README | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

commit 902d4f2282f4ed59f942be6fa1013b20dd964536
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 8 16:13:51 2009 +0100

    minor fix of zero-copy on tx side

 src/encoder.hpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 9be877c68503c35f9f72c8b92bd11454e4fcad97
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 8 15:41:50 2009 +0100

    ZMQII-26: Use zero-copy for large messages

 src/encoder.hpp    | 28 +++++++++++++++++++++++-----
 src/zmq_engine.cpp | 21 +++++++++++++--------
 src/zmq_engine.hpp | 12 ++++++++----
 3 files changed, 44 insertions(+), 17 deletions(-)

commit bfef2fcd0ba590169ad46ea45da9d36dca1b5b97
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 7 21:52:10 2009 +0100

    autotools build system builds chat example now

 Makefile.am               |  4 ++--
 configure.in              | 25 ++++++++++++++++++-------
 examples/Makefile.am      |  7 +++++++
 examples/chat/Makefile.am | 11 +++++++++++
 4 files changed, 38 insertions(+), 9 deletions(-)

commit a08a72dd082e5e62f0d043c71ea7d9b6fb80b57e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 7 21:06:54 2009 +0100

    chat example added

 examples/chat/display.cpp | 50 ++++++++++++++++++++++++++++++++++++++
 examples/chat/prompt.cpp  | 62 +++++++++++++++++++++++++++++++++++++++++++++++
 src/fd_signaler.cpp       |  2 +-
 3 files changed, 113 insertions(+), 1 deletion(-)

commit 82012667cca5249ba7aa16ac5880b86ac54f3e98
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Dec 7 17:28:43 2009 +0100

    Deadlock on zmq_close

 src/fd_signaler.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 9f495942736bfc1c1ef5f0b23d5a1bdab56d3757
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Dec 5 11:20:57 2009 +0100

    C & C++ header files clean-up

 bindings/c/zmq.h     | 257 ++++-----------------------------------------------
 bindings/cpp/zmq.hpp |  62 ++++++-------
 src/ypipe.hpp        |  12 +--
 3 files changed, 53 insertions(+), 278 deletions(-)

commit 356ce8fe917c1b3b645555bcd2ff0ff989c6829a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 4 10:06:46 2009 +0100

    man pages updated

 man/man1/zmq_forwarder.1 |   2 +-
 man/man1/zmq_streamer.1  |   2 +-
 man/man7/zmq.7           | 145 ++++++++++++++++++++++++++++++++++++++++++++++-
 man/man7/zmq_cl.7        |   2 +-
 man/man7/zmq_cpp.7       |   3 +-
 man/man7/zmq_inproc.7    |   2 +-
 man/man7/zmq_pgm.7       |   2 +-
 man/man7/zmq_python.7    |   2 +-
 man/man7/zmq_ruby.7      |   2 +-
 man/man7/zmq_tcp.7       |   2 +-
 man/man7/zmq_udp.7       |   2 +-
 11 files changed, 153 insertions(+), 13 deletions(-)

commit 3e051e874ad03299cc9a9693cf8f20d6e37af329
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 4 10:03:38 2009 +0100

    Vitaly Mayatskikh added to authors section

 AUTHORS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 721e37a371713ddb20c4dfcca253fe01f71a4af7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Dec 4 10:02:25 2009 +0100

    platform.hpp.in removed from the codebase

 src/platform.hpp.in | 234 ----------------------------------------------------
 1 file changed, 234 deletions(-)

commit 734aaa2dcbd130cfc5d8ef0bd31bd259117f6c0c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Dec 3 12:58:16 2009 +0100

    placeholders for new man pages added

 man/Makefile.am         |  9 ++++++---
 man/convert2pdf.sh      | 18 ++++++++++++++++++
 man/man1/zmq_streamer.1 | 11 +++++++++++
 man/man7/zmq_cl.7       |  9 +++++++++
 man/man7/zmq_cpp.7      |  9 +++++++++
 man/man7/zmq_inproc.7   |  9 +++++++++
 man/man7/zmq_pgm.7      |  9 +++++++++
 man/man7/zmq_python.7   |  9 +++++++++
 man/man7/zmq_ruby.7     |  9 +++++++++
 man/man7/zmq_tcp.7      |  9 +++++++++
 man/man7/zmq_udp.7      |  9 +++++++++
 11 files changed, 107 insertions(+), 3 deletions(-)

commit 6fcdc5fa69ea44d38e5505c23a6e9645efd35027
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Dec 3 10:14:07 2009 +0100

    common lisp binding & perf tests added

 bindings/Makefile.am        |   8 +-
 bindings/cl/Makefile.am     |   9 ++
 bindings/cl/meta.lisp       |  59 +++++++++++
 bindings/cl/package.lisp    | 108 ++++++++++++++++++++
 bindings/cl/zeromq-api.lisp | 155 ++++++++++++++++++++++++++++
 bindings/cl/zeromq.asd      |  38 +++++++
 bindings/cl/zeromq.lisp     | 244 ++++++++++++++++++++++++++++++++++++++++++++
 configure.in                |  21 ++++
 perf/Makefile.am            |   2 +-
 perf/cl/Makefile.am         |   2 +
 perf/cl/lat-parms.lisp      |  22 ++++
 perf/cl/local-lat-poll.lisp |  43 ++++++++
 perf/cl/local-lat.lisp      |  52 ++++++++++
 perf/cl/local-thr.lisp      |  54 ++++++++++
 perf/cl/remote-lat.lisp     |  50 +++++++++
 perf/cl/remote-thr.lisp     |  41 ++++++++
 perf/cl/thr-parms.lisp      |  25 +++++
 17 files changed, 930 insertions(+), 3 deletions(-)

commit 7146ef85e96551ce6f7b80d014463f246d09c878
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Dec 2 21:26:47 2009 +0100

    seqnum mechanism automated

 src/dispatcher.cpp         |  2 ++
 src/object.cpp             | 27 ++++++++++++++++++++-------
 src/object.hpp             | 12 +++++++++---
 src/owned.cpp              | 26 ++++++++------------------
 src/owned.hpp              | 14 ++------------
 src/session.cpp            |  5 -----
 src/socket_base.cpp        | 12 ++++++------
 src/socket_base.hpp        |  1 +
 src/zmq_connecter.cpp      |  1 -
 src/zmq_connecter_init.cpp |  4 ++--
 src/zmq_listener.cpp       |  2 --
 src/zmq_listener_init.cpp  |  6 ++++--
 12 files changed, 54 insertions(+), 58 deletions(-)

commit cb84580bbced0b5d34ddcbac6e0dpd5d0ad7cdp6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 1 19:09:58 2009 +0100

    harmless uninitialised memory read fixed

 src/yqueue.hpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 9bd309bda6522dfdd514dd0c4eddp04322c83ed1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 1 18:50:54 2009 +0100

    annoying optimisation in 'bind' command removed

 src/command.hpp     |  4 +---
 src/object.cpp      | 11 ++++-------
 src/object.hpp      |  6 +++---
 src/session.cpp     |  5 ++---
 src/socket_base.cpp | 13 +++----------
 src/socket_base.hpp |  3 +--
 6 files changed, 14 insertions(+), 28 deletions(-)

commit c04583ff6ca3c27de5628a61b6b6ce59fd13c9d9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Dec 1 15:12:42 2009 +0100

    minor code beautification

 src/pipe.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 0d704fceee5e1bd0fe9438fa380452b69cd29114
Author: unknown <bundra@.(none)>
Date:   Tue Dec 1 14:58:00 2009 +0100

    MSVC warnings fixed

 src/pipe.cpp | 32 ++++++++++++++++++++++++--------
 src/pipe.hpp |  6 ++++--
 2 files changed, 28 insertions(+), 10 deletions(-)

commit 9cff475af849897f669049fd7748f875fa1cd6c3
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Nov 30 18:18:13 2009 +0100

    added libpgm-2.0.17rc2 into the dist package

 Makefile.am                              |   4 ++--
 configure.in                             |  21 +++++++++++++++------
 foreign/openpgm/libpgm-2.0.17rc2.tar.bz2 | Bin 0 -> 315051 bytes
 man/convert2pdf.sh                       |   0
 4 files changed, 17 insertions(+), 8 deletions(-)

commit 82242f6a9e06d855ff2ac5616196a97868838a6c
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Nov 30 17:48:16 2009 +0100

    minor formatting fix in zmq_init.3 man page

 man/man3/zmq_init.3 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c637bf292d0dc97be5c94c5c96a033c2d665576c
Merge: 9ccf2b42 fa1641af
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Nov 30 16:45:36 2009 +0100

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 9ccf2b42cf932b4c29ea20cc9c6e3d5d8e7a62b4
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Nov 30 16:45:18 2009 +0100

    minor tweaks in pgm code

 src/pgm_sender.cpp | 4 ++++
 src/pgm_socket.cpp | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

commit fa1641afc593be5926e558381861112b584e861a
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Fri Nov 27 14:30:48 2009 +0100

    msvc build fixed

 bindings/c/zmq.h                 |  3 +++
 builds/msvc/libzmq/libzmq.vcproj | 16 ++++++++++++++++
 2 files changed, 19 insertions(+)

commit 19ce7c0e77f703ed2ec3b54685ddf4a6f2329ffe
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 26 12:41:50 2009 +0100

    zmq_msg_data.3 referenced twice in Makefile.am - fixed

 AUTHORS         | 1 +
 man/Makefile.am | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 8d85638f77ec0aa886170ba6bb49763ef165393b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 26 12:01:26 2009 +0100

    memory leak in message encoder fixed

 AUTHORS                   | 1 +
 perf/c/local_thr.c        | 3 +++
 src/session.cpp           | 4 ----
 src/zmq_decoder.cpp       | 8 +++++++-
 src/zmq_encoder.cpp       | 7 ++++++-
 src/zmq_listener_init.cpp | 1 -
 6 files changed, 17 insertions(+), 7 deletions(-)

commit 92aa9e94e21b652839faa3dda27c67571bad315d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Nov 25 08:55:03 2009 +0100

    experimental code to use futexes instead of mutexes added to simple_semapthore_t

 src/simple_semaphore.hpp | 60 +++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 57 insertions(+), 3 deletions(-)

commit c98fd6bc3f2a49d7cb0b820a07354168c98f60b7
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Nov 24 11:23:10 2009 +0100

    ZMQII-25: Implement streamed request/reply

 bindings/c/zmq.h                        |   6 ++
 bindings/java/org/zmq/Socket.java       |   2 +
 bindings/python/pyzmq.cpp               |   6 ++
 bindings/ruby/rbzmq.cpp                 |   2 +
 configure.in                            |  15 +++-
 devices/Makefile.am                     |   8 +-
 devices/zmq_forwarder/zmq_forwarder.cpp |   7 +-
 devices/zmq_streamer/Makefile.am        |   9 ++
 devices/zmq_streamer/zmq_streamer.cpp   | 122 +++++++++++++++++++++++++++
 man/man3/zmq_socket.3                   |   9 ++
 src/Makefile.am                         |   4 +
 src/app_thread.cpp                      |  14 +++-
 src/downstream.cpp                      | 131 +++++++++++++++++++++++++++++
 src/downstream.hpp                      |  64 ++++++++++++++
 src/p2p.hpp                             |   4 +-
 src/pub.hpp                             |   4 +-
 src/rep.cpp                             |   2 +-
 src/rep.hpp                             |   4 +-
 src/req.hpp                             |   4 +-
 src/sub.hpp                             |   4 +-
 src/upstream.cpp                        | 143 ++++++++++++++++++++++++++++++++
 src/upstream.hpp                        |  69 +++++++++++++++
 22 files changed, 612 insertions(+), 21 deletions(-)

commit 5cd98bc575517ea72c435770a5313711484f7d34
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Nov 23 09:22:25 2009 +0100

    the rest of man3 man pages filled in

 man/man3/zmq_msg_close.3     | 20 +++++++++++++++++
 man/man3/zmq_msg_copy.3      | 31 ++++++++++++++++++++++++++
 man/man3/zmq_msg_data.3      | 15 +++++++++++++
 man/man3/zmq_msg_init.3      | 21 ++++++++++++++++++
 man/man3/zmq_msg_init_data.3 | 33 +++++++++++++++++++++++++++
 man/man3/zmq_msg_init_size.3 | 32 ++++++++++++++++++++++++++
 man/man3/zmq_msg_move.3      | 26 ++++++++++++++++++++++
 man/man3/zmq_msg_size.3      | 18 +++++++++++++++
 man/man3/zmq_poll.3          | 53 ++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 249 insertions(+)

commit e90ada0d044636201c57786307a49a52f9cf7643
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Nov 22 16:51:21 2009 +0100

    more man pages filled in

 bindings/c/zmq.h          |   2 +-
 man/man3/zmq_bind.3       |  36 ++++++++++++++++
 man/man3/zmq_close.3      |  15 +++++++
 man/man3/zmq_connect.3    |  37 ++++++++++++++++-
 man/man3/zmq_flush.3      |  25 +++++++++++
 man/man3/zmq_init.3       |   3 +-
 man/man3/zmq_recv.3       |  40 ++++++++++++++++++
 man/man3/zmq_send.3       |  52 +++++++++++++++++++++++
 man/man3/zmq_setsockopt.3 | 103 ++++++++++++++++++++++++++++++++++++++++++++++
 man/man3/zmq_socket.3     |  56 +++++++++++++++++++++++++
 man/man3/zmq_term.3       |   2 +
 11 files changed, 368 insertions(+), 3 deletions(-)

commit 6602cce9af93539df8f1c43235e7e7130a3df60d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Nov 22 12:05:11 2009 +0100

    zmq_init, zmq_term & zmq_strerror man pages added

 man/Makefile.am         |  2 +-
 man/convert2pdf.sh      |  2 ++
 man/man3/zmq_init.3     | 26 ++++++++++++++++++++++++++
 man/man3/zmq_strerror.3 | 27 +++++++++++++++++++++++++++
 man/man3/zmq_term.3     | 11 +++++++++++
 5 files changed, 67 insertions(+), 1 deletion(-)

commit ed5563f75285197aa0cdbe8a0dc6f80c5bb1f89c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Nov 22 10:25:53 2009 +0100

    man pages (dummy) added for zmq_msg_* functions

 man/Makefile.am              |  5 ++++-
 man/convert2pdf.sh           | 16 ++++++++++++++++
 man/man3/zmq_msg_close.3     | 12 ++++++++++++
 man/man3/zmq_msg_copy.3      | 12 ++++++++++++
 man/man3/zmq_msg_data.3      | 12 ++++++++++++
 man/man3/zmq_msg_init.3      | 12 ++++++++++++
 man/man3/zmq_msg_init_data.3 | 15 +++++++++++++++
 man/man3/zmq_msg_init_size.3 | 12 ++++++++++++
 man/man3/zmq_msg_move.3      | 12 ++++++++++++
 man/man3/zmq_msg_size.3      | 12 ++++++++++++
 10 files changed, 119 insertions(+), 1 deletion(-)

commit 55b64a02e7f3b1ce9e512240a9f9a337ead3b54c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Nov 22 08:47:06 2009 +0100

    man pages - initial (dummy) version

 Makefile.am               |  8 ++++++--
 configure.in              |  8 +++++++-
 man/Makefile.am           | 16 ++++++++++++++++
 man/convert2pdf.sh        | 48 +++++++++++++++++++++++++++++++++++++++++++++++
 man/man1/zmq_forwarder.1  | 11 +++++++++++
 man/man3/zmq_bind.3       | 12 ++++++++++++
 man/man3/zmq_close.3      | 12 ++++++++++++
 man/man3/zmq_connect.3    | 12 ++++++++++++
 man/man3/zmq_flush.3      | 12 ++++++++++++
 man/man3/zmq_init.3       | 12 ++++++++++++
 man/man3/zmq_poll.3       | 12 ++++++++++++
 man/man3/zmq_recv.3       | 12 ++++++++++++
 man/man3/zmq_send.3       | 12 ++++++++++++
 man/man3/zmq_setsockopt.3 | 12 ++++++++++++
 man/man3/zmq_socket.3     | 12 ++++++++++++
 man/man3/zmq_term.3       | 12 ++++++++++++
 man/man7/zmq.7            |  9 +++++++++
 17 files changed, 229 insertions(+), 3 deletions(-)

commit c41daca3da6ffd033f93c3e24898414567f71eb3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 21 21:30:09 2009 +0100

    race condition in inproc transport shutdown fixed

 src/command.hpp     |  3 +++
 src/object.cpp      |  9 ++++++---
 src/object.hpp      |  6 +++---
 src/session.cpp     |  4 +++-
 src/socket_base.cpp | 16 ++++++++++++----
 src/socket_base.hpp |  3 ++-
 6 files changed, 29 insertions(+), 12 deletions(-)

commit 64634605b3ccb90d582cfdf380535c89bf900a0e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 21 21:13:29 2009 +0100

    obsolete parameter removed from 'bind' command

 src/command.hpp     | 1 -
 src/object.cpp      | 9 +++------
 src/object.hpp      | 6 +++---
 src/session.cpp     | 2 +-
 src/socket_base.cpp | 6 ++----
 src/socket_base.hpp | 3 +--
 6 files changed, 10 insertions(+), 17 deletions(-)

commit 0e9ab2e8a3f5bc22f2c331c14236a2918a5512a8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 21 20:59:55 2009 +0100

    inproc transport - initial commit

 src/dispatcher.cpp  | 56 +++++++++++++++++++++++++++++++++++++++++++++++
 src/dispatcher.hpp  | 12 +++++++++++
 src/object.cpp      | 15 +++++++++++++
 src/object.hpp      |  6 ++++++
 src/socket_base.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/socket_base.hpp | 12 +++++++++++
 src/zmq.cpp         |  6 ++++--
 7 files changed, 165 insertions(+), 4 deletions(-)

commit 14f2fecdcd9732fe741c211138a4ba327816a937
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 19 09:53:49 2009 +0100

    ZMQII-24: SEGFAULT when anonymous session disconnects

 src/pipe.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit c2e0661b0afb2f50f47e0275fa6603947f26d240
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Nov 19 08:06:52 2009 +0100

    uninitialised variable in devpoll_t and kqueue_t

 src/devpoll.cpp | 3 ++-
 src/kqueue.cpp  | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 26ca5ed8c62f8a88a32106a5c9e003712f4ca655
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Nov 14 18:57:04 2009 +0100

    Fixing concurrency issue in rep.cpp resulting in broken connections with multiple requesters under heavy load.

 src/rep.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 84585a9561b5e3bd39baa8d49b889455362334ea
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Nov 4 18:59:19 2009 +0100

    pgm_transport_recvmsgv in process_upstream returns PGM_IO_STATUS_RATE_LIMITED on busy sender

 src/pgm_socket.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit c2cd7977f7a82e978d77b2d4d8e23d78f71e809c
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Nov 3 19:54:43 2009 +0100

    update pgm_socket to recent openpgm2

 src/pgm_socket.cpp | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

commit 08b02a43dp21e833a04d274fb20ef3bbc73c0d09
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Nov 3 14:11:53 2009 +0100

    fixed get_sender_fds and get_receiver_fds for openpgm2

 src/pgm_socket.cpp | 83 ++++++++++++++++++++++++++++++++----------------------
 src/pgm_socket.hpp |  2 +-
 2 files changed, 51 insertions(+), 34 deletions(-)

commit 7d672d3ab8c74371b58b293f807db74760b18155
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Nov 3 14:06:25 2009 +0100

    minor fixes for MSVC++ 2005 build

 src/app_thread.cpp | 3 +++
 src/fd.hpp         | 2 +-
 src/windows.hpp    | 5 +++++
 3 files changed, 9 insertions(+), 1 deletion(-)

commit 7cbdcc954213b715ce83316538403bbce1fac99f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 22 13:21:27 2009 +0200

    ZMQII-21: Problem with fd_signaler_t::poll on socket close

 src/fd_signaler.cpp | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

commit 55acf365ea76b908388ca9726232bde90242cdcb
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Oct 20 18:44:17 2009 +0200

    releasing python global lock when doing blocking operations

 bindings/python/pyzmq.cpp | 5 +++++
 1 file changed, 5 insertions(+)

commit 8b08047cb08dd6ba7dp142007f82607183574ef6
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 19 19:00:04 2009 +0200

    added --with-pgm2-examples configure option

 configure.in       |  17 +++++++++
 perf/c/Makefile.am | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/Makefile.am    |   4 ++-
 3 files changed, 123 insertions(+), 2 deletions(-)

commit 71e455bfe5dd1df1220e9280e536be56238d2178
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 19 15:19:22 2009 +0200

    ZMQII-19: add --disable-eventfd configure option

 configure.in | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

commit 50c7d12be6c10c294143491b479c50349a3c84a3
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 12 22:53:11 2009 +0200

    added HAVE_LIBWS2_32 into platform.hpp.in

 src/platform.hpp.in | 3 +++
 1 file changed, 3 insertions(+)

commit 0ce02058ebc35184b91399eee35d44ef01cd9e38
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 12 22:51:41 2009 +0200

    updated 0MQ to recent OpenPGM2 rev.562

 src/Makefile.am    | 1 +
 src/pgm_socket.cpp | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit ea2f6558fd2a759b78364ded493c598f5ca5a2d3
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 12 22:50:01 2009 +0200

    mingw fixed winsock linking issue

 configure.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 7afc61dp7c4859fa1a6273e1964d378c00142746
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Oct 6 12:57:24 2009 +0200

    0MQ compilable on winXP mingw with --with-pgm2 option

 configure.in         | 12 ++++++---
 src/Makefile.am      | 69 ++++++++++++++++++++++++++++++++--------------------
 src/pgm_receiver.cpp |  5 ++++
 src/pgm_receiver.hpp |  8 +++++-
 src/pgm_sender.cpp   |  6 +++--
 src/pgm_sender.hpp   |  4 +++
 src/pgm_socket.cpp   | 23 ++++++++++++------
 src/pgm_socket.hpp   | 13 ++++------
 src/platform.hpp.in  |  3 +++
 9 files changed, 94 insertions(+), 49 deletions(-)

commit ac83175ef0f0084f281a416785679f8b56f551b9
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 16:57:26 2009 +0200

    updated to recent PGM2 changes

 foreign/openpgm/create_custom_gsi_1.patch |  2 +-
 src/pgm_socket.cpp                        | 26 +++++++++++++++++---------
 2 files changed, 18 insertions(+), 10 deletions(-)

commit 3ddpff2786ce1d6d8e58f0ad15e693f2c48c94f9
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 15:06:40 2009 +0200

    mingw port

 configure.in        | 13 ++++++++-----
 src/fd.hpp          |  4 ++--
 src/platform.hpp.in |  3 +++
 src/uuid.hpp        |  7 ++++++-
 src/windows.hpp     |  6 ++++++
 5 files changed, 25 insertions(+), 8 deletions(-)

commit de2e439a52e93a4cb17a19e9ef9cadfd5ebf2cea
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 15:06:08 2009 +0200

    1 minor change in xmlParser.cpp

 foreign/xmlParser/xmlParser.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 14dc1f45cd1a328415db09ef1e06def6179ddp00
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 12:28:34 2009 +0200

    build system tuning - fixed make dist

 Makefile.am     |  7 ++++---
 configure.in    | 15 +++++++++++----
 src/Makefile.am | 11 ++++++-----
 3 files changed, 21 insertions(+), 12 deletions(-)

commit b0c97a5f8b88fca73338c1c173b446515e2ed366
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 10:37:49 2009 +0200

    build system tuning

 Makefile.am     | 1 +
 src/Makefile.am | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

commit d57ee0984ac3f8712063a7f83d7200be25ca5513
Merge: ff65e26c 4efe2366
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 10:22:31 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit ff65e26ce7567ea6a907e566f8530f4988231d68
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 10:22:12 2009 +0200

    create_custom_gsi.patch renamed to create_custom_gsi_1.patch

 configure.in                                                          | 4 ++--
 .../openpgm/{create_custom_gsi.patch => create_custom_gsi_1.patch}    | 0
 2 files changed, 2 insertions(+), 2 deletions(-)

commit e1b9fcd4b185cdcfd460a5d2ecb29d085856bb20
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Oct 5 10:18:24 2009 +0200

    moved pgm_create_custom_gsi into PGM1 and drop ssl dependency

 configure.in                            | 18 ++++++--------
 foreign/openpgm/create_custom_gsi.patch | 43 +++++++++++++++++++++++++++++++++
 foreign/openpgm/lost_data_tsi.patch     |  4 +--
 src/pgm_socket.cpp                      | 18 +-------------
 src/pgm_socket.hpp                      |  3 ---
 src/platform.hpp.in                     |  6 -----
 6 files changed, 54 insertions(+), 38 deletions(-)

commit 4efe2366d7394e8969fc9aa64c50be6842d8455f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 2 10:46:36 2009 +0200

    poller is a concept now rather than virtualised class

 src/Makefile.am   |  2 +-
 src/devpoll.cpp   | 41 ++++++++++++---------------
 src/devpoll.hpp   | 13 +++++----
 src/epoll.cpp     | 16 +++++------
 src/epoll.hpp     | 14 +++++-----
 src/i_poller.hpp  | 84 -------------------------------------------------------
 src/io_object.cpp |  2 +-
 src/io_object.hpp |  6 ++--
 src/io_thread.cpp | 41 ++-------------------------
 src/io_thread.hpp |  8 +++---
 src/kqueue.cpp    | 17 ++++++-----
 src/kqueue.hpp    | 13 +++++----
 src/poll.cpp      | 18 ++++++------
 src/poll.hpp      | 13 +++++----
 src/poller.hpp    | 68 ++++++++++++++++++++++++++++++++++++++++++++
 src/select.cpp    | 33 ++++++++++------------
 src/select.hpp    | 13 +++++----
 17 files changed, 170 insertions(+), 232 deletions(-)

commit 4a3b4dadead8fe2af65443d0be4cc8462b9aa597
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Oct 2 09:42:13 2009 +0200

    ZMQII-9: Check and implement speculative reads & writes

 src/ypollset.cpp   | 1 -
 src/zmq_engine.cpp | 6 ++++++
 2 files changed, 6 insertions(+), 1 deletion(-)

commit 49a9ef5fcb661827ee174415b4608e609bd0a65b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 1 13:48:04 2009 +0200

    windows error handling improved

 bindings/c/zmq.h      | 12 ++++++++++++
 src/err.cpp           | 43 +++++++++++++++++++++++++++++++++++++++++--
 src/err.hpp           |  1 +
 src/tcp_connecter.cpp | 10 +++++-----
 src/tcp_listener.cpp  | 17 ++++++++++++-----
 src/zmq.cpp           |  8 ++++++++
 6 files changed, 79 insertions(+), 12 deletions(-)

commit cc631c4c6649b0d67114db13386a949426e35dbf
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Oct 1 10:56:17 2009 +0200

    ZMQII-18: Implement I/O multiplexing (first approximation)

 bindings/c/zmq.h     |  33 +++++++++++++++
 bindings/cpp/zmq.hpp |   5 +++
 src/fd_signaler.hpp  |   2 -
 src/i_signaler.hpp   |   6 +++
 src/p2p.cpp          |  11 +++++
 src/p2p.hpp          |   2 +
 src/pub.cpp          |  11 +++++
 src/pub.hpp          |   2 +
 src/rep.cpp          |  17 ++++++++
 src/rep.hpp          |   2 +
 src/req.cpp          |  13 ++++++
 src/req.hpp          |   2 +
 src/socket_base.cpp  |  15 +++++++
 src/socket_base.hpp  |  12 ++++++
 src/sub.cpp          |  13 ++++++
 src/sub.hpp          |   2 +
 src/ypollset.cpp     |   6 +++
 src/ypollset.hpp     |   1 +
 src/zmq.cpp          | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 19 files changed, 269 insertions(+), 3 deletions(-)

commit f2ff2c6e5c4e244dea28e1ac6ec3f886b7ebc356
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 30 10:08:35 2009 +0200

    checking for available messages added to ypipe/pipe

 src/pipe.cpp  | 11 +++++++++++
 src/pipe.hpp  |  3 +++
 src/ypipe.hpp | 24 ++++++++++++++++--------
 3 files changed, 30 insertions(+), 8 deletions(-)

commit 84d854a088d27b642355d4e835a2d93e405452dp
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 29 15:40:29 2009 +0200

    documentation error in zmq.h fixed

 bindings/c/zmq.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 64e68e748607473befbcf2d96590d45dc7bc98db
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 29 13:56:19 2009 +0200

    detecting data loss for PGM2 receiver

 src/pgm_receiver.cpp | 10 ++++++++++
 src/pgm_socket.cpp   | 40 ++++++++++++++++++++++++++++++++++------
 2 files changed, 44 insertions(+), 6 deletions(-)

commit 39d915ded8ccb612dp1f9adpfcd93f349f4c8f4c
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Sep 28 18:06:06 2009 +0200

    PGM2 sender

 src/pgm_receiver.cpp |  2 +-
 src/pgm_sender.cpp   | 26 +++++++++++++--
 src/pgm_sender.hpp   |  3 ++
 src/pgm_socket.cpp   | 89 ++++++++++++++++++++++++++++++++++++++++------------
 src/pgm_socket.hpp   |  8 +++--
 5 files changed, 102 insertions(+), 26 deletions(-)

commit cf6cc0128ff4d26e0059f399bbb8342ce259b996
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Fri Sep 25 17:50:12 2009 +0200

    pgm2 receiver working (partly)

 src/Makefile.am     |   3 +-
 src/pgm_socket.cpp  | 161 ++++++++++++++++++++++++++++++++++++----------------
 src/pgm_socket.hpp  |  14 ++++-
 src/socket_base.cpp |   4 +-
 4 files changed, 129 insertions(+), 53 deletions(-)

commit 72c5c5fff42fc0b4c9d1eaadpbe9d6e1dd8824f2
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 24 16:23:49 2009 +0200

    --with-pgm2 compilable

 configure.in         | 10 +++---
 src/pgm_receiver.cpp |  2 +-
 src/pgm_receiver.hpp |  2 +-
 src/pgm_sender.cpp   |  2 +-
 src/pgm_sender.hpp   |  2 +-
 src/pgm_socket.cpp   | 91 +++++++++++++++++++++++++++++++++++++++++++++-------
 src/pgm_socket.hpp   |  9 +-----
 7 files changed, 89 insertions(+), 29 deletions(-)

commit 33afdcd1adccd19ebd9f4ec9cc6d23a37975d135
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 24 12:43:35 2009 +0200

    added --with-pgm2 into build system

 configure.in         | 116 +++++++++++++++++++++++++++++++++++++++++----------
 src/Makefile.am      |  89 +++++++++++++++++++++++++++++++++++++--
 src/pgm_receiver.cpp |   2 +-
 src/pgm_receiver.hpp |   2 +-
 src/pgm_sender.cpp   |   2 +-
 src/pgm_sender.hpp   |   2 +-
 src/pgm_socket.cpp   |   2 +-
 src/pgm_socket.hpp   |   2 +-
 src/platform.hpp.in  |   8 +++-
 src/socket_base.cpp  |   4 +-
 10 files changed, 196 insertions(+), 33 deletions(-)

commit 5dpe5fd0cfc6351e843de1540eafa4e757066edc
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 23 12:14:44 2009 +0200

    Updated libzmq.vcproj file

 builds/msvc/libzmq/libzmq.vcproj | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 27d8627cb5d8c91df2f09ecc1272e84be4fe3c80
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 23 11:31:03 2009 +0200

    Updated changelog for alpha3 release

 ChangeLog | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

commit b0a1a16fc2a84afa0eb2715f680297cdpf521b54
Merge: 088a2db6 25211307
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 23 10:23:53 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 088a2db6746488c1ce4a73c357cadpce50bbdf60
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 23 10:22:54 2009 +0200

    ZMQII-16: Change "struct zmq_msg_t" to "zmq_msg_t" in C binding

 bindings/c/zmq.h    | 24 ++++++++++++------------
 perf/c/local_lat.c  |  2 +-
 perf/c/local_thr.c  |  2 +-
 perf/c/remote_lat.c |  2 +-
 perf/c/remote_thr.c |  2 +-
 src/p2p.cpp         |  4 ++--
 src/p2p.hpp         |  4 ++--
 src/pipe.cpp        |  2 +-
 src/pipe.hpp        |  4 ++--
 src/pub.cpp         |  4 ++--
 src/pub.hpp         |  4 ++--
 src/rep.cpp         |  4 ++--
 src/rep.hpp         |  4 ++--
 src/req.cpp         |  4 ++--
 src/req.hpp         |  4 ++--
 src/socket_base.hpp | 10 ++++++----
 src/sub.cpp         |  4 ++--
 src/sub.hpp         |  6 +++---
 18 files changed, 46 insertions(+), 44 deletions(-)

commit 25211307696752acc17e91783aa662dc9e423b21
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 23 10:22:39 2009 +0200

    ZMQII-14: Change default for ZMQ_MCAST_LOOP to true

 src/options.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 85cbd7f83c10c70da8fa44fe7673143703f9710d
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 22 15:12:51 2009 +0200

    added PGM bus functionality

 Makefile.am                         |   1 +
 configure.in                        |  20 +++-
 foreign/openpgm/lost_data_tsi.patch |  76 +++++++++++++++
 src/pgm_receiver.cpp                | 186 +++++++++++++++++++-----------------
 src/pgm_receiver.hpp                |  37 ++++---
 src/pgm_socket.cpp                  | 159 ++++++++----------------------
 src/pgm_socket.hpp                  |  19 ++--
 src/platform.hpp.in                 |   6 ++
 8 files changed, 270 insertions(+), 234 deletions(-)

commit 3bd8f83f6d412221e4673ceb90b8ca7fa74ff2f1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 22 13:00:05 2009 +0200

    language bindings use zmq_strerror instead of strerror

 bindings/cpp/zmq.hpp      |  9 +--------
 bindings/java/Context.cpp | 12 +++---------
 bindings/java/Socket.cpp  | 11 ++---------
 bindings/python/pyzmq.cpp | 20 ++++++++++----------
 bindings/ruby/rbzmq.cpp   | 18 +++++++++---------
 5 files changed, 25 insertions(+), 45 deletions(-)

commit a0db7f6b811e687eda452a7de9f5db112f715544
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 22 12:08:18 2009 +0200

    POSIX error codes unsupported on win platform faked

 bindings/c/zmq.h | 16 +++++++++++++---
 src/zmq.cpp      | 13 +++++++++++++
 2 files changed, 26 insertions(+), 3 deletions(-)

commit e136d923b7060ef64d44264f88e49057e6638f31
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 22 11:52:35 2009 +0200

    ZMQ-specific error codes added

 bindings/c/zmq.h    | 34 +++++++++++++++++++++++++++++-----
 src/dispatcher.cpp  |  2 +-
 src/err.cpp         |  5 +++++
 src/pub.cpp         |  2 +-
 src/rep.cpp         |  6 +++---
 src/req.cpp         |  8 ++++----
 src/socket_base.cpp | 10 +++++-----
 src/sub.cpp         |  4 ++--
 src/zmq.cpp         | 15 +++++++++++++++
 9 files changed, 65 insertions(+), 21 deletions(-)

commit cc8136896d30890efb24aadc2d3058652aa43d45
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 22 10:57:46 2009 +0200

    documentation in zmq.h improved

 bindings/c/zmq.h     | 283 ++++++++++++++++++++++++++++++++++++---------------
 bindings/cpp/zmq.hpp |  13 ---
 src/zmq.cpp          |  28 +----
 3 files changed, 208 insertions(+), 116 deletions(-)

commit e6ca5da1815023e90306914dab101eeef4b6f199
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 22 08:30:15 2009 +0200

    Windows build fixed

 src/fd_signaler.cpp | 31 ++++++++++++++++---------------
 src/p2p.cpp         |  3 +++
 src/rep.cpp         |  2 ++
 3 files changed, 21 insertions(+), 15 deletions(-)

commit b15f695976d21300beabc3e0ecef87c1a0b4dc4c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 21 17:20:13 2009 +0200

    different fixes to req/rep

 src/dispatcher.cpp  |  8 ++++----
 src/fd_signaler.cpp | 22 +++++++++++-----------
 src/options.cpp     |  4 +++-
 src/options.hpp     |  5 +++++
 src/p2p.cpp         | 14 +++-----------
 src/p2p.hpp         |  2 --
 src/pub.cpp         | 14 +++-----------
 src/pub.hpp         |  2 --
 src/rep.cpp         | 14 +++-----------
 src/rep.hpp         |  2 --
 src/req.cpp         | 14 +++-----------
 src/req.hpp         |  2 --
 src/session.cpp     | 36 ++++++++++++++++++++++++------------
 src/socket_base.cpp | 40 +++++++++++++---------------------------
 src/socket_base.hpp | 13 ++++---------
 src/sub.cpp         | 14 +++-----------
 src/sub.hpp         |  2 --
 17 files changed, 79 insertions(+), 129 deletions(-)

commit cb1b6fe32cbf3c7cf5961bb4156f2de743693a3a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 21 14:39:59 2009 +0200

    initial version of req/rep sockets

 src/Makefile.am     |   8 +
 src/app_thread.cpp  |  20 ++-
 src/app_thread.hpp  |   3 +-
 src/i_endpoint.hpp  |   7 +-
 src/options.cpp     |  80 +++++++++
 src/options.hpp     |   3 +
 src/p2p.cpp         |  92 +++++++++++
 src/p2p.hpp         |  56 +++++++
 src/pipe.cpp        |  28 +---
 src/pipe.hpp        |  19 +--
 src/pub.cpp         | 129 ++++++++++++++-
 src/pub.hpp         |  24 ++-
 src/rep.cpp         | 204 +++++++++++++++++++++++
 src/rep.hpp         |  79 +++++++++
 src/req.cpp         | 206 +++++++++++++++++++++++
 src/req.hpp         |  84 ++++++++++
 src/session.cpp     |  51 +++---
 src/session.hpp     |   6 +-
 src/socket_base.cpp | 462 ++++++++++++++--------------------------------------
 src/socket_base.hpp |  77 ++++-----
 src/sub.cpp         |  88 +++++++++-
 src/sub.hpp         |  38 ++++-
 src/yarray.hpp      | 110 +++++++++++++
 src/yarray_item.hpp |  62 +++++++
 24 files changed, 1462 insertions(+), 474 deletions(-)

commit 7668b246fc3cf4a2a3b3ee9b1283ad8a4b12ac4f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 20 12:03:14 2009 +0200

    ZMQ_POLL option forces fd_signaler to be used in app_thread

 src/app_thread.cpp  | 18 +++++++++++++++---
 src/app_thread.hpp  |  5 ++---
 src/fd_signaler.cpp | 39 ++++++++++++++++++++++++---------------
 src/fd_signaler.hpp |  3 ---
 src/i_signaler.hpp  |  4 ++--
 src/ypollset.cpp    |  4 ++++
 src/ypollset.hpp    |  2 +-
 7 files changed, 48 insertions(+), 27 deletions(-)

commit 495a2228cd08a29946f9e9ce2e0721e789203e35
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 20 10:58:00 2009 +0200

    MSVC warnings removed

 src/fd_signaler.cpp | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

commit f99b8fc921bc0e6aa55276d8c55e43c9d7f4375a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 20 10:47:27 2009 +0200

    receiving side of signaler virtualised

 src/app_thread.cpp  |  4 ++--
 src/fd_signaler.cpp | 55 ++++++++++++++++++++++++++++++++++++++++-------------
 src/fd_signaler.hpp | 12 +++---------
 src/i_signaler.hpp  | 11 +++++++++++
 src/io_thread.cpp   |  4 ++--
 src/ypollset.cpp    |  8 ++++----
 src/ypollset.hpp    | 18 ++++++------------
 7 files changed, 70 insertions(+), 42 deletions(-)

commit 50a8b9ea0c4a819073b46449dee8fc839b837dp5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Sep 20 10:14:21 2009 +0200

    'flags' parameter added to zmq_init

 bindings/c/zmq.h                   |  6 +++++-
 bindings/cpp/zmq.hpp               |  4 ++--
 bindings/java/Context.cpp          |  4 ++--
 bindings/java/org/zmq/Context.java |  8 +++++---
 bindings/python/pyzmq.cpp          | 13 ++++++++-----
 bindings/ruby/rbzmq.cpp            | 11 +++++++----
 perf/c/local_lat.c                 |  2 +-
 perf/c/local_thr.c                 |  2 +-
 perf/c/remote_lat.c                |  2 +-
 perf/c/remote_thr.c                |  2 +-
 perf/java/local_lat.java           |  2 +-
 perf/java/local_thr.java           |  2 +-
 perf/java/remote_lat.java          |  2 +-
 perf/java/remote_thr.java          |  2 +-
 perf/ruby/local_lat.rb             |  2 +-
 perf/ruby/local_thr.rb             |  2 +-
 perf/ruby/remote_lat.rb            |  2 +-
 perf/ruby/remote_thr.rb            |  2 +-
 src/app_thread.cpp                 |  3 ++-
 src/app_thread.hpp                 |  3 ++-
 src/dispatcher.cpp                 |  8 +++++---
 src/dispatcher.hpp                 |  2 +-
 src/fd_signaler.cpp                |  6 ++++++
 src/io_thread.cpp                  |  3 ++-
 src/io_thread.hpp                  |  3 ++-
 src/zmq.cpp                        |  8 ++++----
 26 files changed, 65 insertions(+), 41 deletions(-)

commit edecf75b611cf0e6b1c2658846cff013434edad4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 17 12:29:32 2009 +0200

    python binding checks ctx argument type

 bindings/python/pyzmq.cpp | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

commit 8cdf75327d847c464415ab32554d155febcf7c5e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 17 11:44:39 2009 +0200

    ChangeLog updated

 ChangeLog | 336 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 175 insertions(+), 161 deletions(-)

commit dffbdbb60c5d5caf01d13063a3d1babab0411338
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 17 11:31:28 2009 +0200

    fixed compiler warning cast from uint64 to bool in socket_base.cpp

 src/socket_base.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit 1bd6d5e0f6a6013b2d43abb2a82f0027a92fcc96
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 17 11:26:39 2009 +0200

    fixed missing xmlParser in dist package

 Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 2be152967c90834bf02ab84e39980281d3f05002
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 17 10:49:02 2009 +0200

    java binding Makefile.am cleanup

 bindings/java/Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit cff6eb43766ddbbc894237c1ffffc824ca3c79b6
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 17 10:29:02 2009 +0200

    msvc directory moved into builds dir

 bindings/java/Socket.cpp                           |   2 +-
 .../msvc}/c_local_lat/c_local_lat.vcproj           |  10 +-
 .../msvc}/c_local_thr/c_local_thr.vcproj           |  10 +-
 .../msvc}/c_remote_lat/c_remote_lat.vcproj         |  10 +-
 .../msvc}/c_remote_thr/c_remote_thr.vcproj         |  10 +-
 .../msvc}/cpp_local_lat/cpp_local_lat.vcproj       |  10 +-
 .../msvc}/cpp_local_thr/cpp_local_thr.vcproj       |  10 +-
 .../msvc}/cpp_remote_lat/cpp_remote_lat.vcproj     |  10 +-
 .../msvc}/cpp_remote_thr/cpp_remote_thr.vcproj     |  10 +-
 .../msvc}/j_local_lat/j_local_lat.vcproj           |   6 +-
 .../msvc}/j_local_thr/j_local_thr.vcproj           |   6 +-
 .../msvc}/j_remote_lat/j_remote_lat.vcproj         |   6 +-
 .../msvc}/j_remote_thr/j_remote_thr.vcproj         |   6 +-
 {msvc => builds/msvc}/java/java.vcproj             |  32 ++--
 {msvc => builds/msvc}/libzmq/libzmq.vcproj         | 208 ++++++++++++---------
 {msvc => builds/msvc}/msvc.sln                     |   0
 {msvc => builds/msvc}/platform.hpp                 |   0
 {msvc => builds/msvc}/python/python.vcproj         |   6 +-
 .../msvc}/zmq_forwarder/zmq_forwarder.vcproj       |   6 +-
 19 files changed, 191 insertions(+), 167 deletions(-)

commit 3ebe9932f9c208966f8cb97d631d26df0367c151
Merge: 1a655045 d16b3bc0
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 17:07:15 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 1a655045951c29edda0b616640b9dac507cda164
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 17:06:59 2009 +0200

    ruby directory moved into bindings dir

 Makefile.am                         | 9 +++------
 bindings/Makefile.am                | 8 ++++++--
 {ruby => bindings/ruby}/Makefile.am | 0
 {ruby => bindings/ruby}/extconf.rb  | 0
 {ruby => bindings/ruby}/rbzmq.cpp   | 0
 configure.in                        | 2 +-
 6 files changed, 10 insertions(+), 9 deletions(-)

commit c63387ca3657848c0eaa8014a863148c1e6525ff
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 17:00:32 2009 +0200

    python directory moved into bindings dir

 Makefile.am                             |  8 ++------
 bindings/Makefile.am                    | 11 +++++++++++
 {python => bindings/python}/Makefile.am |  0
 {python => bindings/python}/pyzmq.cpp   |  0
 {python => bindings/python}/setup.py.in |  0
 configure.in                            |  3 ++-
 6 files changed, 15 insertions(+), 7 deletions(-)

commit 1b2a426656134b85ff4c75cb0cccbc53f2b83447
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 16:49:09 2009 +0200

    c and cpp directories moved into bindings directory

 {c => bindings/c}/zmq.h                 | 0
 {cpp => bindings/cpp}/zmq.hpp           | 0
 bindings/java/Makefile.am               | 2 +-
 devices/zmq_forwarder/Makefile.am       | 2 +-
 devices/zmq_forwarder/zmq_forwarder.cpp | 2 +-
 perf/c/Makefile.am                      | 2 +-
 perf/cpp/Makefile.am                    | 2 +-
 perf/java/Makefile.am                   | 2 +-
 src/Makefile.am                         | 4 ++--
 src/app_thread.cpp                      | 2 +-
 src/dispatcher.cpp                      | 2 +-
 src/i_inout.hpp                         | 2 +-
 src/io_thread.cpp                       | 2 +-
 src/msg_content.hpp                     | 2 +-
 src/pipe.cpp                            | 2 +-
 src/pipe.hpp                            | 2 +-
 src/pub.cpp                             | 2 +-
 src/socket_base.cpp                     | 2 +-
 src/sub.cpp                             | 2 +-
 src/zmq.cpp                             | 2 +-
 src/zmq_decoder.hpp                     | 2 +-
 src/zmq_encoder.hpp                     | 2 +-
 22 files changed, 21 insertions(+), 21 deletions(-)

commit 6bfb9e6aaf0adad441d693a679c30ef30dpb5c14
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 16:22:23 2009 +0200

    java directory moved into bindings directory II

 Makefile.am               | 8 ++------
 bindings/java/Makefile.am | 2 +-
 configure.in              | 4 ++--
 3 files changed, 5 insertions(+), 9 deletions(-)

commit 3de435a07d460e7eb2423a75e71a409b0f1143e2
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 16:22:00 2009 +0200

    java directory moved into bindings directory

 {java => bindings/java}/Context.cpp          | 0
 {java => bindings/java}/Makefile.am          | 0
 {java => bindings/java}/Socket.cpp           | 0
 {java => bindings/java}/org/zmq/Context.java | 0
 {java => bindings/java}/org/zmq/Socket.java  | 0
 5 files changed, 0 insertions(+), 0 deletions(-)

commit d16b3bc0c93452a4be7d06525793ac5190e38031
Merge: 35c58dc7 10dd8c53
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 15:52:39 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 35c58dc7331e3c5033b16829dff40437efe97a81
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 15:37:20 2009 +0200

    ZMQII-1: fix for devpoll, kqueue & poll

 src/devpoll.cpp | 3 ++-
 src/kqueue.cpp  | 3 ++-
 src/poll.cpp    | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

commit 10dd8c53460a28849aacf7d2e24b63d7fdp11dp0
Merge: 03d494d4 fc7715b4
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 15:36:56 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 03d494d4f074a8707274e6d5fd21ac6dca917344
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 15:36:38 2009 +0200

    added udp:// transport prefix for PGM UDP encapsulation

 src/pgm_receiver.cpp |  4 ++--
 src/pgm_receiver.hpp |  2 +-
 src/pgm_sender.cpp   | 10 ++++------
 src/pgm_sender.hpp   |  2 +-
 src/pgm_socket.cpp   | 33 +++++++--------------------------
 src/pgm_socket.hpp   |  2 +-
 src/socket_base.cpp  | 13 +++++++++----
 7 files changed, 25 insertions(+), 41 deletions(-)

commit fc7715b4636be7a0d49f27234359ddfddce23f5b
Merge: f1c72d69 c6665f46
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 15:27:39 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit f1c72d693e3bd252866a1f78e575493573eb57fe
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 15:26:49 2009 +0200

    ZMQII-4: Failure in dev/poll poller

 src/zmq_connecter.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit c6665f46be7eb701866441087c35cdb1a08fc641
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 14:57:22 2009 +0200

    set rc to 0 in its declaration (pyzmq.cpp)

 python/pyzmq.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3b2c3cdp095abf9b61cd72cf19f053071a8c614a
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 14:55:11 2009 +0200

    setsockopt cleanup in rbzmq

 perf/ruby/local_thr.rb |  2 +-
 ruby/rbzmq.cpp         | 94 +++++++++++++++++++-------------------------------
 2 files changed, 37 insertions(+), 59 deletions(-)

commit 3534732c0614a764731fbea2431247068fa63330
Merge: 17800ac8 a71d0028
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 14:26:04 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 17800ac85e667d18124d0e90f9387d6c90887570
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 14:25:49 2009 +0200

    setsockopt cleanup in pyzmq.cpp

 python/pyzmq.cpp | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

commit a71d00288008b7ed1dc91b6ad3d5fdf25a5e683e
Merge: 4631fde7 7a5db604
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 14:03:42 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 4631fde7e385ea31e85f41290614afb9bda391c9
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 14:02:43 2009 +0200

    ZMQII-8: Failure during orphan pipe deallocation

 src/dispatcher.cpp         | 4 ++--
 src/session.cpp            | 6 +++++-
 src/zmq_connecter_init.cpp | 6 +++++-
 3 files changed, 12 insertions(+), 4 deletions(-)

commit 7a5db6041f4f11ed502fa7446da900509dedb00f
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 12:22:36 2009 +0200

    added newly added socket options to all language bindings, P2P model changed to PUB/SUB for throughput tests

 c/zmq.h                   |  2 +-
 java/Socket.cpp           |  1 +
 java/org/zmq/Socket.java  |  1 +
 perf/c/local_thr.c        |  8 +++++-
 perf/c/remote_thr.c       |  5 +++-
 perf/cpp/local_thr.cpp    |  8 +++++-
 perf/cpp/remote_thr.cpp   |  6 ++++-
 perf/java/local_thr.java  | 68 ++++++++++++++++++++++++++---------------------
 perf/java/remote_thr.java | 50 ++++++++++++++++++----------------
 perf/python/local_thr.py  |  8 +++++-
 perf/python/remote_thr.py |  6 ++++-
 perf/ruby/local_thr.rb    |  7 ++++-
 perf/ruby/remote_thr.rb   |  6 ++++-
 python/pyzmq.cpp          | 18 ++++++++++++-
 ruby/rbzmq.cpp            |  5 ++++
 src/socket_base.cpp       | 11 ++++++--
 16 files changed, 144 insertions(+), 66 deletions(-)

commit 9c522dccaf0b2c8074bd96fbfb4c968f45748ba4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 11:02:18 2009 +0200

    reconnect added to zmq_connecter

 perf/c/remote_lat.c        | 12 +++++++-----
 perf/cpp/remote_lat.cpp    |  5 ++++-
 src/session.cpp            |  9 ++++++---
 src/session.hpp            |  5 ++++-
 src/socket_base.cpp        |  4 ++--
 src/zmq_connecter.cpp      | 22 +++++++++++++++++-----
 src/zmq_connecter.hpp      |  5 ++++-
 src/zmq_connecter_init.cpp | 22 ++++++++++++++++++++--
 src/zmq_engine.cpp         |  1 +
 src/zmq_engine.hpp         |  1 +
 src/zmq_listener_init.cpp  |  2 +-
 11 files changed, 67 insertions(+), 21 deletions(-)

commit 6e03cb2f3eb083e1de8e7161d3ab21b52c87eece
Merge: bce2e60b 9fbdcc79
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 10:56:55 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 9fbdcc7940823634d82f51d2b124ccfbca6e9b17
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 10:35:23 2009 +0200

    removed reset method from zmq_decoder_t

 src/pgm_receiver.cpp | 25 +++++++++++++++----------
 src/pgm_receiver.hpp |  2 +-
 src/zmq_decoder.cpp  | 10 ----------
 src/zmq_decoder.hpp  |  2 --
 4 files changed, 16 insertions(+), 23 deletions(-)

commit 969522bbf55467b6f6e8113be28451d087060843
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 16 10:11:01 2009 +0200

    added OpenPGM receiver - ZMQ_SUB

 c/zmq.h              |   1 +
 src/Makefile.am      |   2 +
 src/options.cpp      |   3 +-
 src/options.hpp      |   7 +-
 src/pgm_receiver.cpp | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/pgm_receiver.hpp |  98 +++++++++++++++++++++++++
 src/pgm_sender.cpp   |   7 +-
 src/pgm_sender.hpp   |   2 +-
 src/pgm_socket.cpp   |  17 +++--
 src/socket_base.cpp  |  75 +++++++++++++++++--
 src/sub.cpp          |   6 ++
 11 files changed, 395 insertions(+), 25 deletions(-)

commit bce2e60bbb3b7f799a532d9b8f2e171c570b9fea
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 16 09:50:39 2009 +0200

    more errors from send & recv handled decently on windows

 src/tcp_socket.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 0381a78c0484012e760d61051f325c71136df17e
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 13:47:15 2009 +0200

    added reset method into zmq_decoder_t class

 src/zmq_decoder.cpp | 10 ++++++++++
 src/zmq_decoder.hpp |  2 ++
 2 files changed, 12 insertions(+)

commit 79d4a6debf2f4a6970c1137f15426ba0c3535ac0
Merge: 7653f34d 98b8e9b5
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 12:01:07 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 7653f34df0adp4689d0ccc563a2f111f4793e539
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 12:00:48 2009 +0200

    fixed pub_t class creating ZMQ_SUB socket_base_t

 src/pub.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 98b8e9b54dd8c67006422106b478a3a6eab07869
Merge: a841774c 3a3bcd33
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 15 10:06:42 2009 +0200

    Merge branch 'master' of github.com:sustrik/zeromq2

commit a841774cbd6363e6ddccc7a56e9a97d1c1481a76
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 15 10:04:43 2009 +0200

    forwarder renamed to zmq_forwarder (MSVC build)

 msvc/msvc.sln                                                  | 10 +++++-----
 .../forwarder.vcproj => zmq_forwarder/zmq_forwarder.vcproj}    |  8 ++++----
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 3a3bcd337fb8000dpf6c8f5ca3dd1b10475d7ab0
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 09:57:11 2009 +0200

    pgm_sender code beautiication

 src/pgm_sender.hpp | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

commit f44b215a60f50e8730a50522d7b9f2d5b4381d19
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 09:47:25 2009 +0200

    added out_event call into pgm_sender_t revive

 src/pgm_sender.cpp | 23 +----------------------
 1 file changed, 1 insertion(+), 22 deletions(-)

commit 712c7bd8954a801526e87e652840f7087f9af706
Merge: 36428134 35e82b46
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 09:46:08 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 35e82b460549e227f6c3409be32d2c657955628c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 15 09:45:32 2009 +0200

    forwarder renamed to zmq_forwarder

 configure.in                                                     | 2 +-
 devices/Makefile.am                                              | 4 ++--
 devices/forwarder/Makefile.am                                    | 9 ---------
 devices/zmq_forwarder/Makefile.am                                | 9 +++++++++
 .../{forwarder/forwarder.cpp => zmq_forwarder/zmq_forwarder.cpp} | 0
 5 files changed, 12 insertions(+), 12 deletions(-)

commit 364281343ce0fd03b25bc6b1b451ee7ba8db436b
Merge: bdf22e9c f7ad4a20
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 09:44:44 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit bdf22e9c2fe82366283f4edc02fd59c37fdb2c4b
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 15 09:43:42 2009 +0200

    deleted useles iostream include from socket_base.cpp

 src/socket_base.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit f7ad4a203ad184d97002111f4ffb8bfe6a8f7c01
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 14 17:04:57 2009 +0200

    forwarder device compilable on windows

 foreign/xmlParser/xmlParser.cpp |  12 ++-
 msvc/forwarder/forwarder.vcproj | 174 ++++++++++++++++++++++++++++++++++++++++
 msvc/msvc.sln                   |   9 +++
 python/pyzmq.cpp                |   3 -
 ruby/rbzmq.cpp                  |   3 +-
 5 files changed, 196 insertions(+), 5 deletions(-)

commit 6cfd175e31eec44d215bbc237f2f1d94bfeac06d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 14 16:45:53 2009 +0200

    forwarder device added

 Makefile.am                     |   4 +-
 configure.in                    |  39 +++++++++----
 devices/Makefile.am             |   6 ++
 devices/forwarder/Makefile.am   |   9 +++
 devices/forwarder/forwarder.cpp | 122 ++++++++++++++++++++++++++++++++++++++++
 5 files changed, 168 insertions(+), 12 deletions(-)

commit e2900ce0a1b11ec212dpaf42bbefb26a54697c25
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 14 14:30:15 2009 +0200

    xmlParser added

 foreign/xmlParser/xmlParser.cpp | 2888 +++++++++++++++++++++++++++++++++++++++
 foreign/xmlParser/xmlParser.hpp |  762 +++++++++++
 2 files changed, 3650 insertions(+)

commit 2bc9419ced21151fe90c530758dc85b7024fdb70
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 14 13:54:30 2009 +0200

    ZMQII-10: Make connections interrupted during the init phase be closed silently

 src/zmq_decoder.cpp       | 13 +++++++++++--
 src/zmq_listener_init.cpp |  7 +++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

commit 37cacc5700eaaaddbe2df6e3affeca4a335b023a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 14 12:28:13 2009 +0200

    ZMQII-1: Win32 - failure on shutdown

 java/Socket.cpp           | 2 ++
 msvc/libzmq/libzmq.vcproj | 4 ++++
 src/select.cpp            | 4 ++--
 src/socket_base.cpp       | 2 +-
 4 files changed, 9 insertions(+), 3 deletions(-)

commit c806aabb2d3e6b1ba9e3f61319f23d45c7f9a007
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 14 11:25:57 2009 +0200

    java binding sets socket options using setsockopt function

 c/zmq.h                  |  19 ++++----
 java/Socket.cpp          | 114 +++++++++++++++++++----------------------------
 java/org/zmq/Socket.java |  58 +++++++-----------------
 src/options.cpp          |   5 +--
 src/options.hpp          |   1 -
 src/socket_base.cpp      |  16 ++-----
 6 files changed, 77 insertions(+), 136 deletions(-)

commit 36707529a7d82b164b59d42fe0d5d8a35c3dd279
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 14 09:40:35 2009 +0200

    minor merge problem corrected

 src/pub.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 89b1f2782ca6a1db9c68b7d642b5a41cc4d56414
Merge: 47350adc 1a4d6f91
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 18:18:25 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 47350adcb6ea48512d732bc323eb1835a5ac9908
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 18:16:47 2009 +0200

    separate class for PUB-style socket added

 c/zmq.h            |  6 +++---
 src/Makefile.am    |  2 ++
 src/app_thread.cpp |  5 ++++-
 src/pub.cpp        | 39 +++++++++++++++++++++++++++++++++++++++
 src/pub.hpp        | 41 +++++++++++++++++++++++++++++++++++++++++
 src/sub.cpp        | 12 ++++++++++++
 src/sub.hpp        |  2 ++
 7 files changed, 103 insertions(+), 4 deletions(-)

commit 1a4d6f91194c52795808baa07dcd61a20ff599be
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Fri Sep 11 17:58:37 2009 +0200

    added OpenPGM sender - ZMQ_PUB

 Makefile.am         |   4 +-
 c/zmq.h             |   2 +
 src/Makefile.am     |   6 +-
 src/app_thread.cpp  |   2 +-
 src/config.hpp      |   4 +-
 src/options.cpp     |   4 +-
 src/options.hpp     |   6 +
 src/pgm_sender.cpp  | 224 ++++++++++++++++
 src/pgm_sender.hpp  | 109 ++++++++
 src/pgm_socket.cpp  | 754 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/pgm_socket.hpp  | 153 +++++++++++
 src/socket_base.cpp | 105 +++++++-
 src/socket_base.hpp |   5 +-
 src/sub.cpp         |   2 +-
 14 files changed, 1360 insertions(+), 20 deletions(-)

commit e940878b3f8ff332df534c4df463cfdf085cc787
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 16:59:47 2009 +0200

    build on win32 fixed

 msvc/libzmq/libzmq.vcproj | 8 ++++++++
 src/socket_base.cpp       | 2 +-
 src/tcp_connecter.cpp     | 2 +-
 3 files changed, 10 insertions(+), 2 deletions(-)

commit 7be7962f9802b48e66663416097eb76edfa83e1e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 16:23:16 2009 +0200

    prefix-style message filtering added

 src/sub.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++--------------
 src/sub.hpp | 10 ++++++++--
 2 files changed, 55 insertions(+), 16 deletions(-)

commit 42ad2aa02d3b14eaa3c36c3f1a5a5789546ba411
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 15:51:35 2009 +0200

    ZMQII-7: Pipe detach fails on shutdown

 src/socket_base.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 29c5930d0b9a4a1df3b90819bdfbfff6a66fedd0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 14:17:57 2009 +0200

    asserts for invalid indexes in pipe reader & writer added

 src/pipe.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit e0d1294c4bdp51a2bc83a09225e89dddc9b6dcf4
Merge: 5daa0dec a91b4497
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 13:20:57 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 5daa0dec0f473c84aab6b12cdc5541335e74f07f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 11 13:20:24 2009 +0200

    ZMQII-5: Only one consumer in a process gets the message

 src/session.cpp            | 23 ++++++++++++++---------
 src/zmq_connecter_init.cpp |  4 +++-
 src/zmq_engine.cpp         |  2 ++
 src/zmq_listener_init.cpp  |  4 +++-
 4 files changed, 22 insertions(+), 11 deletions(-)

commit a91b44977201e4b3891c70da0472a332f60a39fc
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Fri Sep 11 11:21:40 2009 +0200

    Revert "link libzmq with glib when congifured --with-pgm"

    This reverts commit 88695adpe607e6f4db1f4fd052e2596653fb18b2.

 c/zmq.h                 |  2 --
 perf/cpp/remote_thr.cpp | 13 +--------
 src/Makefile.am         |  6 +---
 src/config.hpp          |  4 +--
 src/options.cpp         |  4 +--
 src/options.hpp         |  6 ----
 src/socket_base.cpp     | 74 ++++++++-----------------------------------------
 7 files changed, 16 insertions(+), 93 deletions(-)

commit 88695adpe607e6f4db1f4fd052e2596653fb18b2
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Fri Sep 11 11:13:15 2009 +0200

    link libzmq with glib when congifured --with-pgm

 c/zmq.h                 |  2 ++
 perf/cpp/remote_thr.cpp | 13 ++++++++-
 src/Makefile.am         |  6 +++-
 src/config.hpp          |  4 ++-
 src/options.cpp         |  4 ++-
 src/options.hpp         |  6 ++++
 src/socket_base.cpp     | 74 +++++++++++++++++++++++++++++++++++++++++--------
 7 files changed, 93 insertions(+), 16 deletions(-)

commit f824b8a067c60b32260c56020742d6428ed3bb98
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 10 16:59:22 2009 +0200

    classify error from async connect as network related or 0MQ bugs

 src/tcp_connecter.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit f674c9269e04546da22e45ef6fff9303441680ea
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 10 16:32:06 2009 +0200

    ZMQII-2: SIGSEGV in zmq_connecter_init_t::read

 src/zmq_decoder.cpp | 2 +-
 src/zmq_encoder.cpp | 2 +-
 src/zmq_engine.cpp  | 2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

commit 93e70ee583489034c9f3b92fb87b374707afd5d5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 10 15:20:54 2009 +0200

    throughput tests use P2P sockets consistently

 perf/cpp/remote_thr.cpp   | 2 +-
 perf/java/local_thr.java  | 2 +-
 perf/java/remote_thr.java | 2 +-
 perf/ruby/local_thr.rb    | 2 +-
 perf/ruby/remote_thr.rb   | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit 95944551be93665fe4dcadbe00168da553b7d82f
Merge: 5acef9fc b3f32e21
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 10 12:04:26 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit b3f32e219ec15a582b6fd03b155e0861443690f6
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Sep 10 12:00:47 2009 +0200

    ZMQII-3: cheap and nasty implementation of message filtering

 c/zmq.h             |  2 ++
 src/Makefile.am     |  2 ++
 src/app_thread.cpp  | 18 ++++++++++--
 src/socket_base.cpp |  5 ++++
 src/socket_base.hpp |  2 +-
 src/sub.cpp         | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/sub.hpp         | 51 +++++++++++++++++++++++++++++++++
 7 files changed, 159 insertions(+), 3 deletions(-)

commit 5acef9fc96280df934176b02de724eb904e4bba3
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Thu Sep 10 11:21:05 2009 +0200

    added --with-pgm option, libpgm-1.2.14 build within 0mq build system

 Makefile.am                           |   3 +
 configure.in                          | 119 ++++++++++++++++++++++++++++++++--
 foreign/openpgm/libpgm-1.2.14.tar.bz2 | Bin 0 -> 280029 bytes
 src/Makefile.am                       |  64 +++++++++++++++++-
 src/platform.hpp.in                   |   3 +
 5 files changed, 183 insertions(+), 6 deletions(-)

commit d81d3412520c9fed36f39462840c7d35815f4a87
Merge: 1864832a 4cc923b0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 9 12:14:04 2009 +0200

    Merge branch 'master' of github.com:sustrik/zeromq2

commit 1864832adaa173b7c85d4321b8ff8c396ce6b9af
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 9 12:13:19 2009 +0200

    building zmq.jar on win32 fixed

 msvc/java/java.vcproj | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 4cc923b0252a0f1f0ee52508b7a3108e8e3c0950
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 9 11:19:05 2009 +0200

    Stop configure, when could not link with libuuid

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 65b8b2d2c78867ee2671f995f5f7c805abd00df2
Merge: 305b81db d743d97e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 9 11:08:39 2009 +0200

    Merge branch 'master' of github.com:sustrik/zeromq2

commit 305b81dbdf63ab1b66733a330b2c64a980712b8b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 9 11:07:48 2009 +0200

    higher precision time measurement in python perf tests

 perf/python/local_thr.py  |  8 ++++----
 perf/python/remote_lat.py | 11 ++++++-----
 2 files changed, 10 insertions(+), 9 deletions(-)

commit d743d97e365b1d430b6c63de2782392a5f8f5305
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Wed Sep 9 10:37:40 2009 +0200

    Updated AUTHORS, ChangeLog, README and added COPYING.LESSER files

 AUTHORS        |  38 ++++++++++
 COPYING.LESSER | 166 +++++++++++++++++++++++++++++++++++++++++
 ChangeLog      | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README         |   4 +
 4 files changed, 439 insertions(+)

commit 4d07d7cabe1a865812cf5d95a84557880e3c3096
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 9 10:08:46 2009 +0200

    fix of async connect on win32

 src/tcp_connecter.cpp | 4 +++-
 src/zmq_connecter.cpp | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit c99f39abc669084fd3a94675ee98e235448ad5a4
Merge: 37d83719 cb78991f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 9 09:07:11 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 37d8371967308ab1e541cf58b91e368b3e0b526c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 9 09:03:30 2009 +0200

    async connect bug fixed

 src/zmq_connecter.cpp | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

commit cb78991f8e20fa35d99fa209be659c0dpd59de47
Merge: 734a62c1 d3fb9f90
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 8 16:55:28 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 734a62c12d2e2fb009ccf97d7d188060a474cc17
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 8 16:55:03 2009 +0200

    Sparc solaris port

 configure.in       | 1 +
 src/devpoll.cpp    | 6 ++++--
 src/object.hpp     | 2 +-
 src/tcp_socket.cpp | 3 ++-
 src/zmq.cpp        | 3 ++-
 5 files changed, 10 insertions(+), 5 deletions(-)

commit d3fb9f90af73a46e02b7e8780a8db95a31360d56
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 8 16:16:01 2009 +0200

    missing java MSVC project added

 msvc/java/java.vcproj | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 244 insertions(+)

commit dadfd243649fbde768a24c677fa952f90d00589d
Merge: ef34c94c 844b590b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 8 15:11:19 2009 +0200

    Merge branch 'master' of github.com:sustrik/zeromq2

commit ef34c94c3a9cbda87b0a4512ec56415b023aff0b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 8 15:10:10 2009 +0200

    win build for python

 msvc/msvc.sln             |   8 +++
 msvc/python/python.vcproj | 176 ++++++++++++++++++++++++++++++++++++++++++++++
 python/pyzmq.cpp          |   9 +++
 3 files changed, 193 insertions(+)

commit 844b590b5e348d8513ed574f6548cc0be41574af
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 8 15:06:08 2009 +0200

    added libzmq.pc.in file

 configure.in     |  2 +-
 src/Makefile.am  |  2 ++
 src/libzmq.pc.in | 10 ++++++++++
 3 files changed, 13 insertions(+), 1 deletion(-)

commit b3fc14522574ccad233bee02ea135d8a93fb2441
Merge: 2a4a10c8 3069b6bd
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 8 14:54:52 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 2a4a10c8be92c5ce6314378fc4de163888075279
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Tue Sep 8 14:54:04 2009 +0200

    build system tuning

 Makefile.am             |  8 ++++++--
 configure.in            | 37 +++++++++++++++++++++++++++++++++----
 java/Makefile.am        |  6 +++---
 perf/Makefile.am        | 25 +++++++++++++++++++++++--
 perf/java/Makefile.am   |  5 +++++
 perf/python/Makefile.am |  6 +-----
 perf/ruby/Makefile.am   |  1 +
 python/pyzmq.cpp        |  2 +-
 ruby/rbzmq.cpp          |  3 ++-
 src/Makefile.am         |  2 +-
 10 files changed, 76 insertions(+), 19 deletions(-)

commit 3069b6bd54486346f7bfcce58d6a5e34d129965c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 8 13:55:13 2009 +0200

    win port of java binding + java perf tests

 java/Context.cpp                      |   7 ++
 java/Message.cpp                      | 138 ----------------------------------
 java/Socket.cpp                       |   7 ++
 java/org/zmq/Socket.java              |   2 +-
 msvc/j_local_lat/j_local_lat.vcproj   |  78 +++++++++++++++++++
 msvc/j_local_thr/j_local_thr.vcproj   |  78 +++++++++++++++++++
 msvc/j_remote_lat/j_remote_lat.vcproj |  78 +++++++++++++++++++
 msvc/j_remote_thr/j_remote_thr.vcproj |  78 +++++++++++++++++++
 msvc/msvc.sln                         |  45 +++++++++++
 perf/c/local_thr.c                    |   3 +-
 10 files changed, 374 insertions(+), 140 deletions(-)

commit ec6822a477b89ac77afc90425bf36c4829dbef3d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Tue Sep 8 11:30:49 2009 +0200

    win port for c and cpp perf tests

 c/zmq.h                                   |   8 +-
 cpp/zmq.hpp                               |   7 ++
 msvc/c_local_lat/c_local_lat.vcproj       | 176 ++++++++++++++++++++++++++++++
 msvc/c_local_thr/c_local_thr.vcproj       | 176 ++++++++++++++++++++++++++++++
 msvc/c_remote_lat/c_remote_lat.vcproj     | 176 ++++++++++++++++++++++++++++++
 msvc/c_remote_thr/c_remote_thr.vcproj     | 176 ++++++++++++++++++++++++++++++
 msvc/cpp_local_lat/cpp_local_lat.vcproj   | 176 ++++++++++++++++++++++++++++++
 msvc/cpp_local_thr/cpp_local_thr.vcproj   | 176 ++++++++++++++++++++++++++++++
 msvc/cpp_remote_lat/cpp_remote_lat.vcproj | 176 ++++++++++++++++++++++++++++++
 msvc/cpp_remote_thr/cpp_remote_thr.vcproj | 176 ++++++++++++++++++++++++++++++
 msvc/libzmq/libzmq.vcproj                 |  10 +-
 msvc/msvc.sln                             |  72 ++++++++++++
 perf/c/local_lat.c                        |   3 +-
 perf/c/local_thr.c                        |  24 ++--
 perf/c/remote_lat.c                       |  19 +---
 perf/c/remote_thr.c                       |   3 +-
 perf/cpp/local_lat.cpp                    |   3 +-
 perf/cpp/local_thr.cpp                    |  20 +---
 perf/cpp/remote_lat.cpp                   |  16 +--
 perf/cpp/remote_thr.cpp                   |   3 +-
 src/fd_signaler.cpp                       |   2 +-
 src/tcp_connecter.cpp                     |  18 ++-
 src/tcp_listener.cpp                      |  89 ++++++++++++++-
 src/tcp_socket.cpp                        |   5 +
 src/zmq.cpp                               |  67 +++++++++++-
 25 files changed, 1702 insertions(+), 75 deletions(-)

commit b71c3005e68d02f800ff09bcacece79d167bff75
Author: Pavol Malosek <malosek@fastmq.com>
Date:   Mon Sep 7 17:06:47 2009 +0200

    include directory split into c and cpp dirs, added --with-c and --with-cpp configure options

 Makefile.am              |  2 --
 autogen.sh               |  8 +++++++-
 {include => c}/zmq.h     |  0
 configure.in             | 45 +++++++++++++++++++++++++++++++--------------
 {include => cpp}/zmq.hpp |  0
 perf/c/Makefile.am       |  4 ++--
 perf/cpp/Makefile.am     |  4 ++--
 src/Makefile.am          | 15 ++++++++++++---
 src/app_thread.cpp       |  2 +-
 src/dispatcher.cpp       |  2 +-
 src/i_inout.hpp          |  2 +-
 src/io_thread.cpp        |  2 +-
 src/msg_content.hpp      |  2 +-
 src/pipe.cpp             |  2 +-
 src/pipe.hpp             |  2 +-
 src/socket_base.cpp      |  2 +-
 src/zmq.cpp              |  2 +-
 src/zmq_decoder.hpp      |  2 +-
 src/zmq_encoder.hpp      |  2 +-
 19 files changed, 65 insertions(+), 35 deletions(-)

commit f895426c1885729f4a4a20b1eb543a92915dpd85
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 7 15:41:43 2009 +0200

    initial changes for win port

 include/zmq.h             |   5 +-
 msvc/libzmq/libzmq.vcproj | 520 ++++++++++++++++++++++++++++++++++++++++++++++
 msvc/msvc.sln             |  20 ++
 msvc/platform.hpp         |  59 ++++++
 src/app_thread.cpp        |   2 +
 src/fd_signaler.cpp       |   1 +
 src/options.hpp           |   2 +
 src/pipe.cpp              |   4 +-
 src/tcp_connecter.cpp     |  75 ++++++-
 src/tcp_listener.cpp      |   1 -
 src/tcp_socket.cpp        |  74 ++++++-
 src/uuid.cpp              |  13 +-
 src/uuid.hpp              |  11 +-
 src/zmq_connecter.cpp     |   2 +-
 14 files changed, 764 insertions(+), 25 deletions(-)

commit 87ccbb9fdp0f9234f82f9a9ec6a215f5e73209d3
Merge: 67253f31 d62c7423
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 7 11:10:58 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit d62c74232a4c1edd38004933afd0c7dc119bd98b
Merge: 11a6cb92 63b56d7f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 7 11:01:42 2009 +0200

    Merge branch 'master' of git://github.com/sustrik/zeromq2

commit 11a6cb925f7ff3d17f48edccc886839b4d49ef0b
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Sep 7 11:00:20 2009 +0200

    Ruby binding functional

 perf/ruby/local_lat.rb  |  64 ++-----
 perf/ruby/local_thr.rb  |  90 +++-------
 perf/ruby/remote_lat.rb |  64 +++----
 perf/ruby/remote_thr.rb |  48 ++---
 ruby/Makefile.am        |   2 +-
 ruby/rbzmq.cpp          | 292 ++++++++++++++++++++++++++++++
 ruby/zmq.cpp            | 460 ------------------------------------------------
 7 files changed, 381 insertions(+), 639 deletions(-)

commit 67253f3186488db93dee23bd9194419f58f0b1d3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Sep 5 09:30:12 2009 +0200

    Java perf tests added

 java/Context.cpp          |  15 ++---
 java/Makefile.am          |  22 ++------
 java/Socket.cpp           | 140 ++++++++++++++++++++++++----------------------
 java/org/zmq/Context.java |   3 +
 java/org/zmq/Message.java |  66 ----------------------
 java/org/zmq/Socket.java  |  42 +++++++-------
 perf/cpp/local_thr.cpp    |   2 +-
 perf/cpp/remote_lat.cpp   |   6 +-
 perf/java/local_lat.java  |  55 ++++++++++++++++++
 perf/java/local_thr.java  |  65 +++++++++++++++++++++
 perf/java/remote_lat.java |  60 ++++++++++++++++++++
 perf/java/remote_thr.java |  53 ++++++++++++++++++
 12 files changed, 343 insertions(+), 186 deletions(-)

commit 63b56d7fb38624c32111f9188d54b6fefb10a0e5
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 4 16:21:39 2009 +0200

    python perf tests are included into distribution package

 configure.in            | 3 ++-
 perf/Makefile.am        | 4 ++--
 perf/python/Makefile.am | 5 +++++
 3 files changed, 9 insertions(+), 3 deletions(-)

commit 4307baf7bcc71ca91da0175e79cdfbf6cc1ad770
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 4 16:02:41 2009 +0200

    python binding functional

 perf/c/local_lat.c        | 11 +++++++----
 perf/c/local_thr.c        | 10 ++++++----
 perf/c/remote_lat.c       | 11 +++++++----
 perf/c/remote_thr.c       | 11 +++++++----
 perf/cpp/local_lat.cpp    |  8 ++++----
 perf/cpp/local_thr.cpp    |  8 ++++----
 perf/cpp/remote_lat.cpp   |  8 ++++----
 perf/cpp/remote_thr.cpp   |  8 ++++----
 perf/python/local_lat.py  |  6 +++---
 perf/python/remote_lat.py |  4 ++--
 perf/python/remote_thr.py |  2 +-
 src/app_thread.cpp        |  4 +---
 src/dispatcher.cpp        | 36 +++++++++++++++++++++++++++++++++++-
 src/dispatcher.hpp        | 25 ++++++++++++++++++++++---
 src/object.cpp            |  5 +++++
 src/object.hpp            |  1 +
 src/session.cpp           |  7 ++++++-
 src/socket_base.cpp       | 12 +++++++++++-
 src/zmq.cpp               |  3 +--
 19 files changed, 131 insertions(+), 49 deletions(-)

commit 450b31c3b263ee6ceea27517a2a969d0c74bcd7e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 4 11:08:13 2009 +0200

    bug in python binding fixed

 python/pyzmq.cpp | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)

commit 103cbee6a509e55ff5def82eb5ec3ef7feb319a3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Sep 4 09:51:42 2009 +0200

    couple of bugs fixed

 src/Makefile.am            | 6 +++++-
 src/tcp_socket.cpp         | 2 +-
 src/zmq_connecter_init.cpp | 1 -
 src/zmq_engine.cpp         | 7 ++-----
 src/zmq_listener_init.cpp  | 3 ++-
 5 files changed, 10 insertions(+), 9 deletions(-)

commit 4914e5c9d192ac6763e5da6fa28ea503ee769bf0
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 2 16:16:25 2009 +0200

    O(1) socket removal

 src/app_thread.cpp  | 12 ++++++------
 src/socket_base.cpp | 14 +++++++++++++-
 src/socket_base.hpp |  7 +++++++
 3 files changed, 26 insertions(+), 7 deletions(-)

commit f92de9b2a9ad73fd7cd966e65b5a06b725e779fc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 2 14:59:53 2009 +0200

    bug during terminal shutdown fixed

 perf/c/local_lat.c      | 13 +++++++++----
 perf/c/local_thr.c      |  5 ++++-
 perf/c/remote_lat.c     | 15 ++++++++++-----
 perf/c/remote_thr.c     |  3 +++
 perf/cpp/local_thr.cpp  |  2 +-
 perf/cpp/remote_lat.cpp |  2 +-
 src/session.cpp         | 18 +++++++++++++-----
 7 files changed, 41 insertions(+), 17 deletions(-)

commit 702fdbb5dd6a83e7f656e8d1190e695ebb636765
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 2 11:58:39 2009 +0200

    messages that may have been received in the init phase are flushed immediately after engine is plugged in

 src/zmq_engine.cpp | 3 +++
 1 file changed, 3 insertions(+)

commit 75a5a8732cd5be1bb3bff608e352bf4ac624ffd4
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 2 10:59:31 2009 +0200

    --disable-shared & C perf tests: a better way

 configure.in        | 1 +
 perf/c/Makefile.am  | 8 ++++----
 src/platform.hpp.in | 3 +++
 3 files changed, 8 insertions(+), 4 deletions(-)

commit 947b46319314dfab0e545282e9ccfc708d6f57e3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 2 10:46:10 2009 +0200

    building C perf tests with --disable-shared fixed

 perf/c/Makefile.am | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 5e08a89d1c0edf44e15f262dd0f27a1c03bcd699
Merge: 6a5120b1 1f06d99a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 2 10:23:01 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 6a5120b1f1c48d19b777f76ac756b00fb624d110
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Sep 2 10:22:23 2009 +0200

    python extension & perf tests

 include/zmq.h             |   6 +-
 perf/c/local_thr.c        |   6 +-
 perf/cpp/local_thr.cpp    |   5 +-
 perf/python/local_lat.py  |  42 +--
 perf/python/local_thr.py  |  44 +--
 perf/python/remote_lat.py |  43 +--
 perf/python/remote_thr.py |  17 +-
 python/pyzmq.cpp          | 930 +++++++++++++++++-----------------------------
 src/i_endpoint.hpp        |   2 +
 src/session.cpp           |  29 +-
 src/session.hpp           |  13 +-
 src/socket_base.cpp       |  30 +-
 src/socket_base.hpp       |   2 +
 13 files changed, 455 insertions(+), 714 deletions(-)

commit 1f06d99a0f563fdc32e9c00392f9875ba3009593
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Aug 31 13:11:46 2009 +0200

    Add Java binding

 Makefile.am               |   8 +-
 configure.in              |  54 ++++++++-
 java/Context.cpp          |  92 ++++++++++++++++
 java/Makefile.am          |  72 ++++++++++++
 java/Message.cpp          | 138 +++++++++++++++++++++++
 java/Socket.cpp           | 276 ++++++++++++++++++++++++++++++++++++++++++++++
 java/org/zmq/Context.java |  47 ++++++++
 java/org/zmq/Message.java |  66 +++++++++++
 java/org/zmq/Socket.java  | 141 +++++++++++++++++++++++
 9 files changed, 891 insertions(+), 3 deletions(-)

commit 0aacee389fdb553ef9925d0135eefcb501a67726
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Aug 31 11:31:32 2009 +0200

    POSIX threads don't use errno to report errors

    Fix simple_semaphore to follow POSIX threads convention for reporting
    errors.

 src/err.hpp              |  9 +++++----
 src/simple_semaphore.hpp | 12 ++++++------
 2 files changed, 11 insertions(+), 10 deletions(-)

commit 72fdf47d16c8d3ecd9da657b4649978e414d775c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 31 12:50:53 2009 +0200

    python perf tests added

 perf/python/local_lat.py  | 67 ++++++++++++++++++++++++++++++++++++++++++++++
 perf/python/local_thr.py  | 68 +++++++++++++++++++++++++++++++++++++++++++++++
 perf/python/remote_lat.py | 59 ++++++++++++++++++++++++++++++++++++++++
 perf/python/remote_thr.py | 50 ++++++++++++++++++++++++++++++++++
 4 files changed, 244 insertions(+)

commit b6d345f4a6402cf2e831a8b9d113f036b394a0bc
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 31 12:45:42 2009 +0200

    Ruby perf tests added

 perf/ruby/local_lat.rb  | 75 +++++++++++++++++++++++++++++++++++++++++
 perf/ruby/local_thr.rb  | 90 +++++++++++++++++++++++++++++++++++++++++++++++++
 perf/ruby/remote_lat.rb | 61 +++++++++++++++++++++++++++++++++
 perf/ruby/remote_thr.rb | 55 ++++++++++++++++++++++++++++++
 4 files changed, 281 insertions(+)

commit 314deb61851a0ddc37228d24e9f4eb106461370a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 30 15:47:39 2009 +0200

    build system for perf/C and perf/C++

 Makefile.am             |  4 ++--
 configure.in            |  3 ++-
 include/zmq.h           | 24 ++++++++++++------------
 perf/Makefile.am        |  2 ++
 perf/c/Makefile.am      | 20 ++++++++++++++++++++
 perf/c/local_lat.c      |  2 +-
 perf/c/local_thr.c      | 19 ++++++++++---------
 perf/c/remote_lat.c     |  7 +++----
 perf/c/remote_thr.c     |  4 ++--
 perf/cpp/Makefile.am    | 20 ++++++++++++++++++++
 perf/cpp/local_lat.cpp  |  3 ++-
 perf/cpp/local_thr.cpp  | 10 ++++++----
 perf/cpp/remote_lat.cpp |  3 ++-
 perf/cpp/remote_thr.cpp |  3 ++-
 14 files changed, 86 insertions(+), 38 deletions(-)

commit 6c36673949b2256158e8914119d218dce311c585
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 30 15:03:16 2009 +0200

    C perf tests added

 perf/c/local_lat.c  | 70 +++++++++++++++++++++++++++++++++++++++++
 perf/c/local_thr.c  | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 perf/c/remote_lat.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 perf/c/remote_thr.c | 67 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 318 insertions(+)

commit 4617fd9e9c50a9fa3a8cbf3b25e6061e3a8f10c8
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 30 09:14:15 2009 +0200

    c++ perf tests added

 .gitignore              | 12 ++++++++-
 perf/cpp/local_lat.cpp  | 52 +++++++++++++++++++++++++++++++++++
 perf/cpp/local_thr.cpp  | 72 +++++++++++++++++++++++++++++++++++++++++++++++++
 perf/cpp/remote_lat.cpp | 69 +++++++++++++++++++++++++++++++++++++++++++++++
 perf/cpp/remote_thr.cpp | 50 ++++++++++++++++++++++++++++++++++
 5 files changed, 254 insertions(+), 1 deletion(-)

commit 176879e5bbce6115ff5741f2426f689bda312109
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 30 08:18:31 2009 +0200

    engine virtualised; chatroom example removed

 .gitignore                 |  5 ++++
 Makefile.am                |  5 ++--
 configure.in               |  3 +-
 examples/Makefile.am       |  2 --
 examples/chat/Makefile.am  | 15 ----------
 examples/chat/chatroom.cpp | 74 ----------------------------------------------
 examples/chat/display.cpp  | 55 ----------------------------------
 examples/chat/prompt.cpp   | 61 --------------------------------------
 src/Makefile.am            |  1 +
 src/command.hpp            |  2 +-
 src/i_engine.hpp           | 43 +++++++++++++++++++++++++++
 src/object.cpp             |  5 ++--
 src/object.hpp             |  4 +--
 src/owned.cpp              |  2 +-
 src/owned.hpp              |  2 +-
 src/session.cpp            |  4 +--
 src/session.hpp            |  4 +--
 src/zmq_engine.hpp         |  9 +++---
 18 files changed, 67 insertions(+), 229 deletions(-)

commit 1d650934e477be32db9a3c64de077deed0416689
Author: Tamara Kustarova <kustarova@fastmq.com>
Date:   Sat Aug 29 11:31:32 2009 +0200

    Ruby bidning added

 Makefile.am         |   8 +-
 configure.in        |  57 ++++++-
 ruby/Makefile.am    |  11 ++
 ruby/extconf.rb     |  24 +++
 ruby/zmq.cpp        | 460 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/platform.hpp.in |   3 +
 6 files changed, 559 insertions(+), 4 deletions(-)

commit 3666a49022f84b3d1888f630a78f3f8f28aadde1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 29 10:32:21 2009 +0200

    bug in identifying current thread fixed

 src/app_thread.cpp |  8 +++++---
 src/app_thread.hpp |  9 ++++++---
 src/thread.cpp     | 20 ++++++++++++++++++++
 src/thread.hpp     |  9 +++++++++
 4 files changed, 40 insertions(+), 6 deletions(-)

commit 6996ef6f1a0a50a754608df9444e425d0900b143
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 29 09:41:50 2009 +0200

    improved error handling

 include/zmq.hpp      | 127 ++++++++++++++++++++++-----------------------------
 src/ip.cpp           |   3 +-
 src/tcp_listener.cpp |   9 ++--
 src/tcp_listener.hpp |   5 +-
 src/zmq_listener.cpp |   4 --
 5 files changed, 61 insertions(+), 87 deletions(-)

commit cb09c6951e2c4405318b422a1f9213af3e4b6b8a
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Aug 28 16:51:46 2009 +0200

    pipe deallocation added

 src/command.hpp     | 11 ++++++++
 src/dispatcher.cpp  | 20 +++++++++++++
 src/dispatcher.hpp  | 18 ++++++++++++
 src/i_endpoint.hpp  |  2 ++
 src/object.cpp      | 44 +++++++++++++++++++++++++++++
 src/object.hpp      |  8 ++++++
 src/pipe.cpp        | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/pipe.hpp        | 30 +++++++++++++++++---
 src/session.cpp     | 18 ++++++++++++
 src/session.hpp     |  2 ++
 src/socket_base.cpp | 80 ++++++++++++++++++++++++++++++++++++++--------------
 src/socket_base.hpp | 13 +++------
 12 files changed, 290 insertions(+), 37 deletions(-)

commit 2dd501651592baa7f9e49f52e1321dp2b9b4e126
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 27 16:24:21 2009 +0200

    multiple bugs fixed

 src/i_inout.hpp            |  8 ++++++++
 src/pipe.hpp               |  3 ++-
 src/session.cpp            | 13 ++++++++++++-
 src/session.hpp            |  1 +
 src/zmq_connecter_init.cpp |  6 ++++++
 src/zmq_connecter_init.hpp |  1 +
 src/zmq_encoder.cpp        |  1 -
 src/zmq_engine.cpp         |  5 ++++-
 src/zmq_listener_init.cpp  | 33 ++++++++++++++++++++++-----------
 src/zmq_listener_init.hpp  |  5 +++++
 10 files changed, 61 insertions(+), 15 deletions(-)

commit 67194267f89d63391288600f127205a2b7a8a5dp
Merge: 99c5d928 67c69f95
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 27 10:55:26 2009 +0200

    Merge branch 'master' of git@github.com:sustrik/zeromq2

commit 99c5d9283622a0b37ee80f83ff4875c059fc5990
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 27 10:54:28 2009 +0200

    pipes added

 include/zmq.h             |   2 +-
 src/Makefile.am           |   2 +
 src/app_thread.cpp        |  26 +++---
 src/app_thread.hpp        |   4 +-
 src/command.hpp           |  11 ++-
 src/config.hpp            |   8 ++
 src/i_endpoint.hpp        |  33 +++++++
 src/object.cpp            |  30 +++++-
 src/object.hpp            |   9 +-
 src/pipe.cpp              | 112 +++++++++++++++++++++++
 src/pipe.hpp              | 102 +++++++++++++++++++++
 src/session.cpp           |  56 +++++++++++-
 src/session.hpp           |  24 ++++-
 src/socket_base.cpp       | 227 ++++++++++++++++++++++++++++++++++++++++++++--
 src/socket_base.hpp       |  42 ++++++++-
 src/ypipe.hpp             |  22 ++---
 src/yqueue.hpp            |   2 +-
 src/zmq_encoder.cpp       |   4 +-
 src/zmq_engine.cpp        |   7 +-
 src/zmq_engine.hpp        |   4 +
 src/zmq_listener_init.cpp |   3 +-
 21 files changed, 680 insertions(+), 50 deletions(-)

commit 67c69f952c956fb151c654726b4fc67e122722ff
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Wed Aug 26 15:50:37 2009 +0200

    make configure respect --with-python option

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit aacdb7a454686bfac93164d0e67e785658d48a3c
Author: Tamara Kustarova <kustarova@fastmq.com>
Date:   Mon Aug 24 12:04:15 2009 +0200

    python build fix

 Makefile.am | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 77bc3790fa9e781ad26ec881175d22d807e16acf
Author: Tamara Kustarova <kustarova@fastmq.com>
Date:   Mon Aug 24 11:17:16 2009 +0200

    python extension added

 Makefile.am        |   4 +-
 configure.in       |  59 ++++-
 python/Makefile.am |   7 +
 python/pyzmq.cpp   | 756 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 python/setup.py.in |  14 +
 5 files changed, 837 insertions(+), 3 deletions(-)

commit 6be4b0143793ab5ceebc5d9d6bbe5c2f1333a0d2
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Fri Aug 21 14:29:22 2009 +0200

    session management implemented

 include/zmq.h                                |  28 +++----
 include/zmq.hpp                              |  11 +--
 src/Makefile.am                              |  10 ++-
 src/i_inout.hpp                              |   4 +-
 src/{msg.hpp => msg_content.hpp}             |   9 ++-
 src/object.cpp                               |   5 +-
 src/object.hpp                               |   4 +
 src/owned.cpp                                |  10 ++-
 src/owned.hpp                                |   4 +
 src/pipe.hpp                                 |   2 +-
 src/session.cpp                              |  39 +++++++---
 src/session.hpp                              |  15 +++-
 src/socket_base.cpp                          |  77 ++++++++++++------
 src/socket_base.hpp                          |  24 +++---
 src/zmq.cpp                                  | 111 +++++++++++++-------------
 src/zmq_connecter.cpp                        |  11 ++-
 src/zmq_connecter.hpp                        |  10 ++-
 src/zmq_connecter_init.cpp                   |  94 ++++++++++++++++++++++
 src/{zmq_init.hpp => zmq_connecter_init.hpp} |  43 +++++-----
 src/zmq_decoder.hpp                          |   2 +-
 src/zmq_encoder.hpp                          |   2 +-
 src/zmq_init.cpp                             | 112 ---------------------------
 src/zmq_listener.cpp                         |   5 +-
 src/zmq_listener_init.cpp                    |  96 +++++++++++++++++++++++
 src/zmq_listener_init.hpp                    |  71 +++++++++++++++++
 25 files changed, 519 insertions(+), 280 deletions(-)

commit a801b6d8b37557ccfb53030dca22f89a3f99b59c
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 20 11:32:23 2009 +0200

    couple of bugs in shutdown mechanism fixed

 src/command.hpp       | 11 ++++++++---
 src/object.cpp        | 43 ++++++++++++++++++++++++++++++++++-------
 src/object.hpp        | 19 +++++++++++-------
 src/owned.cpp         | 53 +++++++++++++++++++++++++--------------------------
 src/owned.hpp         | 33 ++++++++++++++++++++++----------
 src/session.cpp       |  5 ++++-
 src/session.hpp       |  2 +-
 src/socket_base.cpp   | 40 ++++++++++++++++++++++++++++++++++++--
 src/socket_base.hpp   | 26 ++++++++++++++++++++++---
 src/zmq_connecter.cpp |  4 ++--
 src/zmq_connecter.hpp |  2 +-
 src/zmq_engine.cpp    |  3 +--
 src/zmq_init.cpp      |  8 +++++---
 src/zmq_init.hpp      |  2 +-
 src/zmq_listener.cpp  |  4 ++--
 src/zmq_listener.hpp  |  2 +-
 16 files changed, 184 insertions(+), 73 deletions(-)

commit 131f2e309668d1e64cfcb4dpb869665d8018bcfe
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 17 14:07:34 2009 +0200

    subscribe API removed

 examples/chat/display.cpp | 1 -
 include/zmq.h             | 3 ---
 include/zmq.hpp           | 6 ------
 src/socket_base.cpp       | 5 -----
 src/socket_base.hpp       | 1 -
 src/zmq.cpp               | 5 -----
 6 files changed, 21 deletions(-)

commit 059beca59d39d90a8ee0e1b07f840994962ea89e
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Aug 12 09:40:16 2009 +0200

    listener/connecter/init/session added

 include/zmq.h         |   2 +-
 src/Makefile.am       |  13 +++
 src/atomic.hpp        | 310 --------------------------------------------------
 src/i_inout.hpp       |  37 ++++++
 src/io_object.cpp     |  47 +-------
 src/io_object.hpp     |  50 +++-----
 src/options.cpp       |  29 +++++
 src/options.hpp       |  42 +++++++
 src/owned.cpp         |  74 ++++++++++++
 src/owned.hpp         |  82 +++++++++++++
 src/session.cpp       |  58 ++++++++++
 src/session.hpp       |  57 ++++++++++
 src/socket_base.cpp   |  29 ++---
 src/socket_base.hpp   |   8 +-
 src/zmq_connecter.cpp |  36 +++---
 src/zmq_connecter.hpp |  17 ++-
 src/zmq_decoder.cpp   |  78 +++++++++++++
 src/zmq_decoder.hpp   |  57 ++++++++++
 src/zmq_encoder.cpp   |  76 +++++++++++++
 src/zmq_encoder.hpp   |  55 +++++++++
 src/zmq_engine.cpp    | 107 ++++++++++++++++-
 src/zmq_engine.hpp    |  37 +++++-
 src/zmq_init.cpp      | 110 ++++++++++++++++++
 src/zmq_init.hpp      |  82 +++++++++++++
 src/zmq_listener.cpp  |  25 ++--
 src/zmq_listener.hpp  |  11 +-
 26 files changed, 1072 insertions(+), 457 deletions(-)

commit bda766ab401b6c565fe9c2d0bc80c11bbbe84488
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 9 16:30:22 2009 +0200

    redundant interface (i_api) removed

 src/Makefile.am       |  2 --
 src/app_thread.cpp    |  5 ++---
 src/app_thread.hpp    |  6 +++---
 src/dispatcher.cpp    |  3 +--
 src/dispatcher.hpp    |  2 +-
 src/i_api.hpp         | 43 ------------------------------------
 src/i_poll_events.hpp | 60 +++++++++++++++++++++++++--------------------------
 src/socket_base.hpp   | 21 +++++++++---------
 src/zmq.cpp           | 19 ++++++++--------
 9 files changed, 57 insertions(+), 104 deletions(-)

commit 9f1f823b7b69ced56bdb0416feef71230cc7fd55
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 9 16:12:09 2009 +0200

    zmq_listener/zmq_connecter implemented

 src/Makefile.am       |   2 +
 src/io_object.cpp     |  13 +++---
 src/io_object.hpp     |  18 +++++----
 src/socket_base.cpp   |  12 +++++-
 src/tcp_connecter.cpp |  24 ++++++-----
 src/tcp_connecter.hpp |   9 ++++-
 src/zmq_connecter.cpp | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/zmq_connecter.hpp |  70 ++++++++++++++++++++++++++++++++
 src/zmq_listener.cpp  |   9 +++--
 src/zmq_listener.hpp  |   5 +--
 10 files changed, 239 insertions(+), 33 deletions(-)

commit 3147ff8523d9736039c4582f5f62c323b23940d1
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 9 11:57:21 2009 +0200

    getsockopt implemented

 include/zmq.h       |  1 +
 src/socket_base.cpp | 69 +++++++++++++++++++++++++++++++++++++++++++++++++----
 src/socket_base.hpp | 10 ++++++++
 3 files changed, 75 insertions(+), 5 deletions(-)

commit bde396f1561fb5e57e6e413a40d904586e186d42
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 9 11:21:47 2009 +0200

    fix to 3-thread synchronisation algorithm

 src/io_object.cpp    | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
 src/io_object.hpp    | 21 ++++++++++++++++++++-
 src/socket_base.cpp  |  6 +++++-
 src/tcp_listener.cpp | 19 +++++++++++--------
 src/tcp_listener.hpp | 11 +++++++++--
 src/zmq_listener.cpp | 36 +++++++++++++++++++++++++++++++++++-
 src/zmq_listener.hpp | 15 +++++++++++++++
 7 files changed, 142 insertions(+), 14 deletions(-)

commit 5b5b513330e96e3e08d0c2c60d03044091976420
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sun Aug 9 09:24:48 2009 +0200

    socket options interface modeled as in BSD sockets

 include/zmq.h        | 28 ++++++++++++++--------------
 include/zmq.hpp      | 14 ++++++++++----
 src/Makefile.am      |  2 ++
 src/epoll.cpp        |  4 +++-
 src/i_api.hpp        |  6 ++++--
 src/io_object.cpp    | 45 ++++++++++++++++++++++++++++++++++++++++++++-
 src/io_object.hpp    | 23 ++++++++++++++++++-----
 src/io_thread.hpp    |  2 +-
 src/socket_base.cpp  | 33 ++++++++++++++++++++-------------
 src/socket_base.hpp  |  9 +++++----
 src/zmq.cpp          | 13 +++++++++----
 src/zmq_engine.cpp   | 35 +++++++++++++++++++++++++++++++++++
 src/zmq_engine.hpp   | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 src/zmq_listener.cpp |  9 +++++++--
 src/zmq_listener.hpp |  5 +++--
 15 files changed, 222 insertions(+), 53 deletions(-)

commit a8b410e66c3c75809c8e9c01dd3e35c579f02347
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Sat Aug 8 16:01:58 2009 +0200

    lockfree interaction patter for 3 theads implemented

 include/zmq.hpp                        |   8 +-
 src/Makefile.am                        |  14 ++-
 src/app_thread.cpp                     |  37 +++++--
 src/app_thread.hpp                     |  13 ++-
 src/command.hpp                        |  65 +++++------
 src/{context.cpp => dispatcher.cpp}    |  22 ++--
 src/{context.hpp => dispatcher.hpp}    |  20 ++--
 src/err.hpp                            |   6 ++
 src/i_api.hpp                          |  34 +++---
 src/io_object.cpp                      |  41 +++++++
 src/io_object.hpp                      |  62 +++++++++++
 src/io_thread.cpp                      |   8 +-
 src/io_thread.hpp                      |   2 +-
 src/mutex.hpp                          |  30 +++---
 src/object.cpp                         | 190 +++++++++++----------------------
 src/object.hpp                         |  42 +++-----
 src/socket_base.cpp                    | 129 ++++++++++++++++++++++
 src/socket_base.hpp                    |  72 +++++++++++++
 src/zmq.cpp                            |  19 ++--
 src/{i_socket.hpp => zmq_listener.cpp} |  23 ++--
 src/zmq_listener.hpp                   |  46 ++++++++
 21 files changed, 592 insertions(+), 291 deletions(-)

commit 0b5cc026fbe7ccc6de66907be29471562a2d344d
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 6 12:51:32 2009 +0200

    clean up - session/socket/engine stuff removed

 src/Makefile.am               |  51 +-------
 src/app_thread.cpp            | 106 ++--------------
 src/app_thread.hpp            |  27 ++---
 src/connecter.cpp             | 189 -----------------------------
 src/connecter.hpp             |  99 ---------------
 src/context.cpp               | 139 ++-------------------
 src/context.hpp               |  52 +-------
 src/data_distributor.cpp      | 155 ------------------------
 src/data_distributor.hpp      |  70 -----------
 src/devpoll.cpp               |   9 +-
 src/devpoll.hpp               |   3 +-
 src/dummy_aggregator.cpp      | 111 -----------------
 src/dummy_aggregator.hpp      |  73 -----------
 src/dummy_distributor.cpp     |  85 -------------
 src/dummy_distributor.hpp     |  68 -----------
 src/epoll.cpp                 |  10 +-
 src/epoll.hpp                 |   3 +-
 src/fair_aggregator.cpp       | 143 ----------------------
 src/fair_aggregator.hpp       |  77 ------------
 src/i_api.hpp                 |  42 +++----
 src/i_demux.hpp               |  57 ---------
 src/i_engine.hpp              |  53 --------
 src/i_mux.hpp                 |  60 ----------
 src/i_poller.hpp              |   7 +-
 src/i_session.hpp             |  37 ------
 src/{req.cpp => i_socket.hpp} |  21 ++--
 src/i_thread.hpp              |  38 ------
 src/io_object.cpp             |  37 ------
 src/io_object.hpp             |  51 --------
 src/io_thread.cpp             |  31 -----
 src/io_thread.hpp             |  27 +----
 src/kqueue.cpp                |   9 +-
 src/kqueue.hpp                |   3 +-
 src/listener.cpp              | 170 --------------------------
 src/listener.hpp              | 110 -----------------
 src/load_balancer.cpp         | 130 --------------------
 src/load_balancer.hpp         |  73 -----------
 src/object.cpp                |  33 -----
 src/object.hpp                |   8 --
 src/p2p.cpp                   |  29 -----
 src/p2p.hpp                   |  42 -------
 src/pipe.cpp                  |  47 --------
 src/pipe.hpp                  |  23 +---
 src/pipe_reader.cpp           | 118 ------------------
 src/pipe_reader.hpp           |  89 --------------
 src/pipe_writer.cpp           | 120 -------------------
 src/pipe_writer.hpp           |  88 --------------
 src/poll.cpp                  |  13 +-
 src/poll.hpp                  |   3 +-
 src/pub.cpp                   |  38 ------
 src/pub.hpp                   |  45 -------
 src/rep.cpp                   |  29 -----
 src/rep.hpp                   |  42 -------
 src/req.hpp                   |  42 -------
 src/safe_object.cpp           |  76 ------------
 src/safe_object.hpp           |  68 -----------
 src/select.cpp                |  13 +-
 src/select.hpp                |   2 +-
 src/session.cpp               | 273 ------------------------------------------
 src/session.hpp               | 107 -----------------
 src/session_stub.cpp          | 110 -----------------
 src/session_stub.hpp          |  83 -------------
 src/socket_base.cpp           | 267 -----------------------------------------
 src/socket_base.hpp           |  96 ---------------
 src/sub.cpp                   |  45 -------
 src/sub.hpp                   |  46 -------
 src/zmq.cpp                   |   2 +-
 src/zmq_decoder.cpp           |  79 ------------
 src/zmq_decoder.hpp           |  57 ---------
 src/zmq_encoder.cpp           |  75 ------------
 src/zmq_encoder.hpp           |  54 ---------
 src/zmq_tcp_engine.cpp        | 185 ----------------------------
 src/zmq_tcp_engine.hpp        |  92 --------------
 73 files changed, 109 insertions(+), 4856 deletions(-)

commit b8b4acef4c2ba1a169ce84c1fb4c70a5676ebba3
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Aug 6 10:47:34 2009 +0200

    dispatcher renamed to context

 src/Makefile.am                     |  4 ++--
 src/app_thread.cpp                  |  8 ++++----
 src/app_thread.hpp                  |  4 ++--
 src/{dispatcher.cpp => context.cpp} | 28 ++++++++++++++--------------
 src/{dispatcher.hpp => context.hpp} | 24 ++++++++++++------------
 src/io_thread.cpp                   |  8 ++++----
 src/io_thread.hpp                   |  2 +-
 src/object.cpp                      | 26 +++++++++++++-------------
 src/object.hpp                      |  6 +++---
 src/pipe.hpp                        |  8 ++++----
 src/pipe_reader.cpp                 |  2 +-
 src/pipe_reader.hpp                 |  6 +++---
 src/pipe_writer.hpp                 |  6 +++---
 src/safe_object.cpp                 |  6 +++---
 src/safe_object.hpp                 |  2 +-
 src/zmq.cpp                         | 15 +++++++--------
 16 files changed, 77 insertions(+), 78 deletions(-)

commit 43fa72b7ee6b6d97b84a555ce8902cee855dpb72
Author: Martin Hurton <hurtonm@gmail.com>
Date:   Mon Aug 3 11:59:55 2009 +0200

    C++ binding uses exceptions to signal failure

 include/zmq.hpp | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 73 insertions(+), 10 deletions(-)

commit cc3755a16f00026af882ed14d122cc8aa6d50e82
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Mon Aug 3 11:30:13 2009 +0200

    renamed from zs to zmq

 .gitignore                  |   3 ++
 Makefile.am                 |   2 +-
 configure.in                |  38 +++++++--------
 examples/chat/Makefile.am   |   6 +--
 examples/chat/chatroom.cpp  |  12 ++---
 examples/chat/display.cpp   |  10 ++--
 examples/chat/prompt.cpp    |   8 ++--
 include/{zs.h => zmq.h}     | 103 ++++++++++++++++++++--------------------
 include/{zs.hpp => zmq.hpp} |  64 ++++++++++++-------------
 src/Makefile.am             |  10 ++--
 src/app_thread.cpp          |  70 +++++++++++++--------------
 src/app_thread.hpp          |   8 ++--
 src/atomic.hpp              |  62 ++++++++++++------------
 src/atomic_bitmap.hpp       |  82 ++++++++++++++++----------------
 src/atomic_counter.hpp      |  72 ++++++++++++++--------------
 src/atomic_ptr.hpp          |  72 ++++++++++++++--------------
 src/command.hpp             |   6 +--
 src/config.hpp              |   6 +--
 src/connecter.cpp           |  48 +++++++++----------
 src/connecter.hpp           |  12 ++---
 src/data_distributor.cpp    |  42 ++++++++--------
 src/data_distributor.hpp    |  10 ++--
 src/decoder.hpp             |   6 +--
 src/devpoll.cpp             |  38 +++++++--------
 src/devpoll.hpp             |   8 ++--
 src/dispatcher.cpp          |  52 ++++++++++----------
 src/dispatcher.hpp          |   8 ++--
 src/dummy_aggregator.cpp    |  34 ++++++-------
 src/dummy_aggregator.hpp    |   8 ++--
 src/dummy_distributor.cpp   |  28 +++++------
 src/dummy_distributor.hpp   |   8 ++--
 src/encoder.hpp             |   6 +--
 src/epoll.cpp               |  36 +++++++-------
 src/epoll.hpp               |   8 ++--
 src/err.cpp                 |   8 ++--
 src/err.hpp                 |  16 +++----
 src/fair_aggregator.cpp     |  30 ++++++------
 src/fair_aggregator.hpp     |   8 ++--
 src/fd.hpp                  |   8 ++--
 src/fd_signaler.cpp         |  54 ++++++++++-----------
 src/fd_signaler.hpp         |   8 ++--
 src/i_api.hpp               |  14 +++---
 src/i_demux.hpp             |  11 +++--
 src/i_engine.hpp            |   8 ++--
 src/i_mux.hpp               |  11 +++--
 src/i_poll_events.hpp       |   6 +--
 src/i_poller.hpp            |   6 +--
 src/i_session.hpp           |  10 ++--
 src/i_signaler.hpp          |   6 +--
 src/i_thread.hpp            |   6 +--
 src/io_object.cpp           |   6 +--
 src/io_object.hpp           |   6 +--
 src/io_thread.cpp           |  72 ++++++++++++++--------------
 src/io_thread.hpp           |   8 ++--
 src/ip.cpp                  |  36 +++++++-------
 src/ip.hpp                  |   8 ++--
 src/kqueue.cpp              |  40 ++++++++--------
 src/kqueue.hpp              |   8 ++--
 src/listener.cpp            |  42 ++++++++--------
 src/listener.hpp            |   6 +--
 src/load_balancer.cpp       |  32 ++++++-------
 src/load_balancer.hpp       |  10 ++--
 src/msg.hpp                 |  16 +++----
 src/mutex.hpp               |  10 ++--
 src/object.cpp              |  88 +++++++++++++++++-----------------
 src/object.hpp              |   6 +--
 src/p2p.cpp                 |   4 +-
 src/p2p.hpp                 |   6 +--
 src/pipe.cpp                |  14 +++---
 src/pipe.hpp                |  10 ++--
 src/pipe_reader.cpp         |  26 +++++-----
 src/pipe_reader.hpp         |   8 ++--
 src/pipe_writer.cpp         |  30 ++++++------
 src/pipe_writer.hpp         |   8 ++--
 src/platform.hpp.in         |  26 +++++-----
 src/poll.cpp                |  40 ++++++++--------
 src/poll.hpp                |  14 +++---
 src/pub.cpp                 |   6 +--
 src/pub.hpp                 |   8 ++--
 src/rep.cpp                 |   4 +-
 src/rep.hpp                 |   6 +--
 src/req.cpp                 |   4 +-
 src/req.hpp                 |   6 +--
 src/safe_object.cpp         |  14 +++---
 src/safe_object.hpp         |   6 +--
 src/select.cpp              |  40 ++++++++--------
 src/select.hpp              |  10 ++--
 src/session.cpp             |  46 +++++++++---------
 src/session.hpp             |  10 ++--
 src/session_stub.cpp        |  30 ++++++------
 src/session_stub.hpp        |  10 ++--
 src/simple_semaphore.hpp    |  12 ++---
 src/socket_base.cpp         |  56 +++++++++++-----------
 src/socket_base.hpp         |  14 +++---
 src/stdint.hpp              |   6 +--
 src/sub.cpp                 |   8 ++--
 src/sub.hpp                 |   8 ++--
 src/tcp_connecter.cpp       |  20 ++++----
 src/tcp_connecter.hpp       |   6 +--
 src/tcp_listener.cpp        |  20 ++++----
 src/tcp_listener.hpp        |   6 +--
 src/tcp_socket.cpp          |  18 +++----
 src/tcp_socket.hpp          |   6 +--
 src/thread.cpp              |  14 +++---
 src/thread.hpp              |  10 ++--
 src/uuid.cpp                |  40 ++++++++--------
 src/uuid.hpp                |  18 +++----
 src/windows.hpp             |   4 +-
 src/wire.hpp                |   6 +--
 src/ypipe.hpp               |   8 ++--
 src/ypollset.cpp            |  10 ++--
 src/ypollset.hpp            |   6 +--
 src/yqueue.hpp              |  10 ++--
 src/{zs.cpp => zmq.cpp}     | 113 ++++++++++++++++++++++----------------------
 src/zmq_decoder.cpp         |  25 +++++-----
 src/zmq_decoder.hpp         |  10 ++--
 src/zmq_encoder.cpp         |  18 +++----
 src/zmq_encoder.hpp         |  10 ++--
 src/zmq_tcp_engine.cpp      |  44 ++++++++---------
 src/zmq_tcp_engine.hpp      |   6 +--
 120 files changed, 1258 insertions(+), 1250 deletions(-)

commit 183b6887644ac05c951a3f9143248ed86e91052f
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Thu Jul 30 13:53:46 2009 +0200

    git ignoring intermediary files

 .gitignore | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 4ed70a930202b103e7e80b8dc925e0aaa4622595
Author: Martin Sustrik <sustrik@250bpm.com>
Date:   Wed Jul 29 12:07:54 2009 +0200

    initial commit

 AUTHORS                    |   0
 ChangeLog                  |   0
 Makefile.am                |   4 +
 NEWS                       |   0
 README                     |   0
 autogen.sh                 |  29 +++++
 configure.in               | 188 +++++++++++++++++++++++++++
 examples/Makefile.am       |   2 +
 examples/chat/Makefile.am  |  15 +++
 examples/chat/chatroom.cpp |  74 +++++++++++
 examples/chat/display.cpp  |  56 ++++++++
 examples/chat/prompt.cpp   |  61 +++++++++
 include/zs.h               | 206 ++++++++++++++++++++++++++++++
 include/zs.hpp             | 231 +++++++++++++++++++++++++++++++++
 src/Makefile.am            | 120 ++++++++++++++++++
 src/app_thread.cpp         | 221 ++++++++++++++++++++++++++++++++
 src/app_thread.hpp         |  95 ++++++++++++++
 src/atomic.hpp             | 310 +++++++++++++++++++++++++++++++++++++++++++++
 src/atomic_bitmap.hpp      | 286 +++++++++++++++++++++++++++++++++++++++++
 src/atomic_counter.hpp     | 197 ++++++++++++++++++++++++++++
 src/atomic_ptr.hpp         | 189 +++++++++++++++++++++++++++
 src/command.hpp            |  98 ++++++++++++++
 src/config.hpp             |  71 +++++++++++
 src/connecter.cpp          | 189 +++++++++++++++++++++++++++
 src/connecter.hpp          |  99 +++++++++++++++
 src/data_distributor.cpp   | 155 +++++++++++++++++++++++
 src/data_distributor.hpp   |  70 ++++++++++
 src/decoder.hpp            | 101 +++++++++++++++
 src/devpoll.cpp            | 224 ++++++++++++++++++++++++++++++++
 src/devpoll.hpp            | 110 ++++++++++++++++
 src/dispatcher.cpp         | 266 ++++++++++++++++++++++++++++++++++++++
 src/dispatcher.hpp         | 170 +++++++++++++++++++++++++
 src/dummy_aggregator.cpp   | 111 ++++++++++++++++
 src/dummy_aggregator.hpp   |  73 +++++++++++
 src/dummy_distributor.cpp  |  85 +++++++++++++
 src/dummy_distributor.hpp  |  68 ++++++++++
 src/encoder.hpp            | 108 ++++++++++++++++
 src/epoll.cpp              | 214 +++++++++++++++++++++++++++++++
 src/epoll.hpp              | 107 ++++++++++++++++
 src/err.cpp                | 146 +++++++++++++++++++++
 src/err.hpp                |  90 +++++++++++++
 src/fair_aggregator.cpp    | 143 +++++++++++++++++++++
 src/fair_aggregator.hpp    |  77 +++++++++++
 src/fd.hpp                 |  44 +++++++
 src/fd_signaler.cpp        | 278 ++++++++++++++++++++++++++++++++++++++++
 src/fd_signaler.hpp        |  92 ++++++++++++++
 src/i_api.hpp              |  39 ++++++
 src/i_demux.hpp            |  56 ++++++++
 src/i_engine.hpp           |  53 ++++++++
 src/i_mux.hpp              |  59 +++++++++
 src/i_poll_events.hpp      |  45 +++++++
 src/i_poller.hpp           |  89 +++++++++++++
 src/i_session.hpp          |  37 ++++++
 src/i_signaler.hpp         |  38 ++++++
 src/i_thread.hpp           |  38 ++++++
 src/io_object.cpp          |  37 ++++++
 src/io_object.hpp          |  51 ++++++++
 src/io_thread.cpp          | 177 ++++++++++++++++++++++++++
 src/io_thread.hpp          |  99 +++++++++++++++
 src/ip.cpp                 | 310 +++++++++++++++++++++++++++++++++++++++++++++
 src/ip.hpp                 |  47 +++++++
 src/kqueue.cpp             | 214 +++++++++++++++++++++++++++++++
 src/kqueue.hpp             | 112 ++++++++++++++++
 src/listener.cpp           | 170 +++++++++++++++++++++++++
 src/listener.hpp           | 110 ++++++++++++++++
 src/load_balancer.cpp      | 130 +++++++++++++++++++
 src/load_balancer.hpp      |  73 +++++++++++
 src/msg.hpp                |  49 +++++++
 src/mutex.hpp              | 116 +++++++++++++++++
 src/object.cpp             | 294 ++++++++++++++++++++++++++++++++++++++++++
 src/object.hpp             | 105 +++++++++++++++
 src/p2p.cpp                |  29 +++++
 src/p2p.hpp                |  42 ++++++
 src/pipe.cpp               |  47 +++++++
 src/pipe.hpp               |  57 +++++++++
 src/pipe_reader.cpp        | 118 +++++++++++++++++
 src/pipe_reader.hpp        |  89 +++++++++++++
 src/pipe_writer.cpp        | 120 ++++++++++++++++++
 src/pipe_writer.hpp        |  88 +++++++++++++
 src/platform.hpp.in        | 210 ++++++++++++++++++++++++++++++
 src/poll.cpp               | 205 ++++++++++++++++++++++++++++++
 src/poll.hpp               | 112 ++++++++++++++++
 src/pub.cpp                |  38 ++++++
 src/pub.hpp                |  45 +++++++
 src/rep.cpp                |  29 +++++
 src/rep.hpp                |  42 ++++++
 src/req.cpp                |  29 +++++
 src/req.hpp                |  42 ++++++
 src/safe_object.cpp        |  76 +++++++++++
 src/safe_object.hpp        |  68 ++++++++++
 src/select.cpp             | 236 ++++++++++++++++++++++++++++++++++
 src/select.hpp             | 122 ++++++++++++++++++
 src/session.cpp            | 273 +++++++++++++++++++++++++++++++++++++++
 src/session.hpp            | 107 ++++++++++++++++
 src/session_stub.cpp       | 110 ++++++++++++++++
 src/session_stub.hpp       |  83 ++++++++++++
 src/simple_semaphore.hpp   | 188 +++++++++++++++++++++++++++
 src/socket_base.cpp        | 267 ++++++++++++++++++++++++++++++++++++++
 src/socket_base.hpp        |  96 ++++++++++++++
 src/stdint.hpp             |  70 ++++++++++
 src/sub.cpp                |  45 +++++++
 src/sub.hpp                |  46 +++++++
 src/tcp_connecter.cpp      | 138 ++++++++++++++++++++
 src/tcp_connecter.hpp      |  65 ++++++++++
 src/tcp_listener.cpp       | 165 ++++++++++++++++++++++++
 src/tcp_listener.hpp       |  65 ++++++++++
 src/tcp_socket.cpp         | 116 +++++++++++++++++
 src/tcp_socket.hpp         |  70 ++++++++++
 src/thread.cpp             |  88 +++++++++++++
 src/thread.hpp             |  77 +++++++++++
 src/uuid.cpp               | 136 ++++++++++++++++++++
 src/uuid.hpp               |  82 ++++++++++++
 src/windows.hpp            |  56 ++++++++
 src/wire.hpp               |  98 ++++++++++++++
 src/ypipe.hpp              | 209 ++++++++++++++++++++++++++++++
 src/ypollset.cpp           |  56 ++++++++
 src/ypollset.hpp           |  74 +++++++++++
 src/yqueue.hpp             | 138 ++++++++++++++++++++
 src/zmq_decoder.cpp        |  78 ++++++++++++
 src/zmq_decoder.hpp        |  57 +++++++++
 src/zmq_encoder.cpp        |  75 +++++++++++
 src/zmq_encoder.hpp        |  54 ++++++++
 src/zmq_tcp_engine.cpp     | 185 +++++++++++++++++++++++++++
 src/zmq_tcp_engine.hpp     |  92 ++++++++++++++
 src/zs.cpp                 | 222 ++++++++++++++++++++++++++++++++
 125 files changed, 13546 insertions(+)
