0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-31 01:43:02 +08:00

5261 Commits

Author SHA1 Message Date
Andreas Rottmann
365ca8595d Fix #include case for <mstcpip.h>
On native Windows, the file system is case-insensitive, so this this
doesn't matter there.

However, when compiling on a case-sensitive filesystem, such as when
cross-compiling from a Unixoid using mingw, we have to use the case
the file is supplied with, which is all lowercase.
2016-12-08 16:35:44 +01:00
Constantin Rack
519940d07c Merge pull request #2241 from bluca/aix_test
Problem: test_stream_exceeds_buffer fails to build on AIX
2016-12-07 05:46:34 +01:00
Luca Boccassi
dcec022358 Problem: test_stream_exceeds_buffer does not build on AIX
Solution: add missing includes
2016-12-06 20:34:10 +00:00
Luca Boccassi
8325355d73 Problem: test_stream_exceeds_buffer has redundant includes
Solution: remove them as they are already in testutil.hpp
2016-12-06 20:33:46 +00:00
Constantin Rack
5e03ad6d87 Merge pull request #2240 from bluca/aix_poll
Problem: 4.2.0 won't compile on AIX 7.1
2016-12-06 19:34:20 +01:00
Luca Boccassi
57db5f2a5c Problem: 4.2.0 won't compile on AIX 7.1
Solution: restore inclusion of poll.h if using poll before zmq.h as
it was originally, as AIX redefines the POSIX structures and provides
compatibility macros.
Also add alternative aliases for 32 bit AIX's pollitem struct:
  events -> reqevents
  revents -> rtnevents
2016-12-05 22:50:10 +00:00
Luca Boccassi
3f8e6c0812 Merge pull request #2239 from loachfish/master
avoid crashing in the multi-thread operation for std::vector
2016-12-05 14:22:28 +01:00
Justin.Hung
52ebffd715 avoid crashing in the multi-thread operation for std::vector
1. stl container is not thread safety
2. rm_fd() and loop() end to clear the retired event source will in multi-thread operation
3. may be crashed in reaper thread to delete the items in the std::vector as the source is nullptr
2016-12-05 09:28:05 +08:00
Constantin Rack
42c63368e6 Merge pull request #2238 from bluca/revert
Problem: PR #2236 breaks the build
2016-12-04 07:42:47 +01:00
Luca Boccassi
e46d91d41f Problem: PR #2236 breaks the build
Solution: Revert "avoid crashing in the multi-thread operation for std::vector"

This reverts commit e1368bdac804a49de101725ede1f900aebe82c10.
2016-12-03 22:10:19 +00:00
Constantin Rack
324f10494a Merge pull request #2236 from loachfish/master
avoid crashing in the multi-thread operation for std::vector
2016-12-03 16:09:56 +01:00
Justin.Hung
e1368bdac8 avoid crashing in the multi-thread operation for std::vector
1. stl container is not thread safety
2. rm_fd() and loop() end to clear the retired event source will in multi-thread operation
3. may be crashed in reaper thread to delete the items in the std::vector as the source is nullptr
2016-12-02 17:33:13 +08:00
Constantin Rack
9a20f42f62 Merge pull request #2235 from bluca/cmake_soversion
Problem: CMake build uses library version as the ABI version
2016-12-02 07:32:55 +01:00
Luca Boccassi
abeaba1557 Problem: CMake build uses library version as the ABI version
Solution: set SOVERSION in CMakeLists to match the SONAME generated
by libtool so that there is no mismatch between the output of the
*NIX build systems.

Before:
$ ls -l
total 2696
lrwxrwxrwx 1 luca luca      15 Dec  1 22:36 libzmq.so -> libzmq.so.4.2.0
lrwxrwxrwx 1 luca luca      15 Dec  1 22:36 libzmq.so.4.2.0 -> libzmq.so.4.2.1
-rwxr-xr-x 1 luca luca  906168 Dec  1 22:36 libzmq.so.4.2.1
$ readelf -d libzmq.so.4.2.1 | grep SONAME
 0x000000000000000e (SONAME)    Library soname: [libzmq.so.4.2.0]

After:
$ ls -l
total 2700
lrwxrwxrwx 1 luca luca      15 Dec  1 22:31 libzmq.so -> libzmq.so.5.1.0
-rwxr-xr-x 1 luca luca  906168 Dec  1 22:31 libzmq.so.4.2.1
lrwxrwxrwx 1 luca luca      15 Dec  1 22:31 libzmq.so.5.1.0 -> libzmq.so.4.2.1
$ readelf -d libzmq.so.4.2.1 | grep SONAME
 0x000000000000000e (SONAME)    Library soname: [libzmq.so.5.1.0]
2016-12-01 22:36:40 +00:00
Laughing
febf801584 bug fix: AIX pollset error (#2233)
* bug fix: AIX pollset error

buf fix:  AIX only, pollset 'rm_fd' set fd_table to null first then set pe->fd to retired_fd

* remove extra spaces

remove extra spaces
2016-12-01 11:59:23 +01:00
Constantin Rack
294bdb4eb6 Merge pull request #2231 from bluca/windows_ipv6_tos
Problem: Windows does not support IPV6_TCLASS
2016-11-30 21:07:32 +01:00
Luca Boccassi
33fcd2d6ca Problem: Windows does not support IPV6_TCLASS
Solution: don't use it on Windows.
There is a Windows-specific API for ToS, even IPv4 does not work and
it's just a silent no-op on that platform.
2016-11-30 11:09:12 +00:00
Constantin Rack
4a24805f70 Merge pull request #2225 from bluca/select_broken
Problem: select broken
2016-11-24 20:00:33 +01:00
Luca Boccassi
121c9d16f5 Problem: select.cpp/hpp build fails with reorder error
Solution: initialise class variables in the same order they are
declared
2016-11-24 13:07:47 +00:00
Luca Boccassi
ba74890f2f Problem: cannot pick select for poller
Solution: fix acinclude.m4 snippet that checks if select is
available to stop it erroring out.
2016-11-24 12:44:51 +00:00
Luca Boccassi
e6572fac80 Merge pull request #2222 from SuperFluffy/doc_explain_context
Add a single sentence explaining what a context is
2016-11-21 14:17:36 +01:00
Richard Janis Goldschmidt
ec25fd2ada Add a single sentence explaining what a context is 2016-11-21 14:11:33 +01:00
Luca Boccassi
53bf6dfcf0 Merge pull request #2221 from minrk/check-socket
only compare pollitem.fd if pollitem.socket is NULL
2016-11-21 12:17:01 +01:00
Min RK
f302d8a7b6 only compare pollitem.fd if pollitem.socket is NULL
item.fd should be ignored if item.socket is defined.

Failing to check .socket could cause false-matches, raising EINVAL in zmq_poller_modify_fd.
2016-11-21 11:47:50 +01:00
Constantin Rack
185fed3966 Merge pull request #2220 from bluca/zmq_msg_size
Problem: size of zmq_msg_t is not known to FFI wrappers
2016-11-20 14:59:45 +01:00
Luca Boccassi
8a286bb842 Problem: no documentation for ZMQ_MSG_T_SIZE ctx option
Solution: mention it in zmq_ctx_get manpage
2016-11-20 12:51:25 +00:00
Luca Boccassi
b480457283 Problem: ZMQ_MSG_T_SIZE is not mentioned in NEWS
Solution: mention it as it's a new public API (still draft until release)
2016-11-20 12:50:45 +00:00
Luca Boccassi
670bec56d8 Problem: size of zmq_msg_t is not known to FFI wrappers
Solution: add a ZMQ_MSG_T_SIZE context read-only option so that
wrappers can call zmq_ctx_get (ctx, ZMQ_MSG_T_SIZE) to get the
size at runtime.
2016-11-20 12:24:03 +00:00
Constantin Rack
3db69212b7 Merge pull request #2216 from rotty/master
Document terminating NUL behavior in API more explicitly
2016-11-16 20:03:18 +01:00
Andreas Rottmann
5d176cbe98 Document terminating NUL behavior in API more explicitly
This addresses #2169.
2016-11-16 19:56:18 +01:00
Constantin Rack
93ccb5a16d Merge pull request #2215 from Bklyn/udp-bugfix
Problem: inconsistent indentation and tabs in code
2016-11-15 20:41:32 +01:00
Caleb Epstein
10181d7641 Untabify 2016-11-15 14:33:47 -05:00
Luca Boccassi
5879f729dd Merge pull request #2214 from Bklyn/udp-bugfix
Problem: multicast is spelled incorrectly in udp_address class
2016-11-15 20:13:21 +01:00
Caleb Epstein
f577ceab4b Problem: multicast is spelled incorrectly in udp_address class
Solution: Fix typo of 'mutlicast' -> 'multicast'
2016-11-15 14:06:34 -05:00
Constantin Rack
ace95327a3 Merge pull request #2213 from Bklyn/udp-bugfix
Fix htons copy pasta
2016-11-15 19:55:54 +01:00
Caleb Epstein
cdac1ac9d3 Fix htons copy pasta 2016-11-15 13:51:49 -05:00
Constantin Rack
b9b0fd87a4 Merge pull request #2210 from bluca/ipv6_tos_v4_only
Problem: IPV6_TCLASS setsockopt fails on IPv4 socket
2016-11-14 13:58:28 +01:00
Luca Boccassi
90f091abf3 Problem: IPV6_TCLASS setsockopt fails on IPv4 socket
Solution: if setsockopt errors out and errno is set to ENOPROTOOPT
(or EINVAL on OSX) ignore it and carry on.
2016-11-14 12:52:31 +00:00
Luca Boccassi
bc1860430a Merge pull request #2209 from saifhhasan/master
Make ZMQ_TOS work with IPv6 sockets
2016-11-14 11:37:24 +01:00
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