Compare commits

...

274 Commits

Author SHA1 Message Date
Luca Boccassi
c5bd2870c2 Finalize NEWS and bump ABI to 5:1:0 for 4.1.5 2016-06-17 12:06:46 +01:00
Kevin Sapper
2ef080588a Merge pull request #127 from bluca/fix_deploy
Problem: Travis deploy token is wrong
2016-06-04 18:32:48 +02:00
Luca Boccassi
7a8a83ba84 Problem: Travis deploy token is wrong
Solution: encrypt it wit the right parameter and fix it
2016-06-04 17:43:45 +02:00
Kevin Sapper
b849af44c5 Merge pull request #126 from bluca/distcheck
Problem: make distcheck is broken and deploying release artifacts is a manual process
2016-06-04 16:46:16 +02:00
Kevin Sapper
3f7c3c2658 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.
2016-06-04 16:37:01 +02:00
Luca Boccassi
81a68d73dd Problem: Travis CI does not run make distcheck
Solution: do it
2016-06-04 16:03:25 +02:00
Pieter Hintjens
6c1851efdb 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.
2016-06-04 16:03:25 +02:00
Luca Boccassi
83bf40ee1f Update NEWS for fix #2021 2016-06-04 15:41:57 +02:00
Luca Boccassi
7d540d6dfe Merge pull request #125 from wbx-github/master
allow to build sparc (v8,leon)
2016-06-04 14:34:41 +01:00
Luca Boccassi
330c682403 Merge pull request #124 from aburgm/issue-1542
Backport fix for issue 1542 to zmq 4.1.x
2016-06-04 10:28:56 +01:00
Luca Boccassi
4d613cb890 Merge pull request #122 from pijyoi/master
fix: sockets are not signed int on Windows
2016-06-04 10:28:12 +01:00
Waldemar Brodkorb
d0b22397eb 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>
2016-06-04 09:37:37 +02:00
Armin Burgmeier
1b06a5025d Update NEWS to mention fixed issue 1542 2016-06-03 20:43:13 -07:00
Matt Bolger
783fb45f9d -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
2016-06-03 19:20:33 -07:00
KIU Shueng Chuan
ca69183592 fix: sockets are not signed int on Windows 2016-05-09 21:31:09 +08:00
Pieter Hintjens
56b71af22d Merge pull request #121 from bluca/builds_make_dist
Problem: missing files in release tarballs
2016-05-04 12:46:47 +02:00
Luca Boccassi
6bbc6b67f6 Update NEWS for fix #1952 2016-05-04 11:38:25 +01:00
Luca Boccassi
c369d9bd36 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.
2016-05-04 11:29:46 +01:00
Pieter Hintjens
4dd6257d93 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
2016-05-04 11:25:35 +01:00
Min RK
3ad076a7a3 Merge pull request #118 from bluca/zmq_unbind_api_breakage
Problem: can't unbind with bound addr with IPv6
2016-04-21 12:03:17 +02:00
Luca Boccassi
81c9c498ee Update NEWS for fix #114 2016-04-21 10:52:35 +01:00
Luca Boccassi
0af39a443f 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.
2016-04-21 10:52:11 +01:00
Luca Boccassi
1586f3f25e 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.
2016-04-21 10:52:11 +01:00
Pieter Hintjens
b315d610b8 Merge pull request #119 from hitstergtd/fix-NEWS-for-pr-1877
Problem: No NEWS entry for Issue #919
2016-04-20 19:12:30 +02:00
hitstergtd
2018743b4e Problem: No NEWS entry for Issue #919
Solution: add entry and mark it as related to Issue #1877 and PR #1511
2016-04-20 08:59:43 +01:00
Constantin Rack
dd077bc2b2 Merge pull request #117 from bluca/solaris_fixes
Problem: build broken on Solaris 10
2016-04-13 22:56:53 +02:00
Luca Boccassi
e488df7892 Update NEWS for fix #1866 2016-04-13 00:22:22 +01:00
Luca Boccassi
02d71a88ab Problem: missing () after sizeof cause build fail
Solution: use sizeof () to avoid build failure on Solaris 10 with
gcc 3.4
2016-04-13 00:14:25 +01:00
Luca Boccassi
b2eddf9746 Problem: -lssp causes build failure on Solaris
Solution: add -lssp on Solaris only when libsodium is enabled and has
been found. Also disable pedantic and Werror, as libsodium headers
use pragma diagnostic which are not available in gcc 3.4.
2016-04-13 00:14:25 +01:00
Luca Boccassi
3945f27f6d Problem: pragma diagnostic is new in GCC 4.2
Solution: check for GCC version before using pragma diagnostic
in tweetnacl to avoid an additional warning.
2016-04-12 23:52:34 +01:00
Constantin Rack
71050259f7 Merge pull request #116 from bluca/ipv6_downgrade 2016-04-07 18:30:13 +02:00
Luca Boccassi
6d92d263e1 Update NEWS for fix #1887 2016-04-07 17:11:06 +01:00
Luca Boccassi
1a1abe3d5e 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.
2016-04-07 14:16:35 +01:00
Luca Boccassi
1e87d92527 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.
2016-04-07 14:16:35 +01:00
Luca Boccassi
82aed1dee6 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.
2016-04-07 14:15:29 +01:00
Pieter Hintjens
197a9e05e2 Merge pull request #115 from bluca/linger_fix_backport
Problem: connection might terminate prematurely
2016-03-30 19:41:34 +02:00
Luca Boccassi
cf0dcd2379 Problem: NEWS not up to date with bug fixes
Solution: mention closing issue #1877
2016-03-30 18:11:57 +01:00
Soren Hansen
bf92026527 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.
2016-03-30 17:04:48 +01:00
Constantin Rack
d8732929d5 Merge pull request #112 from hintjens/master 2016-03-15 07:02:50 +01:00
Pieter Hintjens
bbe4f3ede4 Problem: does not build on Windows with libsodium
Solution: fixed wrong condition around randombytes_close ().
2016-03-15 06:26:34 +01:00
Constantin Rack
e0041f1fcb Merge pull request #111 from hintjens/master
Problem: cannot disable encryption if libsodium is installed
2016-03-12 20:52:29 +01:00
Pieter Hintjens
98834596f1 Problem: cannot disable encryption if libsodium is installed
The sodium/tweetnacl detection logic does not yet you disable
encryption if libsodium is installed.

Fixes #1850 in libzmq/master
2016-03-12 15:40:24 +01:00
Pieter Hintjens
5aa7bdfc68 Merge pull request #109 from hintjens/master
Updated news for fix #1831
2016-03-01 17:05:52 +01:00
Pieter Hintjens
25be170b57 Updated news for fix #1831 2016-03-01 17:05:22 +01:00
Pieter Hintjens
c1d8420335 Merge pull request #108 from hintjens/master
Problem: can't be sure crypto_box always returns 0
2016-03-01 17:05:10 +01:00
Pieter Hintjens
58badc44c1 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
2016-03-01 17:01:00 +01:00
Pieter Hintjens
4985b084e6 Merge pull request #107 from grimbeaver/fix-vs-versions
Update VS version resource and package version.
2016-02-29 21:38:54 +01:00
Thomas Brezinski
2fba10d691 Update VS version resource and package version. 2016-02-29 13:32:07 -06:00
Pieter Hintjens
0b781f84e8 Merge pull request #104 from bluca/uninitialised_news
Problem: news out of date
2016-02-16 15:05:39 +01:00
Luca Boccassi
b1a150a675 Problem: my name is not in the AUTHORS file
Solution: add myself to the list
2016-02-16 14:04:10 +00:00
Luca Boccassi
5977a8a5b6 Problem: NEWS not up to date with bug fixes
Solution: mention issues 1806 and 1807
2016-02-16 14:02:30 +00:00
Pieter Hintjens
4d45ee9440 Merge pull request #103 from bluca/uninitialised_sockopt
Problem: curve keys getsockopt uninitialised read
2016-02-16 14:51:29 +01:00
Luca Boccassi
eda5426865 Problem: Travis CI uses libsodium unstable branch
Solution: use stable branch instead of the development branch, and
also clone with --depth 1 to make it more efficient.
2016-02-16 13:41:46 +00:00
Luca Boccassi
6a66c05179 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.

Backport from libzmq.
2016-02-16 13:40:40 +00:00
Pieter Hintjens
cb811a1e0c Merge pull request #102 from hintjens/master
Backported fix #1608
2016-02-16 12:03:11 +01:00
Pieter Hintjens
87dd03750b Updated NEWS for fix #1608 2016-02-16 12:02:26 +01:00
Pieter Hintjens
4cee289697 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
2016-02-16 12:01:45 +01:00
Pieter Hintjens
b624f1adc9 Merge pull request #101 from bluca/gcc6
Problem: build broken with gcc 6
2016-02-12 23:17:22 +01:00
meox
49593151db [PATCH] fix error with gcc 5.2 2016-02-12 21:57:51 +00:00
Pieter Hintjens
b341dd7ffe Merge pull request #100 from CommanderBubble/master
compilation fixes for when _WIN32_WINNT >= 0x0600
2016-02-12 13:45:12 +01:00
Michael
2058dece77 added windows.hpp with include check
windows.hpp must be included before zmq.h when _WIN32_WINNT >= 0x0600
2016-02-12 23:36:48 +11:00
Michael
45404f4b06 added windows.hpp with include check
windows.hpp must be included before zmq.h when _WIN32_WINNT >= 0x0600
2016-02-12 23:36:07 +11:00
Michael
6f4e9f13f3 changed order of includes
windows.hpp must be included before zmq.h when _WIN32_WINNT >= 0x0600
2016-02-12 23:34:43 +11:00
Michael
af3b9452a2 remove include that is already in header 2016-02-12 23:33:22 +11:00
Michael
626abbdaf2 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
2016-02-12 23:32:20 +11:00
Michael
d0b341cf0f 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
2016-02-12 23:31:55 +11:00
Michael
41cc603d11 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
2016-02-12 23:31:24 +11:00
Pieter Hintjens
ad7fe55e95 Merge pull request #98 from zeromq/revert-95-patch-1
Revert "update minimum _WIN32_WINNT version to 0x0600 for 4.1.4 onwards"
2016-02-11 14:16:39 +01:00
Min RK
e68c2d2563 Revert "update minimum _WIN32_WINNT version to 0x0600 for 4.1.4 onwards" 2016-02-11 14:00:41 +01:00
Pieter Hintjens
b539733cee Merge pull request #97 from minrk/configure-tweetnacl
support tweetnacl in configure
2016-02-08 13:01:12 +01:00
Min RK
3ae84e6b00 fallback on tweetnacl if libsodium is not found and not explicitly requested 2016-02-08 12:44:45 +01:00
Min RK
6f022cce92 add --with-tweetnacl to configure
allows building with tweetnacl without cmake
2016-02-08 12:44:45 +01:00
Pieter Hintjens
58ac36593f Merge pull request #95 from CommanderBubble/patch-1
update minimum _WIN32_WINNT version to 0x0600 for 4.1.4 onwards
2016-02-02 14:17:48 +01:00
Michael
e3fba7d447 updated minimum _WIN32_WINNT version to 0x0600
if_nametoindex requires minimum windows version vista, which is 0x0600
2016-02-02 22:32:16 +11:00
Pieter Hintjens
5501f19a0f Update NEWS 2016-01-21 18:04:09 +01:00
Pieter Hintjens
9bdfb94999 Merge pull request #93 from GreatFruitOmsk/master
Backport zeromq/libzmq#1723
2016-01-21 18:03:03 +01:00
Ilya Kulakov
0c5c536303 Backport zeromq/libzmq#1723 2016-01-21 19:56:23 +06:00
Pieter Hintjens
802c2a8a2b Merge pull request #92 from GreatFruitOmsk/master
Backport zeromq/libzmq#1722
2016-01-21 08:58:23 +01:00
Ilya Kulakov
4788c7d2a9 Backport zeromq/libzmq#1722 2016-01-21 13:47:55 +06:00
Pieter Hintjens
b7a30978ca Merge pull request #91 from minrk/backport-winrandom-backwards
backport winrandom fix
2016-01-18 15:53:16 +01:00
Anonymous Maarten
d1a0baf25f tweetNaCL: fix winrandom
problem: random byte generation on windows got stuck in an infinite loop
solution: the failure test is incorrect. Change it
2016-01-18 15:24:33 +01:00
Pieter Hintjens
c7642aa434 Merge pull request #90 from hintjens/master
Reverted patch for IPv6 support
2016-01-18 13:05:29 +01:00
Pieter Hintjens
795a7e3de2 Revert "Fix missing include for if_nametoindex on Windows."
This reverts commit b9dbc5b8caea5491c7330d891e93e2791d84c906.
2016-01-18 13:04:00 +01:00
Pieter Hintjens
95766dd09c Revert "Add missing support for IPv6 link local addresses (which include % followed by the interface name)"
This reverts commit 849e5b07d982e7c0917a13d9ff22d447817dd7fe.
2016-01-18 13:03:49 +01:00
Pieter Hintjens
7689bc30b9 Merge pull request #89 from minrk/stdint.h
don't include stdint.h on msc < 1600
2016-01-18 12:47:33 +01:00
Min RK
0f684ac16c don't include stdint.h on msc < 1600
where stdint.h is unavailable

(see stdint.hpp for the same check)
2016-01-18 12:30:05 +01:00
Pieter Hintjens
e8095071d9 Merge pull request #88 from minrk/tweetnacl
tweetnacl in sdists
2016-01-18 11:14:08 +01:00
Min RK
f13d4f1d04 add windows randombytes implementation
backport zeromq/libzmq#1619
2016-01-18 11:13:11 +01:00
Min RK
56835bc833 include tweetnacl in dist
backport zeromq/libzmq#1707
2016-01-18 10:39:00 +01:00
Pieter Hintjens
6933dfff58 Merge pull request #87 from GreatFruitOmsk/master
Backport #1702
2016-01-14 15:15:55 +01:00
Ilya Kulakov
6c3f1069aa Backport #1702 2016-01-14 18:26:05 +06:00
Pieter Hintjens
6548a48bc7 Merge pull request #85 from GreatFruitOmsk/master
Backport of #1676
2015-12-18 16:11:22 +01:00
Ilya Kulakov
a649a13117 Backport of #1676 2015-12-18 20:56:24 +06:00
Pieter Hintjens
e2a2175f15 Merge pull request #84 from GreatFruitOmsk/master
Fix missing include for if_nametoindex on Windows.
2015-12-18 15:07:53 +01:00
Ilya Kulakov
b9dbc5b8ca Fix missing include for if_nametoindex on Windows.
Raise min version to Vista.
2015-12-18 19:42:44 +06:00
Pieter Hintjens
9dd76f68b1 Updated NEWS for #1673 2015-12-18 10:33:50 +01:00
Ilya Kulakov
ef8145b25f Fix redirecting location of pdb via CMAKE_PDB_OUTPUT_DIRECTORY. 2015-12-18 10:32:25 +01:00
Pieter Hintjens
71bc8bee04 Updated for release 4.1.5 2015-12-18 10:12:00 +01:00
Pieter Hintjens
7ee12b527d Updated .gitignore 2015-12-18 09:25:11 +01:00
Pieter Hintjens
e4bb5662c0 Updated NEWS for release 4.1.4 2015-12-18 09:21:40 +01:00
Pieter Hintjens
d89467270e Merge pull request #79 from hintjens/master
Fixed #1661
2015-12-10 17:07:14 +01:00
Pieter Hintjens
e8577bf1dd Updated NEWS 2015-12-10 08:56:18 +01:00
Sathish Yenna
849e5b07d9 Add missing support for IPv6 link local addresses (which include % followed by the interface name) 2015-12-10 00:15:51 +01:00
Pieter Hintjens
e1e5a10dd1 Merge pull request #75 from hintjens/master
Backported fixes from master
2015-11-20 13:55:44 +02:00
Pieter Hintjens
7d749ad66a Updated NEWS for #1315 2015-11-20 13:54:16 +02:00
Sergey Kovalevich
5ee936a9be backport https://github.com/zeromq/libzmq/pull/1604 2015-11-20 13:54:16 +02:00
Pieter Hintjens
8c5ca359e8 Merge pull request #74 from ksergey/backport_1315
backport https://github.com/zeromq/libzmq/pull/1604
2015-11-20 13:51:12 +02:00
Sergey Kovalevich
cb47f02f42 backport https://github.com/zeromq/libzmq/pull/1604 2015-11-20 13:15:11 +03:00
Pieter Hintjens
7cfa9f647b Backported fix for #1644 2015-11-19 14:03:21 +02:00
somdoron
af543a58f2 Fix a bug when stream_engine try to set alreadt set metadata 2015-11-19 14:01:05 +02:00
Pieter Hintjens
c100ad1dc0 Merge pull request #73 from snikulov/port_1394_libzmq
ported #1394 from libzmq
2015-11-10 09:45:58 +01:00
Sergei Nikulov
6a88bdb606 ported #1394 from libzmq 2015-11-10 10:34:34 +03:00
Pieter Hintjens
30b070a376 Merge pull request #72 from hintjens/master
Updated NEWS
2015-11-04 10:03:33 +01:00
Pieter Hintjens
550013b9e4 Updated NEWS 2015-11-04 10:02:16 +01:00
Joe Eli McIlvain
a75b7543e8 Merge pull request #69 from maytechnet/master
Problem: return code of sodium_init() is not checked.
2015-11-03 08:33:43 -08:00
Constantin Rack
89d4e995ef 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
2015-11-03 18:04:42 +02:00
Constantin Rack
2aa08155f4 Merge pull request #68 from zeromq/revert-42-vs2008_stdint_fix
Revert "stdint.h is available in VS2008 (1500)"
2015-11-03 10:31:54 +01:00
Min RK
28432b562d Revert "stdint.h is available in VS2008 (1500)" 2015-11-03 09:56:19 +01:00
Constantin Rack
7bec6c1bdb Merge pull request #67 from hintjens/master
Backported fix for #1399
2015-11-01 10:47:55 +01:00
Pieter Hintjens
c41d8aa12b Updated version number for next release 2015-11-01 09:10:28 +01:00
Pieter Hintjens
a73740b304 Backported fix for #1399
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 :)
2015-11-01 09:10:09 +01:00
Pieter Hintjens
e3e699190f Merge pull request #65 from jstefanski/fix_cmake_3_build
Fix FindAsciiDoc module for CMake 3
2015-10-06 14:47:10 +02:00
Jakub Stefanski
3db502ba47 Fix FindAsciiDoc module for CMake 3
Fixed '(' and ')' braces usage volation according to CMake
policy CMP0053 in FindAsciiDoc module.
2015-10-06 14:23:33 +02:00
Constantin Rack
549ee2401c Merge pull request #64 from GreatFruitOmsk/fix-msvc2015
Fix configure failure on 32-bit MSVC.
2015-09-11 10:49:51 +02:00
Artem Martynovich
279bcb2843 Fix configure failure on 32-bit MSVC.
Windows libraries being checked (ws2_32, rpcrt4, iphlpapi) contain functions following stdcall convention. While on 64-bit platform it makes no difference, on 32-bit it does. For example, function WSAGetLastError is mangled by MSVC like "_WSAGetLastError@0". CMake checks if a function FUNC is present in a library by compiling a simple C source containing function definition "char FUNC()" and then calling it. Since stdcall functions are mangled in such a way that requires correct number of arguments (written after "@"), checking for a function with non-zero number of arguments will fail.
That is why we check for functions which have zero arguments and we also force stdcall convention.
2015-09-11 13:39:19 +05:00
Pieter Hintjens
759790cadc Merge pull request #63 from GreatFruitOmsk/fix-msvc2015
Fix CMake configuration issue with MSVC 2015.
2015-09-08 08:21:10 -04:00
Artem Martynovich
415916d5f9 Fix CMake configuration issue with MSVC 2015.
Check for actual functions in ws2_32, ws2, rpcrt4, iphlpapi instead of printf.
2015-09-08 13:29:17 +06:00
Pieter Hintjens
cf38d9b7df Prepared for next release 4.1.4 2015-08-17 13:11:10 +02:00
Pieter Hintjens
765b1f24e3 Merge pull request #62 from hintjens/master
Fixed NEWS for release 4.1.3
2015-08-17 12:49:15 +02:00
Pieter Hintjens
a1fcf2f740 Fixed NEWS for release 4.1.3 2015-08-17 12:48:04 +02:00
Joe Eli McIlvain
53db7468b6 Merge pull request #61 from bluca/ci-container-build
Enable container-based build
2015-08-16 18:28:35 -07:00
Luca Boccassi
e39517c9f5 Enable container-based build
Remove use of "sudo", build and install in local directory in order
to enable container-based CI builds
2015-08-17 01:36:10 +01:00
Constantin Rack
7f45c052c4 Merge pull request #60 from GreatFruitOmsk/master
Fix documentation of the ZMQ_REQ_CORRELATE option.
2015-08-11 04:39:39 +02:00
Ilya Kulakov
b1bdec4404 Fix documentation of the ZMQ_REQ_CORRELATE option.
Full message is actually (request id, identity, 0,
user frames...).
2015-08-10 22:32:16 -04:00
Richard Newton
1cccf94c2e Merge pull request #59 from bluca/fix-ci-timeout
Problem: CI may fail due to timeout. Fixes #58
2015-08-02 19:32:43 +01:00
Luca Boccassi
92f2b073be Problem: CI may fail due to timeout. Fixes #58
Solution: cherry-pick Pieter Hintjens commit a7a512ab from libzmq
repository to increase test timeouts to 250 msec.
2015-08-02 19:23:22 +01:00
Richard Newton
6282d76268 Merge pull request #57 from bluca/travis-ci-osx
Travis ci osx
2015-08-02 19:22:07 +01:00
Luca Boccassi
866b02895f Increase file limit in travis config
Test cases occasionally fail, especially on OSX, due to socket limit.
2015-08-02 19:16:38 +01:00
Luca Boccassi
073807371c Add OSX build to travis config. Fixes #56 2015-08-02 19:04:21 +01:00
Luca Boccassi
7849d02214 Do not use ldconfig in CI if running on OSX
ldconfig is not available on OSX, so Travis CI build fails
2015-08-02 18:53:33 +01:00
Constantin Rack
0b4dfd8193 Merge pull request #55 from bluca/fix-autogen-libtool-detection
Solution: check for libtoolize in autogen. Fixes #54
2015-08-01 13:59:55 +02:00
Luca Boccassi
b7226da0d0 Solution: check for libtoolize in autogen. Fixes #54
Autogen.sh looks for the libtool command as a mean to check if
libtool is available. But distributions like Debian and Ubuntu have
split the libtool package, and the libtool script is now in a
separate package. The solution is to look for the libtoolize command
too before failing, which is what the Autotools chain actually needs
on Linux. Keep checking for libtool to be compatible with OSX, where
the opposite is true.
2015-08-01 12:42:16 +01:00
Constantin Rack
74fe8b6125 Merge pull request #53 from rikvdh/master
Fix issue #52, reset all bits in getsockopt
2015-08-01 10:55:15 +02:00
Rik van der Heijden
a9ca06847b Fix issue #52, reset all bits in getsockopt 2015-08-01 10:28:57 +02:00
Joe Eli McIlvain
7e7ce778ef Merge pull request #50 from leonarf/patch-1
THREAD_SCHED_POLICY & THREAD_PRIORITY documentation
2015-07-15 09:35:45 -04:00
leonarf
95b3f204a8 THREAD_SCHED_POLICY & THREAD_PRIORITY documentation
Documentaion of ZMQ_THREAD_SCHED_POLICY and ZMQ_THREAD_PRIORITY context's option.
2015-07-15 15:19:17 +02:00
Richard Newton
1d0f7b6979 Merge pull request #49 from blalor/patch-1
Fix path to libzmq .so files in RPM spec file
2015-07-03 16:03:01 +01:00
Brian Lalor
a3f4b4ef78 Remove missing man page from spec file 2015-07-03 07:57:31 -04:00
Brian Lalor
c78a5fd443 Fix path to libzmq .so files in RPM spec file
Fixes a packaging error when building the RPM:

```
$ rpmbuild -tb --with libsodium zeromq-4.1.2.tar.gz
[…]
RPM build errors:
    File not found: …/zeromq-4.1.2-1.el6.x86_64/usr/lib64/libzmq.so.4
    File not found: …/zeromq-4.1.2-1.el6.x86_64/usr/lib64/libzmq.so.4.0.0

$ ls …/zeromq-4.1.2-1.el6.x86_64/usr/lib64/libzmq*
libzmq.a  libzmq.la  libzmq.so  libzmq.so.5  libzmq.so.5.0.0
```
2015-07-03 07:47:48 -04:00
Pieter Hintjens
9a63ac7c54 Merge pull request #47 from calid/ignore-test_proxy_single_socket
add test_proxy_single_socket to gitignore
2015-06-29 08:08:08 +02:00
Pieter Hintjens
533437a5c0 Merge pull request #48 from calid/issue-949-tests
add tests for zeromq/libzmq#949
2015-06-29 08:04:41 +02:00
Dylan Cali
6b8aae0b54 be pedantic and call zmq_close in tests 2015-06-28 22:32:55 -05:00
Dylan Cali
b0023f0ccf fix errant comments 2015-06-28 21:28:49 -05:00
Dylan Cali
0684a760c9 add test_proxy_single_socket to gitignore 2015-06-28 21:04:55 -05:00
Dylan Cali
c8c36f5907 add tests for zeromq/libzmq#949 2015-06-28 20:53:04 -05:00
Constantin Rack
b5d8b360d7 Merge pull request #46 from dnaeon/typo-fix
Typo fix
2015-06-23 10:37:58 +02:00
Marin Atanasov Nikolov
5bd3a0d433 Typo fix 2015-06-23 14:34:33 +03:00
Pieter Hintjens
97a0b5dc08 Merge pull request #45 from c-rack/update-news
Problem: NEWS was not updated for backported fix on ipv6 addresses
2015-06-23 09:42:10 +02:00
Constantin Rack
b178072326 Solution: add backported fix to NEWS 2015-06-23 09:24:22 +02:00
Richard Newton
3869d7d490 Merge pull request #44 from c-rack/fix-ipv6-resolve
Solution: allow brackets in tcp address. Fixes #43
2015-06-23 08:11:03 +01:00
Constantin Rack
81464652d2 Solution: allow brackets in tcp address. Fixes #43 2015-06-23 08:29:36 +02:00
Constantin Rack
66d32eb04c Merge pull request #42 from mindw/vs2008_stdint_fix
stdint.h is available in VS2008 (1500)
2015-06-19 14:13:15 +02:00
Gabi Davar
8a41475b74 stdint is available in VS2008 (1600) 2015-06-19 14:49:04 +03:00
Constantin Rack
982f9ebfdb Merge pull request #41 from hintjens/master
Update version for next release, 4.1.3
2015-06-15 11:47:09 +02:00
Pieter Hintjens
e740796065 Update version for next release, 4.1.3 2015-06-15 11:45:16 +02:00
Pieter Hintjens
575da3ec7a Merge pull request #40 from hintjens/master
Updated NEWS for 4.1.2
2015-06-15 11:42:56 +02:00
Pieter Hintjens
58d8206c05 Updated NEWS for 4.1.2 2015-06-15 11:39:27 +02:00
Pieter Hintjens
d62bf33503 Merge pull request #39 from hintjens/master
Problem: 4.1 broke the ABI yet did not bump ABI number
2015-06-11 23:54:51 +02:00
Pieter Hintjens
7e89feb7ce Problem: 4.1 broke the ABI yet did not bump ABI number
Solution: bump to ABI version 5
2015-06-11 23:52:30 +02:00
Pieter Hintjens
f2c32954eb Merge pull request #38 from minrk/4.1.2
bump version to 4.1.2
2015-06-08 09:03:25 +02:00
Min RK
87c888a9c0 bump version to 4.1.2
4.1.1 has been released
2015-06-07 21:33:22 -07:00
Constantin Rack
b2f788135a Merge pull request #37 from minrk/proxy-single-socket
backport fix for #1428
2015-06-07 20:22:13 +02:00
Min RK
9be539a1e1 test proxy with single REP socket 2015-06-07 11:09:08 -07:00
Min RK
fd7ba4d509 don't check POLLOUT for single-socket proxies 2015-06-07 11:09:08 -07:00
Pieter Hintjens
a2e6e12b6c Merge pull request #36 from junovitch/fix-man-install-without-doc-build
Enable install of man pages when BUILD_DOC is not set by shifting INS…
2015-06-07 01:11:09 +02:00
Jason Unovitch
c75cc9ec5b Enable install of man pages when BUILD_DOC is not set by shifting INSTALL_MAN outside of BUILD_DOC's if/endif 2015-06-06 18:49:21 -04:00
Constantin Rack
23f68d2b39 Merge pull request #35 from hintjens/master
Problem: event interface isn't compatible with CZMQ 3.0
2015-06-04 13:51:47 +02:00
Pieter Hintjens
4f0fd36410 Problem: event interface isn't compatible with CZMQ 3.0
Solution: backport the latest STDINT definitions from libzmq.

Fixes #34
2015-06-04 13:19:52 +02:00
Pieter Hintjens
25cd81b7f3 Merge pull request #33 from hintjens/master
Fixes to README
2015-06-02 23:46:49 +02:00
Pieter Hintjens
7515323295 Fixes to README 2015-06-02 23:46:05 +02:00
Pieter Hintjens
d5a66f7b7d Merge pull request #32 from hintjens/master
Problem: source file headers are somewhat confusing about LGPLv3
2015-06-02 23:41:02 +02:00
Pieter Hintjens
b0a69fc623 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.
2015-06-02 22:47:01 +02:00
Pieter Hintjens
203cd808e2 Updated NEWS for release 4.1.1 2015-06-02 12:34:28 +02:00
Pieter Hintjens
e31c108885 Merge pull request #31 from c-rack/fix-travis-ci-badge
Solution: Use the correct URL. Fixes #30
2015-05-27 15:32:00 +02:00
Constantin Rack
610a956bed Solution: Use the correct URL. Fixes #30 2015-05-27 14:44:31 +02:00
Constantin Rack
7b786b2537 Merge pull request #29 from rikvdh/master
Fix another degradation, CPU maxes out when POLLOUT is set
2015-05-27 14:34:55 +02:00
Rik van der Heijden
b5a00b76e8 Fix another degradation, CPU maxes out when POLLOUT is set because poll exits on POLLOUT and doesn't wait for POLLIN. 2015-05-27 14:21:47 +02:00
Pieter Hintjens
1d18b39c4b Merge pull request #28 from rikvdh/master
Fix degradation from #1382, POLLOUT was tested but not requested
2015-05-24 22:59:10 +02:00
Rik van der Heijden
3a0f218cae Fix degradation from #1382, POLLOUT was tested but not requested 2015-05-24 22:38:22 +02:00
Pieter Hintjens
934b599938 Merge pull request #26 from hintjens/master
Backported fix for #1382
2015-05-01 11:36:58 +02:00
Pieter Hintjens
d41b1ecdf7 Problem: Makefile.am doesn't built test_proxy_terminate correctly
Solution: fix it.
2015-05-01 11:35:35 +02:00
Pieter Hintjens
c188667963 Merge pull request #25 from hintjens/master
Merged fix for #1382
2015-05-01 11:33:30 +02:00
Rik van der Heijden
1c7b09afaf Merged fix for #1382
Also fixed Makefile.am with missing specs for test case.
2015-05-01 11:32:42 +02:00
Rik van der Heijden
f5e1c607a5 Merged fix for #1382 2015-05-01 11:26:26 +02:00
Pieter Hintjens
752338ec87 Merge pull request #24 from hintjens/master
Fix for #1384
2015-05-01 08:45:46 +02:00
Pieter Hintjens
3ef80cec74 Updated NEWS for #1389 2015-05-01 08:43:34 +02:00
Martin Hurton
6f75687c9e pub: Don't delay pipe termination 2015-05-01 08:42:54 +02:00
Martin Hurton
8e26e4b35c push: Don't delay pipe termination 2015-05-01 08:42:38 +02:00
Pieter Hintjens
837cc2cd75 Merge pull request #23 from hintjens/master
Backported 594e3d
2015-04-22 00:29:41 +03:00
Pieter Hintjens
7b4c323bfd Updated NEWS for 594e3d 2015-04-21 23:28:38 +02:00
Pieter Hintjens
fee19e26ac 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
2015-04-21 23:23:42 +02:00
Pieter Hintjens
f22094b61a Merge pull request #22 from calid/docfix-zmq-msg-init
doc: zmq_msg_init does not set errno
2015-03-15 11:25:44 +01:00
Dylan Cali
ff0380d1f6 doc: zmq_msg_init does not set errno
In fact it always returns zero.

Backport of zeromq/libzmq#1368
2015-03-15 04:02:44 -05:00
Pieter Hintjens
6072d3dbdc Merge pull request #21 from hintjens/master
Fixed issue #1362
2015-02-20 09:15:02 +01:00
Pieter Hintjens
609ec133b4 Updated news for #1362 2015-02-20 09:14:02 +01:00
Martin Hurton
160a7efae4 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.
2015-02-20 09:13:47 +01:00
Constantin Rack
aa2237b8d6 Merge pull request #20 from rodgert/master
resolve #1347 addresses issue of no metadata on identity frame
2015-02-19 20:33:49 +01:00
Thomas Rodgers
73fa40b9ac resolve #1347 addresses issue of no metadata on identity frame 2015-02-19 13:31:26 -06:00
Thomas Rodgers
2a3379af4d Revert "resolve #1347 addresses issue of no metadata on identity frame"
This reverts commit f75ed8565e984f423e748717108486b458d5a724.
2015-02-19 13:27:18 -06:00
Thomas Rodgers
f75ed8565e resolve #1347 addresses issue of no metadata on identity frame 2015-02-19 13:26:26 -06:00
Pieter Hintjens
5b6b850d9a Merge pull request #19 from rodgert/master
Revert previous accidental push directly to zeromq/zeromq4-1
2015-02-18 21:18:43 +01:00
Thomas Rodgers
d172875f52 Backport resolve #1357 Support limited metadata for STREAM sockets 2015-02-18 13:09:11 -06:00
Thomas Rodgers
9fe4fb3929 Remove autogen.sh warning due to id2fd test cruft 2015-02-18 12:41:33 -06:00
Thomas Rodgers
48ed789c18 Revert "STREAM socket support for limited metadata"
This reverts commit 5afd4e16edb51a3996c8d4b9f698dea8d2917c43.
2015-02-18 12:36:21 -06:00
Thomas Rodgers
c6d5c965fa Revert "Remove debugging cruft"
This reverts commit bbecdf397e0661ff469eb4898008c09d00efc397.
2015-02-18 12:36:19 -06:00
Thomas Rodgers
a69a043e14 Revert "Add connector.close() back"
This reverts commit 5e60f18d3a68947f469346162deae7e65732ba50.
2015-02-18 12:36:13 -06:00
Thomas Rodgers
5e60f18d3a Add connector.close() back
Needed if session->push() ever fails
2015-02-18 11:17:41 -06:00
Thomas Rodgers
bbecdf397e Remove debugging cruft 2015-02-18 11:14:23 -06:00
Thomas Rodgers
5afd4e16ed STREAM socket support for limited metadata
WIP - STREAM socket support for limited metadata

STREAM socket support for limited metadata
2015-02-18 11:12:32 -06:00
Pieter Hintjens
ea3b9c28ae Merge pull request #18 from hintjens/master
Updated NEWS
2015-02-14 17:48:13 +01:00
Pieter Hintjens
fa277000d0 Updated NEWS 2015-02-14 17:47:55 +01:00
Pieter Hintjens
29b7266041 Merge pull request #17 from rodgert/master
resolve #1347 Backport zmq_msg_gets "Peer-Address"
2015-02-14 17:47:01 +01:00
Thomas Rodgers
5229eeef5b resolve #1347 Backport zmq_msg_gets "Peer-Address" 2015-02-14 10:44:52 -06:00
Constantin Rack
712e74eebd Merge pull request #16 from topher200/master
close (clean up) unsendable messages
2015-01-22 23:02:24 +01:00
Topher Brown
89dd9fddaf close (clean up) unsendable messages 2015-01-22 16:56:30 -05:00
Pieter Hintjens
583a5f9601 Merge pull request #14 from metadings/master
Upgrading zmq_msg_t to 64 bytes
2015-01-14 13:31:24 +01:00
Pieter Hintjens
20e3a9f535 Merge pull request #12 from rodgert/master
resolve #1296 Remove of ZMQ_IDENTITY_FD socket option
2015-01-14 13:30:20 +01:00
metadings
d206fe2d45 Upgrading zmq_msg_t to 64 bytes 2015-01-14 13:26:48 +01:00
Constantin Rack
67afb90ba8 Merge pull request #13 from hintjens/master
Problem: patch version was not updated yet for 4.1.1
2015-01-11 21:55:38 +01:00
Pieter Hintjens
79e3de21c3 Problem: patch version was not updated yet for 4.1.1
Solution: ZMQ_VERSION_PATCH is now 1
2015-01-11 21:54:05 +01:00
Thomas Rodgers
8f236dc55e resolve #1296 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
2015-01-09 18:14:22 -06:00
Pieter Hintjens
4a8bf129b3 Merge pull request #11 from hintjens/master
Problem: zmq_epgm man page is confusing and redundant
2014-12-07 17:08:24 +01:00
Pieter Hintjens
c477182735 Problem: zmq_epgm man page is confusing and redundant
Solution: delete it. The epgm:// transport is documented in zmq_pgm.
2014-12-07 17:07:22 +01:00
Pieter Hintjens
b272cca3e8 Merge pull request #10 from hintjens/master
Backported fix for #1273 (protocol downgrade attack)
2014-12-05 09:10:26 +01:00
Pieter Hintjens
61a3242085 Updated NEWS for #1273 2014-12-05 09:09:05 +01:00
Phillip Mienk
934973acf0 Alter --with-libsodium default. 2014-12-05 08:50:59 +01:00
Pieter Hintjens
e28b752aad Fixed .gitignore for test files 2014-12-04 14:01:56 +01:00
Pieter Hintjens
aa91fec015 Updated news for issue #1273 2014-12-04 13:43:41 +01:00
Min RK
fffaf6fd42 craft vanilla socket security test messages
use explicit ZMTP/1.0 anonymous greeting
rather than HTTP request that just happened to work
2014-12-04 13:42:27 +01:00
Min RK
4cff7bf372 allow vanilla socket security tests to run on Windows
- add ws2tcpip.h
- alias close->closesocket
- increment port in sec_null test
2014-12-04 13:42:19 +01:00
Min RK
14c94c0df9 add session->zap_enabled()
checks mechanism != NULL, or NULL + non-empty zap_domain
2014-12-04 13:42:15 +01:00
Min RK
56e09c80f8 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
2014-12-04 13:42:07 +01:00
Min RK
3c1a710d06 Resolved conflict when picking c35c0ca 2014-12-04 13:42:00 +01:00
Pieter Hintjens
66c8b70c7d Merge pull request #9 from hintjens/master
Updated for issue #1213
2014-11-08 10:32:53 +01:00
Pieter Hintjens
b1cba6b8b6 Updated for issue #1213 2014-11-08 10:32:34 +01:00
Pieter Hintjens
06d5d6010e Merge pull request #8 from hintjens/master
Fix builds/msvc/Makefile.am to include all properties files in the build
2014-11-08 10:29:45 +01:00
Dan Mick
8a2052cc52 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>
2014-11-08 10:29:08 +01:00
Pieter Hintjens
a90183d0de Merge pull request #7 from hintjens/master
Problem: zmq_ctx_term has insane behavior by default
2014-11-06 10:58:20 +01:00
Pieter Hintjens
88c9a4e5ec 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.
2014-11-06 10:57:12 +01:00
Pieter Hintjens
ef71d6f930 Merge pull request #6 from lysyloren/master
Unbind socket with real endpoint when binding by wild-card * address
2014-10-29 17:00:46 +01:00
lysyloren
ed6bf9f178 Unbind socket with real endpoint when binding by wild-card * address 2014-10-29 10:17:30 +01:00
Pieter Hintjens
acd55c7464 Merge pull request #5 from johntconklin/master
backport configure and rpmbuild fixes.
2014-10-28 13:38:51 +01:00
J.T. Conklin
a87c0d495f Support both --enable-eventfd and --disable-eventfd options. 2014-10-28 05:10:06 -07:00
J.T. Conklin
3b9049f163 Correct libgssapi_krb5 packages. 2014-10-28 04:56:32 -07:00
J.T. Conklin
3592c1ec1a Pass --with/--without-libgssapi_krb5 to configure. 2014-10-28 04:56:14 -07:00
Phillip Mienk
c0579448d8 Add support for --with/--without libgssapi_krb5 2014-10-28 04:55:54 -07:00
Phillip Mienk
0b1b5f283f Add --with-libgssapi_krb5 to match libsodium and pgm. 2014-10-28 04:55:32 -07:00
Pieter Hintjens
95fa16f3ef Merge pull request #4 from hintjens/master
Backported fixes from master
2014-10-23 10:30:00 +02:00
Pieter Hintjens
68f16a06ae Backported pull request #1225 2014-10-23 10:29:37 +02:00
Martin Hurton
03c35d2659 Fix issue #1224 2014-10-23 10:28:19 +02:00
Pieter Hintjens
966256d1b6 Merge pull request #3 from johntconklin/master
Cherry-picked configure and rpmbuild fixes from libzmq/master
2014-10-19 18:33:39 +02:00
J.T. Conklin
663781fbd4 Support both --with-* and --without-* options for libsodium and pgm 2014-10-19 09:06:46 -07:00
J.T. Conklin
1251d06dcc Append to libzmq_la_CPPFLAGS and libzmq_la_LIBADD. 2014-10-19 09:06:15 -07:00
Phillip Mienk
bf950e4241 Correct declaration of HAVE_LIBSODIUM. 2014-10-19 09:04:45 -07:00
Phillip Mienk
2b36c01870 Require pkg-config, use pkg-config to pull seek libsodium. 2014-10-19 09:04:32 -07:00
J.T. Conklin
08a5014e73 Add support for --with/--without libsodium and --with/--without pgm
command line options.
2014-10-19 08:55:59 -07:00
J.T. Conklin
7daeb846ec Remove build and runtime dependencies on e2fsprogs and e2fsprogs-devel. 2014-10-18 11:44:40 -07:00
Pieter Hintjens
779a2c1e76 Updated NEWS for #1208 2014-10-16 06:49:33 +02:00
Pieter Hintjens
f67b723ed4 Merge pull request #2 from pmienk/master
Reduce automake recursion; simplify pgm dependency
2014-10-16 06:44:54 +02:00
Phillip Mienk
6f9ad96225 Remove local pgm configuration option, cleanup configure.ac, remove unused Makefile.am instances. 2014-10-15 18:33:33 -07:00
Phillip Mienk
898ef212fa Partial migration to nonrecursive make. 2014-10-15 18:33:33 -07:00
Pieter Hintjens
8185c8039e Updated change history 2014-10-14 16:31:37 +02:00
Pieter Hintjens
f31aafd63c Marked TCP and IPC filters as deprecated (ZAP) 2014-10-14 16:29:15 +02:00
Pieter Hintjens
25af7d9768 Updated for release 4.1.0 2014-10-14 10:57:23 +02:00
304 changed files with 8311 additions and 4074 deletions

169
.gitignore vendored
View File

@ -22,84 +22,89 @@ autom4te.cache
*~
.*~
tools/curve_keygen
tests/test_resource
tests/test_ipc_wildcard
tests/test_stream_empty
tests/test_stream_timeout
tests/test_issue_566
tests/test_ctx_destroy
tests/test_term_endpoint
tests/test_system
tests/test_monitor
tests/test_last_endpoint
tests/test_pair_inproc
tests/test_pair_ipc
tests/test_pair_tcp
tests/test_reqrep_inproc
tests/test_reqrep_ipc
tests/test_reqrep_tcp
tests/test_shutdown_stress
tests/test_hwm
tests/test_timeo
tests/test_reqrep_device
tests/test_reqrep_drop
tests/test_sub_forward
tests/test_invalid_rep
tests/test_msg_flags
tests/test_ts_context
tests/test_connect_resolve
tests/test_immediate
tests/test_term_endpoint
tests/test_router_mandatory
tests/test_disconnect_inproc
tests/test_raw_sock
tests/test_disconnect_inproc
tests/test_ctx_options
tests/test_iov
tests/test_security
tests/test_security_curve
tests/test_probe_router
tests/test_stream
tests/test_spec_dealer
tests/test_spec_pushpull
tests/test_spec_rep
tests/test_spec_req
tests/test_spec_router
tests/test_req_correlate
tests/test_req_relaxed
tests/test_fork
tests/test_conflate
tests/test_inproc_connect
tests/test_linger
tests/test_security_null
tests/test_security_plain
tests/test_proxy
tests/test_abstract_ipc
tests/test_filter_ipc
tests/test_connect_delay_tipc
tests/test_pair_tipc
tests/test_reqrep_device_tipc
tests/test_reqrep_tipc
tests/test_router_handover
tests/test_router_mandatory_tipc
tests/test_shutdown_stress_tipc
tests/test_sub_forward_tipc
tests/test_term_endpoint_tipc
tests/test_many_sockets
tests/test_diffserv
tests/test_connect_rid
tests/test_srcfd
tests/test_stream_disconnect
tests/test_proxy_chain
tests/test_bind_src_address
tests/test_metadata
tests/test_id2fd
tests/test_capabilities
tests/test_hwm_pubsub
tests/test_router_mandatory_hwm
tests/test_xpub_nodrop
tests/test*.log
tests/test*.trs
test_resource
test_ipc_wildcard
test_stream_empty
test_stream_timeout
test_issue_566
test_ctx_destroy
test_term_endpoint
test_system
test_monitor
test_last_endpoint
test_pair_inproc
test_pair_ipc
test_pair_tcp
test_reqrep_inproc
test_reqrep_ipc
test_reqrep_tcp
test_shutdown_stress
test_hwm
test_timeo
test_reqrep_device
test_reqrep_drop
test_sub_forward
test_invalid_rep
test_msg_flags
test_ts_context
test_connect_resolve
test_immediate
test_term_endpoint
test_router_mandatory
test_disconnect_inproc
test_unbind_inproc
test_unbind_wildcard
test_raw_sock
test_disconnect_inproc
test_ctx_options
test_iov
test_security
test_security_curve
test_probe_router
test_stream
test_spec_dealer
test_spec_pushpull
test_spec_rep
test_spec_req
test_spec_router
test_req_correlate
test_req_relaxed
test_fork
test_conflate
test_inproc_connect
test_linger
test_security_null
test_security_plain
test_proxy
test_proxy_single_socket
test_proxy_terminate
test_abstract_ipc
test_filter_ipc
test_connect_delay_tipc
test_pair_tipc
test_reqrep_device_tipc
test_reqrep_tipc
test_router_handover
test_router_mandatory_tipc
test_shutdown_stress_tipc
test_sub_forward_tipc
test_term_endpoint_tipc
test_many_sockets
test_diffserv
test_connect_rid
test_srcfd
test_stream_disconnect
test_proxy_chain
test_bind_src_address
test_metadata
test_id2fd
test_capabilities
test_hwm_pubsub
test_router_mandatory_hwm
test_xpub_nodrop
test_getsockopt_memset
test*.log
test*.trs
src/platform.hpp*
src/stamp-h1
perf/local_lat
@ -133,3 +138,11 @@ zeromq-*.tar.gz
zeromq-*.zip
core
build
test-suite.log
curve_keygen
inproc_lat
inproc_thr
local_lat
local_thr
remote_lat
remote_thr

View File

@ -2,14 +2,50 @@
language: c
os:
- linux
- osx
sudo: false
env:
global:
- BUILD_PREFIX=$PWD/tmp
- CFLAGS=-I${BUILD_PREFIX}/include
- CPPFLAGS=-I${BUILD_PREFIX}/include
- CXXFLAGS=-I${BUILD_PREFIX}/include
- LDFLAGS=-L${BUILD_PREFIX}/lib
- PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig
- DISTCHECK_CONFIGURE_FLAGS="--with-libsodium --prefix=${BUILD_PREFIX}"
# Build required projects first
before_script:
- mkdir tmp
# libsodium
- git clone git://github.com/jedisct1/libsodium.git
- ( cd libsodium; ./autogen.sh; ./configure; make check; sudo make install; sudo ldconfig )
- git clone --depth 1 -b stable git://github.com/jedisct1/libsodium.git
- ( cd libsodium; ./autogen.sh; ./configure --prefix=${BUILD_PREFIX}; make check; make install )
# ZMQ stress tests need more open socket (files) than the usual default
# On OSX, it seems the way to set the max files limit is constantly changing, so
# try to use all known knobs to ensure compatibility across various versions
- if [ $TRAVIS_OS_NAME == "osx" ] ; then sudo sysctl -w kern.maxfiles=64000 ; sudo sysctl -w kern.maxfilesperproc=64000 ; sudo launchctl limit maxfiles 64000 64000 ; fi ; ulimit -n 64000
# Build and check this project
script:
- ./autogen.sh && ./configure && make && make check
- sudo make install
- ./autogen.sh && ./configure --with-libsodium --prefix=${BUILD_PREFIX} && make distcheck
# Deploy tags
before_deploy:
- . ./ci_deploy.sh
deploy:
provider: releases
api_key:
secure: "C+hbVQQL62twHIit4vjExT908acpjQzxPvCgnKKVdEYm58+rXVvQ4HzOlNve7py522m/2iazwnJDX5bPskES5Kof3jqTJ2hZI9rcFXh1KuEjUojiPwix/mUnxFYcxS4PhgmyqG3z5YUsEXnDhwkOwsAVnQIJUFV1XAWMWwDCilI="
file_glob: true
file: ${ZEROMQ41_DEPLOYMENT}
skip_cleanup: true
on:
repo: zeromq/zeromq4-1
branch: master
tags: true
condition: "$TRAVIS_OS_NAME =~ (linux)"

View File

@ -1,7 +1,7 @@
Corporate Contributors
======================
Copyright (c) 2007-2014 iMatix Corporation
Copyright (c) 2007-2015 iMatix Corporation
Copyright (c) 2009-2011 250bpm s.r.o.
Copyright (c) 2010-2011 Miru Limited
Copyright (c) 2011 VMware, Inc.
@ -59,6 +59,7 @@ Jon Dyte
Kamil Shakirov
Ken Steele
Laurent Alebarde
Luca Boccassi
Marc Rossi
Mark Barbisan
Martin Hurton
@ -86,6 +87,7 @@ Philip Kovacs
Pieter Hintjens
Piotr Trojanek
Richard Newton
Rik van der Heijden
Robert G. Jakabosky
Sebastian Otaegui
Stefan Radomski

View File

@ -1,6 +1,6 @@
# CMake build script for ZeroMQ
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 2.8.11)
project(ZeroMQ)
option(WITH_OPENPGM "Build with support for OpenPGM" OFF)
@ -9,31 +9,46 @@ if(APPLE)
option(ZMQ_BUILD_FRAMEWORK "Build as OS X framework" ON)
endif()
if(WIN32)
option(WITH_TWEETNACL "Build with tweetnacl" OFF)
else()
option(WITH_TWEETNACL "Build with tweetnacl" ON)
endif()
if(WITH_TWEETNACL)
add_definitions(-DHAVE_TWEETNACL -DHAVE_LIBSODIUM)
include_directories(
tweetnacl/contrib/randombytes
tweetnacl/src
)
# Select curve encryption library, defaults to tweetnacl
# To use libsodium instead, use --with-libsodium (must be installed)
# To disable curve, use --disable-curve
set(TWEETNACL_SOURCES
tweetnacl/src/tweetnacl.c
)
if(WIN32)
else()
option (WITH_LIBSODIUM "Use libsodium instead of built-in tweetnacl" OFF)
option (ENABLE_CURVE "Enable CURVE security" ON)
if (NOT ENABLE_CURVE)
message (STATUS "CURVE security is disabled")
elseif (WITH_LIBSODIUM)
find_package (Sodium)
if (SODIUM_FOUND)
message (STATUS "Using libsodium for CURVE security")
include_directories (${SODIUM_INCLUDE_DIRS})
# On Solaris, libsodium depends on libssp
if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
target_link_libraries (libzmq ssp)
endif ()
set (ZMQ_USE_LIBSODIUM 1)
set (ZMQ_HAVE_CURVE 1)
else ()
message (FATAL_ERROR
"libsodium is not installed. Install it, then run CMake again")
endif ()
else ()
message (STATUS "Using tweetnacl for CURVE security")
set (ZMQ_USE_TWEETNACL 1)
set (ZMQ_HAVE_CURVE 1)
set (TWEETNACL_SOURCES tweetnacl/src/tweetnacl.c)
if (WIN32)
list(APPEND TWEETNACL_SOURCES tweetnacl/contrib/randombytes/winrandom.c)
else ()
list(APPEND TWEETNACL_SOURCES tweetnacl/contrib/randombytes/devurandom.c)
endif()
else()
find_library(SODIUM_FOUND sodium)
endif()
endif ()
include_directories (tweetnacl/contrib/randombytes tweetnacl/src)
endif ()
set(POLLER "" CACHE STRING "Choose polling system. valid values are
kqueue, epoll, devpoll, poll or select [default=autodetect]")
@ -117,10 +132,21 @@ check_include_files(windows.h ZMQ_HAVE_WINDOWS)
check_include_files(sys/uio.h ZMQ_HAVE_UIO)
check_include_files(sys/eventfd.h ZMQ_HAVE_EVENTFD)
check_library_exists(ws2_32 printf "" HAVE_WS2_32) # TODO: Why doesn't something logical like WSAStartup work?
check_library_exists(ws2 printf "" HAVE_WS2)
check_library_exists(rpcrt4 printf "" HAVE_RPCRT4) # UuidCreateSequential
check_library_exists(iphlpapi printf "" HAVE_IPHLAPI) # GetAdaptersAddresses
if(MSVC)
# Force stdcall convention
set(CMAKE_REQUIRED_FLAGS "/Gz")
if(MSVC_IDE)
set(MSVC_TOOLSET "-${CMAKE_VS_PLATFORM_TOOLSET}")
else()
set(MSVC_TOOLSET "")
endif()
endif()
check_library_exists(ws2_32 WSAGetLastError "" HAVE_WS2_32)
check_library_exists(ws2 WSAGetLastError "" HAVE_WS2)
check_library_exists(rpcrt4 RpcErrorClearInformation "" HAVE_RPCRT4)
check_library_exists(iphlpapi GetAdapterOrderMap "" HAVE_IPHLAPI)
unset(CMAKE_REQUIRED_FLAGS)
check_cxx_symbol_exists(SO_PEERCRED sys/socket.h ZMQ_HAVE_SO_PEERCRED)
check_cxx_symbol_exists(LOCAL_PEERCRED sys/socket.h ZMQ_HAVE_LOCAL_PEERCRED)
@ -298,8 +324,8 @@ if(MSVC)
set(OPENPGM_INCLUDE_DIRS ${OPENPGM_ROOT}/include)
set(OPENPGM_LIBRARY_DIRS ${OPENPGM_ROOT}/lib)
set(OPENPGM_LIBRARIES
optimized libpgm${_zmq_COMPILER}-mt-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib
debug libpgm${_zmq_COMPILER}-mt-gd-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib)
optimized libpgm${MSVC_TOOLSET}-mt-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib
debug libpgm${MSVC_TOOLSET}-mt-gd-${OPENPGM_VERSION_MAJOR}_${OPENPGM_VERSION_MINOR}_${OPENPGM_VERSION_MICRO}.lib)
endif()
else()
if(WITH_OPENPGM)
@ -330,7 +356,9 @@ endif()
#-----------------------------------------------------------------------------
# default to Release build
if(NOT CMAKE_BUILD_TYPE)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
# CMAKE_BUILD_TYPE is not used for multi-configuration generators like Visual Studio/XCode
# which instead use CMAKE_CONFIGURATION_TYPES
set(CMAKE_BUILD_TYPE Release CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE)
@ -355,10 +383,12 @@ if(MSVC)
# Optimization flags.
# http://msdn.microsoft.com/en-us/magazine/cc301698.aspx
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GL")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LTCG")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LTCG")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /LTCG")
endif()
endif()
@ -437,7 +467,8 @@ set(cxx-sources
xpub.cpp
xsub.cpp
zmq.cpp
zmq_utils.cpp)
zmq_utils.cpp
config.hpp)
set(rc-sources version.rc)
@ -580,14 +611,16 @@ if(MSVC)
target_link_libraries(libzmq ${OPTIONAL_LIBRARIES})
set_target_properties(libzmq PROPERTIES
PUBLIC_HEADER "${public_headers}"
RELEASE_POSTFIX "${_zmq_COMPILER}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
DEBUG_POSTFIX "${_zmq_COMPILER}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
RELEASE_POSTFIX "${MSVC_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
RELWITHDEBINFO_POSTFIX "${MSVC_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
DEBUG_POSTFIX "${MSVC_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
add_library(libzmq-static STATIC ${sources})
set_target_properties(libzmq-static PROPERTIES
PUBLIC_HEADER "${public_headers}"
RELEASE_POSTFIX "${_zmq_COMPILER}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
DEBUG_POSTFIX "${_zmq_COMPILER}-mt-sgd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
RELEASE_POSTFIX "${MSVC_TOOLSET}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
RELWITHDEBINFO_POSTFIX "${MSVC_TOOLSET}-mt-s-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
DEBUG_POSTFIX "${MSVC_TOOLSET}-mt-sgd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
COMPILE_FLAGS "/D ZMQ_STATIC"
OUTPUT_NAME "libzmq")
else()
@ -697,8 +730,10 @@ if(MSVC)
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
COMPONENT SDK)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/libzmq${_zmq_COMPILER}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.pdb DESTINATION lib
if(NOT CMAKE_PDB_OUTPUT_DIRECTORY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/libzmq${MSVC_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}.pdb DESTINATION lib
COMPONENT SDK)
endif()
else()
install(TARGETS libzmq
RUNTIME DESTINATION bin

View File

@ -1,19 +1,625 @@
ACLOCAL_AMFLAGS = -I config
if BUILD_PGM
SUBDIRS = foreign/openpgm src doc perf tests tools
SUBDIRS = doc
DIST_SUBDIRS = doc builds builds/msvc
pkgconfig_DATA = src/libzmq.pc
AM_CPPFLAGS = \
-I$(top_builddir)/include \
-I$(top_srcdir)/include
#
# libraries/binaries
#
lib_LTLIBRARIES = libzmq.la
include_HEADERS = \
include/zmq.h \
include/zmq_utils.h
libzmq_la_SOURCES = \
src/address.cpp \
src/address.hpp \
src/array.hpp \
src/atomic_counter.hpp \
src/atomic_ptr.hpp \
src/blob.hpp \
src/clock.cpp \
src/clock.hpp \
src/command.hpp \
src/config.hpp \
src/ctx.cpp \
src/ctx.hpp \
src/curve_client.cpp \
src/curve_client.hpp \
src/curve_server.cpp \
src/curve_server.hpp \
src/dbuffer.hpp \
src/dealer.cpp \
src/dealer.hpp \
src/decoder.hpp \
src/devpoll.cpp \
src/devpoll.hpp \
src/dist.cpp \
src/dist.hpp \
src/encoder.hpp \
src/epoll.cpp \
src/epoll.hpp \
src/err.cpp \
src/err.hpp \
src/fd.hpp \
src/fq.cpp \
src/fq.hpp \
src/gssapi_mechanism_base.cpp \
src/gssapi_mechanism_base.hpp \
src/gssapi_client.cpp \
src/gssapi_client.hpp \
src/gssapi_server.cpp \
src/gssapi_server.hpp \
src/i_encoder.hpp \
src/i_engine.hpp \
src/i_decoder.hpp \
src/i_poll_events.hpp \
src/io_object.cpp \
src/io_object.hpp \
src/io_thread.cpp \
src/io_thread.hpp \
src/ip.cpp \
src/ip.hpp \
src/ipc_address.cpp \
src/ipc_address.hpp \
src/ipc_connecter.cpp \
src/ipc_connecter.hpp \
src/ipc_listener.cpp \
src/ipc_listener.hpp \
src/kqueue.cpp \
src/kqueue.hpp \
src/lb.cpp \
src/lb.hpp \
src/likely.hpp \
src/mailbox.cpp \
src/mailbox.hpp \
src/mechanism.cpp \
src/mechanism.hpp \
src/metadata.cpp \
src/metadata.hpp \
src/msg.cpp \
src/msg.hpp \
src/mtrie.cpp \
src/mtrie.hpp \
src/mutex.hpp \
src/norm_engine.cpp \
src/norm_engine.hpp \
src/null_mechanism.cpp \
src/null_mechanism.hpp \
src/object.cpp \
src/object.hpp \
src/options.cpp \
src/options.hpp \
src/own.cpp \
src/own.hpp \
src/pair.cpp \
src/pair.hpp \
src/pgm_receiver.cpp \
src/pgm_receiver.hpp \
src/pgm_sender.cpp \
src/pgm_sender.hpp \
src/pgm_socket.cpp \
src/pgm_socket.hpp \
src/pipe.cpp \
src/pipe.hpp \
src/plain_client.cpp \
src/plain_client.hpp \
src/plain_server.cpp \
src/plain_server.hpp \
src/platform.hpp \
src/poll.cpp \
src/poll.hpp \
src/poller.hpp \
src/poller_base.cpp \
src/poller_base.hpp \
src/proxy.cpp \
src/proxy.hpp \
src/pub.cpp \
src/pub.hpp \
src/pull.cpp \
src/pull.hpp \
src/push.cpp \
src/push.hpp \
src/random.cpp \
src/random.hpp \
src/raw_decoder.cpp \
src/raw_decoder.hpp \
src/raw_encoder.cpp \
src/raw_encoder.hpp \
src/reaper.cpp \
src/reaper.hpp \
src/rep.cpp \
src/rep.hpp \
src/req.cpp \
src/req.hpp \
src/router.cpp \
src/router.hpp \
src/select.cpp \
src/select.hpp \
src/session_base.cpp \
src/session_base.hpp \
src/signaler.cpp \
src/signaler.hpp \
src/socket_base.cpp \
src/socket_base.hpp \
src/socks.cpp \
src/socks.hpp \
src/socks_connecter.cpp \
src/socks_connecter.hpp \
src/stdint.hpp \
src/stream.cpp \
src/stream.hpp \
src/stream_engine.cpp \
src/stream_engine.hpp \
src/sub.cpp \
src/sub.hpp \
src/tcp.cpp \
src/tcp.hpp \
src/tcp_address.cpp \
src/tcp_address.hpp \
src/tcp_connecter.cpp \
src/tcp_connecter.hpp \
src/tcp_listener.cpp \
src/tcp_listener.hpp \
src/thread.cpp \
src/thread.hpp \
src/tipc_address.cpp \
src/tipc_address.hpp \
src/tipc_connecter.cpp \
src/tipc_connecter.hpp \
src/tipc_listener.cpp \
src/tipc_listener.hpp \
src/trie.cpp \
src/trie.hpp \
src/v1_decoder.cpp \
src/v1_decoder.hpp \
src/v2_decoder.cpp \
src/v2_decoder.hpp \
src/v1_encoder.cpp \
src/v1_encoder.hpp \
src/v2_encoder.cpp \
src/v2_encoder.hpp \
src/v2_protocol.hpp \
src/windows.hpp \
src/wire.hpp \
src/xpub.hpp \
src/xpub.cpp \
src/xsub.cpp \
src/xsub.hpp \
src/ypipe.hpp \
src/ypipe_base.hpp \
src/ypipe_conflate.hpp \
src/yqueue.hpp \
src/zmq.cpp \
src/zmq_utils.cpp
if ON_MINGW
libzmq_la_LDFLAGS = \
-no-undefined \
-avoid-version \
-version-info @LTVER@ \
@LIBZMQ_EXTRA_LDFLAGS@
else
SUBDIRS = src doc perf tests tools
if ON_ANDROID
libzmq_la_LDFLAGS = \
-avoid-version \
-version-info @LTVER@ \
@LIBZMQ_EXTRA_LDFLAGS@
else
if ON_LINUX
libzmq_la_LDFLAGS = \
-version-info @LTVER@ \
@LIBZMQ_EXTRA_LDFLAGS@ \
-Wl,--version-script=$(srcdir)/src/libzmq.vers
else
libzmq_la_LDFLAGS = \
-version-info @LTVER@ \
@LIBZMQ_EXTRA_LDFLAGS@ \
-Wl
endif
endif
endif
DIST_SUBDIRS = foreign/openpgm src doc perf tests tools builds/msvc
libzmq_la_CPPFLAGS =
libzmq_la_CXXFLAGS = @LIBZMQ_EXTRA_CXXFLAGS@
libzmq_la_LIBADD =
if USE_LIBSODIUM
libzmq_la_CPPFLAGS += ${sodium_CFLAGS}
libzmq_la_LIBADD += ${sodium_LIBS}
endif
if USE_TWEETNACL
libzmq_la_SOURCES += \
tweetnacl/src/tweetnacl.c \
tweetnacl/contrib/randombytes/devurandom.c
libzmq_la_CXXFLAGS += \
-I$(top_builddir)/tweetnacl/contrib/randombytes \
-I$(top_builddir)/tweetnacl/src
endif
if HAVE_PGM
libzmq_la_CPPFLAGS += ${pgm_CFLAGS}
libzmq_la_LIBADD += ${pgm_LIBS}
endif
noinst_PROGRAMS = \
local_lat \
remote_lat \
local_thr \
remote_thr \
inproc_lat \
inproc_thr
local_lat_LDADD = libzmq.la
local_lat_SOURCES = perf/local_lat.cpp
remote_lat_LDADD = libzmq.la
remote_lat_SOURCES = perf/remote_lat.cpp
local_thr_LDADD = libzmq.la
local_thr_SOURCES = perf/local_thr.cpp
remote_thr_LDADD = libzmq.la
remote_thr_SOURCES = perf/remote_thr.cpp
inproc_lat_LDADD = libzmq.la
inproc_lat_SOURCES = perf/inproc_lat.cpp
inproc_thr_LDADD = libzmq.la
inproc_thr_SOURCES = perf/inproc_thr.cpp
bin_PROGRAMS = curve_keygen
curve_keygen_LDADD = libzmq.la
curve_keygen_SOURCES = tools/curve_keygen.cpp
#
# tests
#
test_apps = \
test_system \
test_pair_inproc \
test_pair_tcp \
test_reqrep_inproc \
test_reqrep_tcp \
test_hwm \
test_hwm_pubsub \
test_reqrep_device \
test_sub_forward \
test_invalid_rep \
test_msg_flags \
test_connect_resolve \
test_immediate \
test_last_endpoint \
test_term_endpoint \
test_srcfd \
test_monitor \
test_router_mandatory \
test_router_mandatory_hwm \
test_router_handover \
test_probe_router \
test_stream \
test_stream_empty \
test_stream_disconnect \
test_stream_timeout \
test_disconnect_inproc \
test_unbind_inproc \
test_unbind_wildcard \
test_ctx_options \
test_ctx_destroy \
test_security_null \
test_security_plain \
test_security_curve \
test_iov \
test_spec_req \
test_spec_rep \
test_spec_dealer \
test_spec_router \
test_spec_pushpull \
test_req_correlate \
test_req_relaxed \
test_conflate \
test_inproc_connect \
test_issue_566 \
test_proxy \
test_proxy_single_socket \
test_proxy_terminate \
test_getsockopt_memset \
test_many_sockets \
test_ipc_wildcard \
test_diffserv \
test_connect_rid \
test_bind_src_address \
test_metadata \
test_capabilities \
test_xpub_nodrop
test_system_SOURCES = tests/test_system.cpp
test_system_LDADD = libzmq.la
test_pair_inproc_SOURCES = \
tests/test_pair_inproc.cpp \
tests/testutil.hpp
test_pair_inproc_LDADD = libzmq.la
test_pair_tcp_SOURCES = \
tests/test_pair_tcp.cpp \
tests/testutil.hpp
test_pair_tcp_LDADD = libzmq.la
test_reqrep_inproc_SOURCES = \
tests/test_reqrep_inproc.cpp \
tests/testutil.hpp
test_reqrep_inproc_LDADD = libzmq.la
test_reqrep_tcp_SOURCES = \
tests/test_reqrep_tcp.cpp \
tests/testutil.hpp
test_reqrep_tcp_LDADD = libzmq.la
test_hwm_SOURCES = tests/test_hwm.cpp
test_hwm_LDADD = libzmq.la
test_hwm_pubsub_SOURCES = tests/test_hwm_pubsub.cpp
test_hwm_pubsub_LDADD = libzmq.la
test_reqrep_device_SOURCES = tests/test_reqrep_device.cpp
test_reqrep_device_LDADD = libzmq.la
test_sub_forward_SOURCES = tests/test_sub_forward.cpp
test_sub_forward_LDADD = libzmq.la
test_invalid_rep_SOURCES = tests/test_invalid_rep.cpp
test_invalid_rep_LDADD = libzmq.la
test_msg_flags_SOURCES = tests/test_msg_flags.cpp
test_msg_flags_LDADD = libzmq.la
test_connect_resolve_SOURCES = tests/test_connect_resolve.cpp
test_connect_resolve_LDADD = libzmq.la
test_immediate_SOURCES = tests/test_immediate.cpp
test_immediate_LDADD = libzmq.la
test_last_endpoint_SOURCES = tests/test_last_endpoint.cpp
test_last_endpoint_LDADD = libzmq.la
test_term_endpoint_SOURCES = tests/test_term_endpoint.cpp
test_term_endpoint_LDADD = libzmq.la
test_srcfd_SOURCES = tests/test_srcfd.cpp
test_srcfd_LDADD = libzmq.la
test_monitor_SOURCES = tests/test_monitor.cpp
test_monitor_LDADD = libzmq.la
test_router_mandatory_SOURCES = tests/test_router_mandatory.cpp
test_router_mandatory_LDADD = libzmq.la
test_router_mandatory_hwm_SOURCES = tests/test_router_mandatory_hwm.cpp
test_router_mandatory_hwm_LDADD = libzmq.la
test_router_handover_SOURCES = tests/test_router_handover.cpp
test_router_handover_LDADD = libzmq.la
test_probe_router_SOURCES = tests/test_probe_router.cpp
test_probe_router_LDADD = libzmq.la
test_stream_SOURCES = tests/test_stream.cpp
test_stream_LDADD = libzmq.la
test_stream_empty_SOURCES = tests/test_stream_empty.cpp
test_stream_empty_LDADD = libzmq.la
test_stream_timeout_SOURCES = tests/test_stream_timeout.cpp
test_stream_timeout_LDADD = libzmq.la
test_stream_disconnect_SOURCES = tests/test_stream_disconnect.cpp
test_stream_disconnect_LDADD = libzmq.la
test_disconnect_inproc_SOURCES = tests/test_disconnect_inproc.cpp
test_disconnect_inproc_LDADD = libzmq.la
test_unbind_inproc_SOURCES = tests/test_unbind_inproc.cpp
test_unbind_inproc_LDADD = libzmq.la
test_unbind_wildcard_SOURCES = tests/test_unbind_wildcard.cpp
test_unbind_wildcard_LDADD = libzmq.la
test_ctx_options_SOURCES = tests/test_ctx_options.cpp
test_ctx_options_LDADD = libzmq.la
test_iov_SOURCES = tests/test_iov.cpp
test_iov_LDADD = libzmq.la
test_ctx_destroy_SOURCES = tests/test_ctx_destroy.cpp
test_ctx_destroy_LDADD = libzmq.la
test_security_null_SOURCES = tests/test_security_null.cpp
test_security_null_LDADD = libzmq.la
test_security_plain_SOURCES = tests/test_security_plain.cpp
test_security_plain_LDADD = libzmq.la
test_security_curve_SOURCES = tests/test_security_curve.cpp
test_security_curve_LDADD = libzmq.la
test_spec_req_SOURCES = tests/test_spec_req.cpp
test_spec_req_LDADD = libzmq.la
test_spec_rep_SOURCES = tests/test_spec_rep.cpp
test_spec_rep_LDADD = libzmq.la
test_spec_dealer_SOURCES = tests/test_spec_dealer.cpp
test_spec_dealer_LDADD = libzmq.la
test_spec_router_SOURCES = tests/test_spec_router.cpp
test_spec_router_LDADD = libzmq.la
test_spec_pushpull_SOURCES = tests/test_spec_pushpull.cpp
test_spec_pushpull_LDADD = libzmq.la
test_req_correlate_SOURCES = tests/test_req_correlate.cpp
test_req_correlate_LDADD = libzmq.la
test_req_relaxed_SOURCES = tests/test_req_relaxed.cpp
test_req_relaxed_LDADD = libzmq.la
test_conflate_SOURCES = tests/test_conflate.cpp
test_conflate_LDADD = libzmq.la
test_inproc_connect_SOURCES = tests/test_inproc_connect.cpp
test_inproc_connect_LDADD = libzmq.la
test_issue_566_SOURCES = tests/test_issue_566.cpp
test_issue_566_LDADD = libzmq.la
test_proxy_SOURCES = tests/test_proxy.cpp
test_proxy_LDADD = libzmq.la
test_proxy_single_socket_SOURCES = tests/test_proxy_single_socket.cpp
test_proxy_single_socket_LDADD = libzmq.la
test_proxy_terminate_SOURCES = tests/test_proxy_terminate.cpp
test_proxy_terminate_LDADD = libzmq.la
test_getsockopt_memset_SOURCES = tests/test_getsockopt_memset.cpp
test_getsockopt_memset_LDADD = libzmq.la
test_many_sockets_SOURCES = tests/test_many_sockets.cpp
test_many_sockets_LDADD = libzmq.la
test_ipc_wildcard_SOURCES = tests/test_ipc_wildcard.cpp
test_ipc_wildcard_LDADD = libzmq.la
test_diffserv_SOURCES = tests/test_diffserv.cpp
test_diffserv_LDADD = libzmq.la
test_connect_rid_SOURCES = tests/test_connect_rid.cpp
test_connect_rid_LDADD = libzmq.la
test_bind_src_address_SOURCES = tests/test_bind_src_address.cpp
test_bind_src_address_LDADD = libzmq.la
test_metadata_SOURCES = tests/test_metadata.cpp
test_metadata_LDADD = libzmq.la
test_capabilities_SOURCES = tests/test_capabilities.cpp
test_capabilities_LDADD = libzmq.la
test_xpub_nodrop_SOURCES = tests/test_xpub_nodrop.cpp
test_xpub_nodrop_LDADD = libzmq.la
if !ON_MINGW
test_apps += \
test_shutdown_stress \
test_pair_ipc \
test_reqrep_ipc \
test_timeo \
test_filter_ipc
test_shutdown_stress_SOURCES = tests/test_shutdown_stress.cpp
test_shutdown_stress_LDADD = libzmq.la
test_pair_ipc_SOURCES = \
tests/test_pair_ipc.cpp \
tests/testutil.hpp
test_pair_ipc_LDADD = libzmq.la
test_reqrep_ipc_SOURCES = \
tests/test_reqrep_ipc.cpp \
tests/testutil.hpp
test_reqrep_ipc_LDADD = libzmq.la
test_timeo_SOURCES = tests/test_timeo.cpp
test_timeo_LDADD = libzmq.la
test_filter_ipc_SOURCES = tests/test_filter_ipc.cpp
test_filter_ipc_LDADD = libzmq.la
if HAVE_FORK
test_apps += test_fork
test_fork_SOURCES = tests/test_fork.cpp
test_fork_LDADD = libzmq.la
endif
endif
if BUILD_TIPC
test_apps += \
test_connect_delay_tipc \
test_pair_tipc \
test_reqrep_device_tipc \
test_reqrep_tipc \
test_router_mandatory_tipc \
test_shutdown_stress_tipc \
test_sub_forward_tipc \
test_term_endpoint_tipc
test_connect_delay_tipc_SOURCES = tests/test_connect_delay_tipc.cpp
test_connect_delay_tipc_LDADD = libzmq.la
test_pair_tipc_SOURCES = tests/test_pair_tipc.cpp
test_pair_tipc_LDADD = libzmq.la
test_reqrep_device_tipc_SOURCES = tests/test_reqrep_device_tipc.cpp
test_reqrep_device_tipc_LDADD = libzmq.la
test_reqrep_tipc_SOURCES = tests/test_reqrep_tipc.cpp
test_reqrep_tipc_LDADD = libzmq.la
test_router_mandatory_tipc_SOURCES = tests/test_router_mandatory_tipc.cpp
test_router_mandatory_tipc_LDADD = libzmq.la
test_shutdown_stress_tipc_SOURCES = tests/test_shutdown_stress_tipc.cpp
test_shutdown_stress_tipc_LDADD = libzmq.la
test_sub_forward_tipc_SOURCES = tests/test_sub_forward_tipc.cpp
test_sub_forward_tipc_LDADD = libzmq.la
test_term_endpoint_tipc_SOURCES = tests/test_term_endpoint_tipc.cpp
test_term_endpoint_tipc_LDADD = libzmq.la
endif
if ON_LINUX
test_apps += test_abstract_ipc
test_abstract_ipc_SOURCES = tests/test_abstract_ipc.cpp
test_abstract_ipc_LDADD = libzmq.la
endif
check_PROGRAMS = ${test_apps}
# Run the test cases
TESTS = $(test_apps)
XFAIL_TESTS =
if !ON_LINUX
XFAIL_TESTS += test_abstract_ipc
endif
EXTRA_DIST = \
CMakeLists.txt \
autogen.sh \
version.sh \
MAINTAINERS \
foreign/openpgm/@pgm_basename@.tar.gz
src/libzmq.pc.cmake.in \
src/libzmq.vers \
tweetnacl \
tools/curve_keygen.cpp
MAINTAINERCLEANFILES = \
$(srcdir)/aclocal.m4 \
$(srcdir)/autom4te.cache \
@ -21,6 +627,7 @@ MAINTAINERCLEANFILES = \
`find "$(srcdir)" -type f -name Makefile.in -print`
dist-hook:
-rm $(distdir)/src/platform.hpp
@if test -d "$(srcdir)/.git"; \
then \
echo Creating ChangeLog && \
@ -34,8 +641,7 @@ dist-hook:
echo A git clone is required to generate a ChangeLog >&2; \
fi
-cp $(top_srcdir)/builds/redhat/zeromq.spec $(distdir)/zeromq.spec
-rm -rf $(distdir)/foreign/openpgm/build-staging
distclean-local:
-rm -rf $(top_srcdir)/foreign/openpgm/build-staging
maintainer-clean-local:
-rm -rf $(top_srcdir)/config

171
NEWS
View File

@ -1,3 +1,174 @@
0MQ version 4.1.5 stable, released on 2016/06/17
================================================
* Fixed #1673 - CMake on Windows put PDB in wrong directory.
* Fixed #1723 - Family is not set when resolving NIC on Android.
* Fixed #1608 - Windows 7 TCP slow start issue.
* Fixed #1806 - uninitialised read in curve getsockopt.
* Fixed #1807 - build broken with GCC 6.
* Fixed #1831 - potential assertion failure with latest libsodium.
* Fixed #1850 - detection issues with tweetnacl/libsodium.
* Fixed #1877 - Avoid terminating connections prematurely
* Fixed #1887 - zmq_bind IPv4 fallback still tries IPv6
* Fixed #1866 - fails to build on SunOS 5.10 / Solaris 10
* Fixed #919 - ZMQ_LINGER (related to #1877)
* Fixed #114 - cannot unbind with same endpoint with IPv6 enabled.
* Fixed #1952 - CMake scripts not part of release tarballs
* Fixed #1542 - Fix a crash on Windows when port 5905 is in use.
* Fixed #2021 - Fix building on sparc32.
0MQ version 4.1.4 stable, released on 2015/12/18
================================================
* Fixed #1315 - socket monitor hangs if bind/setsockopt failed.
* Fixed #1399 - assertion failure in tcp.cpp after network reconnect.
* Fixed #1632 - build failure using latest libsodium.
* Fixed #1644 - assertion failure in msg.cpp:390 on STREAM sockets.
* Fixed #1661 - does not handle IPv6 link local addresses.
0MQ version 4.1.3 stable, released on 2015/08/17
================================================
* Fixed #1532 - getsockopt ZMQ_RCVMORE now resets all bits instead of only 32
* Fixed #1445 - zmq::socket_base_t::connect fails on tcp ipv6 address
0MQ version 4.1.2 stable, released on 2015/06/15
================================================
* Added explicit reference to static link exception in every source file.
* Bumped ABI version to 5:0:0 since 4.1.x changed the ABI.
* Fixed STDINT event interface macros to work with CZMQ 3.0.
* Fixed installation of man pages when BUILD_DOC is not set.
* Fixed #1428 - regression on single-socket proxies.
0MQ version 4.1.1 stable, released on 2015/06/02
================================================
* Fixed #1208 - fix recursion in automake packaging.
* Fixed #1224 - crash when processing empty unsubscribe message.
* Fixed #1213 - properties files were missing from source packages.
* Fixed #1273 - V3 protocol handler vulnerable to downgrade attacks.
* Fixed #1347 - lack way to get peer address.
* Fixed #1362 - SUB socket sometimes fails to resubscribe properly.
* Fixed #1377, #1144 - failed with WSANOTINITIALISED in some cases.
* Fixed #1389 - PUB, PUSH sockets had slow memory leak.
* Fixed #1382 - zmq_proxy did not terminate if there were no readers.
0MQ version 4.1.0 rc1, released on 2014/10/14
=============================================
* All issues that were fixed in 4.0.x
* Improved client reconnection strategy on errors
* GSSAPI security mechanism
* SOCKS5 support (ZMQ_SOCKS_PROXY)
* ZMQ_ROUTER_HANDOVER
* ZMQ_TOS
* ZMQ_CONNECT_RID
* ZMQ_HANDSHAKE_IVL
* ZMQ_IDENTITY_FD
* ZMQ_XPUB_NODROP
* ZMQ_SRCFD and ZMQ_SHARED message options
* Message metadata -- zmq_msg_gets ()
* Probe library configuration -- zmq_has ()
0MQ version 4.0.5 stable, released on 2014/10/14
================================================
* Fixed #1191; CURVE mechanism does not verify short term nonces.
* Fixed #1190; stream_engine is vulnerable to downgrade attacks.
* Fixed #1088; assertion failure for WSAENOTSOCK on Windows.
* Fixed #1015; race condition while connecting inproc sockets.
* Fixed #994; bump so library number to 4.0.0
* Fixed #939, assertion failed: !more (fq.cpp:99) after many ZAP requests.
* Fixed #872; lost first part of message over inproc://.
* Fixed #797, keep-alive on Windows.
0MQ version 4.0.4 stable, released on 2014/03/10
================================================
Bug Fixes
---------
* Fixed #909; out of tree build issue on Linux.
* Fixed #888; hangs on terminate when inproc connected but never bound.
* Fixed #868; assertion failure at ip.cpp:137 when using port scanner.
* Fixed #818; fix timestamp counter on s390/s390x.
* Fixed #817; only export zmq_* symbols.
* Fixed #797; fixed setting TCP keepalive on Windows.
* Fixed #775; compile error on Windows.
* Fixed #763; when talking to a ZMTP v1 peer (libzmq 2.2), a socket would
send an extra identity frame at the start of the connection.
* Fixed LIBZMQ-576 - Crash closing a socket after zmq_msg_send returns
EAGAIN (reverts LIBZMQ-497)
* Fixed LIBZMQ-584; subscription filters getting lost on reconnection.
0MQ version 4.0.3 stable, released on 2013/11/24
================================================

View File

@ -1,17 +1,16 @@
# ZeroMQ
[![Build Status](https://travis-ci.org/zeromq/libzmq.png?branch=master)](https://travis-ci.org/zeromq/libzmq)
[![Build Status](https://travis-ci.org/zeromq/zeromq4-1.png?branch=master)](https://travis-ci.org/zeromq/zeromq4-1)
## Welcome
The 0MQ lightweight messaging kernel is a library which extends the
The ZeroMQ lightweight messaging kernel is a library which extends the
standard socket interfaces with features traditionally provided by
specialised messaging middleware products. 0MQ sockets provide an
specialised messaging middleware products. ZeroMQ sockets provide an
abstraction of asynchronous message queues, multiple messaging patterns,
message filtering (subscriptions), seamless access to multiple transport
protocols and more.
## Building and installation
See the INSTALL file included with the distribution.
@ -19,7 +18,7 @@ See the INSTALL file included with the distribution.
## Resources
Extensive documentation is provided with the distribution. Refer to
doc/zmq.html, or "man zmq" after you have installed 0MQ on your system.
doc/zmq.html, or "man zmq" after you have installed libzmq on your system.
Website: http://www.zeromq.org/
@ -28,11 +27,29 @@ Announcements mailing list: zeromq-announce@lists.zeromq.org
Git repository: http://github.com/zeromq/libzmq
0MQ developers can also be found on the IRC channel #zeromq, on the
ZeroMQ developers can also be found on the IRC channel #zeromq, on the
Freenode network (irc.freenode.net).
## Copying
## License
Free use of this software is granted under the terms of the GNU Lesser General
Public License (LGPL). For details see the files `COPYING` and `COPYING.LESSER`
included with the 0MQ distribution.
The project license is specified in COPYING and COPYING.LESSER.
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.

View File

@ -745,20 +745,17 @@ dnl # LIBZMQ_CHECK_POLLER_KQUEUE([action-if-found], [action-if-not-found])
dnl # Checks kqueue polling system #
dnl ################################################################################
AC_DEFUN([LIBZMQ_CHECK_POLLER_KQUEUE], [{
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <sys/types.h>
#include <sys/event.h>
#include <sys/time.h>
],
[[
],[[
struct kevent t_kev;
kqueue();
]]
)],
[libzmq_cv_have_poller_kqueue="yes" ; $1],
[libzmq_cv_have_poller_kqueue="no" ; $2])
]])],
[$1], [$2]
)
}])
dnl ################################################################################
@ -767,35 +764,27 @@ dnl # Checks epoll polling system can actually run #
dnl # For cross-compile, only requires that epoll can link #
dnl ################################################################################
AC_DEFUN([LIBZMQ_CHECK_POLLER_EPOLL], [{
AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[
AC_RUN_IFELSE([
AC_LANG_PROGRAM([
#include <sys/epoll.h>
],
[[
],[[
struct epoll_event t_ev;
int r;
r = epoll_create(10);
return(r < 0);
]]
)],
[libzmq_cv_have_poller_epoll="yes" ; $1],
[libzmq_cv_have_poller_epoll="no" ; $2],
[
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[
]])],
[$1],[$2],[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <sys/epoll.h>
],
[[
struct epoll_event t_ev;
epoll_create(10);
]]
)],
[libzmq_cv_have_poller_epoll="yes" ; $1],
[libzmq_cv_have_poller_epoll="no" ; $2])
])
],[[
struct epoll_event t_ev;
epoll_create(10);
]])],
[$1], [$2]
)
]
)
}])
dnl ################################################################################
@ -803,18 +792,15 @@ dnl # LIBZMQ_CHECK_POLLER_DEVPOLL([action-if-found], [action-if-not-found])
dnl # Checks devpoll polling system #
dnl ################################################################################
AC_DEFUN([LIBZMQ_CHECK_POLLER_DEVPOLL], [{
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <sys/devpoll.h>
],
[[
],[[
struct pollfd t_devpoll;
int fd = open("/dev/poll", O_RDWR);
]]
)],
[libzmq_cv_have_poller_devpoll="yes" ; $1],
[libzmq_cv_have_poller_devpoll="no" ; $2])
]])],
[$1], [$2]
)
}])
dnl ################################################################################
@ -822,18 +808,15 @@ dnl # LIBZMQ_CHECK_POLLER_POLL([action-if-found], [action-if-not-found])
dnl # Checks poll polling system #
dnl ################################################################################
AC_DEFUN([LIBZMQ_CHECK_POLLER_POLL], [{
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <poll.h>
],
[[
],[[
struct pollfd t_poll;
poll(&t_poll, 1, 1);
]]
)],
[libzmq_cv_have_poller_poll="yes" ; $1],
[libzmq_cv_have_poller_poll="no" ; $2])
]])],
[$1], [$2]
)
}])
dnl ################################################################################
@ -841,9 +824,8 @@ dnl # LIBZMQ_CHECK_POLLER_SELECT([action-if-found], [action-if-not-found])
dnl # Checks select polling system #
dnl ################################################################################
AC_DEFUN([LIBZMQ_CHECK_POLLER_SELECT], [{
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#ifdef ZMQ_HAVE_WINDOWS
#include "winsock2.h"
#elif defined ZMQ_HAVE_OPENVMS
@ -852,79 +834,84 @@ AC_DEFUN([LIBZMQ_CHECK_POLLER_SELECT], [{
#else
#include <sys/select.h>
#endif
],
[[
],[[
fd_set t_rfds;
struct timeval tv;
FD_ZERO(&t_rfds);
FD_SET(0, &t_rfds);
tv.tv_sec = 5;
tv.tv_usec = 0;
select(1, &t_rfds, NULL, NULL, &tv);
]]
)],
[libzmq_cv_have_poller_select="yes" ; $1],
[libzmq_cv_have_poller_select="no" ; $2])
]])],
[$1],[$2]
)
}])
dnl ################################################################################
dnl # LIBZMQ_CHECK_POLLER([action-if-found], [action-if-not-found]) #
dnl # Choose polling system #
dnl ################################################################################
AC_DEFUN([LIBZMQ_CHECK_POLLER], [{
# Allow user to override poller autodetection
AC_ARG_WITH([poller], [AS_HELP_STRING([--with-poller],
[choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select [default=autodetect]])])
AC_ARG_WITH([poller],
[AS_HELP_STRING([--with-poller],
[choose polling system manually. Valid values are 'kqueue', 'epoll', 'devpoll', 'poll', 'select', or 'auto'. [default=auto]])])
case "${with_poller}" in
kqueue|epoll|devpoll|poll|select)
# User has chosen polling system
AC_MSG_CHECKING([for suitable polling system skipped for preselect])
libzmq_cv_poller="${with_poller}"
;;
*)
# try to find suitable polling system. the order of testing is:
# kqueue -> epoll -> devpoll -> poll -> select
AC_MSG_CHECKING([for suitable polling system])
for subsystem in kqueue epoll devpoll poll select; do
case "${subsystem}" in
kqueue)
LIBZMQ_CHECK_POLLER_KQUEUE([libzmq_cv_poller=$subsystem], [])
;;
epoll)
LIBZMQ_CHECK_POLLER_EPOLL([libzmq_cv_poller=$subsystem], [])
;;
devpoll)
LIBZMQ_CHECK_POLLER_DEVPOLL([libzmq_cv_poller=$subsystem], [])
;;
poll)
LIBZMQ_CHECK_POLLER_POLL([libzmq_cv_poller=$subsystem], [])
;;
select)
LIBZMQ_CHECK_POLLER_SELECT([libzmq_cv_poller=$subsystem], [])
;;
esac
if test "x${libzmq_cv_poller}" != "x"; then
break
if test "x$with_poller" == "x"; then
pollers=auto
else
pollers=$with_poller
fi
done
if test "$pollers" == "auto"; then
# We search for pollers in this order
pollers="kqueue epoll devpoll poll select"
fi
# try to find suitable polling system. the order of testing is:
AC_MSG_NOTICE([Choosing polling system from '$pollers'...])
poller_found=0
for poller in $pollers; do
case "$poller" in
kqueue)
LIBZMQ_CHECK_POLLER_KQUEUE([
AC_MSG_NOTICE([Using 'kqueue' polling system])
AC_DEFINE(ZMQ_USE_KQUEUE, 1, [Use 'kqueue' polling system])
poller_found=1
])
;;
epoll)
LIBZMQ_CHECK_POLLER_EPOLL([
AC_MSG_NOTICE([Using 'epoll' polling system])
AC_DEFINE(ZMQ_USE_EPOLL, 1, [Use 'epoll' polling system])
poller_found=1
])
;;
devpoll)
LIBZMQ_CHECK_POLLER_DEVPOLL([
AC_MSG_NOTICE([Using 'devpoll' polling system])
AC_DEFINE(ZMQ_USE_DEVPOLL, 1, [Use 'devpoll' polling system])
poller_found=1
])
;;
poll)
LIBZMQ_CHECK_POLLER_POLL([
AC_MSG_NOTICE([Using 'poll' polling system])
AC_DEFINE(ZMQ_USE_POLL, 1, [Use 'poll' polling system])
poller_found=1
])
;;
select)
LIBZMQ_CHECK_POLLER_SELECT([
AC_MSG_NOTICE([Using 'select' polling system])
AC_DEFINE(ZMQ_USE_SELECT, 1, [Use 'select' polling system])
poller_found=1
])
;;
esac
libzmq_cv_poller_flag=`echo "ZMQ_USE_${libzmq_cv_poller}" | tr a-z A-Z`
AS_IF([test "x${libzmq_cv_poller}" != "x"],
[AC_MSG_RESULT([using $libzmq_cv_poller]) ; $1], [AC_MSG_RESULT(no suitable polling system found) ; $2])
test $poller_found -eq 1 && break
done
if test $poller_found -eq 0; then
AC_MSG_ERROR([None of '$pollers' are valid pollers on this platform])
fi
}])

View File

@ -20,10 +20,14 @@
# Script to generate all required files from fresh git checkout.
command -v libtool >/dev/null 2>&1
# Debian and Ubuntu do not shipt libtool anymore, but OSX does not ship libtoolize.
command -v libtoolize >/dev/null 2>&1
if [ $? -ne 0 ]; then
command -v libtool >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "autogen.sh: error: could not find libtool. libtool is required to run autogen.sh." 1>&2
exit 1
fi
fi
command -v autoreconf >/dev/null 2>&1

26
builds/Makefile.am Normal file
View File

@ -0,0 +1,26 @@
# Specify all build files that have to go into source packages.
# msvc directory does its own stuff.
EXTRA_DIST = \
zos/makelibzmq \
zos/cxxall \
zos/README.md \
zos/makeclean \
zos/platform.hpp \
zos/zc++ \
zos/test_fork.cpp \
zos/maketests \
zos/runtests \
mingw32/Makefile.mingw32 \
mingw32/platform.hpp \
cmake/Modules \
cmake/Modules/FindAsciiDoc.cmake \
cmake/Modules/TestZMQVersion.cmake \
cmake/Modules/ZMQSourceRunChecks.cmake \
cmake/NSIS.template32.in \
cmake/platform.hpp.in \
cmake/NSIS.template64.in \
valgrind/valgrind.supp \
valgrind/vg \
nuget/readme.nuget \
nuget/libzmq.autopkg

View File

@ -6,17 +6,20 @@
# A2X_EXECUTABLE - the full path to a2x
# A2X_FOUND - If false, don't attempt to use a2x.
# CMP0053: Unable to refer to $ENV{PROGRAMFILES(X86)}
set(PROGRAMFILESX86 "PROGRAMFILES(X86)")
find_program(ASCIIDOC_EXECUTABLE asciidoc asciidoc.py
PATHS "$ENV{ASCIIDOC_ROOT}"
"$ENV{PROGRAMW6432}/asciidoc"
"$ENV{PROGRAMFILES}/asciidoc"
"$ENV{PROGRAMFILES(X86)}/asciidoc")
"$ENV{${PROGRAMFILESX86}}/asciidoc")
find_program(A2X_EXECUTABLE a2x
PATHS "$ENV{ASCIIDOC_ROOT}"
"$ENV{PROGRAMW6432}/asciidoc"
"$ENV{PROGRAMFILES}/asciidoc"
"$ENV{PROGRAMFILES(X86)}/asciidoc")
"$ENV{${PROGRAMFILESX86}}/asciidoc")
include(FindPackageHandleStandardArgs)

View File

@ -7,12 +7,3 @@ set(ZMQ_VERSION "${ZMQ_VERSION_MAJOR}.${ZMQ_VERSION_MINOR}.${ZMQ_VERSION_PATCH}"
message(STATUS "Detected ZMQ Version - ${ZMQ_VERSION}")
if(MSVC_VERSION MATCHES "1700")
set(_zmq_COMPILER "-v110")
elseif(MSVC10)
set(_zmq_COMPILER "-v100")
elseif(MSVC90)
set(_zmq_COMPILER "-v90")
else()
set(_zmq_COMPILER "")
endif()

View File

@ -1,18 +1,27 @@
/*
Copyright (c) 2007-2011 iMatix Corporation
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -72,29 +72,29 @@ PERF_DIST = vs2008/local_lat/local_lat.vcproj \
vs2013/inproc_lat/inproc_lat.props \
vs2013/inproc_thr/inproc_thr.props
PROPERTIES_DIST = properties/Common.props
properties/DebugDEXE.props
properties/DebugDLL.props
properties/DebugLEXE.props
properties/DebugLIB.props
properties/DebugLTCG.props
properties/Debug.props
properties/DebugSEXE.props
properties/DLL.props
properties/EXE.props
properties/LIB.props
properties/Link.props
properties/LTCG.props
properties/Messages.props
properties/Output.props
properties/ReleaseDEXE.props
properties/ReleaseDLL.props
properties/ReleaseLEXE.props
properties/ReleaseLIB.props
properties/ReleaseLTCG.props
properties/Release.props
properties/ReleaseSEXE.props
properties/Win32.props
PROPERTIES_DIST = properties/Common.props \
properties/DebugDEXE.props \
properties/DebugDLL.props \
properties/DebugLEXE.props \
properties/DebugLIB.props \
properties/DebugLTCG.props \
properties/Debug.props \
properties/DebugSEXE.props \
properties/DLL.props \
properties/EXE.props \
properties/LIB.props \
properties/Link.props \
properties/LTCG.props \
properties/Messages.props \
properties/Output.props \
properties/ReleaseDEXE.props \
properties/ReleaseDLL.props \
properties/ReleaseLEXE.props \
properties/ReleaseLIB.props \
properties/ReleaseLTCG.props \
properties/Release.props \
properties/ReleaseSEXE.props \
properties/Win32.props \
properties/x64.props
PRECOMPILED_DIST = ../../src/precompiled.hpp \

View File

@ -1,18 +1,27 @@
/*
Copyright (c) 2007-2011 iMatix Corporation
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Binary file not shown.

View File

@ -11,14 +11,36 @@ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: gcc, make, gcc-c++, libstdc++-devel, asciidoc, xmlto
Requires: libstdc++
%if %{?rhel}%{!?rhel:0} >= 5
BuildRequires: e2fsprogs-devel
Requires: e2fsprogs
%endif
#
# Conditional build options
# Default values are:
# --without-libgssapi_krb5
# --without-libsodium
# --without-pgm
#
# If neither macro exists, use the default value.
%{!?_with_libgssapi_krb5: %{!?_without_libgssapi_krb5: %define _without_libgssapi_krb5 --without-liblibgssapi_krb5}}
%{!?_with_libsodium: %{!?_without_libsodium: %define _without_libsodium --without-libsodium}}
%{!?_with_pgm: %{!?_without_pgm: %define _without_pgm --without-pgm}}
# It's an error if both --with and --without options are specified
%{?_with_libgssapi_krb5: %{?_without_libgssapi_krb5: %{error: both _with_libgssapi_krb5 and _without_libgssapi_krb5}}}
%{?_with_libsodium: %{?_without_libsodium: %{error: both _with_libsodium and _without_libsodium}}}
%{?_with_pgm: %{?_without_pgm: %{error: both _with_pgm and _without_pgm}}}
%{?_with_libgssapi_krb5:BuildRequires: krb5-devel}
%{?_with_libgssapi_krb5:Requires: krb5-libs}
%{?_with_libsodium:BuildRequires: libsodium-devel}
%{?_with_libsodium:Requires: libsodium}
%{?_with_pgm:BuildRequires: openpgm-devel}
%{?_with_pgm:Requires: openpgm}
# Build pgm only on supported archs
%ifarch pentium3 pentium4 athlon i386 i486 i586 i686 x86_64
BuildRequires: python, perl
%{!?_with_pic: %{!?_without_pic: %define _with_pic --with-pic}}
%{!?_with_gnu_ld: %{!?_without_gnu_ld: %define _with_gnu_ld --with-gnu_ld}}
%endif
%description
@ -50,11 +72,17 @@ This package contains ZeroMQ related development libraries and header files.
%setup -q
%build
%ifarch pentium3 pentium4 athlon i386 i486 i586 i686 x86_64
%configure --with-pgm --with-pic --with-gnu-ld
%else
%configure
%endif
%configure \
%{?_with_libsodium} \
%{?_without_libsodium} \
%{?_with_pgm} \
%{?_without_pgm} \
%{?_with_libgssapi_krb5} \
%{?_without_libgssapi_krb5} \
%{?_with_pic} \
%{?_without_pic} \
%{?_with_gnu_ld} \
%{?_without_gnu_ld}
%{__make} %{?_smp_mflags}
@ -84,8 +112,8 @@ This package contains ZeroMQ related development libraries and header files.
%{_bindir}/curve_keygen
# libraries
%{_libdir}/libzmq.so.4
%{_libdir}/libzmq.so.4.0.0
%{_libdir}/libzmq.so.5
%{_libdir}/libzmq.so.5.0.1
%{_mandir}/man7/zmq.7.gz
@ -138,7 +166,6 @@ This package contains ZeroMQ related development libraries and header files.
%{_mandir}/man3/zmq_has.3.gz
%{_mandir}/man3/zmq_msg_gets.3.gz
%{_mandir}/man3/zmq_proxy_steerable.3.gz
%{_mandir}/man7/zmq_epgm.7.gz
%{_mandir}/man7/zmq_inproc.7.gz
%{_mandir}/man7/zmq_ipc.7.gz
%{_mandir}/man7/zmq_pgm.7.gz
@ -153,6 +180,13 @@ This package contains ZeroMQ related development libraries and header files.
%{_mandir}/man7/zmq_tipc.7.gz
%changelog
* Sat Oct 25 2014 Phillip Mienk <mienkphi@gmail.com>
- Add --with/--without libgssapi_krb5 support following J.T.Conklin's pattern
* Sat Oct 18 2014 J.T. Conklin <jtc@acorntoolworks.com>
- Add --with/--without pgm support
- Add --with/--without libsodium support
* Tue Jun 10 2014 Tristian Celestin <tristian.celestin@outlook.com> 4.0.4
- Updated packaged files

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2013 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

20
ci_deploy.sh Normal file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -x
set -e
if [[ $TRAVIS_OS_NAME =~ (linux) ]]; then
# Tell travis to deploy all files in dist
mkdir dist
export ZEROMQ41_DEPLOYMENT=dist/*
# Move archives to dist
mv *.tar.gz dist
mv *.zip dist
# Generate hash sums
cd dist
md5sum *.zip *.tar.gz > MD5SUMS
sha1sum *.zip *.tar.gz > SHA1SUMS
cd -
else
export ZEROMQ4-1_DEPLOYMENT=""
fi

View File

@ -11,7 +11,8 @@ AC_INIT([zeromq],[m4_esyscmd([./version.sh])],[zeromq-dev@lists.zeromq.org])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_MACRO_DIR(config)
AC_CONFIG_HEADERS([src/platform.hpp])
AM_INIT_AUTOMAKE(tar-ustar dist-zip foreign)
AM_INIT_AUTOMAKE(foreign subdir-objects tar-ustar dist-zip)
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
# This lets us use PACKAGE_VERSION in Makefiles
@ -30,9 +31,11 @@ AC_SUBST(PACKAGE_VERSION)
# ZeroMQ version 3.0: 2:0:0 (ABI version 2)
# ZeroMQ version 3.1: 3:0:0 (ABI version 3)
# ZeroMQ version 4.0: 4:0:0 (ABI version 4)
# ZeroMQ version 4.1: 5:0:0 (ABI version 5)
# ZeroMQ version 4.1.5: 5:1:0 (ABI version 5)
#
# libzmq -version-info current:revision:age
LTVER="4:0:0"
LTVER="5:1:0"
AC_SUBST(LTVER)
# Take a copy of original flags
@ -47,6 +50,7 @@ AC_PROG_CXX
AM_PROG_CC_C_O
AC_PROG_SED
AC_PROG_AWK
PKG_PROG_PKG_CONFIG
# Libtool configuration for different targets. See acinclude.m4
AC_ARG_VAR([XMLTO], [Path to xmlto command])
@ -63,8 +67,13 @@ LIBZMQ_CHECK_ENABLE_DEBUG
# Check wheter to enable code coverage
LIBZMQ_WITH_GCOV
AC_MSG_CHECKING([if TIPC is available and supports nonblocking connect])
AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <stdlib.h>
AC_RUN_IFELSE(
[AC_LANG_PROGRAM([[
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
@ -82,55 +91,18 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include <stdlib.h>
topsrv.addr.name.name.type = TIPC_TOP_SRV;
topsrv.addr.name.name.instance = TIPC_TOP_SRV;
fcntl(sd, F_SETFL, O_NONBLOCK);
if (connect(sd, (struct sockaddr *)&topsrv,
sizeof(topsrv)) != 0) {
if (connect(sd, (struct sockaddr *)&topsrv, sizeof(topsrv)) != 0) {
if (errno != EINPROGRESS)
return -1;
}]])
}
]])
],
[libzmq_tipc_support=yes],
[libzmq_tipc_support=no],
[libzmq_tipc_support=no])
AC_MSG_RESULT([$libzmq_tipc_support])
# Allow libsodium to be installed in a custom path:
AC_ARG_WITH([libsodium],
[AS_HELP_STRING([--with-libsodium],
[Specify libsodium prefix])],
[zmq_search_libsodium="yes"],
[])
if test "x$zmq_search_libsodium" = "xyes"; then
if test -r "${with_libsodium}/include/sodium.h"; then
CPPFLAGS="-I${with_libsodium}/include ${CPPFLAGS}"
LDFLAGS="-L${with_libsodium}/lib ${LDFLAGS}"
fi
fi
AC_ARG_WITH([libsodium-include-dir],
[AS_HELP_STRING([--with-libsodium-include-dir],
[Specify libsodium include prefix])],
[zmq_search_libsodium_include="yes"],
[])
if test "x$zmq_search_libsodium_include" = "xyes"; then
if test -r "${with_libsodium_include_dir}/sodium.h"; then
CPPFLAGS="-I${with_libsodium_include_dir}/include ${CPPFLAGS}"
fi
fi
AC_ARG_WITH([libsodium_lib_dir],
[AS_HELP_STRING([--with-libsodium-lib-dir],
[Specify libsodium library prefix])],
[zmq_search_libsodium_lib="yes"],
[])
if test "x$zmq_search_libsodium_lib" = "xyes"; then
if test -r "${with_libsodium_lib_dir}/libsodium.{a|so|dylib}"; then
LDFLAGS="-L${with_libsodium}/lib ${LDFLAGS}"
fi
fi
AC_ARG_WITH([relaxed],
[AS_HELP_STRING([--with-relaxed],
@ -167,7 +139,7 @@ libzmq_on_android="no"
libzmq_on_linux="no"
# Set some default features required by 0MQ code.
CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE $CPPFLAGS"
CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE -Wno-long-long $CPPFLAGS"
# For host type checks
AC_CANONICAL_HOST
@ -211,8 +183,6 @@ case "${host_os}" in
if test "x$solaris_has_atomic" = "xno"; then
AC_DEFINE(ZMQ_FORCE_MUTEXES, 1, [Force to use mutexes])
fi
# ssp library is required for libsodium on Solaris-like systems
LDFLAGS="-lssp $LDFLAGS"
CPPFLAGS="$CPPFLAGS -Wno-long-long"
;;
*freebsd*)
@ -310,13 +280,6 @@ esac
# Checks for libraries
AC_CHECK_LIB([pthread], [pthread_create])
AC_CHECK_LIB([rt], [clock_gettime])
if test "x$zmq_search_libsodium" = "xyes"; then
AC_CHECK_LIB([sodium], [sodium_init],,AC_MSG_ERROR(libsodium is not installed. Install it or don't pass --with-libsodium to configure script))
else
AC_CHECK_LIB([sodium], [sodium_init],,AC_MSG_WARN(libsodium is needed for CURVE security))
fi
AC_CHECK_LIB([gssapi_krb5], [gss_init_sec_context],,AC_MSG_WARN(libgssapi_krb5 is needed for GSSAPI security))
#
# Check if the compiler supports -fvisibility=hidden flag. MinGW32 uses __declspec
@ -329,7 +292,7 @@ fi
# CPU-specific optimizations
case "${host_cpu}" in
*sparc*)
*sparc64*)
AC_LANG_PUSH([C++])
LIBZMQ_CHECK_LANG_FLAG_PREPEND([-mcpu=v9])
AC_LANG_POP([C++])
@ -342,13 +305,24 @@ esac
LIBZMQ_CHECK_DOC_BUILD
# Check polling system
LIBZMQ_CHECK_POLLER([CPPFLAGS="${CPPFLAGS} -D${libzmq_cv_poller_flag}"],
[AC_MSG_ERROR([Unable to continue without polling system])])
# Check polling system, set appropriate macro in src/platform.hpp
LIBZMQ_CHECK_POLLER
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(errno.h arpa/inet.h netinet/tcp.h netinet/in.h stddef.h \
stdlib.h string.h sys/socket.h sys/time.h time.h unistd.h limits.h)
AC_CHECK_HEADERS(\
errno.h \
time.h \
unistd.h \
limits.h \
stddef.h \
stdlib.h \
string.h \
arpa/inet.h \
netinet/tcp.h \
netinet/in.h \
sys/socket.h \
sys/time.h)
# Check if we have ifaddrs.h header file.
AC_CHECK_HEADERS(ifaddrs.h, [AC_DEFINE(ZMQ_HAVE_IFADDRS, 1, [Have ifaddrs.h header.])])
@ -357,10 +331,12 @@ AC_CHECK_HEADERS(ifaddrs.h, [AC_DEFINE(ZMQ_HAVE_IFADDRS, 1, [Have ifaddrs.h head
AC_CHECK_HEADERS(sys/uio.h, [AC_DEFINE(ZMQ_HAVE_UIO, 1, [Have uio.h header.])])
# Force not to use eventfd
AC_ARG_ENABLE([eventfd], [AS_HELP_STRING([--disable-eventfd], [disable eventfd [default=no]])],
[zmq_disable_eventfd=yes], [zmq_disable_eventfd=no])
AC_ARG_ENABLE([eventfd],
[AS_HELP_STRING([--disable-eventfd], [disable eventfd [default=no]])],
[zmq_enable_eventfd=$enableval],
[zmq_enable_eventfd=yes])
if test "x$zmq_disable_eventfd" != "xyes"; then
if test "x$zmq_enable_eventfd" = "xyes"; then
# Check if we have eventfd.h header file.
AC_CHECK_HEADERS(sys/eventfd.h,
[AC_DEFINE(ZMQ_HAVE_EVENTFD, 1, [Have eventfd extension.])])
@ -369,13 +345,22 @@ fi
# Use c++ in subsequent tests
AC_LANG_PUSH(C++)
AC_CHECK_DECLS([SO_PEERCRED], [AC_DEFINE(ZMQ_HAVE_SO_PEERCRED, 1, [Have SO_PEERCRED socket option])], [], [#include <sys/socket.h>])
AC_CHECK_DECLS([LOCAL_PEERCRED], [AC_DEFINE(ZMQ_HAVE_LOCAL_PEERCRED, 1, [Have LOCAL_PEERCRED socket option])], [], [#include <sys/socket.h>])
AC_CHECK_DECLS([SO_PEERCRED],
[AC_DEFINE(ZMQ_HAVE_SO_PEERCRED, 1, [Have SO_PEERCRED socket option])],
[],
[#include <sys/socket.h>])
AC_CHECK_DECLS([LOCAL_PEERCRED],
[AC_DEFINE(ZMQ_HAVE_LOCAL_PEERCRED, 1, [Have LOCAL_PEERCRED socket option])],
[],
[#include <sys/socket.h>])
AM_CONDITIONAL(HAVE_IPC_PEERCRED, test "x$ac_cv_have_decl_SO_PEERCRED" = "xyes" || test "x$ac_cv_have_decl_LOCAL_PEERCRED" = "xyes")
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
# Checks for typedefs, structures, and compiler characteristics.
if test "x$libzmq_cv_[]_AC_LANG_ABBREV[]_intel_compiler" = "xyes"; then
dnl 279: controlling expression is constant
@ -386,117 +371,117 @@ else
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
fi
AC_HEADER_TIME
AC_TYPE_UINT32_T
AC_C_VOLATILE
# PGM extension
libzmq_pgm_ext="no"
# build using libgssapi_krb5
AC_ARG_WITH([libgssapi_krb5], [AS_HELP_STRING([--with-libgssapi_krb5],
[require libzmq build with libgssapi_krb5 [default=no]])],
[require_libgssapi_krb5_ext=$withval],
[require_libgssapi_krb5_ext=no])
pgm_basename="libpgm-5.2.122~dfsg"
# conditionally require libgssapi_krb5
if test "x$require_libgssapi_krb5_ext" != "xno"; then
AC_CHECK_LIB([gssapi_krb5], [gss_init_sec_context],,
AC_MSG_ERROR(libgssapi_krb5 is needed for GSSAPI security))
fi
# Select curve encryption library, defaults to tweetnacl
# To use libsodium instead, use --with-libsodium (must be installed)
# To disable curve, use --disable-curve
AC_ARG_WITH([libsodium],
[AS_HELP_STRING([--with-libsodium], [use libsodium instead of built-in tweetnacl [default=no]])])
AS_IF([test "x$with_libsodium" = "xyes"], [
PKG_CHECK_MODULES([sodium], [libsodium], [libsodium_found=yes], [
AC_MSG_ERROR(libsodium is not installed. Install it, then run configure again)
])
])
AC_ARG_ENABLE([curve],
[AS_HELP_STRING([--disable-curve], [disable CURVE security [default=no]])])
if test "x$enable_curve" = "xno"; then
curve_library=""
AC_MSG_NOTICE([CURVE security is disabled])
elif test "x$with_libsodium" = "xyes"; then
AC_MSG_NOTICE([Using libsodium for CURVE security])
AC_DEFINE(ZMQ_HAVE_CURVE, [1], [Using curve encryption])
AC_DEFINE(ZMQ_USE_LIBSODIUM, [1], [Using libsodium for curve encryption])
curve_library="libsodium"
# On Solaris, libsodium depends on libssp
case "${host_os}" in
*solaris*)
LDFLAGS="-lssp $LDFLAGS"
libzmq_pedantic="no"
libzmq_werror="no"
;;
esac
else
AC_MSG_NOTICE([Using tweetnacl for CURVE security])
AC_DEFINE(ZMQ_HAVE_CURVE, [1], [Using curve encryption])
AC_DEFINE(ZMQ_USE_TWEETNACL, [1], [Using tweetnacl for curve encryption])
curve_library="tweetnacl"
fi
AM_CONDITIONAL(ENABLE_CURVE_KEYGEN, test "x$enable_curve" = "xyes")
AM_CONDITIONAL(USE_LIBSODIUM, test "$curve_library" = "libsodium")
AM_CONDITIONAL(USE_TWEETNACL, test "$curve_library" = "tweetnacl")
# build using pgm
have_pgm_library="no"
AC_ARG_WITH([pgm], [AS_HELP_STRING([--with-pgm],
[build libzmq with PGM extension [default=no]])],
[with_pgm_ext=$withval], [with_pgm_ext=no])
# build using system pgm
AC_ARG_WITH([system-pgm], [AS_HELP_STRING([--with-system-pgm],
[build libzmq with PGM extension. Requires pkg-config [default=no]])],
[with_system_pgm_ext=yes], [with_system_pgm_ext=no])
if test "x$with_pgm_ext" != "xno" -a "x$with_system_pgm_ext" != "xno"; then
AC_MSG_ERROR([--with-pgm and --with-system-pgm cannot be specified together])
fi
[with_pgm_ext=$withval],
[with_pgm_ext=no])
# conditionally require pgm package
if test "x$with_pgm_ext" != "xno"; then
# This allows placing the tar.gz to foreign/openpgm
# and using ./configure --with-pgm=libpgm-x.y.z
if test "x$with_pgm_ext" != "xyes"; then
pgm_basename="$with_pgm_ext"
fi
# Unpack libpgm
AC_MSG_NOTICE([Unpacking ${pgm_basename}.tar.gz])
libzmq_pwd=`pwd`
cd foreign/openpgm
if ! (gzip -dc "${pgm_basename}.tar.gz" || echo "failed") | ${am__untar}; then
AC_MSG_ERROR([cannot unpack the foreign/openpgm/${pgm_basename}.tar.gz file])
fi
cd "${libzmq_pwd}"
if test -d foreign/openpgm/build-staging; then
rm -rf foreign/openpgm/build-staging
fi
mv foreign/openpgm/${pgm_basename} foreign/openpgm/build-staging
pgm_srcdir=foreign/openpgm/build-staging/openpgm/pgm
if ! test -d foreign/openpgm/build-staging/openpgm/pgm/config; then
mkdir foreign/openpgm/build-staging/openpgm/pgm/config
fi
# DSO symbol visibility for openpgm
AC_LANG_PUSH([C])
LIBZMQ_CHECK_LANG_VISIBILITY([ac_configure_args="CFLAGS='$libzmq_cv_[]_AC_LANG_ABBREV[]_visibility_flag' ${ac_configure_args}"])
AC_LANG_POP([C])
pgm_subdir=build-staging/openpgm/pgm
AC_SUBST(pgm_subdir)
AC_SUBST(pgm_srcdir)
AC_CONFIG_SUBDIRS([foreign/openpgm/build-staging/openpgm/pgm/])
# Success!
AC_DEFINE(ZMQ_HAVE_OPENPGM, 1, [Have OpenPGM extension])
libzmq_pgm_ext="yes"
PKG_CHECK_MODULES([pgm], [openpgm-5.2 >= 5.2], [ have_pgm_library="yes" ],
[PKG_CHECK_MODULES([pgm], [openpgm-5.1 >= 5.1],
[ have_pgm_library="yes" ])])
fi
# Build with system openpgm
if test "x$with_system_pgm_ext" != "xno"; then
m4_ifdef([PKG_CHECK_MODULES], [
have_pgm_system_library="no"
PKG_CHECK_MODULES([OpenPGM], [openpgm-5.2 >= 5.2],
[ have_pgm_system_library="yes" ],
[PKG_CHECK_MODULES([OpenPGM], [openpgm-5.1 >= 5.1],
[ have_pgm_system_library="yes" ])
]
)
if test "x$have_pgm_system_library" = "xyes"; then
AC_DEFINE(ZMQ_HAVE_OPENPGM, 1, [Have OpenPGM extension])
LIBZMQ_EXTRA_CXXFLAGS="$OpenPGM_CFLAGS $LIBZMQ_EXTRA_CXXFLAGS"
LIBS="$OpenPGM_LIBS $LIBS"
fi
],
[AC_MSG_ERROR([--with-system-pgm requires a working pkg-config installation])])
if test "x$have_pgm_library" = "xyes"; then
AC_DEFINE(ZMQ_HAVE_OPENPGM, [1], [Have OpenPGM extension])
fi
AC_SUBST(pgm_basename)
AM_CONDITIONAL(HAVE_PGM, test "x$have_pgm_library" = "xyes")
# This uses "--with-norm" to point to the "norm" directory
# for "norm/include" and "norm/lib"
#(if "--with-norm=yes" is given, then assume installed on system)
AC_ARG_WITH([norm], [AS_HELP_STRING([--with-norm],
AC_ARG_WITH([norm],
[AS_HELP_STRING([--with-norm],
[build libzmq with NORM protocol extension, optionally specifying norm path [default=no]])],
[with_norm_ext=$withval], [with_norm_ext=no])
[with_norm_ext=$withval],
[with_norm_ext=no])
AC_MSG_CHECKING("with_norm_ext = ${with_norm_ext}")
if test "x$with_norm_ext" != "xno"; then
AC_MSG_RESULT([yes])
AC_DEFINE(ZMQ_HAVE_NORM, 1, [Have NORM protocol extension])
if test "x$wwith_norm_ext" != "xyes"; then
norm_path="${with_norm_ext}"
LIBZMQ_EXTRA_CXXFLAGS="-I${norm_path}/include ${LIBZMQ_EXTRA_CXXFLAGS}"
LIBZMQ_EXTRA_LDFLAGS="-I${norm_path}/include ${LIBZMQ_EXTRA_LDFLAGS}"
fi
LIBS="-lnorm $LIBS"
else
AC_MSG_RESULT([no])
fi
# Set -Wall, -Werror and -pedantic
AC_LANG_PUSH([C++])
@ -513,7 +498,6 @@ fi
AC_LANG_POP([C++])
AM_CONDITIONAL(BUILD_TIPC, test "x$libzmq_tipc_support" = "xyes")
AM_CONDITIONAL(BUILD_PGM, test "x$libzmq_pgm_ext" = "xyes")
AM_CONDITIONAL(ON_MINGW, test "x$libzmq_on_mingw32" = "xyes")
AM_CONDITIONAL(ON_ANDROID, test "x$libzmq_on_android" = "xyes")
AM_CONDITIONAL(ON_LINUX, test "x$libzmq_on_linux" = "xyes")
@ -522,35 +506,40 @@ AM_CONDITIONAL(ON_LINUX, test "x$libzmq_on_linux" = "xyes")
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(perror gettimeofday clock_gettime memset socket getifaddrs freeifaddrs fork)
AC_CHECK_HEADERS([alloca.h])
LIBZMQ_CHECK_SOCK_CLOEXEC([AC_DEFINE(
[ZMQ_HAVE_SOCK_CLOEXEC],
LIBZMQ_CHECK_SOCK_CLOEXEC([
AC_DEFINE([ZMQ_HAVE_SOCK_CLOEXEC],
[1],
[Whether SOCK_CLOEXEC is defined and functioning.])
])
# TCP keep-alives Checks.
LIBZMQ_CHECK_SO_KEEPALIVE([AC_DEFINE(
[ZMQ_HAVE_SO_KEEPALIVE],
LIBZMQ_CHECK_SO_KEEPALIVE([
AC_DEFINE([ZMQ_HAVE_SO_KEEPALIVE],
[1],
[Whether SO_KEEPALIVE is supported.])
])
LIBZMQ_CHECK_TCP_KEEPCNT([AC_DEFINE(
[ZMQ_HAVE_TCP_KEEPCNT],
LIBZMQ_CHECK_TCP_KEEPCNT([
AC_DEFINE([ZMQ_HAVE_TCP_KEEPCNT],
[1],
[Whether TCP_KEEPCNT is supported.])
])
LIBZMQ_CHECK_TCP_KEEPIDLE([AC_DEFINE(
[ZMQ_HAVE_TCP_KEEPIDLE],
LIBZMQ_CHECK_TCP_KEEPIDLE([
AC_DEFINE([ZMQ_HAVE_TCP_KEEPIDLE],
[1],
[Whether TCP_KEEPIDLE is supported.])
])
LIBZMQ_CHECK_TCP_KEEPINTVL([AC_DEFINE(
[ZMQ_HAVE_TCP_KEEPINTVL],
LIBZMQ_CHECK_TCP_KEEPINTVL([
AC_DEFINE([ZMQ_HAVE_TCP_KEEPINTVL],
[1],
[Whether TCP_KEEPINTVL is supported.])
])
LIBZMQ_CHECK_TCP_KEEPALIVE([AC_DEFINE(
[ZMQ_HAVE_TCP_KEEPALIVE],
LIBZMQ_CHECK_TCP_KEEPALIVE([
AC_DEFINE([ZMQ_HAVE_TCP_KEEPALIVE],
[1],
[Whether TCP_KEEPALIVE is supported.])
])
@ -562,14 +551,20 @@ AC_SUBST(LIBZMQ_EXTRA_CFLAGS)
AC_SUBST(LIBZMQ_EXTRA_CXXFLAGS)
AC_SUBST(LIBZMQ_EXTRA_LDFLAGS)
AC_CONFIG_FILES([Makefile \
src/Makefile \
# set pkgconfigdir, allow override
AC_ARG_WITH([pkgconfigdir],
AS_HELP_STRING([--with-pkgconfigdir=PATH],
[Path to the pkgconfig directory [[LIBDIR/pkgconfig]]]),
[pkgconfigdir="$withval"],
[pkgconfigdir='${libdir}/pkgconfig'])
AC_SUBST([pkgconfigdir])
AC_CONFIG_FILES([ \
Makefile \
src/libzmq.pc \
doc/Makefile \
perf/Makefile \
tests/Makefile \
tools/Makefile \
builds/Makefile \
builds/msvc/Makefile \
foreign/openpgm/Makefile \
builds/redhat/zeromq.spec])
AC_OUTPUT

View File

@ -1,3 +1,6 @@
#
# documentation
#
MAN3 = zmq_bind.3 zmq_unbind.3 zmq_connect.3 zmq_disconnect.3 zmq_close.3 \
zmq_ctx_new.3 zmq_ctx_term.3 zmq_ctx_get.3 zmq_ctx_set.3 zmq_ctx_shutdown.3 \
zmq_msg_init.3 zmq_msg_init_data.3 zmq_msg_init_size.3 \
@ -12,29 +15,30 @@ MAN3 = zmq_bind.3 zmq_unbind.3 zmq_connect.3 zmq_disconnect.3 zmq_close.3 \
zmq_proxy.3 zmq_proxy_steerable.3 \
zmq_z85_encode.3 zmq_z85_decode.3 zmq_curve_keypair.3 zmq_has.3
MAN7 = zmq.7 zmq_tcp.7 zmq_pgm.7 zmq_epgm.7 zmq_inproc.7 zmq_ipc.7 \
MAN7 = zmq.7 zmq_tcp.7 zmq_pgm.7 zmq_inproc.7 zmq_ipc.7 \
zmq_null.7 zmq_plain.7 zmq_curve.7 zmq_tipc.7
MAN_DOC = $(MAN1) $(MAN3) $(MAN7)
MAN_DOC =
MAN_TXT = $(MAN3:%.3=%.txt)
MAN_TXT += $(MAN7:%.7=%.txt)
MAN_HTML = $(MAN_TXT:%.txt=%.html)
MAN_HTML =
if INSTALL_MAN
dist_man_MANS = $(MAN_DOC)
endif
MAINTAINERCLEANFILES =
EXTRA_DIST = asciidoc.conf $(MAN_TXT)
if BUILD_DOC
EXTRA_DIST += $(MAN_HTML)
if INSTALL_MAN
MAN_DOC += $(MAN1) $(MAN3) $(MAN7)
dist_man_MANS = $(MAN_DOC)
MAINTAINERCLEANFILES += $(MAN_DOC)
endif
MAINTAINERCLEANFILES = $(MAN_DOC) $(MAN_HTML)
dist-hook : $(MAN_DOC) $(MAN_HTML)
if BUILD_DOC
MAN_HTML += $(MAN_TXT:%.txt=%.html)
EXTRA_DIST += $(MAN_HTML)
MAINTAINERCLEANFILES += $(MAN_HTML)
SUFFIXES=.html .txt .xml .3 .7
.txt.html:
@ -49,6 +53,6 @@ SUFFIXES=.html .txt .xml .3 .7
xmlto man $<
.xml.7:
xmlto man $<
zmq_epgm.7: zmq_pgm.7
cp $< $@
endif
dist-hook : $(MAN_DOC) $(MAN_HTML)

View File

@ -32,6 +32,28 @@ context.
[horizontal]
Default value:: 1
ZMQ_THREAD_SCHED_POLICY: Set scheduling policy for I/O threads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'ZMQ_THREAD_SCHED_POLICY' argument sets the scheduling policy for
internal context's thread pool. This option is not available on windows.
Supported values for this option can be found in sched.h file,
or at http://man7.org/linux/man-pages/man2/sched_setscheduler.2.html.
This option only applies before creating any sockets on the context.
[horizontal]
Default value:: -1
ZMQ_THREAD_PRIORITY: Set scheduling priority for I/O threads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'ZMQ_THREAD_PRIORITY' argument sets scheduling priority for
internal context's thread pool. This option is not available on windows.
Supported values for this option depend on chosen scheduling policy.
Details can be found in sched.h file, or at http://man7.org/linux/man-pages/man2/sched_setscheduler.2.html.
This option only applies before creating any sockets on the context.
[horizontal]
Default value:: -1
ZMQ_MAX_SOCKETS: Set maximum number of sockets
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'ZMQ_MAX_SOCKETS' argument sets the maximum number of sockets allowed

View File

@ -23,8 +23,8 @@ Context termination is performed in the following steps:
exception of _zmq_close()_, any further operations on sockets open within
'context' shall fail with an error code of ETERM.
2. After interrupting all blocking calls, _zmq_ctx_term()_ shall _block_ until the
following conditions are satisfied:
2. After interrupting all blocking calls, _zmq_ctx_term()_ shall _block_ until
the following conditions are satisfied:
* All sockets open within 'context' have been closed with _zmq_close()_.
@ -39,6 +39,15 @@ option in linkzmq:zmq_setsockopt[3].
This function replaces the deprecated function linkzmq:zmq_term[3].
WARNING
-------
As _ZMQ_LINGER_ defaults to "infinite", by default this function will block
indefinitely if there are any pending connects or sends. We strongly
recommend to (a) set _ZMQ_LINGER_ to zero on all sockets and (b) close all
sockets, before calling this function.
RETURN VALUE
------------
The _zmq_ctx_term()_ function shall return zero if successful. Otherwise

View File

@ -1 +0,0 @@
zmq_pgm.txt

View File

@ -676,23 +676,6 @@ Option value unit:: N/A
Default value:: not set
Applicable socket types:: all, when using TCP transport
ZMQ_IDENTITY_FD: Retrieve FD associated with igven identity
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'ZMQ_IDENTITY_FD' option shall retrieve the FD associated with given identity.
call _zmq_getsockopt()_ with _option_value_ / _option_len_ pointing to memory
holding the identity string. On return the start of _option_value_ buffer will be
filled with file descriptor of the pipe with given identity if found. If the identity
is not found ENOTSOCK is returned as _zmq_getsockopt()_ result. When the pipe is not
using FD as lower transport you might get -1 as FD. NB: _option_value_ must be always
big enough to hold sizeof(fd_t) bytes no matter how small the identity length is.
[horizontal]
Option value type:: character string/fd_t
Option value unit:: N/A
Default value:: not set
Applicable socket types:: ROUTER
RETURN VALUE
------------

View File

@ -57,6 +57,12 @@ NOTE: IPC pathnames have a maximum size that depends on the operating system.
On Linux, the maximum is 113 characters including the "ipc://" prefix (107
characters for the real path name).
Unbinding wild-card address from a socket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When wild-card `*` 'endpoint' was used in _zmq_bind()_, the caller should use
real 'endpoind' obtained from the ZMQ_LAST_ENDPOINT socket option to unbind
this 'endpoint' from a socket using _zmq_unbind()_.
Connecting a socket
~~~~~~~~~~~~~~~~~~~
When connecting a 'socket' to a peer address using _zmq_connect()_ with the

View File

@ -19,8 +19,22 @@ property specified by the 'property' argument for the message pointed to by
the 'message' argument. Both the 'property' argument and the 'value'
shall be NULL-terminated UTF8-encoded strings.
The following properties can be retrieved with the _zmq_msg_gets()_ function:
Metadata is defined on a per-connection basis during the ZeroMQ connection
handshake as specified in <rfc.zeromq.org/spec:37>.
The following ZMTP properties can be retrieved with the _zmq_msg_gets()_
function:
Socket-Type
Identity
Resource
Additionally, when available for the underlying transport, the *Peer-Address*
property will return the IP address of the remote endpoint as returned by
getnameinfo(2).
Other properties may be defined based on the underlying security mechanism,
see ZAP authenticated connection sample below.
RETURN VALUE
------------

View File

@ -28,8 +28,7 @@ _zmq_msg_init_size()_ are mutually exclusive. Never initialize the same
RETURN VALUE
------------
The _zmq_msg_init()_ function shall return zero if successful. Otherwise it
shall return `-1` and set 'errno' to one of the values defined below.
The _zmq_msg_init()_ function always returns zero.
ERRORS

View File

@ -283,77 +283,6 @@ Default value:: 0 (false)
Applicable socket types:: all, only for connection-oriented transports.
ZMQ_IPC_FILTER_GID: Assign group ID filters to allow new IPC connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new IPC
transport connection on a listening socket. If no IPC filters are applied, then
the IPC transport allows connections from any process. If at least one UID,
GID, or PID filter is applied then new connection credentials should be
matched. To clear all GID filters call zmq_setsockopt(socket,
ZMQ_IPC_FILTER_GID, NULL, 0).
NOTE: GID filters are only available on platforms supporting SO_PEERCRED or
LOCAL_PEERCRED socket options (currently only Linux and later versions of
OS X).
[horizontal]
Option value type:: gid_t
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using IPC transports.
ZMQ_IPC_FILTER_PID: Assign process ID filters to allow new IPC connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new IPC
transport connection on a listening socket. If no IPC filters are applied, then
the IPC transport allows connections from any process. If at least one UID,
GID, or PID filter is applied then new connection credentials should be
matched. To clear all PID filters call zmq_setsockopt(socket,
ZMQ_IPC_FILTER_PID, NULL, 0).
NOTE: PID filters are only available on platforms supporting the SO_PEERCRED
socket option (currently only Linux).
[horizontal]
Option value type:: pid_t
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using IPC transports.
ZMQ_IPC_FILTER_UID: Assign user ID filters to allow new IPC connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new IPC
transport connection on a listening socket. If no IPC filters are applied, then
the IPC transport allows connections from any process. If at least one UID,
GID, or PID filter is applied then new connection credentials should be
matched. To clear all UID filters call zmq_setsockopt(socket,
ZMQ_IPC_FILTER_UID, NULL, 0).
NOTE: UID filters are only available on platforms supporting SO_PEERCRED or
LOCAL_PEERCRED socket options (currently only Linux and later versions of
OS X).
[horizontal]
Option value type:: uid_t
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using IPC transports.
ZMQ_IPV4ONLY: Use IPv4-only on socket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set the IPv4-only option for the socket. This option is deprecated.
Please use the ZMQ_IPV6 option.
[horizontal]
Option value type:: int
Option value unit:: boolean
Default value:: 1 (true)
Applicable socket types:: all, when using TCP transports.
ZMQ_IPV6: Enable IPv6 on socket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set the IPv6 option for the socket. A value of `1` means IPv6 is
@ -604,7 +533,7 @@ ZMQ_REQ_CORRELATE: match replies with requests
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,
containing a request id. That means the full message is (request id, identity, 0,
user frames...). The REQ socket will discard all incoming messages that don't
begin with these two frames.
@ -760,25 +689,6 @@ Default value:: N/A
Applicable socket types:: ZMQ_SUB
ZMQ_TCP_ACCEPT_FILTER: Assign filters to allow new TCP connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new TCP
transport connection on a listening socket. If no filters are applied, then
the TCP transport allows connections from any IP address. 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.
NOTE: This option is deprecated, please use authentication via the ZAP API
and IP address whitelisting / blacklisting.
[horizontal]
Option value type:: binary data
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using TCP transports.
ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Override 'SO_KEEPALIVE' socket option (where supported by OS).
@ -886,6 +796,104 @@ Default value:: not set
Applicable socket types:: all, when using TCP transport
ZMQ_TCP_ACCEPT_FILTER: Assign filters to allow new TCP connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new TCP
transport connection on a listening socket. If no filters are applied, then
the TCP transport allows connections from any IP address. 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.
NOTE: This option is deprecated, please use authentication via the ZAP API
and IP address whitelisting / blacklisting.
[horizontal]
Option value type:: binary data
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using TCP transports.
ZMQ_IPC_FILTER_GID: Assign group ID filters to allow new IPC connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new IPC
transport connection on a listening socket. If no IPC filters are applied, then
the IPC transport allows connections from any process. If at least one UID,
GID, or PID filter is applied then new connection credentials should be
matched. To clear all GID filters call zmq_setsockopt(socket,
ZMQ_IPC_FILTER_GID, NULL, 0).
NOTE: GID filters are only available on platforms supporting SO_PEERCRED or
LOCAL_PEERCRED socket options (currently only Linux and later versions of
OS X).
NOTE: This option is deprecated, please use authentication via the ZAP API
and IPC whitelisting / blacklisting.
[horizontal]
Option value type:: gid_t
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using IPC transports.
ZMQ_IPC_FILTER_PID: Assign process ID filters to allow new IPC connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new IPC
transport connection on a listening socket. If no IPC filters are applied, then
the IPC transport allows connections from any process. If at least one UID,
GID, or PID filter is applied then new connection credentials should be
matched. To clear all PID filters call zmq_setsockopt(socket,
ZMQ_IPC_FILTER_PID, NULL, 0).
NOTE: PID filters are only available on platforms supporting the SO_PEERCRED
socket option (currently only Linux).
NOTE: This option is deprecated, please use authentication via the ZAP API
and IPC whitelisting / blacklisting.
[horizontal]
Option value type:: pid_t
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using IPC transports.
ZMQ_IPC_FILTER_UID: Assign user ID filters to allow new IPC connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assign an arbitrary number of filters that will be applied for each new IPC
transport connection on a listening socket. If no IPC filters are applied, then
the IPC transport allows connections from any process. If at least one UID,
GID, or PID filter is applied then new connection credentials should be
matched. To clear all UID filters call zmq_setsockopt(socket,
ZMQ_IPC_FILTER_UID, NULL, 0).
NOTE: UID filters are only available on platforms supporting SO_PEERCRED or
LOCAL_PEERCRED socket options (currently only Linux and later versions of
OS X).
NOTE: This option is deprecated, please use authentication via the ZAP API
and IPC whitelisting / blacklisting.
[horizontal]
Option value type:: uid_t
Option value unit:: N/A
Default value:: no filters (allow from all)
Applicable socket types:: all listening sockets, when using IPC transports.
ZMQ_IPV4ONLY: Use IPv4-only on socket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set the IPv4-only option for the socket. This option is deprecated.
Please use the ZMQ_IPV6 option.
[horizontal]
Option value type:: int
Option value unit:: boolean
Default value:: 1 (true)
Applicable socket types:: all, when using TCP transports.
RETURN VALUE
------------
The _zmq_setsockopt()_ function shall return zero if successful. Otherwise it

View File

@ -46,6 +46,11 @@ When using ephemeral ports, the caller should retrieve the actual assigned
port using the ZMQ_LAST_ENDPOINT socket option. See linkzmq:zmq_getsockopt[3]
for details.
Unbinding wild-card addres from a socket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When wild-card `*` 'endpoint' was used in _zmq_bind()_, the caller should use
real 'endpoind' obtained from the ZMQ_LAST_ENDPOINT socket option to unbind
this 'endpoint' from a socket using _zmq_unbind()_.
Connecting a socket
~~~~~~~~~~~~~~~~~~~

View File

@ -20,6 +20,12 @@ argument.
The 'endpoint' argument is as described in linkzmq:zmq_bind[3]
Unbinding wild-card addres from a socket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When wild-card `*` 'endpoint' (described in linkzmq:zmq_tcp[7] and
linkzmq:zmq_ipc[7]) was used in _zmq_bind()_, the caller should use
real 'endpoind' obtained from the ZMQ_LAST_ENDPOINT socket option
to unbind this 'endpoint' from a socket.
RETURN VALUE
------------
@ -36,8 +42,8 @@ The 0MQ 'context' associated with the specified 'socket' was terminated.
The provided 'socket' was invalid.
EXAMPLE
-------
EXAMPLES
--------
.Unbind a subscriber socket from a TCP transport
----
/* Create a ZMQ_SUB socket */
@ -51,6 +57,23 @@ rc = zmq_unbind (socket, "tcp://127.0.0.1:5555");
assert (rc == 0);
----
.Unbind wild-card `*` binded socket
----
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket (context, ZMQ_SUB);
assert (socket);
/* Bind it to the system-assigned ephemeral port using a TCP transport */
rc = zmq_bind (socket, "tcp://127.0.0.1:*");
assert (rc == 0);
/* Obtain real endpoint */
const size_t buf_size = 32;
char buf[buf_size];
rc = zmq_getsockopt (socket, ZMQ_LAST_ENDPOINT, buf, (size_t *)&buf_size);
assert (rc == 0);
/* Unbind socket by real endpoint */
rc = zmq_unbind (socket, buf);
assert (rc == 0);
----
SEE ALSO
--------

View File

@ -1,8 +0,0 @@
SUBDIRS = $(pgm_subdir)
DIST_SUBDIRS =
# Override Automake's installation targets with the command ":" that does nothing.
install:; @:
install-exec:; @:
install-data:; @:
uninstall:; @:
dist:; @;

View File

@ -1,5 +1,5 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
@ -31,7 +31,7 @@
/* Version macros for compile-time API version detection */
#define ZMQ_VERSION_MAJOR 4
#define ZMQ_VERSION_MINOR 1
#define ZMQ_VERSION_PATCH 0
#define ZMQ_VERSION_PATCH 5
#define ZMQ_MAKE_VERSION(major, minor, patch) \
((major) * 10000 + (minor) * 100 + (patch))
@ -71,17 +71,18 @@ extern "C" {
#endif
/* Define integer types needed for event interface */
#define ZMQ_DEFINED_STDINT 1
#if defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_OPENVMS
# include <inttypes.h>
#elif defined _MSC_VER && _MSC_VER < 1600
# ifndef int32_t
typedef __int32 int32_t;
typedef __int32 int32_t;
# endif
# ifndef uint16_t
typedef unsigned __int16 uint16_t;
typedef unsigned __int16 uint16_t;
# endif
# ifndef uint8_t
typedef unsigned __int8 uint8_t;
typedef unsigned __int8 uint8_t;
# endif
#else
# include <stdint.h>
@ -204,7 +205,7 @@ ZMQ_EXPORT int zmq_ctx_destroy (void *context);
/* 0MQ message definition. */
/******************************************************************************/
typedef struct zmq_msg_t {unsigned char _ [48];} zmq_msg_t;
typedef struct zmq_msg_t {unsigned char _ [64];} zmq_msg_t;
typedef void (zmq_free_fn) (void *data, void *hint);
@ -276,7 +277,6 @@ ZMQ_EXPORT const char *zmq_msg_gets (zmq_msg_t *msg, const char *property);
#define ZMQ_TCP_KEEPALIVE_CNT 35
#define ZMQ_TCP_KEEPALIVE_IDLE 36
#define ZMQ_TCP_KEEPALIVE_INTVL 37
#define ZMQ_TCP_ACCEPT_FILTER 38
#define ZMQ_IMMEDIATE 39
#define ZMQ_XPUB_VERBOSE 40
#define ZMQ_ROUTER_RAW 41
@ -296,16 +296,12 @@ ZMQ_EXPORT const char *zmq_msg_gets (zmq_msg_t *msg, const char *property);
#define ZMQ_ZAP_DOMAIN 55
#define ZMQ_ROUTER_HANDOVER 56
#define ZMQ_TOS 57
#define ZMQ_IPC_FILTER_PID 58
#define ZMQ_IPC_FILTER_UID 59
#define ZMQ_IPC_FILTER_GID 60
#define ZMQ_CONNECT_RID 61
#define ZMQ_GSSAPI_SERVER 62
#define ZMQ_GSSAPI_PRINCIPAL 63
#define ZMQ_GSSAPI_SERVICE_PRINCIPAL 64
#define ZMQ_GSSAPI_PLAINTEXT 65
#define ZMQ_HANDSHAKE_IVL 66
#define ZMQ_IDENTITY_FD 67
#define ZMQ_SOCKS_PROXY 68
#define ZMQ_XPUB_NODROP 69
@ -325,6 +321,10 @@ ZMQ_EXPORT const char *zmq_msg_gets (zmq_msg_t *msg, const char *property);
#define ZMQ_GSSAPI 3
/* Deprecated options and aliases */
#define ZMQ_TCP_ACCEPT_FILTER 38
#define ZMQ_IPC_FILTER_PID 58
#define ZMQ_IPC_FILTER_UID 59
#define ZMQ_IPC_FILTER_GID 60
#define ZMQ_IPV4ONLY 31
#define ZMQ_DELAY_ATTACH_ON_CONNECT ZMQ_IMMEDIATE
#define ZMQ_NOBLOCK ZMQ_DONTWAIT

View File

@ -1,5 +1,5 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- These values are populated into the package.gsl templates by package.bat. -->
<!-- The target attribute controls path and file name only, id controls package naming. -->
<package id="libzmq_vc120" target="libzmq" version = "4.1.0.7" pathversion="4_1_0_7" platformtoolset="v120">
<package id="libzmq_vc120" target="libzmq" version = "4.1.5.0" pathversion="4_1_5_0" platformtoolset="v120">
<dependency id="libsodium_vc120" version="0.5.0.0" />
</package>

View File

@ -1,22 +0,0 @@
AM_CPPFLAGS = -I$(top_builddir)/include \
-I$(top_srcdir)/include
noinst_PROGRAMS = local_lat remote_lat local_thr remote_thr inproc_lat inproc_thr
local_lat_LDADD = $(top_builddir)/src/libzmq.la
local_lat_SOURCES = local_lat.cpp
remote_lat_LDADD = $(top_builddir)/src/libzmq.la
remote_lat_SOURCES = remote_lat.cpp
local_thr_LDADD = $(top_builddir)/src/libzmq.la
local_thr_SOURCES = local_thr.cpp
remote_thr_LDADD = $(top_builddir)/src/libzmq.la
remote_thr_SOURCES = remote_thr.cpp
inproc_lat_LDADD = $(top_builddir)/src/libzmq.la
inproc_lat_SOURCES = inproc_lat.cpp
inproc_thr_LDADD = $(top_builddir)/src/libzmq.la
inproc_thr_SOURCES = inproc_thr.cpp

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -3,17 +3,27 @@
Copyright (c) 2009-2011 250bpm s.r.o.
Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,219 +0,0 @@
lib_LTLIBRARIES = libzmq.la
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libzmq.pc
include_HEADERS = ../include/zmq.h ../include/zmq_utils.h
libzmq_la_SOURCES = \
address.hpp \
array.hpp \
atomic_counter.hpp \
atomic_ptr.hpp \
blob.hpp \
clock.hpp \
command.hpp \
config.hpp \
ctx.hpp \
curve_client.hpp \
curve_server.hpp \
decoder.hpp \
devpoll.hpp \
dist.hpp \
encoder.hpp \
epoll.hpp \
err.hpp \
fd.hpp \
fq.hpp \
gssapi_mechanism_base.hpp \
gssapi_client.hpp \
gssapi_server.hpp \
i_encoder.hpp \
i_decoder.hpp \
i_engine.hpp \
i_poll_events.hpp \
io_object.hpp \
io_thread.hpp \
ip.hpp \
ipc_address.hpp \
ipc_connecter.hpp \
ipc_listener.hpp \
i_engine.hpp \
i_poll_events.hpp \
kqueue.hpp \
lb.hpp \
likely.hpp \
mailbox.hpp \
mechanism.hpp \
metadata.hpp \
msg.hpp \
mtrie.hpp \
mutex.hpp \
norm_engine.hpp \
null_mechanism.hpp \
object.hpp \
options.hpp \
own.hpp \
pgm_receiver.hpp \
pgm_sender.hpp \
pgm_socket.hpp \
pipe.hpp \
plain_client.hpp \
plain_server.hpp \
platform.hpp \
poll.hpp \
poller.hpp \
poller_base.hpp \
pair.hpp \
proxy.hpp \
pub.hpp \
pull.hpp \
push.hpp \
random.hpp \
reaper.hpp \
rep.hpp \
req.hpp \
select.hpp \
session_base.hpp \
signaler.hpp \
socket_base.hpp \
socks.hpp \
socks_connecter.hpp \
stdint.hpp \
stream.hpp \
stream_engine.hpp \
sub.hpp \
tcp.hpp \
tcp_address.hpp \
tcp_connecter.hpp \
tcp_listener.hpp \
thread.hpp \
trie.hpp \
windows.hpp \
wire.hpp \
xpub.hpp \
router.hpp \
dealer.hpp \
xsub.hpp \
ypipe.hpp \
ypipe_base.hpp \
yqueue.hpp \
address.cpp \
clock.cpp \
ctx.cpp \
curve_client.cpp \
curve_server.cpp \
devpoll.cpp \
dist.cpp \
epoll.cpp \
err.cpp \
fq.cpp \
gssapi_mechanism_base.cpp \
gssapi_client.cpp \
gssapi_server.cpp \
io_object.cpp \
io_thread.cpp \
ip.cpp \
ipc_address.cpp \
ipc_connecter.cpp \
ipc_listener.cpp \
kqueue.cpp \
lb.cpp \
mailbox.cpp \
mechanism.cpp \
metadata.cpp \
msg.cpp \
mtrie.cpp \
norm_engine.cpp \
null_mechanism.cpp \
object.cpp \
options.cpp \
own.cpp \
pair.cpp \
pgm_receiver.cpp \
pgm_sender.cpp \
pgm_socket.cpp \
pipe.cpp \
plain_client.cpp \
plain_server.cpp \
poll.cpp \
poller_base.cpp \
pull.cpp \
push.cpp \
proxy.cpp \
reaper.cpp \
pub.cpp \
random.cpp \
rep.cpp \
req.cpp \
select.cpp \
session_base.cpp \
signaler.cpp \
socket_base.cpp \
socks.cpp \
socks_connecter.cpp \
stream.cpp \
stream_engine.cpp \
sub.cpp \
tcp.cpp \
tcp_address.cpp \
tcp_connecter.cpp \
tcp_listener.cpp \
thread.cpp \
trie.cpp \
xpub.cpp \
router.cpp \
dealer.cpp \
v1_decoder.cpp \
v1_encoder.cpp \
v1_decoder.hpp \
v1_encoder.hpp \
v2_decoder.cpp \
v2_decoder.hpp \
v2_encoder.cpp \
v2_encoder.hpp \
v2_protocol.hpp \
xsub.cpp \
zmq.cpp \
zmq_utils.cpp \
raw_decoder.hpp \
raw_decoder.cpp \
raw_encoder.hpp \
raw_encoder.cpp \
ypipe_conflate.hpp \
dbuffer.hpp \
tipc_address.cpp \
tipc_address.hpp \
tipc_listener.cpp \
tipc_listener.hpp \
tipc_connecter.cpp \
tipc_connecter.hpp
if ON_MINGW
libzmq_la_LDFLAGS = -no-undefined -avoid-version -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAGS@
else
if ON_ANDROID
libzmq_la_LDFLAGS = -avoid-version -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAGS@
else
if ON_LINUX
libzmq_la_LDFLAGS = -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAGS@ -Wl,--version-script=$(srcdir)/libzmq.vers
else
libzmq_la_LDFLAGS = -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAGS@ -Wl
endif
endif
endif
libzmq_la_CXXFLAGS = @LIBZMQ_EXTRA_CXXFLAGS@
if BUILD_PGM
libzmq_la_CPPFLAGS = -I$(top_srcdir)/@pgm_srcdir@/include/
libzmq_la_LIBADD = $(top_srcdir)/@pgm_srcdir@/libpgm_noinst.la
endif
dist-hook:
-rm $(distdir)/platform.hpp
EXTRA_DIST = \
libzmq.pc.cmake.in \
libzmq.vers

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -79,7 +89,11 @@ namespace zmq
// On some OSes the signaler has to be emulated using a TCP
// connection. In such cases following port is used.
signaler_port = 5905
// If 0, it lets the OS choose a free port without requiring use of a
// global mutex. The original implementation of a Windows signaler
// socket used port 5905 instead of letting the OS choose a free port.
// https://github.com/zeromq/libzmq/issues/1542
signaler_port = 0
};
}

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -36,12 +46,10 @@
#include "err.hpp"
#include "msg.hpp"
#ifdef HAVE_LIBSODIUM
#ifdef HAVE_TWEETNACL
#include "randombytes.h"
#else
#include "sodium.h"
#endif
#if defined (ZMQ_USE_TWEETNACL)
# include "randombytes.h"
#elif defined (ZMQ_USE_LIBSODIUM)
# include "sodium.h"
#endif
#define ZMQ_CTX_TAG_VALUE_GOOD 0xabadcafe
@ -103,7 +111,7 @@ zmq::ctx_t::~ctx_t ()
// If we've done any Curve encryption, we may have a file handle
// to /dev/urandom open that needs to be cleaned up.
#ifdef HAVE_LIBSODIUM
#if defined (ZMQ_USE_TWEETNACL)
randombytes_close();
#endif

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -19,7 +29,7 @@
#include "platform.hpp"
#ifdef HAVE_LIBSODIUM
#ifdef ZMQ_HAVE_CURVE
#ifdef ZMQ_HAVE_WINDOWS
#include "windows.hpp"
@ -38,21 +48,22 @@ zmq::curve_client_t::curve_client_t (const options_t &options_) :
cn_peer_nonce(1),
sync()
{
int rc;
memcpy (public_key, options_.curve_public_key, crypto_box_PUBLICKEYBYTES);
memcpy (secret_key, options_.curve_secret_key, crypto_box_SECRETKEYBYTES);
memcpy (server_key, options_.curve_server_key, crypto_box_PUBLICKEYBYTES);
scoped_lock_t lock (sync);
#if defined(HAVE_TWEETNACL)
#if defined (ZMQ_USE_TWEETNACL)
// allow opening of /dev/urandom
unsigned char tmpbytes[4];
randombytes(tmpbytes, 4);
#else
// todo check return code
sodium_init();
rc = sodium_init ();
zmq_assert (rc != -1);
#endif
// Generate short-term key pair
const int rc = crypto_box_keypair (cn_public, cn_secret);
rc = crypto_box_keypair (cn_public, cn_secret);
zmq_assert (rc == 0);
}
@ -187,7 +198,6 @@ int zmq::curve_client_t::decode (msg_t *msg_)
}
cn_peer_nonce = nonce;
const size_t clen = crypto_box_BOXZEROBYTES + (msg_->size () - 16);
uint8_t *message_plaintext = static_cast <uint8_t *> (malloc (clen));
@ -253,7 +263,8 @@ int zmq::curve_client_t::produce_hello (msg_t *msg_)
int rc = crypto_box (hello_box, hello_plaintext,
sizeof hello_plaintext,
hello_nonce, server_key, cn_secret);
zmq_assert (rc == 0);
if (rc == -1)
return -1;
rc = msg_->init_size (200);
errno_assert (rc == 0);
@ -332,7 +343,8 @@ int zmq::curve_client_t::produce_initiate (msg_t *msg_)
int rc = crypto_box (vouch_box, vouch_plaintext,
sizeof vouch_plaintext,
vouch_nonce, cn_server, secret_key);
zmq_assert (rc == 0);
if (rc == -1)
return -1;
// Assume here that metadata is limited to 256 bytes
uint8_t initiate_nonce [crypto_box_NONCEBYTES];
@ -368,7 +380,8 @@ int zmq::curve_client_t::produce_initiate (msg_t *msg_)
rc = crypto_box (initiate_box, initiate_plaintext,
mlen, initiate_nonce, cn_server, cn_secret);
zmq_assert (rc == 0);
if (rc == -1)
return -1;
rc = msg_->init_size (113 + mlen - crypto_box_BOXZEROBYTES);
errno_assert (rc == 0);

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -20,15 +30,16 @@
#ifndef __ZMQ_CURVE_CLIENT_HPP_INCLUDED__
#define __ZMQ_CURVE_CLIENT_HPP_INCLUDED__
#ifdef ZMQ_HAVE_CURVE
#include "platform.hpp"
#include "mutex.hpp"
#ifdef HAVE_LIBSODIUM
#ifdef HAVE_TWEETNACL
#include "tweetnacl_base.h"
#include "randombytes.h"
#else
#include "sodium.h"
#if defined (ZMQ_USE_TWEETNACL)
# include "tweetnacl_base.h"
# include "randombytes.h"
#elif defined (ZMQ_USE_LIBSODIUM)
# include "sodium.h"
#endif
#if crypto_box_NONCEBYTES != 24 \
@ -36,7 +47,7 @@
|| crypto_box_SECRETKEYBYTES != 32 \
|| crypto_box_ZEROBYTES != 32 \
|| crypto_box_BOXZEROBYTES != 16
#error "libsodium not built properly"
# error "CURVE library not built properly"
#endif
#include "mechanism.hpp"
@ -111,7 +122,6 @@ namespace zmq
int process_error (const uint8_t *cmd_data, size_t data_size);
mutex_t sync;
};
}
#endif

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -19,7 +29,7 @@
#include "platform.hpp"
#ifdef HAVE_LIBSODIUM
#ifdef ZMQ_HAVE_CURVE
#ifdef ZMQ_HAVE_WINDOWS
#include "windows.hpp"
@ -42,20 +52,21 @@ zmq::curve_server_t::curve_server_t (session_base_t *session_,
cn_peer_nonce(1),
sync()
{
int rc;
// Fetch our secret key from socket options
memcpy (secret_key, options_.curve_secret_key, crypto_box_SECRETKEYBYTES);
scoped_lock_t lock (sync);
#if defined(HAVE_TWEETNACL)
#if defined (ZMQ_USE_TWEETNACL)
// allow opening of /dev/urandom
unsigned char tmpbytes[4];
randombytes(tmpbytes, 4);
#else
// todo check return code
sodium_init();
rc = sodium_init ();
zmq_assert (rc != -1);
#endif
// Generate short-term key pair
const int rc = crypto_box_keypair (cn_public, cn_secret);
rc = crypto_box_keypair (cn_public, cn_secret);
zmq_assert (rc == 0);
}
@ -365,7 +376,8 @@ int zmq::curve_server_t::produce_welcome (msg_t *msg_)
rc = crypto_box (welcome_ciphertext, welcome_plaintext,
sizeof welcome_plaintext,
welcome_nonce, cn_client, secret_key);
zmq_assert (rc == 0);
if (rc == -1)
return -1;
rc = msg_->init_size (168);
errno_assert (rc == 0);

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -20,15 +30,17 @@
#ifndef __ZMQ_CURVE_SERVER_HPP_INCLUDED__
#define __ZMQ_CURVE_SERVER_HPP_INCLUDED__
#ifdef ZMQ_HAVE_CURVE
#include "platform.hpp"
#ifdef HAVE_LIBSODIUM
#ifdef HAVE_TWEETNACL
#include "tweetnacl_base.h"
#include "randombytes.h"
#else
#include "sodium.h"
#if defined (ZMQ_USE_TWEETNACL)
# include "tweetnacl_base.h"
# include "randombytes.h"
#elif defined (ZMQ_USE_LIBSODIUM)
# include "sodium.h"
#endif
#if crypto_box_NONCEBYTES != 24 \
|| crypto_box_PUBLICKEYBYTES != 32 \
|| crypto_box_SECRETKEYBYTES != 32 \
@ -37,7 +49,7 @@
|| crypto_secretbox_NONCEBYTES != 24 \
|| crypto_secretbox_ZEROBYTES != 32 \
|| crypto_secretbox_BOXZEROBYTES != 16
#error "libsodium not built properly"
# error "CURVE library not built properly"
#endif
#include "mechanism.hpp"

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

28
src/dist.cpp Executable file → Normal file
View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,24 +1,33 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "err.hpp"
#include "platform.hpp"
const char *zmq::errno_to_string (int errno_)
{

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -31,10 +41,6 @@
#include <stdio.h>
#include "platform.hpp"
#include "likely.hpp"
// 0MQ-specific error codes are defined in zmq.h
#include "../include/zmq.h"
#ifdef ZMQ_HAVE_WINDOWS
#include "windows.hpp"
@ -42,6 +48,11 @@
#include <netdb.h>
#endif
#include "likely.hpp"
// 0MQ-specific error codes are defined in zmq.h
#include "../include/zmq.h"
// EPROTO is not used by OpenBSD and maybe other platforms.
#ifndef EPROTO
#define EPROTO 0

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
@ -20,8 +30,6 @@
#ifndef __ZMQ_I_ENGINE_HPP_INCLUDED__
#define __ZMQ_I_ENGINE_HPP_INCLUDED__
#include "fd.hpp"
namespace zmq
{
@ -50,9 +58,6 @@ namespace zmq
virtual void restart_output () = 0;
virtual void zap_msg_available () = 0;
// provide a way to link from engine to file descriptor
virtual fd_t get_assoc_fd () { return retired_fd;};
};
}

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,17 +1,27 @@
/*
Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file
Copyright (c) 2007-2015 Contributors as noted in the AUTHORS file
This file is part of 0MQ.
This file is part of libzmq, the ZeroMQ core engine in C++.
0MQ is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

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