0
0
mirror of https://github.com/zeromq/libzmq.git synced 2025-01-14 17:58:01 +08:00

8108 Commits

Author SHA1 Message Date
Luca Boccassi
e7f802d1ac
Merge pull request #3813 from sigiesec/code-style
Improve code style, remove duplications in test code
2020-02-04 19:05:01 +01:00
Simon Giesecke
21b8d5cff7 Problem: duplicated code in tests related to monitoring
Solution: extract new receive_monitor_address function
2020-02-04 18:36:03 +01:00
Simon Giesecke
495fb00b7e Problem: pointee types are unnecessarily non-const
Solution: add const where possible
2020-02-04 18:34:19 +01:00
Simon Giesecke
db8f4fba21 Problem: redundant inline/ZMQ_FINAL declarations
Solution: remove them
2020-02-04 18:34:13 +01:00
Luca Boccassi
21d80e42a8
Merge pull request #3812 from pavel-pimenov/RELICENSE-pavel-pimenov
RELICENSE pavel-pimenov
2020-02-04 16:40:36 +01:00
Pavel Pimenov
c9845bfbf4 RELICENSE pavel-pimenov 2020-02-04 18:36:19 +03:00
Luca Boccassi
84ec65482f
Merge pull request #3808 from sigiesec/fix-test-monitor-to-be-checked
Fix intermittent test_monitor and test_security_zap timeouts/deadlocks for now
2020-02-04 15:23:58 +01:00
Luca Boccassi
d8851c5ca8
Merge pull request #3807 from sigiesec/fix-test-heartbeats
Problem: intermittent timeouts on test_heartbeats
2020-02-04 14:42:16 +01:00
Simon Giesecke
66094678d1 Problem: intermittent deadlocks/timeouts in test_monitor and test_security_zap
Solution: wait for monitor to stop resp. unregister monitor before
closing monitored socket.
2020-02-04 14:34:36 +01:00
Doron Somech
0a1fc44ed7
Merge pull request #3811 from sigiesec/fix-libsodium-1-0-0
Problem: curve_encoding_t build fails with old libsodium versions
2020-02-04 10:34:27 +01:00
Simon Giesecke
dfcca75d0b Problem: curve_encoding_t build fails with old libsodium versions
Solution: add version check and fall back to old implementation for old versions
2020-02-04 10:04:40 +01:00
Simon Giesecke
58b636675a Problem: on POSIX systems, all tests have a timeout of 60 seconds; disabling it via ZMQ_DISABLE_TEST_TIMEOUT doesn't work anymore
Solution: remove ZMQ_DISABLE_TEST_TIMEOUT guard but add default parameter to setup_test_environment
2020-02-04 09:48:55 +01:00
Simon Giesecke
577d64c007 Problem: intermittent timeouts on test_heartbeats
Solution: increase number of retries when reading monitor event,
and increase timeout
2020-02-04 09:48:55 +01:00
Luca Boccassi
06bdebfe8d
Merge pull request #3805 from sigiesec/curve-zerocopy
CURVE: Reduce number of memory allocations and message copies
2020-02-04 08:58:31 +01:00
Luca Boccassi
f1513f96d8
Merge pull request #3806 from sigiesec/increase-reconnect-ivl-timeout
Problem: intermittent timeouts of test_reconnect_ivl
2020-02-04 08:54:32 +01:00
Simon Giesecke
e7043c815d Problem: intermittent timeouts of test_reconnect_ivl
Solution: increase timeout to 15 seconds
2020-02-03 23:19:45 +01:00
Simon Giesecke
4177bf7445 Problem: curve_encoding_t involves unnecesary heap allocations and copying of message data
Solution: use crypto_box_easy_afternm and crypto_box_open_easy_afternm
in-place
2020-02-03 22:33:15 +01:00
Simon Giesecke
2fa8185340 Problem: cannot use static libsodium library on Windows
Solution: add CMake option WITH_LIBSODIUM_STATIC
2020-02-03 22:24:16 +01:00
Simon Giesecke
b01685ea0a Problem: no unittests for curve_encoding_t
Solution: add initial tests
2020-02-03 22:24:16 +01:00
Luca Boccassi
48aed8df11
Merge pull request #3803 from bluca/relicense
Grant by jimenezrick, xantares
2020-02-03 19:10:32 +01:00
Telford Berkey
499624927a
Submitting permission to relicense under MPLv2 statement. (#3804)
* Adding permission to relicense for tberkey.

Co-authored-by: bzimmerman-qb <bzimmerman@4qbase.com>
2020-02-03 17:34:52 +01:00
Simon Giesecke
78b94a4fcf Problem: testutil.hpp pulls in min/max macro definitions on Windows
Solution: define NOMINMAX
2020-02-03 17:07:15 +01:00
Simon Giesecke
4ad239acbc Problem: curve encoding and decoding are not easily testable
Solution: extract into separate class curve_encoding_t
2020-02-03 17:07:15 +01:00
Luca Boccassi
a7b328a79a Revert "Problem: nuget internal metadata not maintained, no relicense"
Relicense grant received.

This reverts commit d2a8be8da72f893d23a611bff0ba09e3ee9872e1.
2020-02-03 16:23:38 +01:00
Luca Boccassi
7cceedda2d Grant by phreed
Received via email, message-id:

BYAPR08MB506237D85857D053D749888C91000@BYAPR08MB5062.namprd08.prod.outlook.com
2020-02-03 16:22:20 +01:00
Luca Boccassi
f6de0dcafa Grant by xantares
Set via github comment:

https://github.com/zeromq/libzmq/pull/1366#issuecomment-581451018
2020-02-03 15:56:11 +01:00
Luca Boccassi
687241e93f Grant by jimenezrick 2020-02-03 14:19:36 +01:00
Kevin Sapper
af5ac60631
Merge pull request #3801 from bluca/relicense
Add relicense from zoobab, acsearle
2020-02-03 14:13:23 +01:00
Luca Boccassi
d69f4dc855 Problem: commented out code in CMakeLists.txt
Solution: remove it, never used
2020-02-03 13:40:42 +01:00
Luca Boccassi
d2a8be8da7 Problem: nuget internal metadata not maintained, no relicense
Solution: remove it for now
2020-02-03 13:40:42 +01:00
Luca Boccassi
a2b4cca266
Merge pull request #3802 from FredTreg/patch-1
Adding relicensing grant from FredTreg
2020-02-03 13:29:37 +01:00
Frederic Tregon
0b66262bda
Adding relicensing grant from FredTreg 2020-02-03 13:08:45 +01:00
Luca Boccassi
2a6cc306da Grant by acsearle 2020-02-03 11:56:11 +01:00
Simon Giesecke
3e394fddb4 Problem: naming convention violated by curve_mechanism_base
Solution: change to conform with naming convention
2020-02-03 11:44:10 +01:00
Luca Boccassi
fc8eec6d39 Add relicense from zoobab 2020-02-03 10:26:35 +01:00
Luca Boccassi
75dfbae0d1
Merge pull request #3798 from std-any-emplace/msvc-cmake-clang-buildfix
Add an extra space after "/Z7" in CMakeLists.txt.
2020-01-28 22:34:58 +00:00
Simon Giesecke
e73789620d
Merge pull request #3797 from std-any-emplace/msvc-cmake
Both libzmq and libzmq-static are trying to work in precompiled.pch. …
2020-01-28 22:14:10 +01:00
std-any-emplace
e29495373e Add an extra space after "/Z7". Else the flag gets joined with the flag following this and clang-cl does not like that. 2020-01-28 21:30:56 +01:00
std-any-emplace
9b66fe2fba Both libzmq and libzmq-static are trying to work in precompiled.pch. Solution: enforce order.
Fixes https://github.com/zeromq/libzmq/issues/3776.
2020-01-28 20:57:53 +01:00
Luca Boccassi
fde2a7a65d
Merge pull request #3795 from sigiesec/final-override-analyze
Code style improvements
2020-01-27 11:42:57 +00:00
Simon Giesecke
406c423c9a Problem: C-style casts used
Solution: use static_cast instead
2020-01-27 10:38:00 +01:00
Simon Giesecke
78961eeab7 Problem: non-modifying member functions not marked as const/static
Solution: add const/static
2020-01-27 10:38:00 +01:00
Simon Giesecke
41e3f14d6a Problem: ptr/ref parameters and local variables are non-const but never modified
Solution: add const
2020-01-27 10:38:00 +01:00
Simon Giesecke
759fed8e7e Problem: meaningless inline specified on function declarations
Solution: remove them
2020-01-27 10:38:00 +01:00
Simon Giesecke
f8f7913737 Problem: irregular loop conditions
Solution: use standard loop constructs and optimize some loops
2020-01-27 10:38:00 +01:00
Simon Giesecke
628adf1cb7 Problem: inconsistent polymorphic inheritance
Solution: consistently use virtual, override and final
2020-01-27 08:46:55 +01:00
Luca Boccassi
6d69898240
Merge pull request #3794 from sigiesec/fix-ctx-shutdown
Problem: sockets can be created after calling zmq_ctx_shutdown
2020-01-26 18:09:47 +00:00
std-any-emplace
fbf85448c3 Clarify used C++-standard for compilation. (#3793)
* Clarify used C++-standard for compilation.

* More than a conforming compiler may be necessary to compile the library. Just refer to the list of known "good" platforms below.
2020-01-26 18:50:17 +01:00
Simon Giesecke
36a8df2f8c Problem: sockets can be created after calling zmq_ctx_shutdown
Solution: fix handling of _starting and _terminate flags

Add tests for this situation.

Clarify documentation of zmq_ctx_shutdown and zmq_socket.

Fixes #3792
2020-01-26 18:06:14 +01:00
Simon Giesecke
ebc9314339
Merge pull request #3790 from std-any-emplace/master
EAGAIN: Refer to ZMQ_RCVTIMEO when receiving in blocking-mode
2020-01-25 21:46:35 +01:00
std-any-emplace
337ec270a4 EAGAIN: Refer to ZMQ_RCVTIMEO when receiving in blocking-mode 2020-01-25 20:04:59 +01:00
Luca Boccassi
349e3e21db
Merge pull request #3789 from std-any-emplace/master
Some minor documentation fixes
2020-01-23 19:29:54 +00:00
std-any-emplace
feb4f3d424 Fix minor typo 2020-01-23 20:09:08 +01:00
std-any-emplace
81d522bb66 Refer to zmq_socket because there are more thread-safe sockets than just client/server 2020-01-23 20:08:38 +01:00
Luca Boccassi
72865e1b61
Merge pull request #3788 from colletted/feature
Replace strtok with strtok_r
2020-01-23 09:34:12 +00:00
Denis Collette
64fc106123 Problem: preious commit contains tabs
Solution: replace tabs with spaces
2020-01-22 20:15:50 -04:00
Denis Collette
851ae90319 Problem: No relicense agreement by Denis Collette
Solution: added relicence agreement
2020-01-22 19:59:51 -04:00
Denis Collette
1450681fb4 Problem: Issue #3766 states that strtok is not thread safe and should be replaced
Solution: Replaced calls to strtok with strtok_r (strtok_s for windows)
in ws_engine.cpp
2020-01-22 19:40:26 -04:00
Simon Giesecke
b7dd31db5a
Merge pull request #3785 from bluca/wss_option
Problem: WS build option is independent of DRAFT
2020-01-20 14:13:36 +01:00
Luca Boccassi
1f00a5bf59 Problem: WS build option is independent of DRAFT
Solution: make the default depend on the value of the DRAFT build flag
2020-01-19 16:36:29 +00:00
Luca Boccassi
ddae567f16 Problem: ZMQ_WSS socket options not defined in src/zmq_draft.h
Solution: add them
2020-01-19 14:39:29 +00:00
Doron Somech
07052ad309
Merge pull request #3784 from bluca/news
Problem: NEWS out of date with latest changes
2020-01-19 16:13:19 +02:00
Luca Boccassi
68e6d8c07f Problem: NEWS out of date with latest changes
Solution: update it
2020-01-19 13:52:35 +00:00
Doron Somech
d47b7fa065
Merge pull request #3783 from std-any-emplace/master
Documentation fix regarding thread-safety of zmq_poll/zmq_poller.txt.
2020-01-19 11:48:12 +02:00
std-any-emplace
c09b794ac6 Add a relicense-file. 2020-01-19 10:45:18 +01:00
std-any-emplace
8004c10f39 Documentation fix regarding thread-safety of zmq_poll/zmq_poller.txt.
See https://github.com/zeromq/libzmq/issues/3778.
2020-01-19 09:54:11 +01:00
Doron Somech
1b8a352480
Merge pull request #3782 from mloy/fix_websocket_without_path_with_test
Fix websocket without path with test
2020-01-19 07:38:31 +02:00
Matthias Loy
65ce499bef Added relicense file mloy 2020-01-18 23:20:15 +01:00
Matthias Loy
67adc458df Roundtrip test for websocket url without a path 2020-01-18 23:19:31 +01:00
Matthias Loy
c357c378d8 fix: websocket url without path
websocket urls without a path caused crash!
2020-01-18 23:04:16 +01:00
Luca Boccassi
7ea72e5692
Merge pull request #3780 from somdoron/WSPINGPONG
problem: ws_engine don't support WS RFC ping-pong and close
2020-01-18 19:31:00 +00:00
Doron Somech
60ef14f80b problem: ws_engine don't support WS RFC close control msg
Solution: when peer send a close msg, close the connection
2020-01-18 19:30:23 +02:00
Doron Somech
b120ec33a9 problem: ws_engine don't support WS RFC ping-pong
Solution: implement both PONG response and producing pings
2020-01-18 18:28:00 +02:00
Constantin Rack
b9b901e89d
Merge pull request #3775 from ffontaine/master
acinclude.m4: add -latomic to PKGCFG_LIBS_PRIVATE
2020-01-12 12:10:08 +00:00
Fabrice Fontaine
d59dcbcaeb acinclude.m4: add -latomic to PKGCFG_LIBS_PRIVATE
Add -latomic to PKGCFG_LIBS_PRIVATE so applications linking statically
with libzmq (such czmq) will know that they have to link with -latomic
and the following build failure will be avoided:

  CCLD     src/czmq_selftest
/home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/7.4.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: /home/buildroot/autobuild/run/instance-3/output-1/host/sparc-buildroot-linux-uclibc/sysroot/usr/lib/libzmq.a(src_libzmq_la-ctx.o): in function `zmq::ctx_t::create_socket(int)':
ctx.cpp:(.text+0x1710): undefined reference to `__atomic_fetch_add_4'

Fixes:
 - http://autobuild.buildroot.org/results/4a12f1ede260cd956a0b5ccb4eec6ca8b44cb04f

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-01-12 10:18:23 +01:00
Luca Boccassi
a9cca0d568
Merge pull request #3772 from kanonet/mingw-lib
mingw: add missing namespace
2020-01-09 20:53:29 +00:00
Christoph Kahl
c5dab4f48f mingw: add missing namespace 2020-01-09 21:44:53 +01:00
Simon Giesecke
73eb1eac05
Merge pull request #3767 from bluca/libbsd
Problems: reimplementation of strlcpy, CMake does not use pkg-config for NSS, wrong pc generated by autoconf with GNUTLS
2020-01-06 11:46:38 +01:00
xqcool
382c6d7186 Update array.hpp (#3769)
* Update array.hpp

Problem:Calling back on an empty container causes undefined behavior.
Solution:Check with the function empty()

* Create xqcool.mq

Adds relicensing grant
2020-01-01 10:37:51 +01:00
Luca Boccassi
c560a41473 Problem: mingw build broken
Solution: check correct preprocessor define in test_reconnect_ivl to match the
test invocation
2019-12-28 21:17:09 +01:00
Luca Boccassi
3832bd6b11 Problem: UWP build fails
Solution: initialize local variable in all cases to false positive
compiler warning
2019-12-28 21:17:09 +01:00
Luca Boccassi
21f763c872 Problem: libbsd not used on Travis
Solution: add it to one build to exercise all the code paths
2019-12-28 21:17:09 +01:00
Luca Boccassi
9d2899af87 Problem: libzmq.pc does not include gnutls dependency for static linking
Solution: add it to the Requires.private list
2019-12-28 21:17:09 +01:00
Luca Boccassi
2c2ff01e85 Problem: CMake does not look for NSS using pkg-config
Solution: use pkg-config by default and FindPackage only as a
fallback
2019-12-28 21:17:09 +01:00
Luca Boccassi
068385c951 Problem: internal reimplementation of strlcpy used by default on Linux
Solution: use libbsd by default when available, and the internal implementation
only as a fallback, to take advantage of Linux distros maintenance of the
string libraries.
2019-12-28 16:21:06 +01:00
Luca Boccassi
246cc77efc
Merge pull request #3763 from sigiesec/replace-strcpy
Avoid possible buffers overruns in ws_engine
2019-12-25 16:13:13 +01:00
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