James Wu
228edc92a9
fix test comparison between -1 and unsigned winsock2.h socket return
2021-09-24 13:13:19 -07:00
Luca Boccassi
de0b3e72dd
Merge pull request #4255 from egpbos/zmq_ppoll
...
add zmq_ppoll
2021-09-24 12:56:27 +01:00
E. G. Patrick Bos
36e4c9b474
add zmq_ppoll
...
zmq_ppoll mostly mimics zmq_poll behavior, except for the added feature of being able to specify a signal mask. Signals in this mask will be blocked during execution of zmq_ppoll. Switching of the process' active signal mask happens atomically with the actual poll call, so that no race conditions can occur. This behavior is useful when one wants to gracefully handle POSIX signals without race conditions. See e.g. the discussion below https://250bpm.com/blog:12/ for an explanation.
Also includes two new tests:
1. test_zmq_ppoll_fd does the same thing as test_zmq_poll_fd, demonstrating backwards compatibility with zmq_poll when used with a default signal mask.
2. test_zmq_ppoll_signals demonstrates the use of zmq_ppoll with a signal mask, blocking out SIGTERM everywhere except in zmq_ppoll, allowing to handle the signal in one place without having to worry about race conditions.
2021-09-24 11:04:20 +02:00
Luca Boccassi
f730e03835
Merge pull request #4259 from bluca/ci
...
Problem: Travis is no longer free for FLOSS projects
2021-09-22 21:13:27 +01:00
Luca Boccassi
cf8afcc411
Problem: Travis is no longer free for FLOSS projects
...
Solution: switch to Github Actions
Travis recently started enforcing credits for OSS projects without
any funding. While it is possible to get free credits, it is a manual
step that involves contacting customer support via email and asking to
add them, every week. While this does not require money, it requires
something far scarcer: volunteers time.
Drop Travis and migrate to Github Actions.
2021-09-22 16:42:09 +01:00
Luca Boccassi
6f200814cd
Problem: some tests occasionally fail on OBS
...
Solution: ignore them
2021-09-22 16:42:09 +01:00
Luca Boccassi
2a954b301e
Problem: test_security_curve always fails when run by CMake under Github Actions
...
Solution: skip it
2021-09-22 16:42:09 +01:00
Luca Boccassi
276bab8d3b
Problem: test_socks and test_proxy hang under valgrind in Github Actions
...
Solution: skip them
2021-09-22 16:40:17 +01:00
Luca Boccassi
e3d37a82e1
Problem: some tests time out in CI under Valgrind
...
Solution: triple the timeouts
2021-09-22 16:40:17 +01:00
Luca Boccassi
0f706bdd97
Problem: formatting errors
...
Solution: run make clang-format-diff
2021-09-22 16:40:17 +01:00
Luca Boccassi
11f0802912
Problem: VMCI might not be supported by CI
...
Solution: skip tests if zmq_bind fails with EAFNOSUPPORT
2021-09-22 16:40:17 +01:00
Luca Boccassi
37c548d62b
Problem: test_pair_tcp_cap_net_admin requires privileges and might fail
...
Solution: skip it if EOPNOTSUPP is returned instead of failing
2021-09-22 16:40:17 +01:00
Luca Boccassi
0eefa8b582
Problem: README.md does not mention Libera.chat
...
Solution: fix it
Closes #4261
2021-09-22 15:56:26 +01:00
Tim Blechmann
2bfef9aff3
epoll: add missing override statement
2021-09-22 10:11:03 +01:00
Luca Boccassi
ade334faa4
Merge pull request #4258 from timblechmann/feature/add-missing-override-statements
...
add missing override statements
2021-09-21 15:24:51 +01:00
Tim Blechmann
51e97c5480
add missing override statements
2021-09-21 20:13:41 +08:00
Tim Blechmann
5d04e20a01
relicense: add relicense statement for tim blechmann
2021-09-21 20:13:41 +08:00
Gudmundur Adalsteinsson
056f37f352
Problem: fast vector resize bug
...
Solution: init correct vector size and copy previous data into it
2021-09-01 09:58:34 +01:00
Luca Boccassi
80fef55955
Merge pull request #4246 from YunYe-Pu/yunye-patch-wss
...
Problem: WSS broken under high load
2021-08-31 18:31:52 +01:00
Yunye Pu
c8dfa36935
Add relicense statement for Yunye Pu
2021-08-31 13:47:33 +08:00
Yunye Pu
0e3073f402
Problem: WSS broken under contention
...
Solution: Make wss_engine_t's read and write consistent with stream_engine_base_t
2021-08-31 13:29:41 +08:00
Min RK
bcb659e00e
Problem: calling randombytes_close with libsodium can crash Contexts in other threads ( #4242 )
...
* add opt-out for randombytes_close
Problem: randombytes_close is either a no-op or unsafe when a Context is running.
Unfortunately, there does not appear to be a single always correct choice,
so let builders pick between two not-great options.
Opting out can leak an FD on /dev/urandom which may need to be closed explicitly.
However, with the default behavior,
using multiple contexts with CURVE can crash with no application-level workaround available.
randombytes_close is not threadsafe and calling it while still in use by a Context can cause a crash.
For implementations using /dev/[u]random, this can leave up to one leftover FD per process.
The libsodium docs suggest that this function rarely needs to be called explicitly.
2021-08-13 15:11:29 +01:00
Luca Boccassi
f6e99e72ec
Merge pull request #4236 from ChrisThrasher/enable-drafts-messages
...
Correct messages about whether or not the draft API is being built
2021-08-03 09:39:17 +01:00
Chris Thrasher
4756c04da0
Correct messages about whether or not the draft API is being built
...
If you cloned and built this repo or built it from a submodule, it
would always report "Build and install draft classes and methods"
which first might be wrong if ENABLE_DRAFTS is OFF but also didn't
match the tense of other similar messages about build options.
2021-08-02 21:13:14 -06:00
Luca Boccassi
c45750a29f
Problem: formatting broken
...
Solution: run make clang-format-diff
2021-07-30 14:40:47 +01:00
Luca Boccassi
1caef95b48
Merge pull request #4235 from saschavv/fix_widechar_path_crash
...
Fix crash in context with wide characters in path
2021-07-30 14:39:44 +01:00
Sascha van Vliet
efd62e3e38
Add missing relicense agreement
...
To add code to the repository a relicense agreement is needed.
2021-07-30 13:28:11 +02:00
Sascha van Vliet
720ad05529
Fix crash in context with wide characters in path
...
The create_ipc_wildcard_address doesn't takes wide characters
into account while building a string from a temporary path.
The tmpnam_s can return a path in the user temp folder which
can contain special characters.
The string that is returned from the create_ipc_wildcard_address
will be used in the bind routine which will return an error code.
2021-07-30 10:47:08 +02:00
Luca Boccassi
a2d21f63cf
Merge pull request #4234 from sabotagebeats/fix/issues/4231
...
fix: building libzmq fails with error src/clock.cpp
2021-07-24 11:48:25 +01:00
sabotagebeats
430ffe61b7
fix: relicense
2021-07-24 01:36:58 -07:00
sabotagebeats
06aba27b04
fix: building libzmq fails with error src/clock.cpp:131:16: error: unused variable 'nsecs_per_usec'
2021-07-22 21:53:19 -07:00
Arnaud Loonstra
72b03aa281
Merge pull request #4230 from bluca/ci
...
Problem: some CI jobs always fail
2021-07-04 22:46:43 +02:00
Luca Boccassi
ddfddf8f01
Problem: appveyor has broken libsodium cache
...
Solution: fetch and reset instead of pulling
2021-07-04 18:35:14 +01:00
Luca Boccassi
0e795be8a8
Problem: OSX Travis builds using homebrew are timing out
...
Solution: use the Travis addon instead of installing manually
2021-07-04 16:15:32 +01:00
Luca Boccassi
6f76026541
Problem: Appveyor build fails to clone libsodium
...
Solution: set git user/email, otherwise git clone fails
2021-07-04 16:15:32 +01:00
Luca Boccassi
5cc6755174
Merge pull request #4227 from ChrisThrasher/remove_language_extensions
...
Use standard C and C++
2021-07-01 19:21:20 +01:00
Chris Thrasher
ef110f92c3
Add RELICENSE statement
2021-07-01 09:38:04 -06:00
Chris Thrasher
4fc83178aa
Use standard C11 and C++11
...
Retain GNU extensions for C99 and C++98 since testing old compilers
is especially difficult and these compilation modes exist to maintain
compatability.
2021-07-01 09:37:02 -06:00
Doron Somech
1d2e972876
Merge pull request #4228 from bluca/update_wepoll
...
Problem: wepoll is out of date, known issues on Windows
2021-07-01 01:43:53 -04:00
Luca Boccassi
c7edbea971
Problem: wepoll is out of date, known issues on Windows
...
Solution: update to latest version, v1.5.8
2021-06-30 20:44:27 +01:00
Bill Torpey
ca8e30ed48
fixes for UBSAN warnings ( #4223 )
...
Problem: UBSAN shows warnings
Solution: fix alignment issues and signed to unsigned conversion
2021-06-29 13:02:35 +01:00
Luca Boccassi
fb9fb00eda
Problem: formatting is broken
...
Solution: run clang-format-diff
2021-06-15 19:22:19 +01:00
Luca Boccassi
9b2e1fa26c
Merge pull request #4211 from egpbos/patch-1
...
fix unused parameter warning when POLL_BASED_ON_SELECT
2021-06-15 19:21:01 +01:00
E. G. Patrick Bos
535bc2abb8
add relicense statement for egpbos
...
Copyright of the Netherlands eScience Center.
2021-06-15 17:39:02 +02:00
Luca Boccassi
3b9ef60f2b
Merge pull request #4215 from bluca/test_inproc_connect
...
Problem: test_inproc_connect occasionally fails on slow archs
2021-06-15 14:05:07 +01:00
Luca Boccassi
de03c9a6ab
Problem: test_inproc_connect occasionally fails on slow archs
...
Solution: actually send a message rather than just opening/closing
the sockets, as connecting is asynchronous.
tests/test_inproc_connect.cpp:341:test_bind_before_connect:PASS
tests/test_inproc_connect.cpp:342:test_connect_before_bind:PASS
tests/test_inproc_connect.cpp:343:test_connect_before_bind_pub_sub:PASS
tests/test_inproc_connect.cpp:344:test_connect_before_bind_ctx_term:PASS
tests/test_inproc_connect.cpp:345:test_multiple_connects:PASS
tests/test_inproc_connect.cpp:346:test_multiple_threads:PASS
Assertion failed: _state == active || _state == waiting_for_delimiter (src/pipe.cpp:504)
0 0xffffa015d3e4 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::zmq_abort(char const*)+0xc)
1 0xffffa017b208 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::pipe_t::process_delimiter()+0xb0)
2 0xffffa017b420 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::pipe_t::read(zmq::msg_t*)+0xd8)
3 0xffffa01a4b28 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::xpub_t::xread_activated(zmq::pipe_t*)+0x110)
4 0xffffa01a3758 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::xpub_t::xattach_pipe(zmq::pipe_t*, bool, bool)+0x68)
5 0xffffa018dc3c in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::socket_base_t::attach_pipe(zmq::pipe_t*, bool, bool)+0x94)
6 0xffffa016f288 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::object_t::process_command(zmq::command_t const&)+0x148)
7 0xffffa014ee3c in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::ctx_t::connect_inproc_sockets(zmq::socket_base_t*, zmq::options_t const&, zmq::ctx_t::pending_connection_t const&, zmq::ctx_t::side)+0xdc)
8 0xffffa0150bec in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::ctx_t::connect_pending(char const*, zmq::socket_base_t*)+0x1fc)
9 0xffffa0190034 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::socket_base_t::bind(char const*)+0x3e4)
10 0xaaaae50475d8 in /usr/src/packages/BUILD/tests/.libs/test_inproc_connect (simult_bind(void*)+0x28)
11 0xffffa019bfb8 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (thread_routine+0x70)
12 0xffffa00e07e4 in /lib/aarch64-linux-gnu/libpthread.so.0 (start_thread+0x18c)
13 0xffff9fdcab2c in /lib/aarch64-linux-gnu/libc.so.6 (clone+0x5c)
2021-06-14 11:43:06 +01:00
Luca Boccassi
d3d685bbc1
Merge pull request #4214 from bluca/obs_pr
...
Problem: build/test breakages on various distros are discovered only after merge
2021-06-14 11:42:36 +01:00
Luca Boccassi
6fc817a18e
Problem: build/test breakages on various distros are discovered only after merge
...
Solution: try the new Open Build Service PR integration workflow
2021-06-14 10:48:24 +01:00
Doron Somech
416b7aea47
Merge pull request #4213 from bluca/build
...
Problem: build with curve fails on GCC 11
2021-06-13 20:03:39 +03:00
Luca Boccassi
92b2c38a2c
Problem: build with curve fails on GCC 11
...
Solution: ignore false positives due to compiler bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
Fixes https://github.com/zeromq/libzmq/issues/4206
2021-06-13 16:21:55 +01:00