0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-30 01:06:55 +08:00

5272 Commits

Author SHA1 Message Date
Saif Hasan
fc8007e896 Make ZMQ_TOS work with IPv6 sockets
Summary:
To set `Type Of Service` for IP layer packets ZMQ provides `ZMQ_TOS` socket
option. However this only works for v4 sockets. Considering things are moving to
IPv6 heavily (especially within enterprise networks), ZMQ should support setting
`traffic class` for v6 based on `ZMQ_TOS`.

There is a subtle difference between v4 and v6 in terms of the positioning of
field but TOS has same meaning in both v4 and v6. Linux provides following APIs
for v4/v6 to set TOS field value.
```
// For v4
setsockopt(fd, IPPROTO_IP, IP_TOS, tos, sizeof(tos));

// For v6
setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, tos, sizeof(tos));
```

Test Plan:
Make sure Cmake works fine and all tests passes.
Imported this change to `OpenR` project and tested on our local testbed.
Captured some packets exchanged between PUB/SUB and ROUTER/ROUTER sockets
pairs. Verify that `TCLASS` value is set as per expectation.

Tasks: #2208
2016-11-14 02:19:55 -08:00
Constantin Rack
8ac7500f9d Merge pull request #2203 from bluca/bump_version
Problem: 4.2.0 is out, time to bump version for development
2016-11-12 21:01:11 +01:00
Constantin Rack
e50c6b6992 Merge pull request #2206 from bluca/dladdr
Problem: linker fails looking for dladdr
2016-11-12 21:00:04 +01:00
Luca Boccassi
1b3fcbd3ee Problem: linker fails looking for dladdr
Solution: search and add it via AC_CHECK_LIB when building with
libunwind, as the backtrace function uses dladdr. This problem
only appears on some distributions and with some compiler/toolchain
versions.
2016-11-10 23:10:01 +00:00
Luca Boccassi
8015794b81 Problem: 4.2.0 is out, time to bump version for development
Solution: update NEWS, include/zmq.h and packaging
2016-11-08 12:54:53 +00:00
Constantin Rack
065169a221 Merge pull request #2201 from bluca/news_blocky
Problem: NEWS says ZMQ_BLOCKY is a sock opt, but it's a ctx opt
2016-11-07 20:08:16 +01:00
Luca Boccassi
4b58b3735f Problem: NEWS says ZMQ_BLOCKY is a sock opt, but it's a ctx opt
Solution: fix it
2016-11-07 15:32:47 +00:00
Constantin Rack
067bfa13b8 Merge pull request #2198 from vyskocilm/master
Problem: linking fails on glibc 2.24 with dladdr missing
2016-11-06 11:40:47 +01:00
Michal Vyskocil
cab901c0a6 Problem: linking fails on glibc 2.24 with dladdr missing
Solution: try to find dladdr function on Linux - glibc systems provides
dlopen/dladdr in libdl and not in libc itseld.
2016-11-06 11:18:55 +01:00
Constantin Rack
ef3c2591fc Merge pull request #2197 from bluca/install_keygen_rpm
Problem: curve_keygen not packaged by RPM spec
2016-11-06 09:40:18 +01:00
Luca Boccassi
b73809c380 Problem: curve_keygen not packaged by RPM spec
Solution: add new libzmq-tools package to ship it
2016-11-06 08:20:02 +00:00
Constantin Rack
d9ff34891b Merge pull request #2196 from bluca/kfreebsd
Problem: some errors on Debian + kFreeBSD
2016-11-05 23:23:01 +01:00
Luca Boccassi
43f3cc5c78 Problem: kFreeBSD does not implement pthread_setschedparam
Solution: do not fail on kFreeBSD if this feature is not available
at runtime.
Thanks Steven Chamberlain <steven@pyro.eu.org> for the patch!
2016-11-05 18:14:22 +00:00
Luca Boccassi
361e99a906 Problem: kFreeBSD might return ECONNRESET under load when destroying engine
Solution: ignore it on kFreeBSD, as it is not an error
Thanks Steven Chamberlain <steven@pyro.eu.org> for the patch!
2016-11-05 18:13:01 +00:00
Luca Boccassi
6585aeaba2 Merge pull request #2195 from vyskocilm/master
Problem: curve_keygen not build unless --enable-curve is passed
2016-11-05 17:13:00 +01:00
Michal Vyskocil
213a7efe86 Problem: curve_keygen not build unless --enable-curve is passed
Solution: test ENABLE_CURVE_KEYGEN and enable it only if
zmq_enable_curve_keygen=yes nad enable_curve=yes. Additionally set
enable_curve=yes for libsodium and tweetnacl, so it is enabled
implicitly and fixes the problem.
2016-11-05 10:51:10 +01:00
Luca Boccassi
8f577248b7 Merge pull request #2193 from warriorkitty/patch-1
Fix small typo
2016-11-04 13:30:38 +00:00
Davor Lozic
a5ad378893 Fix small typo 2016-11-04 14:21:33 +01:00
Doron Somech
42d3ef5e06 Merge pull request #2192 from bluca/udp_news
Problem: NEWS says scatter/gather support UDP but they don't
2016-11-04 13:57:38 +02:00
Luca Boccassi
7ff6d57d47 Problem: NEWS says scatter/gather support UDP but they don't
Solution: fix NEWS
2016-11-04 11:55:50 +00:00
Doron Somech
18bd4d171a Merge pull request #2191 from bluca/news_multicast
Problem: NEWS does not mention UDP multicast transport
2016-11-04 13:34:30 +02:00
Luca Boccassi
127ca8b3f3 Problem: NEWS does not mention UDP multicast transport
Solution: add mention and point to doc/zmq_udp.txt
2016-11-04 11:29:55 +00:00
Luca Boccassi
097bf26e8d Finalize NEWS for 4.2.0 v4.2.0 2016-11-04 10:20:02 +00:00
Lukas Geiger
785d9b5494 Merge pull request #2189 from bluca/changelog
Problem: NEWS out of date
2016-11-04 10:58:54 +01:00
Luca Boccassi
9e52806724 Problem: no NEWS for 4.2.0
Solution: add an overview of the new socket options, new APIs,
DRAFT mechanism (and DRAFT APIs). And a dedication.
2016-11-04 09:48:34 +00:00
Luca Boccassi
932cc8295b Problem: NEWS does not include previouos stable releases
Solution: add release notes from 4.0.x and 4.1.x releases to
capture all important solved bugs.
2016-11-02 17:33:24 +00:00
Doron Somech
7000e84aed Merge pull request #2187 from Dmitriy-GH/master
Add WinXP compatibility
2016-11-02 14:07:47 +02:00
Dmitriy-GH
488cb5a022 MSVC 2015 project for compile libzmq.dll in WinXP compatible mode 2016-11-02 15:51:58 +05:00
Dmitriy-GH
e7b12b3c2a Add WinXP compatibility
#define ZMQ_HAVE_WINDOWS_TARGET_XP  disable uncompatible WinAPI

1. Disable call if_indextoname()
2. Emulate windows Condition Variable API in class condition_variable_t with std::condition_variable
 	
This code can be compiled in MSVC 2015 with option "Platform toolset: Visual Studio 2015 - Windows XP (v140_xp)"
2016-11-02 15:44:27 +05:00
Constantin Rack
819bf785b7 Merge pull request #2186 from bluca/de-draft
Problem: socket option marked as draft for 4.2
2016-11-02 07:03:51 +01:00
Luca Boccassi
b5b5f75242 Problem: socket option marked as draft for 4.2
Solution: move comment further below to declare new socket
options as stable for the 4.2.0 release.
2016-11-01 18:49:42 +00:00
Doron Somech
8cf4832e01 Merge pull request #2184 from bluca/rc
Problems: need to bump NEWS and libtool version
v4.2.0-rc1
2016-11-01 16:48:56 +02:00
Luca Boccassi
6da8385b2a Problem: new public symbols added
Solution: bump ABI version fromo 5:0:0 to 6:0:1 since 4.2 is backward
compatible with 4.1, but new symbols are there
2016-11-01 13:18:21 +00:00
Luca Boccassi
e0d6f4ea11 Problem: no NEWS entry for 4.2.0
Solution: add one, empty for now, fill in after RC release
2016-11-01 13:18:02 +00:00
Luca Boccassi
cc70c829cf Merge pull request #2183 from a4z/opmg_cmake
Problem: CMake build rejects to build with openpgm enabled
2016-11-01 11:47:30 +00:00
Harald
6f597d0bd3 Problem: CMake build rejects to build with openpgm enabled
Solution: add optional lookup for openpgm via pkg-config
2016-11-01 12:31:40 +01:00
Constantin Rack
50a6c117f1 Merge pull request #2182 from pmienk/master
Suppress warning on uninitialized variable use by initializing variable.
2016-10-31 20:31:15 +01:00
Phillip Mienk
28fbee74c8 Suppress warning on uninitialized variable use by initializing variable. 2016-10-31 12:25:30 -07:00
Constantin Rack
fb59cd1aad Merge pull request #2181 from jolting/patch-2
Remove an unnecessary while (true)
2016-10-31 19:50:11 +01:00
Hunter Laux
60b63ed518 Remove an unnecessary while (true)
This block of code will either return -1 or fall through.
The while (true) does nothing.
The braces limit the scope of int rc.
2016-10-31 11:46:57 -07:00
Luca Boccassi
2ece58acfd Merge pull request #2180 from cxreg/xpub-metadata-corruption
Increment metadata refcount while it's in pending_metadata
2016-10-29 23:51:28 +01:00
Dave Olszewski
b7f2c7e7ea Increment metadata refcount while it's in pending_metadata 2016-10-29 14:37:28 -07:00
Doron Somech
16f584745d Merge pull request #2179 from bluca/alignment_windoz
Problem: MS VC++ build broken
2016-10-29 12:32:09 +03:00
Luca Boccassi
2484d1c859 Problem: MS VC++ build broken
Solution: try to detect architecture if building with VC++ and
hardcode pointer size accordingly.
Expressions are not allowed inside declspec intrinsics, which
includes other intrinsics.
2016-10-28 17:14:00 +01:00
Doron Somech
ac14981651 Merge pull request #2177 from bluca/alignment
Problem: pointer union for zmq_msg_t is a hack
2016-10-28 18:00:06 +03:00
Luca Boccassi
df367a6682 Problem: pointer union for zmq_msg_t is a hack
Solution: use compiler's alignment attributes instead which is
clearer and less of a hack.
Pointer alignment violations causing crashes on architectures
such as sparc64 and aarch64.
This also avoid triggering ABI checkers as the change is compatible
even though applications that suffer from the bug should rebuild to
take advantage of the fix.
2016-10-28 15:18:48 +01:00
Luca Boccassi
0d032c99a6 Merge pull request #2176 from robertcastle/master
clock_gettime is now defined in macOS 10.12 SDK
2016-10-28 11:29:58 +01:00
Robert Castle
0dfb32a259 Problem: clock_gettime is now defined in macOS 10.12 SDK
Solution: Rename the custom implementation of clock_gettime for macOS to
alt_clock_gettime and wrap all usage in preprocessor macros to only enable the
alternative version when using macOS <= 10.11.

This issue occurs when targeting macOS 10.11 or earlier but using the 10.12
or newer SDK.
2016-10-28 11:04:21 +01:00
Constantin Rack
2e9264354c Merge pull request #2173 from bluca/without_docs
Problem: build API incompatible with 4.1
2016-10-27 18:34:05 +02:00
Luca Boccassi
8345fe9e95 Problem: build API incompatible with 4.1
Solution: keep the new --without-docs option, but also keep the old
--without-documentation with an added deprecation warning.
We can then remove it in the next major release, to leave enough time
for users and maintainers to change it without disruptions.
2016-10-27 14:20:19 +01:00