0
0
mirror of https://github.com/zeromq/libzmq.git synced 2025-01-15 10:18:01 +08:00

8522 Commits

Author SHA1 Message Date
Luca Boccassi
59095f9d06
Merge pull request #3765 from sigiesec/various-improvements
Various improvements
2019-12-25 15:07:10 +01:00
Simon Giesecke
3dbbc28bb8 Problem: use of unsafe strcpy
Solution: use memcpy with known size instead
2019-12-25 13:56:26 +01:00
Simon Giesecke
334e837b88 Problem: ws_engine uses unsafe strcpy
Solution: use strcpy_s instead (define custom if not available)
2019-12-25 13:56:26 +01:00
Simon Giesecke
14ab794671 Problem: local functions not declared static
Solution: add static
2019-12-25 13:52:21 +01:00
Simon Giesecke
fa804c7783 Problem: pseudo-loops which had exactly one iteration
Solution: removed them
2019-12-25 13:52:21 +01:00
Simon Giesecke
579aa5b440 Problem: non-loop-variables initialized via loop initializer
Solution: move initialization to declaration
2019-12-25 13:52:21 +01:00
Simon Giesecke
d4cc592387 Problem: loop variable modified in loop step and body
Solution: modify it in loop body only
2019-12-25 13:52:21 +01:00
Simon Giesecke
a64c3e6c7d Problem: redundant consecutive return statements
Solution: remove the redundant one
2019-12-24 10:17:10 +01:00
Simon Giesecke
ddbf45cf8d Problem: redundant break after return
Solution: remove them
2019-12-24 10:17:10 +01:00
Simon Giesecke
2256bd5b0b Problem: unnecessary copying of string literals
Solution: just copy the address
2019-12-23 14:12:07 +01:00
Simon Giesecke
4c3f115469 Problem: raw malloc used unnecessarily
Solution: use std::string instead
2019-12-23 14:12:07 +01:00
Simon Giesecke
30e2398e67 Problem: WSS-specific members and options are compiled without ZMQ_HAVE_WSS
Solution: properly guard members and options
2019-12-23 11:58:07 +01:00
Simon Giesecke
9e548bd591 Problem: insecure and inefficient strcpy used
Solution: use memcpy with known length
2019-12-23 11:58:07 +01:00
Simon Giesecke
3e7995f7f7
Merge pull request #3758 from sonoware/fix-set-cpu-affinity
Fix set cpu affinity
2019-12-13 15:03:06 +01:00
Stephan Senkbeil
8089529148 Problem: ZMQ_HAVE_PTHREAD_SET_AFFINITY not set correctly
Solution: Set correct define in CMake check and add the cmakedefine
2019-12-13 14:42:45 +01:00
Stephan Senkbeil
3a3192e983 Adds RELICENSE for sonoware 2019-12-13 14:40:42 +01:00
Luca Boccassi
eb54966cb9
Merge pull request #3757 from sigiesec/fix-windows-signaler-regression
Fix windows signaler regression
2019-12-10 18:41:35 +00:00
Simon Giesecke
9f16513ebe Problem: loop sending signaler event is obscure
Solution: add comments and remove continue/break
2019-12-10 16:19:25 +01:00
Simon Giesecke
3ace237988 Revert "Removed unreachable code paths"
This reverts commit 4f77cfa3274fcddf9687fc713b8a331ee018cf87.
2019-12-10 16:08:52 +01:00
Doron Somech
9b67fe8a98
Merge pull request #3755 from sigiesec/more-improvements-analyze
Make use of = default and = delete if available
2019-12-09 12:06:49 +02:00
Simon Giesecke
b88b12c77c Problem: sonar has no access to git history
Solution: unshallow clone in analysis job
2019-12-09 09:48:21 +01:00
Simon Giesecke
f60f909899 Problem: missing use of C++11 = delete and = default
Solution: introduce macros ZMQ_DEFAULT and ZMQ_NON_COPYABLE_NOR_MOVABLE
2019-12-09 09:48:21 +01:00
Simon Giesecke
86d7de38ca Problem: redundant empty destructor
Solution: Remove definition
2019-12-08 19:43:31 +01:00
Constantin Rack
400107d765
Merge pull request #3754 from sigiesec/code-improvements-analyze
Improvements to static analysis & resolve some issues identified by static analysis
2019-12-08 17:31:02 +00:00
Simon Giesecke
76460c5e17 Problem: clang-format outdated
Solution: update to clang-format 8
2019-12-08 16:08:16 +01:00
Simon Giesecke
f8adf9ea55 Problem: unnecessary value parameters
Solution: change to const references
2019-12-08 15:24:48 +01:00
Simon Giesecke
cb2b377d9f Problem: redundant else after return
Solution: remove else
2019-12-08 15:24:48 +01:00
Simon Giesecke
1d9c6bcf09 Problem: unittest_udp_address not properly formatted
Solution: run clang-format
2019-12-08 15:24:48 +01:00
Simon Giesecke
fdabd73da6 Problem: parameters not const where const possible
Solution: add const
2019-12-08 15:24:48 +01:00
Simon Giesecke
84267e734b Problem: inconsistent parameter names on definition/declaration
Solution: align them
2019-12-08 15:24:48 +01:00
Simon Giesecke
cd954e207d Problem: use of C-style casts
Solution: use static_cast/reinterpret_cast instead
2019-12-08 15:24:48 +01:00
Simon Giesecke
a83c57d0bb Problem: identifiers not conformant with naming convention
Solution: fix identifier names
2019-12-08 15:24:48 +01:00
Simon Giesecke
18edd28955 Problem: clang version used for analysis is outdated
Solution: update to clang 8
2019-12-08 15:24:48 +01:00
Simon Giesecke
de3e03c147 Problem: new clang-tidy contains checks that do not apply to libzmq
Solution: disable inapplicable checks
2019-12-08 15:24:48 +01:00
Luca Boccassi
b9ddf62261
Merge pull request #3752 from sigiesec/update-sonar-scanner-analyze
Problem: sonar-scanner binary is outdated and no longer available
2019-12-07 10:48:46 +00:00
Simon Giesecke
d2fbfa7bd8 Problem: sonar-scanner binary is outdated and no longer available
Solution: Update to version 4.2.0.1873
2019-12-07 10:38:22 +01:00
Luca Boccassi
df993d113c
Merge pull request #3751 from sigiesec/windows-domain-sockets-signaler
Use Unix domain sockets for listener when available on Windows
2019-12-07 00:25:21 +00:00
Simon Giesecke
cf7e0fb066 Problem: test_capabilities fails on Windows when IPC support is available
Solution: Fix ifdef for expectation of IPC support
2019-12-06 20:24:41 +01:00
Simon Giesecke
76b7478290 Problem: there is no VS2019/IPC build job
Solution: add VS2019 build job
2019-12-06 19:31:41 +01:00
Simon Giesecke
ca552d563f Problem: listener socket uses TCP loopback connections which sometimes go awry
Solution: Use domain sockets instead if available
2019-12-06 19:11:50 +01:00
Simon Giesecke
bd4c2d60ba Problem: zmq::listener_t::create_wildcard_address not reusable in ip.cpp
Solution: move to ip.hpp as zmq::create_ipc_wildcard_address
2019-12-06 19:11:50 +01:00
Simon Giesecke
3bcaea535c Problem: zmq_fdpair function is very long
Solution: Extract TCP/IP loopback variant into zmq_fdpair_tcpip
2019-12-06 17:51:13 +01:00
liedtkeInTUM
65d2f1f498 Problem: if IPC enabled libzmq does not compile when in uwp build (#3747)
* Problem: if IPC enabled libzmq does not compile when in uwp build

* Problem 10.0.##### can be valid windows target versions

* Problem: No builds are triggered on uwp platform

* Problem: epoll is set before UWP platform is checked

* Problem: used wrong CMAKE_SYSTEM_NAME specifier

* Problem: build tests fails during cmake configure

* Use Win32 build step for Win32-uwp platform

* Disable compile options that produce warnings that leads to a ci fail

* winnt version is set by cmake, no need for redefinition in windows.hpp

* Eliminate all warning according Incremental and opt:icf are specified

* Prefer to disable opt flags in debug config rather than incremental linking

* CMAKE_GENERATOR should not include uwp definition

* Add release build with uwp configuration

* Problem: pointer potentially uninitialized
2019-12-06 13:27:24 +00:00
Luca Boccassi
51bf2aff35
Merge pull request #3746 from drolevar/master
Change XSUB -> XPUB message processing.
2019-12-04 16:08:15 +00:00
Andrij Abyzov
5a854780f2 Problem: cannot send arbitrary data from XSUB to XPUB.
Solution: now if the first frame in a multipart message is not subscribe/unsubscribe,
the rest of the parts are also considered to be not subscribe/unsubscribe.
2019-12-04 16:25:08 +01:00
Doron Somech
85df75584e
Merge pull request #3743 from bluca/test_ws_bindport
Fix ZMQ_LAST_ENDPOINT with WS[S] and use it in tests
2019-11-28 17:24:35 +02:00
Luca Boccassi
00a448b1f0 Problem: WS tests bind to hard-coded TCP port and fail when ran in parallel
Solution: bind to wildcard and use ZMQ_LAST_ENDPOINT
2019-11-28 12:37:53 +00:00
Luca Boccassi
a61db18eee Problem: WSS LAST_ENDPOINT returns WS transport
Solution: add wss_address_t subclass of ws_address_t to override the
to_string method
2019-11-28 12:37:53 +00:00
Luca Boccassi
c711941e9a Problem: wildcard port binding does not work with WS sockets
Solution: remove the path from the address when resolving
2019-11-28 09:27:05 +00:00
Luca Boccassi
79d75f017c Problem: WS sockets return TCP protocol strings with ZMQ_LAST_ENDPOINT
Solution: use the correct address class when resolving
2019-11-28 09:27:05 +00:00
Luca Boccassi
75d9d84100
Merge pull request #3744 from liedtkeInTUM/fix_output_name
Problem: static libs are generated without given basename
2019-11-27 09:33:28 +00:00
Sven Liedtke
0cca4b2ce9 Add relicense statement 2019-11-27 10:24:20 +01:00
Sven Liedtke
d9d4dbbbd4 Problem: static libs are generated without given basename 2019-11-27 08:28:07 +01:00
Luca Boccassi
0f9dd85e89
Merge pull request #3741 from drolevar/master
Change XSUB -> XPUB multipart message processing.
2019-11-20 09:01:32 +00:00
Andrij Abyzov
04761133bf Fix zmq::select_t::loop formatting 2019-11-20 09:29:59 +01:00
Andrij Abyzov
d5198693e8 Add relicense grant for Andrij Abyzov 2019-11-19 18:22:15 +01:00
Andrij Abyzov
108977c838 Change XSUB -> XPUB multipart message processing.
Now only the first part in a multipart message will be treated as subscribe/unsubscribe.
The rest will be considered user messages regardless of the first byte.
2019-11-19 18:22:12 +01:00
Luca Boccassi
e0d9e21374
Merge pull request #3738 from eldruin/external-output-name
Allow library output name to be changed externally
2019-11-13 12:40:55 +00:00
Diego Barrios Romero
0605d06f1e Add license grant 2019-11-13 13:23:42 +01:00
Diego Barrios Romero
0bd8f70264 Allow renaming library from the outside 2019-11-13 12:00:47 +01:00
Luca Boccassi
97df2dac3a
Merge pull request #3735 from viciious/no-libsodium-spec
Remove the superfluous build requirement of libsodium-devel
2019-11-12 17:15:56 +00:00
Victor Luchits
e2e0f5c5f0 Add the relicense statement 2019-11-12 20:14:13 +03:00
Victor Luchits
39c63994f9 Remove the superfluous build requirement of libsodium-devel 2019-11-12 18:24:21 +03:00
Luca Boccassi
b788270bda
Merge pull request #3734 from somdoron/tls_key_expired
problem: test_wss_transport keys expired
2019-11-10 10:17:35 +00:00
Doron Somech
a1aeae92cd problem: test_wss_transport expired
Solution: generate new keys that last for 100 years
2019-11-10 10:34:43 +02:00
Luca Boccassi
af86d93d5f
Merge pull request #3726 from bluca/capsh_option
Problem: test_pair_tcp_cap_net_admin requires sudo but is enabled by …
2019-11-02 08:24:34 +00:00
Constantin Rack
c57b2a5cc4
Merge pull request #3729 from bluca/fd_oob
Problem: WSAEventSelect checks for FD_OOB, but select does not
2019-11-01 10:06:18 +00:00
Luca Boccassi
9ced36e407 Problem: WSAEventSelect checks for FD_OOB, but select does not
WSAEventSelect is used on Windows (when select is the polling method)
only if waiting for more than one socket family, excluding IPv4/6.
It is then passed FD_OOB, which means it can be woken by OOB messages,
but select later on never checks for it.
Remove FD_OOB as it's not actually used for anything.
2019-11-01 09:34:03 +00:00
Doron Somech
854354bbd6
Merge pull request #3728 from njsmith/patch-1
Fix typo in email address
2019-10-31 23:30:17 +02:00
Nathaniel J. Smith
4f188fe1ab
Fix typo in email address 2019-10-31 14:02:10 -07:00
Luca Boccassi
30e966fe1b
Merge pull request #3727 from Botje/fix-poller-example
Problem: Poller example has wrong argument order
2019-10-31 18:55:25 +00:00
Dries Harnie
9e4f55d741 RELICENSE: Add grant for Dries Harnie 2019-10-31 19:44:50 +01:00
Dries Harnie
ba6695c59a Problem: zmq_poller example is wrong
Solution: flipped arguments in example
2019-10-31 18:54:07 +01:00
Luca Boccassi
bfa8cf3089 Problem: test_pair_tcp_cap_net_admin requires sudo but is enabled by default in CMake
Solution: add an option to enable it, and default to false. Enable it in
the CI so we don't lose coverage, as it works on Travis.

Fixes #3725
2019-10-31 09:37:22 +00:00
Luca Boccassi
805564b996
Merge pull request #3717 from sigiesec/add-win-ipc-support
Problem: ipc transport not supported under Windows
2019-10-29 23:02:42 +00:00
Simon Giesecke
302436515c Problem: windows socket error number cleared before saved to saved_errno
Solution: call tune_socket only if connect was successful
2019-10-29 23:04:54 +01:00
Simon Giesecke
66d0f3511f Problem: ipc transport not supported under Windows
Solution: implement support
2019-10-29 23:04:54 +01:00
Luca Boccassi
a33f1101dc
Merge pull request #3724 from benjdero/qol-improvements
Add a few quality of life improvements to the Android build scripts
2019-10-28 16:34:33 +00:00
Benjamin Deroche
c1168b2374 Rename my license agreement 2019-10-28 16:48:54 +01:00
Benjamin Deroche
c995032595 Fix android build fail check when using a different locale than english 2019-10-28 16:48:54 +01:00
Benjamin Deroche
0d0899bc0d Download the NDK only the first time 2019-10-28 16:48:54 +01:00
Benjamin Deroche
7ee36a177a Make sure the new file erase the old one and don't get a different name 2019-10-28 16:03:22 +01:00
Benjamin Deroche
947893e79f Keep the unzip quiet but make sure it doesn't fail silently 2019-10-28 16:02:57 +01:00
Doron Somech
11d49d4f47
Merge pull request #3721 from bluca/gnutls_pkg
Problem: libzmq-dev not installable with libczmq-dev on Ubuntu 16.04
2019-10-26 16:21:42 +03:00
Luca Boccassi
44b13a3aa4 Problem: libzmq-dev not installable with libczmq-dev on Ubuntu 16.04
Solution: add alternative dependency as libgnutls-dev | libgnutls28-dev,
so that the resolver can break the tie, as libcurl4-nss-dev depends on
libgnutls-dev which conflicts with libgnutls28-dev
2019-10-26 12:37:18 +01:00
Luca Boccassi
86722502e9
Merge pull request #3720 from BenjaminDeroche/master
Problem: Android build script is severely outdated
2019-10-26 00:04:36 +01:00
Benjamin Deroche
a67f7b09a4 Add the relicense statement 2019-10-26 00:46:49 +02:00
Benjamin Deroche
d2099b7593 Problem: Android build script is severely outdated
Solution: Migrate build scripts from Android NDK r11c to r20.
- Standalone toolchain
- Migration from GCC to Clang
- Migration from libgnustl to libc++
- Dropped support for API level below 16 (Android 4.1), previously it was API level 9 (Android 2.3)
- Dropped support for mips architecture
- The build script now start the build of all 4 Android architectures (arm, arm64, x86, x86_64)
2019-10-25 23:07:04 +02:00
Doron Somech
58deca3fb3
Merge pull request #3716 from sigiesec/fix-winxp-support
Problem: build targeting Windows XP is broken
2019-10-19 09:31:47 -04:00
Simon Giesecke
7f43e7ff75 Problem: build targeting Windows XP is broken
Solution: fix build issues
2019-10-19 14:04:55 +02:00
Luca Boccassi
92e3226869
Merge pull request #3714 from mdionisio/remove_libm
Revert "Problem: pkg-config file cannot be used for static linking on…
2019-10-14 20:44:23 +01:00
Michele Dionisio
9f65720dc0 Revert "Problem: pkg-config file cannot be used for static linking on CentOS 7"
This reverts commit 765c24740d6d2a1e3256ee90dc126d05917ca15d.
2019-10-14 20:43:33 +02:00
Luca Boccassi
683bf1d732
Merge pull request #3713 from mdionisio/useless_ceil
avoid to use std::ceil
2019-10-14 15:53:39 +01:00
Michele Dionisio
f07f47b1e3 avoid to use ceil function
ceil function is usually in math library that can be avoided as dependency
2019-10-14 16:18:27 +02:00
Michele Dionisio
f370cc0070 Add RELICENSE grant for mdionisio
Signed-off-by: Michele Dionisio <michele.dionisio@gmail.com>
2019-10-14 15:21:14 +02:00
Luca Boccassi
c1ff4c2b52
Merge pull request #3711 from yan12125/centos7-static-linking
Fix linking to libzmq.a statically on CentOS 7
2019-10-12 15:46:47 +01:00
Chih-Hsuan Yen
ca30ee78f6
Add relicense note for @yan12125
Based on RELICENSE/templates/relicense-template-mplv2.txt. MPLv2 is
definitely fine, but I'm not sure if I'm OK with other licenses.
2019-10-12 22:37:05 +08:00
Chih-Hsuan Yen
765c24740d
Problem: pkg-config file cannot be used for static linking on CentOS 7
Solution: add -lm to Libs.private of libzmq.pc so that the std::ceil
usage in src/decoder_allocators.cpp is satisfied during static linking
on CentOS 7.

See https://github.com/zeromq/libzmq/issues/3710 for a reproducer.
2019-10-12 22:36:31 +08:00
Doron Somech
96bc59a6ce
Merge pull request #3708 from bluca/gnutls_pkg
Problem: test_wss_transport doesn't compile without DRAFT
2019-10-07 12:54:51 +03:00
Luca Boccassi
5bcb7dc5fe Problem: test_wss_transport doesn't compile without DRAFT
Solution: skip it
2019-10-07 10:50:51 +01:00