mirror of
https://github.com/zeromq/libzmq.git
synced 2025-08-11 04:58:16 +02:00
Compare commits
274 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c5bd2870c2 | ||
![]() |
2ef080588a | ||
![]() |
7a8a83ba84 | ||
![]() |
b849af44c5 | ||
![]() |
3f7c3c2658 | ||
![]() |
81a68d73dd | ||
![]() |
6c1851efdb | ||
![]() |
83bf40ee1f | ||
![]() |
7d540d6dfe | ||
![]() |
330c682403 | ||
![]() |
4d613cb890 | ||
![]() |
d0b22397eb | ||
![]() |
1b06a5025d | ||
![]() |
783fb45f9d | ||
![]() |
ca69183592 | ||
![]() |
56b71af22d | ||
![]() |
6bbc6b67f6 | ||
![]() |
c369d9bd36 | ||
![]() |
4dd6257d93 | ||
![]() |
3ad076a7a3 | ||
![]() |
81c9c498ee | ||
![]() |
0af39a443f | ||
![]() |
1586f3f25e | ||
![]() |
b315d610b8 | ||
![]() |
2018743b4e | ||
![]() |
dd077bc2b2 | ||
![]() |
e488df7892 | ||
![]() |
02d71a88ab | ||
![]() |
b2eddf9746 | ||
![]() |
3945f27f6d | ||
![]() |
71050259f7 | ||
![]() |
6d92d263e1 | ||
![]() |
1a1abe3d5e | ||
![]() |
1e87d92527 | ||
![]() |
82aed1dee6 | ||
![]() |
197a9e05e2 | ||
![]() |
cf0dcd2379 | ||
![]() |
bf92026527 | ||
![]() |
d8732929d5 | ||
![]() |
bbe4f3ede4 | ||
![]() |
e0041f1fcb | ||
![]() |
98834596f1 | ||
![]() |
5aa7bdfc68 | ||
![]() |
25be170b57 | ||
![]() |
c1d8420335 | ||
![]() |
58badc44c1 | ||
![]() |
4985b084e6 | ||
![]() |
2fba10d691 | ||
![]() |
0b781f84e8 | ||
![]() |
b1a150a675 | ||
![]() |
5977a8a5b6 | ||
![]() |
4d45ee9440 | ||
![]() |
eda5426865 | ||
![]() |
6a66c05179 | ||
![]() |
cb811a1e0c | ||
![]() |
87dd03750b | ||
![]() |
4cee289697 | ||
![]() |
b624f1adc9 | ||
![]() |
49593151db | ||
![]() |
b341dd7ffe | ||
![]() |
2058dece77 | ||
![]() |
45404f4b06 | ||
![]() |
6f4e9f13f3 | ||
![]() |
af3b9452a2 | ||
![]() |
626abbdaf2 | ||
![]() |
d0b341cf0f | ||
![]() |
41cc603d11 | ||
![]() |
ad7fe55e95 | ||
![]() |
e68c2d2563 | ||
![]() |
b539733cee | ||
![]() |
3ae84e6b00 | ||
![]() |
6f022cce92 | ||
![]() |
58ac36593f | ||
![]() |
e3fba7d447 | ||
![]() |
5501f19a0f | ||
![]() |
9bdfb94999 | ||
![]() |
0c5c536303 | ||
![]() |
802c2a8a2b | ||
![]() |
4788c7d2a9 | ||
![]() |
b7a30978ca | ||
![]() |
d1a0baf25f | ||
![]() |
c7642aa434 | ||
![]() |
795a7e3de2 | ||
![]() |
95766dd09c | ||
![]() |
7689bc30b9 | ||
![]() |
0f684ac16c | ||
![]() |
e8095071d9 | ||
![]() |
f13d4f1d04 | ||
![]() |
56835bc833 | ||
![]() |
6933dfff58 | ||
![]() |
6c3f1069aa | ||
![]() |
6548a48bc7 | ||
![]() |
a649a13117 | ||
![]() |
e2a2175f15 | ||
![]() |
b9dbc5b8ca | ||
![]() |
9dd76f68b1 | ||
![]() |
ef8145b25f | ||
![]() |
71bc8bee04 | ||
![]() |
7ee12b527d | ||
![]() |
e4bb5662c0 | ||
![]() |
d89467270e | ||
![]() |
e8577bf1dd | ||
![]() |
849e5b07d9 | ||
![]() |
e1e5a10dd1 | ||
![]() |
7d749ad66a | ||
![]() |
5ee936a9be | ||
![]() |
8c5ca359e8 | ||
![]() |
cb47f02f42 | ||
![]() |
7cfa9f647b | ||
![]() |
af543a58f2 | ||
![]() |
c100ad1dc0 | ||
![]() |
6a88bdb606 | ||
![]() |
30b070a376 | ||
![]() |
550013b9e4 | ||
![]() |
a75b7543e8 | ||
![]() |
89d4e995ef | ||
![]() |
2aa08155f4 | ||
![]() |
28432b562d | ||
![]() |
7bec6c1bdb | ||
![]() |
c41d8aa12b | ||
![]() |
a73740b304 | ||
![]() |
e3e699190f | ||
![]() |
3db502ba47 | ||
![]() |
549ee2401c | ||
![]() |
279bcb2843 | ||
![]() |
759790cadc | ||
![]() |
415916d5f9 | ||
![]() |
cf38d9b7df | ||
![]() |
765b1f24e3 | ||
![]() |
a1fcf2f740 | ||
![]() |
53db7468b6 | ||
![]() |
e39517c9f5 | ||
![]() |
7f45c052c4 | ||
![]() |
b1bdec4404 | ||
![]() |
1cccf94c2e | ||
![]() |
92f2b073be | ||
![]() |
6282d76268 | ||
![]() |
866b02895f | ||
![]() |
073807371c | ||
![]() |
7849d02214 | ||
![]() |
0b4dfd8193 | ||
![]() |
b7226da0d0 | ||
![]() |
74fe8b6125 | ||
![]() |
a9ca06847b | ||
![]() |
7e7ce778ef | ||
![]() |
95b3f204a8 | ||
![]() |
1d0f7b6979 | ||
![]() |
a3f4b4ef78 | ||
![]() |
c78a5fd443 | ||
![]() |
9a63ac7c54 | ||
![]() |
533437a5c0 | ||
![]() |
6b8aae0b54 | ||
![]() |
b0023f0ccf | ||
![]() |
0684a760c9 | ||
![]() |
c8c36f5907 | ||
![]() |
b5d8b360d7 | ||
![]() |
5bd3a0d433 | ||
![]() |
97a0b5dc08 | ||
![]() |
b178072326 | ||
![]() |
3869d7d490 | ||
![]() |
81464652d2 | ||
![]() |
66d32eb04c | ||
![]() |
8a41475b74 | ||
![]() |
982f9ebfdb | ||
![]() |
e740796065 | ||
![]() |
575da3ec7a | ||
![]() |
58d8206c05 | ||
![]() |
d62bf33503 | ||
![]() |
7e89feb7ce | ||
![]() |
f2c32954eb | ||
![]() |
87c888a9c0 | ||
![]() |
b2f788135a | ||
![]() |
9be539a1e1 | ||
![]() |
fd7ba4d509 | ||
![]() |
a2e6e12b6c | ||
![]() |
c75cc9ec5b | ||
![]() |
23f68d2b39 | ||
![]() |
4f0fd36410 | ||
![]() |
25cd81b7f3 | ||
![]() |
7515323295 | ||
![]() |
d5a66f7b7d | ||
![]() |
b0a69fc623 | ||
![]() |
203cd808e2 | ||
![]() |
e31c108885 | ||
![]() |
610a956bed | ||
![]() |
7b786b2537 | ||
![]() |
b5a00b76e8 | ||
![]() |
1d18b39c4b | ||
![]() |
3a0f218cae | ||
![]() |
934b599938 | ||
![]() |
d41b1ecdf7 | ||
![]() |
c188667963 | ||
![]() |
1c7b09afaf | ||
![]() |
f5e1c607a5 | ||
![]() |
752338ec87 | ||
![]() |
3ef80cec74 | ||
![]() |
6f75687c9e | ||
![]() |
8e26e4b35c | ||
![]() |
837cc2cd75 | ||
![]() |
7b4c323bfd | ||
![]() |
fee19e26ac | ||
![]() |
f22094b61a | ||
![]() |
ff0380d1f6 | ||
![]() |
6072d3dbdc | ||
![]() |
609ec133b4 | ||
![]() |
160a7efae4 | ||
![]() |
aa2237b8d6 | ||
![]() |
73fa40b9ac | ||
![]() |
2a3379af4d | ||
![]() |
f75ed8565e | ||
![]() |
5b6b850d9a | ||
![]() |
d172875f52 | ||
![]() |
9fe4fb3929 | ||
![]() |
48ed789c18 | ||
![]() |
c6d5c965fa | ||
![]() |
a69a043e14 | ||
![]() |
5e60f18d3a | ||
![]() |
bbecdf397e | ||
![]() |
5afd4e16ed | ||
![]() |
ea3b9c28ae | ||
![]() |
fa277000d0 | ||
![]() |
29b7266041 | ||
![]() |
5229eeef5b | ||
![]() |
712e74eebd | ||
![]() |
89dd9fddaf | ||
![]() |
583a5f9601 | ||
![]() |
20e3a9f535 | ||
![]() |
d206fe2d45 | ||
![]() |
67afb90ba8 | ||
![]() |
79e3de21c3 | ||
![]() |
8f236dc55e | ||
![]() |
4a8bf129b3 | ||
![]() |
c477182735 | ||
![]() |
b272cca3e8 | ||
![]() |
61a3242085 | ||
![]() |
934973acf0 | ||
![]() |
e28b752aad | ||
![]() |
aa91fec015 | ||
![]() |
fffaf6fd42 | ||
![]() |
4cff7bf372 | ||
![]() |
14c94c0df9 | ||
![]() |
56e09c80f8 | ||
![]() |
3c1a710d06 | ||
![]() |
66c8b70c7d | ||
![]() |
b1cba6b8b6 | ||
![]() |
06d5d6010e | ||
![]() |
8a2052cc52 | ||
![]() |
a90183d0de | ||
![]() |
88c9a4e5ec | ||
![]() |
ef71d6f930 | ||
![]() |
ed6bf9f178 | ||
![]() |
acd55c7464 | ||
![]() |
a87c0d495f | ||
![]() |
3b9049f163 | ||
![]() |
3592c1ec1a | ||
![]() |
c0579448d8 | ||
![]() |
0b1b5f283f | ||
![]() |
95fa16f3ef | ||
![]() |
68f16a06ae | ||
![]() |
03c35d2659 | ||
![]() |
966256d1b6 | ||
![]() |
663781fbd4 | ||
![]() |
1251d06dcc | ||
![]() |
bf950e4241 | ||
![]() |
2b36c01870 | ||
![]() |
08a5014e73 | ||
![]() |
7daeb846ec | ||
![]() |
779a2c1e76 | ||
![]() |
f67b723ed4 | ||
![]() |
6f9ad96225 | ||
![]() |
898ef212fa | ||
![]() |
8185c8039e | ||
![]() |
f31aafd63c | ||
![]() |
25af7d9768 |
169
.gitignore
vendored
169
.gitignore
vendored
@ -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
|
||||
|
46
.travis.yml
46
.travis.yml
@ -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)"
|
||||
|
240
AUTHORS
240
AUTHORS
@ -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.
|
||||
@ -12,126 +12,128 @@ Copyright (c) 2014 AppDynamics Inc.
|
||||
Individual Contributors
|
||||
=======================
|
||||
|
||||
AJ Lewis
|
||||
Alexej Lotz
|
||||
Andrew Thompson
|
||||
Asko Kauppi
|
||||
Attila Mark
|
||||
Barak Amar
|
||||
Ben Gray
|
||||
Bernd Prager
|
||||
Bernd Melchers
|
||||
Bob Beaty
|
||||
Brandon Carpenter
|
||||
Brian Buchanan
|
||||
Brett Cameron
|
||||
Burak Arslan
|
||||
Carl Clemens
|
||||
Chia-liang Kao
|
||||
Chris Busbey
|
||||
Chris Rempel
|
||||
Chris Wong
|
||||
Christian Gudrian
|
||||
Christian Kamm
|
||||
Chuck Remes
|
||||
Conrad D. Steenberg
|
||||
Dhammika Pathirana
|
||||
Dhruva Krishnamurthy
|
||||
Dirk O. Kaar
|
||||
Douglas Creager
|
||||
Drew Crawford
|
||||
Erich Heine
|
||||
Erik Hugne
|
||||
Erik Rigtorp
|
||||
Fabien Ninoles
|
||||
Frank Denis
|
||||
George Neill
|
||||
Gerard Toonstra
|
||||
Ghislain Putois
|
||||
Gonzalo Diethelm
|
||||
Guido Goldstein
|
||||
Ian Barber
|
||||
Ilja Golshtein
|
||||
Ivo Danihelka
|
||||
Jacob Rideout
|
||||
Joe Thornber
|
||||
Jon Dyte
|
||||
Kamil Shakirov
|
||||
Ken Steele
|
||||
Laurent Alebarde
|
||||
Marc Rossi
|
||||
Mark Barbisan
|
||||
Martin Hurton
|
||||
Martin Lucina
|
||||
Martin Pales
|
||||
Martin Sustrik
|
||||
Matus Hamorsky
|
||||
Max Wolf
|
||||
McClain Looney
|
||||
Michael Compton
|
||||
Mika Fischer
|
||||
Mikael Helbo Kjaer
|
||||
Mike Gatny
|
||||
Mikko Koppanen
|
||||
Min Ragan-Kelley
|
||||
Neale Ferguson
|
||||
Nir Soffer
|
||||
Paul Betts
|
||||
Paul Colomiets
|
||||
Pavel Gushcha
|
||||
Pavol Malosek
|
||||
Perry Kundert
|
||||
Peter Bourgon
|
||||
Philip Kovacs
|
||||
Pieter Hintjens
|
||||
Piotr Trojanek
|
||||
Richard Newton
|
||||
Robert G. Jakabosky
|
||||
Sebastian Otaegui
|
||||
Stefan Radomski
|
||||
Steven McCoy
|
||||
Stuart Webster
|
||||
Tamara Kustarova
|
||||
Taras Shpot
|
||||
Tero Marttila
|
||||
Terry Wilson
|
||||
Thijs Terlouw
|
||||
Thomas Rodgers
|
||||
Toralf Wittner
|
||||
Tore Halvorsen
|
||||
Trevor Bernard
|
||||
Vitaly Mayatskikh
|
||||
Lourens Naudé
|
||||
Hardeep Singh
|
||||
André Caron
|
||||
Tim Mossbarger
|
||||
AJ Lewis
|
||||
Alexej Lotz
|
||||
Andrew Thompson
|
||||
Asko Kauppi
|
||||
Attila Mark
|
||||
Barak Amar
|
||||
Ben Gray
|
||||
Bernd Prager
|
||||
Bernd Melchers
|
||||
Bob Beaty
|
||||
Brandon Carpenter
|
||||
Brian Buchanan
|
||||
Brett Cameron
|
||||
Burak Arslan
|
||||
Carl Clemens
|
||||
Chia-liang Kao
|
||||
Chris Busbey
|
||||
Chris Rempel
|
||||
Chris Wong
|
||||
Christian Gudrian
|
||||
Christian Kamm
|
||||
Chuck Remes
|
||||
Conrad D. Steenberg
|
||||
Dhammika Pathirana
|
||||
Dhruva Krishnamurthy
|
||||
Dirk O. Kaar
|
||||
Douglas Creager
|
||||
Drew Crawford
|
||||
Erich Heine
|
||||
Erik Hugne
|
||||
Erik Rigtorp
|
||||
Fabien Ninoles
|
||||
Frank Denis
|
||||
George Neill
|
||||
Gerard Toonstra
|
||||
Ghislain Putois
|
||||
Gonzalo Diethelm
|
||||
Guido Goldstein
|
||||
Ian Barber
|
||||
Ilja Golshtein
|
||||
Ivo Danihelka
|
||||
Jacob Rideout
|
||||
Joe Thornber
|
||||
Jon Dyte
|
||||
Kamil Shakirov
|
||||
Ken Steele
|
||||
Laurent Alebarde
|
||||
Luca Boccassi
|
||||
Marc Rossi
|
||||
Mark Barbisan
|
||||
Martin Hurton
|
||||
Martin Lucina
|
||||
Martin Pales
|
||||
Martin Sustrik
|
||||
Matus Hamorsky
|
||||
Max Wolf
|
||||
McClain Looney
|
||||
Michael Compton
|
||||
Mika Fischer
|
||||
Mikael Helbo Kjaer
|
||||
Mike Gatny
|
||||
Mikko Koppanen
|
||||
Min Ragan-Kelley
|
||||
Neale Ferguson
|
||||
Nir Soffer
|
||||
Paul Betts
|
||||
Paul Colomiets
|
||||
Pavel Gushcha
|
||||
Pavol Malosek
|
||||
Perry Kundert
|
||||
Peter Bourgon
|
||||
Philip Kovacs
|
||||
Pieter Hintjens
|
||||
Piotr Trojanek
|
||||
Richard Newton
|
||||
Rik van der Heijden
|
||||
Robert G. Jakabosky
|
||||
Sebastian Otaegui
|
||||
Stefan Radomski
|
||||
Steven McCoy
|
||||
Stuart Webster
|
||||
Tamara Kustarova
|
||||
Taras Shpot
|
||||
Tero Marttila
|
||||
Terry Wilson
|
||||
Thijs Terlouw
|
||||
Thomas Rodgers
|
||||
Toralf Wittner
|
||||
Tore Halvorsen
|
||||
Trevor Bernard
|
||||
Vitaly Mayatskikh
|
||||
Lourens Naudé
|
||||
Hardeep Singh
|
||||
André Caron
|
||||
Tim Mossbarger
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Aamir Mohammad
|
||||
Adrian von Bidder
|
||||
Aleksey Yeschenko
|
||||
Alessio Spadaro
|
||||
Alexander Majorov
|
||||
Anh Vu
|
||||
Bernd Schumacher
|
||||
Brian Granger
|
||||
Carsten Dinkelmann
|
||||
David Bahi
|
||||
Dirk Eddelbuettel
|
||||
Evgueny Khartchenko
|
||||
Frank Vanden Berghen
|
||||
Ian Barber
|
||||
John Apps
|
||||
Markus Fischer
|
||||
Matt Muggeridge
|
||||
Michael Santy
|
||||
Oleg Sevostyanov
|
||||
Paulo Henrique Silva
|
||||
Peter Busser
|
||||
Peter Lemenkov
|
||||
Robert Zhang
|
||||
Toralf Wittner
|
||||
Zed Shaw
|
||||
Aamir Mohammad
|
||||
Adrian von Bidder
|
||||
Aleksey Yeschenko
|
||||
Alessio Spadaro
|
||||
Alexander Majorov
|
||||
Anh Vu
|
||||
Bernd Schumacher
|
||||
Brian Granger
|
||||
Carsten Dinkelmann
|
||||
David Bahi
|
||||
Dirk Eddelbuettel
|
||||
Evgueny Khartchenko
|
||||
Frank Vanden Berghen
|
||||
Ian Barber
|
||||
John Apps
|
||||
Markus Fischer
|
||||
Matt Muggeridge
|
||||
Michael Santy
|
||||
Oleg Sevostyanov
|
||||
Paulo Henrique Silva
|
||||
Peter Busser
|
||||
Peter Lemenkov
|
||||
Robert Zhang
|
||||
Toralf Wittner
|
||||
Zed Shaw
|
||||
|
||||
|
113
CMakeLists.txt
113
CMakeLists.txt
@ -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()
|
||||
list(APPEND TWEETNACL_SOURCES tweetnacl/contrib/randombytes/devurandom.c)
|
||||
endif()
|
||||
else()
|
||||
find_library(SODIUM_FOUND sodium)
|
||||
endif()
|
||||
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 ()
|
||||
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
|
||||
|
628
Makefile.am
628
Makefile.am
@ -1,26 +1,633 @@
|
||||
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 \
|
||||
$(srcdir)/configure \
|
||||
$(srcdir)/aclocal.m4 \
|
||||
$(srcdir)/autom4te.cache \
|
||||
$(srcdir)/configure \
|
||||
`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
|
||||
|
||||
|
241
NEWS
241
NEWS
@ -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
|
||||
================================================
|
||||
|
||||
@ -75,38 +246,38 @@ Major changes
|
||||
|
||||
* New wire level protocol, ZMTP/3.0, see http://rfc.zeromq.org/spec:23.
|
||||
Does not yet implement the SUBSCRIBE, CANCEL, PING, and PONG commands.
|
||||
|
||||
* New security framework, from plain user+password to strong encryption,
|
||||
|
||||
* New security framework, from plain user+password to strong encryption,
|
||||
see section below. See http://hintjens.com/blog:49 for a tutorial.
|
||||
|
||||
* New ZMQ_STREAM socket type for working as a TCP client or server. See:
|
||||
|
||||
* New ZMQ_STREAM socket type for working as a TCP client or server. See:
|
||||
tests/test_stream.cpp.
|
||||
|
||||
|
||||
Improvements
|
||||
------------
|
||||
|
||||
* You can now connect to an inproc:// endpoint that does not already
|
||||
exist. This means inproc:// no longer needs careful set-up, but it may
|
||||
break code that relied on the old behaviour. See:
|
||||
break code that relied on the old behaviour. See:
|
||||
tests/test_inproc_connect.cpp.
|
||||
|
||||
* Libzmq now checks socket types at connection time, so that trying to
|
||||
|
||||
* Libzmq now checks socket types at connection time, so that trying to
|
||||
connect a 'wrong' socket type will fail.
|
||||
|
||||
|
||||
* New zmq_ctx_shutdown API method will shutdown a context and send ETERM
|
||||
to blocking calls, without blocking. Use zmq_ctx_term to finalise the
|
||||
process.
|
||||
|
||||
|
||||
* The regression test suite has been significantly extended and improved.
|
||||
|
||||
* Contexts can now be terminated in forked child processes. See:
|
||||
|
||||
* Contexts can now be terminated in forked child processes. See:
|
||||
tests/test_fork.cpp.
|
||||
|
||||
|
||||
* zmq_disconnect now respects the linger setting on sockets.
|
||||
|
||||
* New zmq_send_const API method to send constant data (without copying).
|
||||
See: tests/test_inproc_connect.cpp.
|
||||
|
||||
|
||||
* Added CMake support for static libraries.
|
||||
|
||||
* Added test cases for socket semantics as defined in RFCs 28, 29, 30, 31.
|
||||
@ -114,23 +285,23 @@ Improvements
|
||||
|
||||
* New socket option, ZMQ_PROBE_ROUTER triggers an empty message on connect.
|
||||
See: tests/test_probe_router.cpp.
|
||||
|
||||
* New socket option, ZMQ_REQ_CORRELATE allows for correlation of replies
|
||||
|
||||
* New socket option, ZMQ_REQ_CORRELATE allows for correlation of replies
|
||||
from a REP socket. See: tests/test_req_correlate.cpp.
|
||||
|
||||
* New socket option, ZMQ_REQ_RELAXED, lets you disable the state machine
|
||||
on a REQ socket, so you can send multiple requests without waiting for
|
||||
replies, and without getting an EFSM error. See:
|
||||
|
||||
* New socket option, ZMQ_REQ_RELAXED, lets you disable the state machine
|
||||
on a REQ socket, so you can send multiple requests without waiting for
|
||||
replies, and without getting an EFSM error. See:
|
||||
tests/test_req_relaxed.cpp.
|
||||
|
||||
* New socket option, ZMQ_CONFLATE restricts the outgoing and incoming
|
||||
|
||||
* New socket option, ZMQ_CONFLATE restricts the outgoing and incoming
|
||||
socket buffers to a single message. See: tests/test_conflate.cpp.
|
||||
|
||||
Deprecated Options
|
||||
------------------
|
||||
|
||||
* ZMQ_IPV4ONLY deprecated and renamed to ZMQ_IPV6 so that options are
|
||||
consistently "off" by default.
|
||||
consistently "off" by default.
|
||||
|
||||
* ZMQ_DELAY_ATTACH_ON_CONNECT deprecated, and renamed to ZMQ_IMMEDIATE.
|
||||
See: tests/test_immediate.cpp.
|
||||
@ -138,37 +309,37 @@ Deprecated Options
|
||||
Security Framework
|
||||
------------------
|
||||
|
||||
Based on new ZMTP wire level protocol that negotiates a security
|
||||
Based on new ZMTP wire level protocol that negotiates a security
|
||||
"mechanism" between client and server before exchanging any other data.
|
||||
|
||||
Security mechanisms are extensible. ZMTP defines three by default:
|
||||
|
||||
* NULL - classic ZeroMQ, with no authentication. See
|
||||
* NULL - classic ZeroMQ, with no authentication. See
|
||||
http://rfc.zeromq.org/spec:23.
|
||||
|
||||
|
||||
* PLAIN - plain-text username + password authentication. See
|
||||
http://rfc.zeromq.org/spec:24.
|
||||
|
||||
* CURVE - secure authentication and encryption based on elliptic curve
|
||||
cryptography, using the Curve25519 algorithm from Daniel Bernstein and
|
||||
based on CurveCP's security handshake. See http://rfc.zeromq.org/spec:25,
|
||||
* CURVE - secure authentication and encryption based on elliptic curve
|
||||
cryptography, using the Curve25519 algorithm from Daniel Bernstein and
|
||||
based on CurveCP's security handshake. See http://rfc.zeromq.org/spec:25,
|
||||
http://rfc.zeromq.org/spec:26, and http://curvecp.org.
|
||||
|
||||
|
||||
Authentication is done by pluggable "authenticators" that connect to libzmq
|
||||
over an inproc endpoint, see http://rfc.zeromq.org/spec:27.
|
||||
|
||||
Socket options to configure PLAIN security on client or server:
|
||||
|
||||
* ZMQ_PLAIN_SERVER, ZMQ_PLAIN_USERNAME, ZMQ_PLAIN_PASSWORD. See
|
||||
* ZMQ_PLAIN_SERVER, ZMQ_PLAIN_USERNAME, ZMQ_PLAIN_PASSWORD. See
|
||||
tests/test_security_plain.
|
||||
|
||||
|
||||
Socket options to configure CURVE security on client or server:
|
||||
|
||||
* ZMQ_CURVE_SERVER, ZMQ_CURVE_PUBLICKEY, ZMQ_CURVE_SECRETKEY,
|
||||
* ZMQ_CURVE_SERVER, ZMQ_CURVE_PUBLICKEY, ZMQ_CURVE_SECRETKEY,
|
||||
ZMQ_CURVE_SERVERKEY. See tests/test_security_curve.cpp.
|
||||
|
||||
|
||||
Socket options to configure "domain" for ZAP handler:
|
||||
|
||||
|
||||
* ZMQ_ZAP_DOMAIN, see tests/test_security_null.cpp.
|
||||
|
||||
Support for encoding/decoding CURVE binary keys to ASCII:
|
||||
|
37
README.md
37
README.md
@ -1,17 +1,16 @@
|
||||
# ZeroMQ
|
||||
|
||||
[](https://travis-ci.org/zeromq/libzmq)
|
||||
[](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.
|
||||
|
211
acinclude.m4
211
acinclude.m4
@ -745,57 +745,46 @@ 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 ################################################################################
|
||||
dnl # LIBZMQ_CHECK_POLLER_EPOLL_RUN([action-if-found], [action-if-not-found]) #
|
||||
dnl # Checks epoll polling system can actually run #
|
||||
dnl # For cross-compile, only requires that epoll can link #
|
||||
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}"
|
||||
;;
|
||||
if test "x$with_poller" == "x"; then
|
||||
pollers=auto
|
||||
else
|
||||
pollers=$with_poller
|
||||
fi
|
||||
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:
|
||||
# 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
|
||||
fi
|
||||
done
|
||||
;;
|
||||
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])
|
||||
# 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
|
||||
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
|
||||
}])
|
||||
|
||||
|
10
autogen.sh
10
autogen.sh
@ -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
|
||||
echo "autogen.sh: error: could not find libtool. libtool is required to run autogen.sh." 1>&2
|
||||
exit 1
|
||||
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
26
builds/Makefile.am
Normal 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
|
@ -6,19 +6,22 @@
|
||||
# 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)
|
||||
find_package_handle_standard_ARGS(AsciiDoc REQUIRED_VARS ASCIIDOC_EXECUTABLE)
|
||||
mark_as_advanced(ASCIIDOC_EXECUTABLE A2X_EXECUTABLE)
|
||||
mark_as_advanced(ASCIIDOC_EXECUTABLE A2X_EXECUTABLE)
|
||||
|
@ -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()
|
||||
|
@ -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/>.
|
||||
|
@ -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 \
|
||||
|
@ -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.
@ -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
|
||||
|
||||
|
@ -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/>.
|
||||
@ -30,7 +40,7 @@ int main (void)
|
||||
setup_test_environment ();
|
||||
void *ctx = zmq_ctx_new ();
|
||||
assert (ctx);
|
||||
|
||||
|
||||
// Create and bind pull socket to receive messages
|
||||
void *pull = zmq_socket (ctx, ZMQ_PULL);
|
||||
assert (pull);
|
||||
@ -54,11 +64,11 @@ int main (void)
|
||||
int count;
|
||||
for (count = 0; count < NUM_MESSAGES; count++)
|
||||
zmq_send (push, "Hello", 5, 0);
|
||||
|
||||
|
||||
zmq_close (push);
|
||||
zmq_ctx_destroy (child_ctx);
|
||||
exit (0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Parent process
|
||||
alarm(TIMEOUT_SECS); // Set upper limit on runtime
|
||||
@ -72,7 +82,7 @@ int main (void)
|
||||
int child_status;
|
||||
while (true) {
|
||||
rc = waitpid (pid, &child_status, 0);
|
||||
if (rc == -1 && errno == EINTR)
|
||||
if (rc == -1 && errno == EINTR)
|
||||
continue;
|
||||
assert (rc > 0);
|
||||
// Verify the status code of the child was zero
|
||||
|
20
ci_deploy.sh
Normal file
20
ci_deploy.sh
Normal 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
|
423
configure.ac
423
configure.ac
@ -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,80 +67,48 @@ 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>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <linux/tipc.h>
|
||||
]],[[
|
||||
struct sockaddr_tipc topsrv;
|
||||
int sd = socket(AF_TIPC, SOCK_SEQPACKET, 0);
|
||||
if (sd == -EAFNOSUPPORT) {
|
||||
return 1;
|
||||
}
|
||||
memset(&topsrv, 0, sizeof(topsrv));
|
||||
topsrv.family = AF_TIPC;
|
||||
topsrv.addrtype = TIPC_ADDR_NAME;
|
||||
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 (errno != EINPROGRESS)
|
||||
return -1;
|
||||
}]])
|
||||
],
|
||||
[libzmq_tipc_support=yes],
|
||||
[libzmq_tipc_support=no],
|
||||
[libzmq_tipc_support=no])
|
||||
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM([[
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <linux/tipc.h>
|
||||
]],[[
|
||||
struct sockaddr_tipc topsrv;
|
||||
int sd = socket(AF_TIPC, SOCK_SEQPACKET, 0);
|
||||
if (sd == -EAFNOSUPPORT) {
|
||||
return 1;
|
||||
}
|
||||
memset(&topsrv, 0, sizeof(topsrv));
|
||||
topsrv.family = AF_TIPC;
|
||||
topsrv.addrtype = TIPC_ADDR_NAME;
|
||||
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 (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],
|
||||
[Switch off pedantic compiler])],
|
||||
[zmq_relaxed="yes"],
|
||||
[])
|
||||
[AS_HELP_STRING([--with-relaxed],
|
||||
[Switch off pedantic compiler])],
|
||||
[zmq_relaxed="yes"],
|
||||
[])
|
||||
|
||||
if test "x$zmq_relaxed" = "xyes"; then
|
||||
libzmq_pedantic="no"
|
||||
@ -145,10 +117,10 @@ else
|
||||
fi
|
||||
|
||||
AC_ARG_WITH([militant],
|
||||
[AS_HELP_STRING([--with-militant],
|
||||
[Enable militant API assertions])],
|
||||
[zmq_militant="yes"],
|
||||
[])
|
||||
[AS_HELP_STRING([--with-militant],
|
||||
[Enable militant API assertions])],
|
||||
[zmq_militant="yes"],
|
||||
[])
|
||||
|
||||
if test "x$zmq_militant" = "xyes"; then
|
||||
AC_DEFINE(ZMQ_ACT_MILITANT, 1, [Enable militant API assertions])
|
||||
@ -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,25 +331,36 @@ 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.])])
|
||||
[AC_DEFINE(ZMQ_HAVE_EVENTFD, 1, [Have eventfd extension.])])
|
||||
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
|
||||
|
||||
AC_ARG_WITH([pgm], [AS_HELP_STRING([--with-pgm],
|
||||
[build libzmq with PGM extension [default=no]])],
|
||||
[with_pgm_ext=$withval], [with_pgm_ext=no])
|
||||
# Select curve encryption library, defaults to tweetnacl
|
||||
# To use libsodium instead, use --with-libsodium (must be installed)
|
||||
# To disable curve, use --disable-curve
|
||||
|
||||
# build using system pgm
|
||||
AC_ARG_WITH([system-pgm], [AS_HELP_STRING([--with-system-pgm],
|
||||
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. 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],
|
||||
[build libzmq with NORM protocol extension, optionally specifying norm path [default=no]])],
|
||||
[with_norm_ext=$withval], [with_norm_ext=no])
|
||||
|
||||
|
||||
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])
|
||||
|
||||
|
||||
|
||||
AC_MSG_CHECKING("with_norm_ext = ${with_norm_ext}")
|
||||
|
||||
if test "x$with_norm_ext" != "xno"; then
|
||||
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,38 +506,43 @@ 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],
|
||||
[1],
|
||||
[Whether SOCK_CLOEXEC is defined and functioning.])
|
||||
])
|
||||
|
||||
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],
|
||||
[1],
|
||||
[Whether SO_KEEPALIVE is supported.])
|
||||
])
|
||||
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],
|
||||
[1],
|
||||
[Whether TCP_KEEPIDLE is supported.])
|
||||
])
|
||||
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],
|
||||
[1],
|
||||
[Whether TCP_KEEPALIVE is supported.])
|
||||
])
|
||||
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],
|
||||
[1],
|
||||
[Whether TCP_KEEPCNT is supported.])
|
||||
])
|
||||
|
||||
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],
|
||||
[1],
|
||||
[Whether TCP_KEEPINTVL is supported.])
|
||||
])
|
||||
|
||||
LIBZMQ_CHECK_TCP_KEEPALIVE([
|
||||
AC_DEFINE([ZMQ_HAVE_TCP_KEEPALIVE],
|
||||
[1],
|
||||
[Whether TCP_KEEPALIVE is supported.])
|
||||
])
|
||||
|
||||
AM_CONDITIONAL(HAVE_FORK, test "x$ac_cv_func_fork" = "xyes")
|
||||
|
||||
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1 +0,0 @@
|
||||
zmq_pgm.txt
|
@ -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
|
||||
------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -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
|
||||
--------
|
||||
|
@ -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:; @;
|
Binary file not shown.
@ -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_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
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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>
|
@ -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
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
219
src/Makefile.am
219
src/Makefile.am
@ -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
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/blob.hpp
28
src/blob.hpp
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
@ -148,6 +158,6 @@ namespace zmq
|
||||
} args;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
}
|
||||
|
40
src/ctx.cpp
40
src/ctx.cpp
@ -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
|
||||
|
||||
|
30
src/ctx.hpp
30
src/ctx.hpp
@ -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/>.
|
||||
@ -76,7 +86,7 @@ namespace zmq
|
||||
// (except zmq_close).
|
||||
// This function is non-blocking.
|
||||
// terminate must still be called afterwards.
|
||||
// This function is optional, terminate will unblock any current
|
||||
// This function is optional, terminate will unblock any current
|
||||
// operations as well.
|
||||
int shutdown();
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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"
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
30
src/dist.cpp
Executable file → Normal file
30
src/dist.cpp
Executable file → Normal 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/>.
|
||||
@ -66,7 +76,7 @@ void zmq::dist_t::match (pipe_t *pipe_)
|
||||
|
||||
// Mark the pipe as matching.
|
||||
pipes.swap (pipes.index (pipe_), matching);
|
||||
matching++;
|
||||
matching++;
|
||||
}
|
||||
|
||||
void zmq::dist_t::unmatch ()
|
||||
|
28
src/dist.hpp
28
src/dist.hpp
@ -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/>.
|
||||
|
@ -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/>.
|
||||
@ -60,7 +70,7 @@ namespace zmq
|
||||
{
|
||||
free (buf);
|
||||
}
|
||||
|
||||
|
||||
// The function returns a batch of binary data. The data
|
||||
// are filled to a supplied buffer. If no buffer is supplied (data_
|
||||
// points to NULL) decoder object will provide buffer of its own.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
131
src/err.cpp
131
src/err.cpp
@ -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_)
|
||||
{
|
||||
@ -94,108 +103,108 @@ const char *zmq::wsa_error_no (int no_)
|
||||
// automatically (wsaError->HRESULT->string?).
|
||||
return
|
||||
(no_ == WSABASEERR) ?
|
||||
"No Error" :
|
||||
"No Error" :
|
||||
(no_ == WSAEINTR) ?
|
||||
"Interrupted system call" :
|
||||
"Interrupted system call" :
|
||||
(no_ == WSAEBADF) ?
|
||||
"Bad file number" :
|
||||
"Bad file number" :
|
||||
(no_ == WSAEACCES) ?
|
||||
"Permission denied" :
|
||||
"Permission denied" :
|
||||
(no_ == WSAEFAULT) ?
|
||||
"Bad address" :
|
||||
"Bad address" :
|
||||
(no_ == WSAEINVAL) ?
|
||||
"Invalid argument" :
|
||||
"Invalid argument" :
|
||||
(no_ == WSAEMFILE) ?
|
||||
"Too many open files" :
|
||||
"Too many open files" :
|
||||
(no_ == WSAEWOULDBLOCK) ?
|
||||
"Operation would block" :
|
||||
"Operation would block" :
|
||||
(no_ == WSAEINPROGRESS) ?
|
||||
"Operation now in progress" :
|
||||
"Operation now in progress" :
|
||||
(no_ == WSAEALREADY) ?
|
||||
"Operation already in progress" :
|
||||
"Operation already in progress" :
|
||||
(no_ == WSAENOTSOCK) ?
|
||||
"Socket operation on non-socket" :
|
||||
"Socket operation on non-socket" :
|
||||
(no_ == WSAEDESTADDRREQ) ?
|
||||
"Destination address required" :
|
||||
"Destination address required" :
|
||||
(no_ == WSAEMSGSIZE) ?
|
||||
"Message too long" :
|
||||
"Message too long" :
|
||||
(no_ == WSAEPROTOTYPE) ?
|
||||
"Protocol wrong type for socket" :
|
||||
"Protocol wrong type for socket" :
|
||||
(no_ == WSAENOPROTOOPT) ?
|
||||
"Bad protocol option" :
|
||||
"Bad protocol option" :
|
||||
(no_ == WSAEPROTONOSUPPORT) ?
|
||||
"Protocol not supported" :
|
||||
"Protocol not supported" :
|
||||
(no_ == WSAESOCKTNOSUPPORT) ?
|
||||
"Socket type not supported" :
|
||||
"Socket type not supported" :
|
||||
(no_ == WSAEOPNOTSUPP) ?
|
||||
"Operation not supported on socket" :
|
||||
"Operation not supported on socket" :
|
||||
(no_ == WSAEPFNOSUPPORT) ?
|
||||
"Protocol family not supported" :
|
||||
"Protocol family not supported" :
|
||||
(no_ == WSAEAFNOSUPPORT) ?
|
||||
"Address family not supported by protocol family" :
|
||||
"Address family not supported by protocol family" :
|
||||
(no_ == WSAEADDRINUSE) ?
|
||||
"Address already in use" :
|
||||
"Address already in use" :
|
||||
(no_ == WSAEADDRNOTAVAIL) ?
|
||||
"Can't assign requested address" :
|
||||
"Can't assign requested address" :
|
||||
(no_ == WSAENETDOWN) ?
|
||||
"Network is down" :
|
||||
"Network is down" :
|
||||
(no_ == WSAENETUNREACH) ?
|
||||
"Network is unreachable" :
|
||||
"Network is unreachable" :
|
||||
(no_ == WSAENETRESET) ?
|
||||
"Net dropped connection or reset" :
|
||||
"Net dropped connection or reset" :
|
||||
(no_ == WSAECONNABORTED) ?
|
||||
"Software caused connection abort" :
|
||||
"Software caused connection abort" :
|
||||
(no_ == WSAECONNRESET) ?
|
||||
"Connection reset by peer" :
|
||||
"Connection reset by peer" :
|
||||
(no_ == WSAENOBUFS) ?
|
||||
"No buffer space available" :
|
||||
"No buffer space available" :
|
||||
(no_ == WSAEISCONN) ?
|
||||
"Socket is already connected" :
|
||||
"Socket is already connected" :
|
||||
(no_ == WSAENOTCONN) ?
|
||||
"Socket is not connected" :
|
||||
"Socket is not connected" :
|
||||
(no_ == WSAESHUTDOWN) ?
|
||||
"Can't send after socket shutdown" :
|
||||
"Can't send after socket shutdown" :
|
||||
(no_ == WSAETOOMANYREFS) ?
|
||||
"Too many references can't splice" :
|
||||
"Too many references can't splice" :
|
||||
(no_ == WSAETIMEDOUT) ?
|
||||
"Connection timed out" :
|
||||
"Connection timed out" :
|
||||
(no_ == WSAECONNREFUSED) ?
|
||||
"Connection refused" :
|
||||
"Connection refused" :
|
||||
(no_ == WSAELOOP) ?
|
||||
"Too many levels of symbolic links" :
|
||||
"Too many levels of symbolic links" :
|
||||
(no_ == WSAENAMETOOLONG) ?
|
||||
"File name too long" :
|
||||
"File name too long" :
|
||||
(no_ == WSAEHOSTDOWN) ?
|
||||
"Host is down" :
|
||||
"Host is down" :
|
||||
(no_ == WSAEHOSTUNREACH) ?
|
||||
"No Route to Host" :
|
||||
"No Route to Host" :
|
||||
(no_ == WSAENOTEMPTY) ?
|
||||
"Directory not empty" :
|
||||
"Directory not empty" :
|
||||
(no_ == WSAEPROCLIM) ?
|
||||
"Too many processes" :
|
||||
"Too many processes" :
|
||||
(no_ == WSAEUSERS) ?
|
||||
"Too many users" :
|
||||
"Too many users" :
|
||||
(no_ == WSAEDQUOT) ?
|
||||
"Disc Quota Exceeded" :
|
||||
"Disc Quota Exceeded" :
|
||||
(no_ == WSAESTALE) ?
|
||||
"Stale NFS file handle" :
|
||||
"Stale NFS file handle" :
|
||||
(no_ == WSAEREMOTE) ?
|
||||
"Too many levels of remote in path" :
|
||||
"Too many levels of remote in path" :
|
||||
(no_ == WSASYSNOTREADY) ?
|
||||
"Network SubSystem is unavailable" :
|
||||
"Network SubSystem is unavailable" :
|
||||
(no_ == WSAVERNOTSUPPORTED) ?
|
||||
"WINSOCK DLL Version out of range" :
|
||||
"WINSOCK DLL Version out of range" :
|
||||
(no_ == WSANOTINITIALISED) ?
|
||||
"Successful WSASTARTUP not yet performed" :
|
||||
"Successful WSASTARTUP not yet performed" :
|
||||
(no_ == WSAHOST_NOT_FOUND) ?
|
||||
"Host not found" :
|
||||
"Host not found" :
|
||||
(no_ == WSATRY_AGAIN) ?
|
||||
"Non-Authoritative Host not found" :
|
||||
"Non-Authoritative Host not found" :
|
||||
(no_ == WSANO_RECOVERY) ?
|
||||
"Non-Recoverable errors: FORMERR REFUSED NOTIMP" :
|
||||
"Non-Recoverable errors: FORMERR REFUSED NOTIMP" :
|
||||
(no_ == WSANO_DATA) ?
|
||||
"Valid name no data record of requested" :
|
||||
"error not defined";
|
||||
"error not defined";
|
||||
}
|
||||
|
||||
void zmq::win_error (char *buffer_, size_t buffer_size_)
|
||||
|
39
src/err.hpp
39
src/err.hpp
@ -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
|
||||
@ -111,7 +122,7 @@ namespace zmq
|
||||
__FILE__, __LINE__);\
|
||||
zmq::zmq_abort (#x);\
|
||||
}\
|
||||
} while (false)
|
||||
} while (false)
|
||||
|
||||
// Provides convenient way to check for errno-style errors.
|
||||
#define errno_assert(x) \
|
||||
|
28
src/fd.hpp
28
src/fd.hpp
@ -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/fq.cpp
28
src/fq.cpp
@ -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/fq.hpp
28
src/fq.hpp
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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
|
||||
{
|
||||
|
||||
@ -49,10 +57,7 @@ namespace zmq
|
||||
// are messages to send available.
|
||||
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;};
|
||||
virtual void zap_msg_available () = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1,45 +1,55 @@
|
||||
/*
|
||||
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/>.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __ZMQ_I_POLL_EVENTS_HPP_INCLUDED__
|
||||
#define __ZMQ_I_POLL_EVENTS_HPP_INCLUDED__
|
||||
|
||||
|
||||
namespace zmq
|
||||
{
|
||||
|
||||
|
||||
// Virtual interface to be exposed by object that want to be notified
|
||||
// about events on file descriptors.
|
||||
|
||||
|
||||
struct i_poll_events
|
||||
{
|
||||
virtual ~i_poll_events () {}
|
||||
|
||||
|
||||
// Called by I/O thread when file descriptor is ready for reading.
|
||||
virtual void in_event () = 0;
|
||||
|
||||
|
||||
// Called by I/O thread when file descriptor is ready for writing.
|
||||
virtual void out_event () = 0;
|
||||
|
||||
|
||||
// Called when timer expires.
|
||||
virtual void timer_event (int id_) = 0;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/ip.cpp
28
src/ip.cpp
@ -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/ip.hpp
28
src/ip.hpp
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
@ -177,14 +187,14 @@ int zmq::ipc_connecter_t::get_new_reconnect_ivl ()
|
||||
|
||||
// Only change the current reconnect interval if the maximum reconnect
|
||||
// interval was set and if it's larger than the reconnect interval.
|
||||
if (options.reconnect_ivl_max > 0 &&
|
||||
if (options.reconnect_ivl_max > 0 &&
|
||||
options.reconnect_ivl_max > options.reconnect_ivl) {
|
||||
|
||||
// Calculate the next interval
|
||||
current_reconnect_ivl = current_reconnect_ivl * 2;
|
||||
if(current_reconnect_ivl >= options.reconnect_ivl_max) {
|
||||
current_reconnect_ivl = options.reconnect_ivl_max;
|
||||
}
|
||||
}
|
||||
}
|
||||
return this_interval;
|
||||
}
|
||||
@ -209,7 +219,7 @@ int zmq::ipc_connecter_t::open ()
|
||||
// Connect was successfull immediately.
|
||||
if (rc == 0)
|
||||
return 0;
|
||||
|
||||
|
||||
// Translate other error codes indicating asynchronous connect has been
|
||||
// launched to a uniform EINPROGRESS.
|
||||
if (rc == -1 && errno == EINTR) {
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
@ -100,7 +110,7 @@ void zmq::ipc_listener_t::in_event ()
|
||||
io_thread_t *io_thread = choose_io_thread (options.affinity);
|
||||
zmq_assert (io_thread);
|
||||
|
||||
// Create and launch a session object.
|
||||
// Create and launch a session object.
|
||||
session_base_t *session = session_base_t::create (io_thread, false, socket,
|
||||
options, NULL);
|
||||
errno_assert (session);
|
||||
|
@ -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/>.
|
||||
|
@ -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/>.
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user