Commit Graph

8311 Commits

Author SHA1 Message Date
myd7349
5eb0b00c87
Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un (#4310)
* Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un

According to https://github.com/microsoft/vcpkg/issues/21623,
struct sockaddr_un might be unavailable on some machines even afunix.h exists.

For example, on some machines, the content of afunix.h looks like this:
typedef struct _SOCKADDR_UN
{
     ADDRESS_FAMILY Family;
     wchar_t Path[63];
} SOCKADDR_UN, *PSOCKADDR_UN;

but on other machines, it may looks like this:
#define UNIX_PATH_MAX 108

typedef struct sockaddr_un
{
    ADDRESS_FAMILY sun_family;
    char sun_path[UNIX_PATH_MAX];
} SOCKADDR_UN, *PSOCKADDR_UN;

Fixes #3949

References:
- [Enable Unix-domain sockets support on Windows](8f3ec75de4)
- [AF_UNIX equivalent for Windows](https://stackoverflow.com/questions/9029174/af-unix-equivalent-for-windows)
- https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
2021-11-24 14:55:45 +00:00
Luca Boccassi
5a9c174dab
Merge pull request #4309 from dgloe-hpe/3313-fork-detection
Problem: Fix fork detection on gcc 7
2021-11-23 19:17:26 +00:00
David Gloe
72b5359049 Problem: Missing relicense statement for dgloe-hpe
Solution: Add new author to the existing HPE relicense statement.
2021-11-23 16:27:52 +00:00
David Gloe
240e36af4e Problem: Fix fork detection on gcc 7
Solution: When compiling with gcc 7 and newer, the program produced by
AC_CHECK_FUNCS(fork) produces a warning, which results in configure
incorrectly disabling fork support. Fix the issue by using an
AC_COMPILE_IFELSE which correctly detects fork availability.
Tested by running configure and make check on a system with gcc 7
installed, and verifying that HAVE_FORK was defined correctly.

See issue #3313.
2021-11-23 15:47:57 +00:00
Niyas Sait
4b48007927 add win/arm64 to supported platform list 2021-11-15 14:33:20 +00:00
Luca Boccassi
2375ca8b26
Merge pull request #4299 from nsait-linaro/enable_woa64
Get cycle count from ARM64 PMCCNTR_EL0 register
2021-11-15 12:56:22 +00:00
Niyas Sait
0d86aa517f Fix linting error reported by clang-format 2021-11-15 10:31:21 +00:00
Niyas Sait
c3b3ea7ec2 add relicense for niyas sait 2021-11-15 09:42:28 +00:00
Niyas Sait
e9f86fee61 Get cycle count from ARM64 PMCCNTR_EL0 register 2021-11-15 09:12:11 +00:00
Luca Boccassi
329824cafe
Merge pull request #4294 from thielepaul/master
Problem: if ZMQ_XPUB_VERBOSER is used with proxies unsubscribe messages are lost
2021-11-05 17:44:34 +00:00
Paul Thiele
add81132c5 Problem: no relicense agreement by thielepaul
Solution: added relicense agreement
2021-11-05 15:15:19 +01:00
Paul Thiele
6737d50933 Problem: if ZMQ_XPUB_VERBOSER is used with proxies unsubscribe messages are lost
Solution: add socket option ZMQ_XSUB_VERBOSE_UNSUBSCRIBE to forward all unsubscribe messages
2021-11-05 15:12:31 +01:00
Luca Boccassi
d62fd1ac7a Problem: formatting broken
Solution: run make clang-format-diff
2021-11-03 19:39:50 +00:00
Qqzk
bb7a1cc018 Update decoder_allocators.cpp
zmq::shared_message_memory_allocator::deallocate () need to descontruct the object created by new operator.
2021-11-03 19:37:41 +00:00
Qqzk
8f238ae0b4 Create qzkLicense 2021-11-03 15:30:31 +00:00
Luca Boccassi
bddd0bc690
Merge pull request #4290 from thxkiwi/PR_issue_4287
Problem: (Windows) /GL /LTCG breaks builds when the compiler/linker o…
2021-10-29 00:30:24 +01:00
Michael Ngarimu
a6ed5b7a3f Adding missing RELICENSE file
Resolves zeromq/libzmq#4287
2021-10-28 11:28:19 -07:00
Michael Ngarimu
7c625afcc0 Problem: (Windows) /GL /LTCG breaks builds when the compiler/linker of static library differs from compiler/linker of executable
Solution: Enable /GL and /LTCG if and only if building as a Release (i.e. non-DEBUG) DLL.

Resolves zeromq/libzmq#4287
2021-10-27 22:17:21 -07:00
mjvankampen
36d6b5d923
Problem: polling_util.hpp missing sys/select.h include (#4283)
* Problem: polling_util.hpp missing sys/select.h include

Solution: include sys/select.h
2021-10-21 20:56:32 +01:00
Luca Boccassi
b2ab09bf79
Merge pull request #4285 from mjvankampen/fix/cmake_cxx_standard
Problem: newer cmake versions set CMAKE_C(XX)_FLAGS at a later stage …
2021-10-21 14:51:14 +01:00
Mark Jan van Kampen
c036d66286
Problem: newer cmake versions set CMAKE_C(XX)_FLAGS at a later stage not allowing a user to override the standard
Solution: check for C(XX)_STANDARD/CMAKE_C(XX)_STANDARD as well
Fixes #4284
2021-10-21 12:24:12 +02:00
Benjamin Deroche
519e2bf129
Problem: Android build script isn't compatible with latest NDK version (#4278)
* Problem: Android build script isn't compatible with latest NDK version

Solution: Update to Android NDK r22b
2021-10-18 10:05:10 +01:00
Gudmundur Adalsteinsson
7c2df78b49 Problem: Invalid and inconsistent poller docs
Solution: Fix it and make example code more complete
2021-10-10 11:55:56 +01:00
Luca Boccassi
e39a93e652 Problem: OBS CI config needs update following breaking change
https://openbuildservice.org/2021/09/28/support-for-push-events/
2021-10-07 11:45:59 +01:00
E. G. Patrick Bos
9fbfa40bab Problem: when linking to libzmq in my project, I want zmq symbols to remain invisible to users of my library. There is no way to control this, since visibility is set automatically through ZMQ_EXPORT based on OS and compiler.
Solution: add a preprocessor variable ZMQ_NO_EXPORT that, when set, bypasses the automatic ZMQ_EXPORT determination block and just sets ZMQ_EXPORT to empty.

By combining this solution at configuration time with manually passing -fvisibility=hidden to CXXFLAGS, I solved my visibility problem. Just passing -fvisibility=hidden is not enough, because __attribute__ ((visibility ("default"))) has higher priority.
2021-10-07 10:48:58 +01:00
Luca Boccassi
5d8d857540
Merge pull request #4264 from analogist/master
mingw-w64 10.3 build fix - winsock socket() return unsigned
2021-09-25 11:31:27 +01:00
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