Simon Giesecke
7b3acd47b2
Problem: malloc may fail in blob_t ctors
...
Solution: add alloc_assert calls
2018-05-18 16:25:24 +02:00
Simon Giesecke
9da0c6d62f
Problem: goto jumping backwards
...
Solution: replace by for loop
2018-05-18 14:34:43 +02:00
Simon Giesecke
62e48f837d
Problem: assignment within complex condition
...
Solution: restructured code, inverted condition
2018-05-18 14:34:43 +02:00
Simon Giesecke
fcee4ccdfd
Problem: type of retired_fd is not fd_t (but int)
...
Solution: properly declared underlying type of enum declaring retired_fd
2018-05-18 14:34:43 +02:00
Simon Giesecke
f103f62630
Problem: unreachable return statement
...
Solution: fix #if/#else structure
2018-05-18 14:34:42 +02:00
Simon Giesecke
290d215324
Problem: stream_engine assumes options_t.type is a single byte, but its type is int
...
Solution: change options_t.type to int8_t
2018-05-18 14:34:42 +02:00
Luca Boccassi
6a5051fac3
Merge pull request #3114 from sigiesec/fix-some-style-issues
...
Fix some code style issues
2018-05-17 15:43:20 +01:00
Simon Giesecke
e19823d83a
Problem: redundant else
...
Solution: remove redundant else
2018-05-17 15:17:55 +02:00
Simon Giesecke
ad781319ef
Problem: ternary operator used with boolean literals\n\nSolution: Use comparison with 0 instead
2018-05-17 15:17:55 +02:00
Simon Giesecke
22b72bb678
Problem: deallocate calls release after de-allocation
...
Solution: reduce to newly extracted function clear, which does not use the freed pointer
2018-05-17 15:05:41 +02:00
Simon Giesecke
e37fc47fb6
Problem: return value is stored but never used
...
Solution: add code to make non-use explicit
2018-05-17 15:05:41 +02:00
Simon Giesecke
2120f6aced
Problem: ypipe_t::read is called with NULL argument
...
Solution: call check_read instead
2018-05-17 15:05:41 +02:00
Simon Giesecke
440d428153
Problem: single-argument ctor of blob_t is not marked explicit
...
Solution: add explicit
2018-05-17 13:29:27 +02:00
Luca Boccassi
cbd52feb48
Merge pull request #3112 from devindusoft/FixCompilation_ZMQ_ATOMIC_PTR_MUTEX
...
Fixed compilation with ZMQ_ATOMIC_PTR_MUTEX
2018-05-15 15:10:49 +01:00
Luca Boccassi
6a9c6d427f
Merge pull request #3111 from sigiesec/win-draft-fix-and-migrate-test
...
Reenable DRAFT builds on Appveyor and fix test_radio_dish_udp_ipv6
2018-05-15 15:08:56 +01:00
Simon Giesecke
e78d20ff2c
Problem: test_radio_dish_udp_ipv6 triggers assertion under Windows
...
Solution: fix handling of sockaddr in recvfrom
2018-05-15 14:53:40 +02:00
Simon Giesecke
dd1c87f9d9
Problem: type mismatch errors/warnings in Windows build
...
Solution: fix types
2018-05-15 14:53:40 +02:00
Simon Giesecke
10cb710ab8
Problem: appveyor builds do not build DRAFT
...
Solution: set ENABLE_DRAFTS=ON
2018-05-15 14:53:40 +02:00
Luca Boccassi
7953083617
Merge pull request #3109 from sigiesec/migrate-test-spec-dealer-to-unity
...
Problem: test_spec_dealer not using test framework
2018-05-15 13:25:18 +01:00
Simon Giesecke
b30cbfc112
Problem: test_spec_dealer not using test framework
...
Solution: migrate to Unity
2018-05-15 13:58:08 +02:00
korbes
63e1e745f8
Fixed compilation with ZMQ_ATOMIC_PTR_MUTEX
2018-05-14 22:08:15 -03:00
Luca Boccassi
d81a041f18
Merge pull request #3103 from sigiesec/win-warnings-as-errors
...
Warnings in Windows builds
2018-05-14 22:53:04 +01:00
Simon Giesecke
d437d668c0
Problem: MSVC warnings in connection with poll
...
Solution: handle types properly
2018-05-14 22:25:21 +02:00
Simon Giesecke
e447f058e2
Problem: C4244 warnings regarding SOCKET vs. int in test_system
...
Solution: Use fd_t
2018-05-14 21:09:57 +02:00
Simon Giesecke
106127b5d6
Problem: C4267 warnings in test_stream_disconnect
...
Solution: Use size_t instead of int
2018-05-14 21:09:57 +02:00
Simon Giesecke
5ca0d4e8a9
Problem: C4267 warnings in test_spec_router
...
Solution: Use unsigned char instead of size_t
2018-05-14 21:09:57 +02:00
Simon Giesecke
69a6b86310
Problem: C4267 warning test_spec_pushpull
...
Solution: Use unsigned char instead of size_t
2018-05-14 21:09:57 +02:00
Simon Giesecke
3cbc7cb0dc
Problem: C4244 warnings regarding SOCKET vs. int in test_security_null and test_security_plain
...
Solution: Use fd_t
2018-05-14 21:09:56 +02:00
Simon Giesecke
3ee65906af
Problem: various warnings regarding SOCKET vs. int in test_security_curve
...
Solution: Use fd_t
2018-05-14 21:09:56 +02:00
Simon Giesecke
28631d1cd3
Problem: C4550 warning in testutil_security
...
Solution: explicitly compare function pointer against NULL
2018-05-14 19:18:43 +02:00
Simon Giesecke
b0c3a42ed2
Problem: C4800 warnings in unittest_ip_resolver.cpp
...
Solution: make proper boolean expression
2018-05-14 19:18:42 +02:00
Simon Giesecke
c589f2b603
Problem: C4800 warning in socket_base.cpp
...
Solution: make proper boolean expression
2018-05-14 19:18:37 +02:00
Simon Giesecke
c52871f82c
Problem: C4627 warning in proxy.cpp and signaler.cpp
...
Solution: move conditional include directive to precompiled.hpp
2018-05-14 18:07:13 +02:00
Simon Giesecke
a8095a1046
Problem: C4800 warning in ip_resolver.cpp
...
Solution: fix type specification
2018-05-14 18:07:13 +02:00
Simon Giesecke
95c770a275
Problem: C4099 warning in udp_engine.cpp
...
Solution: fix type specification
2018-05-14 17:17:11 +02:00
Simon Giesecke
d7e99085ef
Problem: Warnings in Windows builds
...
Solution: enable warnings-as-errors
2018-05-14 17:17:10 +02:00
Luca Boccassi
6092431b97
Merge pull request #3100 from sigiesec/fix-poller-invalid-events
...
Problem: zmq_poller_[add/modify] accept invalid events arguments silently
2018-05-14 15:26:19 +01:00
Simon Giesecke
8ad43907e6
Merge pull request #3101 from bluca/heartbeat_disabled
...
Problem: heartbeat tests are disabled
2018-05-14 15:05:29 +02:00
Simon Giesecke
bf6bde3ae3
Problem: unnecessary ifdefs regarding handling of int vs. SOCKET at various places
...
Solution: use a typedef instead
2018-05-14 14:58:36 +02:00
Simon Giesecke
e8877f78a9
Problem: zmq_poller_[add/modify] accept invalid events arguments silently
...
Solution: check and return an error on invalid arguments. Fixes #3088
2018-05-14 14:58:36 +02:00
Luca Boccassi
eac265059d
Problem: heartbeat tests are disabled
...
Solution: re-enable them
2018-05-14 13:41:39 +01:00
Simon Giesecke
6b9b369469
Problem: zmq_poller_* argument check code is cloned
...
Solution: extract common code into functions
2018-05-14 14:34:46 +02:00
Luca Boccassi
54aff77475
Merge pull request #3096 from sigiesec/add-poller-docs
...
Add poller docs
2018-05-14 11:10:10 +01:00
Simon Giesecke
4fea7184dc
Problem: man zmq_poller_* not working
...
Solution: add symlinks to zmq_poller.txt
2018-05-14 11:29:24 +02:00
Simon Giesecke
f4b1cae082
Problem: no documentation for zmq_poller_*
...
Solution: add initial documentation
2018-05-14 11:29:24 +02:00
Simon Giesecke
213254cca5
Problem: inconsistent behaviour of zmq_poller_new in case of memory exhaustion
...
Solution: return NULL and set errno to ENOMEM
2018-05-14 11:29:24 +02:00
Simon Giesecke
2cd147e5ff
Problem: misleading comment for calling zmq_poller_add with events == 0
...
Solution: change comment, and add test case for zmq_poller_modify with events == 0
2018-05-14 11:29:24 +02:00
Simon Giesecke
00d25b7873
Problem: inconsistent behaviour of zmq_poller_add and zmq_poller_add_fd in case of memory exhaustion
...
Solution: always return -1 with errno == ENOMEM
2018-05-14 11:29:24 +02:00
Luca Boccassi
0a037a7431
Merge pull request #3097 from sigiesec/ping-context
...
ZMTP 3.1 PING Context not implemented
2018-05-14 09:55:41 +01:00
Simon Giesecke
be66eacf5c
Problem: test_heartbeats still using plain assertions
...
Solution: migrate to unity assertions
2018-05-14 10:14:32 +02:00
Luca Boccassi
b331caad06
Problem: ZMTP 3.1 PING Context not implemented
...
Solution: if a PING message contains a context, echo it back in the
PONG message. In order to do so, create the PONG message when PING
is received and store it in the engine.
After the PING the engine goes straight to encoding and sending, so
there can always be at most one pending PING.
Add tests for various contexts.
2018-05-14 10:14:13 +02:00
Luca Boccassi
5482b1ca45
Problem: heartbeat command parsing does not check command name size
...
Solution: treat the first byte of the command body as the size of the
command name, rather than as an id, to comply with ZMTP 3.1.
This was not an actual problem at runtime since both heartbeat
commands have a size of 4, which was treated like an id.
But once SUBSCRIBE/UNSUBSCRIBE get implemented it needs to be checked.
2018-05-14 09:15:39 +02:00
Luca Boccassi
ba9274c39a
Problem: test_heartbeats mocked ZMQ_REP is hacky and fragile
...
Solution: remove it, it doesn't add much value anyway
2018-05-14 09:15:38 +02:00
Simon Giesecke
f218478237
Problem: test_heartbeats use no test framework
...
Solution: migrate to unity
2018-05-14 09:15:38 +02:00
Simon Giesecke
df2fe88b92
Merge pull request #3095 from bluca/sunstudio_linux
...
Problem: building on Linux with Sun Studio still fails
2018-05-13 21:21:50 +02:00
Luca Boccassi
09f700f72e
Problem: uninitialised class variable warning
...
Solution: initialise it
2018-05-13 18:24:50 +01:00
Luca Boccassi
7ba074fa28
Problem: Sun Studio build errors
...
Solution: add compiler flags to support extensions like anonymous
structs in unions, fix casting of const, and check for suncc rather
than solaris
2018-05-13 18:24:50 +01:00
Simon Giesecke
cdb54d248b
Merge pull request #3094 from simias/mcast-if
...
Problem: no way to specify source interface for UDP multicast sender …
2018-05-13 18:47:59 +02:00
Lionel Flandrin
a833ace204
Problem: no way to specify source interface for UDP multicast sender sockets
...
Solution: if a binding interface is provided in the sender URL we pass
it to IP[V6]_MULTICAST_IF setsockopt
2018-05-13 18:32:12 +02:00
Luca Boccassi
f6e528443e
Merge pull request #3093 from simias/fix-aliasing
...
Problem: test_radio_dish triggers aliasing errors with some compilers
2018-05-13 16:31:49 +01:00
Lionel Flandrin
4eb6786347
Problem: test_radio_dish triggers aliasing errors with some compilers
...
Solution: refactor the test code to work around aliasing issues
2018-05-13 17:05:05 +02:00
Simon Giesecke
21f642fa4f
Merge pull request #3092 from bluca/solaris_studio
...
Problem: build broken on Solaris with Sun Studio compilers
2018-05-13 15:05:16 +02:00
Luca Boccassi
c5b7f4f536
Problem: test_system info output hidden on Solaris
...
Solution: change the ifdef to always print on any Unix, as they
all have ulimit
2018-05-13 13:19:07 +01:00
Luca Boccassi
510a42c3d5
Problem: test_system fails on Solaris due to lower file limit
...
Solution: use a different max socket value on Solaris, where the
default limit is 256 instead of 1024
2018-05-13 13:18:08 +01:00
Luca Boccassi
b78cfb2395
Problem: mismatching declarations and definitions break Solaris Studio build
...
Solution: add missing const qualifier to internal functions
2018-05-13 13:17:20 +01:00
Luca Boccassi
8b82ed50a2
Problem: Solaris Studio does not convert from char * to string
...
Solution: do it explicitly to fix build on Solaris 10/11 with the Sun
compiler
2018-05-13 13:16:37 +01:00
Simon Giesecke
3d9c119543
Problem: compilation broken on Solaris
...
Solution: remove constness on pair arguments. Fixes #3090
2018-05-13 13:15:32 +01:00
Luca Boccassi
15e8de2f88
Merge pull request #3091 from sigiesec/fix-warnings-msvc
...
Problem: warnings in MSVC builds around size_t/int
2018-05-13 12:11:05 +01:00
Simon Giesecke
d6433b5c24
Problem: warnings in MSVC builds around size_t/int
...
Solution: use proper types
2018-05-13 11:11:19 +02:00
Simon Giesecke
5fe783070b
Merge pull request #3085 from bluca/getrandom_test
...
Problem: getrandom test does not check if it's working
2018-05-11 09:51:43 +02:00
Luca Boccassi
0f896fcd36
Merge pull request #3087 from simias/mcast_loop
...
Problem: ZMQ doesn't expose the MULTICAST_LOOP socket option
2018-05-10 19:10:28 +01:00
Lionel Flandrin
4b635c3d06
Problem: documentation for zmq_udp is outdated
...
Solution: update to document new binding options and IPv6 support
2018-05-10 19:24:48 +02:00
Lionel Flandrin
99412c810d
Problem: ZMQ doesn't expose the MULTICAST_LOOP socket option
...
Solution: add a new ZMQ_MULTICAST_LOOP option for UDP sockets.
2018-05-10 19:24:46 +02:00
Luca Boccassi
e9211aed2c
Merge pull request #3086 from simias/warning-fix
...
Problem: test helper recv_string_expect_success ignores flags
2018-05-10 11:15:01 +01:00
Lionel Flandrin
f9c30f3e19
Problem: test helper recv_string_expect_success ignores the flags argument
...
Solution: pass the flags to zmq_recv
2018-05-10 11:43:47 +02:00
Luca Boccassi
3c2656eb52
Merge pull request #3081 from simias/udp_ipv6
...
UDP Ipv6 support
2018-05-09 13:01:06 +01:00
Lionel Flandrin
b0df4be51c
Problem: UDP engine does not support IPv6
...
Solution: Add IPv6 support
2018-05-09 12:06:23 +02:00
Luca Boccassi
4ff814f204
Problem: getrandom test does not check if it's working
...
Solution: check return value in autoconf and CMake. On some platforms
the function is available but not implemented (eg: GNU/Hurd).
2018-05-09 10:41:20 +01:00
Luca Boccassi
7aba6821ac
Merge pull request #3084 from jorikcaljouw/new_fix_vs2015
...
Add ip_resolver.cpp and ip_resolver.hpp for vs2015 libzmq project
2018-05-08 13:17:33 +01:00
Jorik Caljouw
45b0ff59ff
Add ip_resolver.cpp and ip_resolver.hpp for vs2015 libzmq project
2018-05-08 14:04:05 +02:00
Constantin Rack
b9ba36389d
Merge pull request #3083 from asafkahlon/master
...
acinclude.m4: check if -latomic is needed.
2018-05-07 22:25:41 +02:00
Asaf Kahlon
2ec5a33f6e
acinclude.m4: check if -latomic is needed.
...
On some cases, -latomic is needed for likning, and since the current
acinclude.m4 checks only compilation we can sometimes miss the need for -latomic
and the linking process will fail.
Therefore, the AC_CHECK_IFELSE was replaced with AC_LINK_IFELSE. If the first
try fails, we try to link again with -latomic and add LIBS="-latmoic" in case we
succeeded.
Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
2018-05-07 22:02:25 +03:00
Luca Boccassi
363fa7892d
Merge pull request #3078 from simias/mcast_bind
...
Mcast bind
2018-05-04 14:22:53 +01:00
Lionel Flandrin
746d4a0f5e
Problem: UDP transport doesn't let the user specify the local bind address
...
for multicast
Solution: augment the UDP URL syntax to accept an interface specifier with a
syntax similar to the PGM urls.
Fixes #2212
2018-05-04 14:36:18 +02:00
Lionel Flandrin
524affc4c3
Problem: UDP address parser uses ad hoc code to detect multicast address
...
Solution: factor the code into ip_resolver, add IPv6 support and unit tests.
2018-05-04 10:44:01 +02:00
Luca Boccassi
1bb1029bd1
Merge pull request #3075 from simias/udp_parser
...
Udp parser
2018-05-03 14:40:37 +01:00
Lionel Flandrin
2dc8579412
Problem: the UDP address code uses an ad hoc custom parser
...
Solution: replace it with the ip_resolver code shared with the TCP
address code
It simplifies the UDP parsing code and makes it behave more like the
TCP counterpart, in particular it's not possible to connect to hosts
by name and bind by NIC names.
It also adds support for "*" port resolving to 0 (useful to let the OS
allocate the port number).
2018-05-03 14:22:48 +02:00
Lionel Flandrin
0b36b84243
Problem: no unit tests for udp_address.cpp
...
Solution: add unit tests
2018-05-03 14:22:42 +02:00
Luca Boccassi
801559c504
Merge pull request #3077 from simias/port_check
...
Problem: ip_resolver allows wildcard ports for non-bindable sockets
2018-05-03 13:07:37 +01:00
Lionel Flandrin
406c348771
Problem: ip_resolver allows wildcard ports for non-bindable sockets
...
Solution: return an error in this situation but still allow using an explicit
"0" if somebody really wants to connect to port 0.
This shouldn't break any existing code because a "*" port was already rejected
in an early test in the TCP path in zmq::socket_base_t::connect.
2018-05-03 13:19:22 +02:00
Luca Boccassi
889ac2eb3d
Merge pull request #3074 from simias/author
...
Add me to AUTHORS + RELICENSE file
2018-05-02 18:27:27 +01:00
Lionel Flandrin
e027c80ed3
Added simias.md to RELICENSE
2018-05-02 19:24:20 +02:00
Lionel Flandrin
142ee305e7
Add Lionel Flandrin to AUTHORS
2018-05-02 19:24:07 +02:00
Luca Boccassi
5f7c9c43f5
Merge pull request #3070 from simias/ip_refactor_clean
...
Problem: address parsing code is tied to the TCP code
2018-05-02 18:05:06 +01:00
Lionel Flandrin
4cd2c2ebf8
Problem: address parsing code is tied to the TCP code
...
Solution: Factor the code into a different file with a well defined API and add
unit tests.
2018-05-02 18:06:01 +02:00
Simon Giesecke
6160da5dbe
Merge pull request #3068 from bluca/appveyor_cache
...
More attempts to speed up Appveyor
2018-04-30 20:21:54 +02:00
Luca Boccassi
578c255f4f
Problem: Appveyor VS 2015/17 images are single-core
...
Solution: use 2013 images for all builds bar 2, to test newer versions
2018-04-30 16:29:16 +01:00
Luca Boccassi
2af2701ba6
Problem: Appveyor rebuilds libsodium every time
...
Solution: cache the git repository and build directory
2018-04-29 22:41:39 +01:00
Luca Boccassi
09d951ada3
Problem: Appveyor runs test sequentially
...
Solution: add -j flag to run them in paralle, cuts test runtime
from ~80 to ~20 seconds
2018-04-29 22:14:05 +01:00
Luca Boccassi
e5eab4b91f
Problem: CMake parallel build not enabled for C files
...
Solution: set the equivalent flag
2018-04-29 22:14:05 +01:00