3882 Commits

Author SHA1 Message Date
Luca Boccassi
6bbc6b67f6 Update NEWS for fix #1952 2016-05-04 11:38:25 +01:00
Luca Boccassi
c369d9bd36 Problem: doc/Makefile.am ignores --without-docs
Solution: add the document files to the MAN_DOC and MAN_HTML targets
in doc/Makefile.am only if BUILD_DOC and INSTALL_MAN are set,
otherwise leave the targets empty to avoid errors in make distcheck.
2016-05-04 11:29:46 +01:00
Pieter Hintjens
4dd6257d93 Problem: source packages lack makefiles for all systems except msvc
Solution: specify the necessary EXTRA_DIST

I added a Makefile.am in builds that covers all systems except msvc,
which already has a Makefile.am that does this.

Fixes #1505
2016-05-04 11:25:35 +01:00
Min RK
3ad076a7a3 Merge pull request #118 from bluca/zmq_unbind_api_breakage
Problem: can't unbind with bound addr with IPv6
2016-04-21 12:03:17 +02:00
Luca Boccassi
81c9c498ee Update NEWS for fix #114 2016-04-21 10:52:35 +01:00
Luca Boccassi
0af39a443f Problem: can't unbind with bound addr with IPv6
Solution: try to resolve the TCP endpoint passed by the user in the
zmq_unbind call before giving up, if it doesn't match.
This fixes a breakage in the API, where after a call to
zmq_bind(s, "tcp://127.0.0.1:9999") with IPv6 enabled on s would
result in the call to zmq_unbind(s, "tcp://127.0.0.1:9999") failing.
Add more test cases to increase coverage on all combinations of TCP
endpoints.
2016-04-21 10:52:11 +01:00
Luca Boccassi
1586f3f25e Problem: can't test if IPv6 is available in tests
Solution: add helper function is_ipv6_available to testutil.hpp to
test if IPv6 is available on the building platform.
This function will try to open and bind a socket to ::1:*, as it's
the ultimate way of knowing if, at least on the loopback, IPv6 is
enabled.
2016-04-21 10:52:11 +01:00
Pieter Hintjens
b315d610b8 Merge pull request #119 from hitstergtd/fix-NEWS-for-pr-1877
Problem: No NEWS entry for Issue #919
2016-04-20 19:12:30 +02:00
hitstergtd
2018743b4e Problem: No NEWS entry for Issue #919
Solution: add entry and mark it as related to Issue #1877 and PR #1511
2016-04-20 08:59:43 +01:00
Constantin Rack
dd077bc2b2 Merge pull request #117 from bluca/solaris_fixes
Problem: build broken on Solaris 10
2016-04-13 22:56:53 +02:00
Luca Boccassi
e488df7892 Update NEWS for fix #1866 2016-04-13 00:22:22 +01:00
Luca Boccassi
02d71a88ab Problem: missing () after sizeof cause build fail
Solution: use sizeof () to avoid build failure on Solaris 10 with
gcc 3.4
2016-04-13 00:14:25 +01:00
Luca Boccassi
b2eddf9746 Problem: -lssp causes build failure on Solaris
Solution: add -lssp on Solaris only when libsodium is enabled and has
been found. Also disable pedantic and Werror, as libsodium headers
use pragma diagnostic which are not available in gcc 3.4.
2016-04-13 00:14:25 +01:00
Luca Boccassi
3945f27f6d Problem: pragma diagnostic is new in GCC 4.2
Solution: check for GCC version before using pragma diagnostic
in tweetnacl to avoid an additional warning.
2016-04-12 23:52:34 +01:00
Constantin Rack
71050259f7 Merge pull request #116 from bluca/ipv6_downgrade 2016-04-07 18:30:13 +02:00
Luca Boccassi
6d92d263e1 Update NEWS for fix #1887 2016-04-07 17:11:06 +01:00
Luca Boccassi
1a1abe3d5e Problem: redundant Windows errno conversion
Solution: in the Windows-specific ifdef in tcp_listener set_address,
check for error and set errno only after the IPv4 fallback has failed
too, to avoid setting errno when the socket creation succeeds through
the fallback.
2016-04-07 14:16:35 +01:00
Luca Boccassi
1e87d92527 Problem: zmq_connect (TCP) has no IPv4 fallback
Solution: if opening an IPv6 TCP socket fails because IPv6 is not
available, try to open an IPv4 socket instead when creating and
connecting a TCP endpoint.
2016-04-07 14:16:35 +01:00
Luca Boccassi
82aed1dee6 Problem: zmq_bind IPv4 fallback still tries IPv6
Solution: if opening an IPv6 TCP socket fails because IPv6 is not
available, try to open an IPv4 socket instead when creating and
binding a TCP endpoint.
2016-04-07 14:15:29 +01:00
Pieter Hintjens
197a9e05e2 Merge pull request #115 from bluca/linger_fix_backport
Problem: connection might terminate prematurely
2016-03-30 19:41:34 +02:00
Luca Boccassi
cf0dcd2379 Problem: NEWS not up to date with bug fixes
Solution: mention closing issue #1877
2016-03-30 18:11:57 +01:00
Soren Hansen
bf92026527 Avoid terminating connections prematurely
While sending very large messages (far beyond what fits in a the tcp
buffer, so it takes multiple sendto system calls for it to finish),
zmq_close will close the connection regardless of ZMQ_LINGER.

In case no engine is attached, a pipe->check_read() is needed to look
for the delimiter in the pipe and ultimately trigger the pipe
termination.

However, if there *is* an engine attached, the check_read() looks ahead
and finds the delimiter and terminates the connection even though the
engine might actually still be in the middle of sending a message.

This happens because while the io_thread is still busy sending the data,
the pipe can get terminated and the io thread ends up being terminated.
2016-03-30 17:04:48 +01:00
Constantin Rack
d8732929d5 Merge pull request #112 from hintjens/master 2016-03-15 07:02:50 +01:00
Pieter Hintjens
bbe4f3ede4 Problem: does not build on Windows with libsodium
Solution: fixed wrong condition around randombytes_close ().
2016-03-15 06:26:34 +01:00
Constantin Rack
e0041f1fcb Merge pull request #111 from hintjens/master
Problem: cannot disable encryption if libsodium is installed
2016-03-12 20:52:29 +01:00
Pieter Hintjens
98834596f1 Problem: cannot disable encryption if libsodium is installed
The sodium/tweetnacl detection logic does not yet you disable
encryption if libsodium is installed.

Fixes #1850 in libzmq/master
2016-03-12 15:40:24 +01:00
Pieter Hintjens
5aa7bdfc68 Merge pull request #109 from hintjens/master
Updated news for fix #1831
2016-03-01 17:05:52 +01:00
Pieter Hintjens
25be170b57 Updated news for fix #1831 2016-03-01 17:05:22 +01:00
Pieter Hintjens
c1d8420335 Merge pull request #108 from hintjens/master
Problem: can't be sure crypto_box always returns 0
2016-03-01 17:05:10 +01:00
Pieter Hintjens
58badc44c1 Problem: can't be sure crypto_box always returns 0
Libsodium has started returning -1 in some cases.

Solution: allow and handle error returns from these calls.

Fixes #1831
2016-03-01 17:01:00 +01:00
Pieter Hintjens
4985b084e6 Merge pull request #107 from grimbeaver/fix-vs-versions
Update VS version resource and package version.
2016-02-29 21:38:54 +01:00
Thomas Brezinski
2fba10d691 Update VS version resource and package version. 2016-02-29 13:32:07 -06:00
Pieter Hintjens
0b781f84e8 Merge pull request #104 from bluca/uninitialised_news
Problem: news out of date
2016-02-16 15:05:39 +01:00
Luca Boccassi
b1a150a675 Problem: my name is not in the AUTHORS file
Solution: add myself to the list
2016-02-16 14:04:10 +00:00
Luca Boccassi
5977a8a5b6 Problem: NEWS not up to date with bug fixes
Solution: mention issues 1806 and 1807
2016-02-16 14:02:30 +00:00
Pieter Hintjens
4d45ee9440 Merge pull request #103 from bluca/uninitialised_sockopt
Problem: curve keys getsockopt uninitialised read
2016-02-16 14:51:29 +01:00
Luca Boccassi
eda5426865 Problem: Travis CI uses libsodium unstable branch
Solution: use stable branch instead of the development branch, and
also clone with --depth 1 to make it more efficient.
2016-02-16 13:41:46 +00:00
Luca Boccassi
6a66c05179 Problem: curve keys getsockopt uninitialised read
Solution: always initialised zmq::options_t class variables arrays to
avoid reading uninitialised data when CURVE is not yet configured and
a getsockopt ZMQ_CURVE_{SERVER | PUBLIC | SECRET]KEY is issued.

Backport from libzmq.
2016-02-16 13:40:40 +00:00
Pieter Hintjens
cb811a1e0c Merge pull request #102 from hintjens/master
Backported fix #1608
2016-02-16 12:03:11 +01:00
Pieter Hintjens
87dd03750b Updated NEWS for fix #1608 2016-02-16 12:02:26 +01:00
Pieter Hintjens
4cee289697 Problem: Windows 7 TCP slow start
See issue #1608.

This is an old issue with Windows 7. The effect is that we see a latency
ramp on the first 500 messages.

* The ramp is unaffected by message size.
* Sleeping up to 100msec between sends has no effect except to switch
    off ZeroMQ batching so making the ramp more visible.
* After 500 messages, latency falls back down to ~10-40 usec.
* Over inproc:// the ramp happens when we use the signaler class.
* Client-server over inproc:// does not show the ramp.
* Client-server over tcp:// shows a similar ramp.

We know that the signaller is using TCP on Windows. We can 'prime' the
connection by doing 500 dummy sends. This potentially causes new sockets
to be delayed on creation, which is not a good solution.

Note that the signaller sends zero-byte messages. This may also be
confusing TCP.

Solution: flood the receive buffer when creating a new FD pair; send a
1M buffer and discard it.

Fixes #1608
2016-02-16 12:01:45 +01:00
Pieter Hintjens
b624f1adc9 Merge pull request #101 from bluca/gcc6
Problem: build broken with gcc 6
2016-02-12 23:17:22 +01:00
meox
49593151db [PATCH] fix error with gcc 5.2 2016-02-12 21:57:51 +00:00
Pieter Hintjens
b341dd7ffe Merge pull request #100 from CommanderBubble/master
compilation fixes for when _WIN32_WINNT >= 0x0600
2016-02-12 13:45:12 +01:00
Michael
2058dece77 added windows.hpp with include check
windows.hpp must be included before zmq.h when _WIN32_WINNT >= 0x0600
2016-02-12 23:36:48 +11:00
Michael
45404f4b06 added windows.hpp with include check
windows.hpp must be included before zmq.h when _WIN32_WINNT >= 0x0600
2016-02-12 23:36:07 +11:00
Michael
6f4e9f13f3 changed order of includes
windows.hpp must be included before zmq.h when _WIN32_WINNT >= 0x0600
2016-02-12 23:34:43 +11:00
Michael
af3b9452a2 remove include that is already in header 2016-02-12 23:33:22 +11:00
Michael
626abbdaf2 update for mingw's default _WIN32_WINNT
mingw defaults with _WIN32_WINNT as 0x0502 which doesn't define inet_pton(), so add a conditional check
2016-02-12 23:32:20 +11:00
Michael
d0b341cf0f update for mingw's default _WIN32_WINNT
mingw defaults with _WIN32_WINNT as 0x0502 which doesn't define inet_pton(), so add a conditional check
2016-02-12 23:31:55 +11:00