WGH
eb0e0dda4e
doc/zmq_socket.txt: clarify that ROUTER can be blocking
2016-10-03 23:39:34 +03:00
Luca Boccassi
88e4cff948
Merge pull request #2147 from goodfella/fix-zmq-poller-poll-return
...
Fix zmq poller poll return
2016-10-01 11:44:08 +01:00
Nick Guiffrida
ffdb44ad2c
Fix zmq_poll return code assert in tests/test_radio_dish.cpp
2016-09-30 21:50:31 -07:00
Nick Guiffrida
1a2d58e4e7
Add #ifndef ZMQ_HAVE_WINDOWS guard around unistd.h include
2016-09-30 21:30:04 -07:00
Nick Guiffrida
f3de534897
Do not assign rc to zmq_poller_destroy in zmq_poller_poll
...
* Doing so was zmq_poller_poll to always return 0.
2016-09-30 21:10:25 -07:00
Nick Guiffrida
f46e45c263
Include unitstd.h in src/stream_engine.cpp for close system call
2016-09-30 21:10:05 -07:00
Luca Boccassi
6c1669371a
Merge pull request #2145 from minrk/zmq-poll-repeat
...
allow duplicate entries in zmq_poller_poll
2016-09-29 15:36:55 +01:00
Min RK
fb5a04e21d
allow duplicate entries in zmq_poller_poll
...
This should restore full compatibility with earlier zmq_poll behavior.
It complicates things a little bit, as collisions must be detected, and when collisions are found:
- event masks must be merged
- pollitems, events arrays are no longer co-ordered
Reverts the recent zmq_proxy patch to workaround the lack of repeat-item support in zmq_poll that is now fixed.
2016-09-29 16:33:02 +02:00
Luca Boccassi
ae0676e80d
Merge pull request #2144 from minrk/fix-poller
...
Resolve issues with zmq_poll and zmq_poller working together
2016-09-29 15:07:18 +01:00
Min RK
310dafbc75
zmq_poll returns 0 on timeout
...
not -1, ETIMEDOUT like zmq_poller
2016-09-29 15:44:31 +02:00
Min RK
718608ce94
socket_poller::wait returns only triggered events
...
Return value is the number of events found. This also propagates to the return value of zmq_poller_wait_all.
zmq_poller_wait was only returning events on the first-registered socket.
2016-09-29 15:21:52 +02:00
Constantin Rack
872f1e5a9d
Merge pull request #2143 from minrk/avoid-duplicate-poller-proxy
...
avoid passing duplicate entries to zmq_poll
2016-09-29 13:30:15 +02:00
Min RK
c636147c98
avoid duplicate entries in zmq_poll
...
zmq_poller doesn't allow a socket to appear twice
2016-09-29 12:59:53 +02:00
Luca Boccassi
b0df7f1f17
Merge pull request #2141 from minrk/heap-alloc-poll-events
...
heap-allocate events in zmq_poller_poll
2016-09-28 15:27:55 +01:00
Min RK
53fb120687
heap-allocate events in zmq_poller_poll
...
variable-size array allocation is not allowed by some compilers
2016-09-28 15:17:57 +02:00
Luca Boccassi
55930f5e42
Merge pull request #2140 from minrk/zmq_poll_poller
...
Support all sockets in zmq_poll
2016-09-28 13:00:20 +01:00
Doron Somech
c0b1114944
Merge pull request #2138 from minrk/darwin-clock
...
only define clock macros on darwin if not already defined
2016-09-28 14:54:25 +03:00
Doron Somech
91e121c9d3
Merge pull request #2139 from minrk/update-poll-based-on-poll
...
update socket_poller when ZMQ_POLL_BASED_ON_SELECT
2016-09-28 14:54:02 +03:00
Min RK
bdcaa935b9
zmq_poll calls zmq_poller if available
...
enables zmq_poll on threadsafe sockets only supported in zmq_poller (radio, dish, etc.)
2016-09-28 13:53:57 +02:00
Min RK
e50a987650
update socket_poller when ZMQ_POLL_BASED_ON_SELECT
...
previous patch updated only the branch for ZMQ_POLL_BASED_ON_POLL, causing failed builds on Windows.
2016-09-28 13:52:56 +02:00
Min RK
978c5c3499
only define clock macros on darwin if not already defined
...
clang from Xcode 8 has these already defined, causing duplicate macro warnings
2016-09-28 13:52:27 +02:00
Constantin Rack
c751899313
Merge pull request #2136 from bluca/copyright
...
Problem: Brocade has copyright but not in AUTHORS and RELICENSE
2016-09-28 05:49:56 +02:00
Constantin Rack
2768df845c
Merge pull request #2135 from bluca/unbreak-pkg-config
...
Problem: pkg-config Requires.private is broken
2016-09-28 05:17:25 +02:00
Luca Boccassi
2204cb48dd
RELICENSE: Brocade Communications Systems Inc. MPLv2 grant
2016-09-27 23:43:02 +01:00
Luca Boccassi
00239414b3
Problem: Brocade has copyright but not in AUTHORS
...
Solution: add it. Some of the work that I do happens during working
hours and hence the copyright belongs to my employer, Brocade
Communications Systems Inc. Note this in the AUTHORS file.
2016-09-27 23:42:52 +01:00
Luca Boccassi
06d810b4c9
Problem: pkg-config Requires.private is broken
...
Solution: use only Libs.private to avoid breaking application builds.
Even though Requires.private are supposed to be parsed only if
pkg-config is called with --static, the --cflags parameter is enough
to trigger the parsing, causing build failures for applications that
do not (and should not) depend on libzmq's dependencies.
2016-09-27 23:34:35 +01:00
Constantin Rack
34a1292e96
Merge pull request #2134 from bluca/pkg-config-static
...
Problem: pkgconfig file does not support static link
2016-09-27 22:39:55 +02:00
Luca Boccassi
6d9411607d
Problem: pkgconfig file does not support static link
...
Solution: add dependencies, if necessary, to the .private Libs and
Requires field of the pkgconfig file at build time.
This way pkg-config --static --libs libzmq will correctly print
dependencies if they were used to build the static libzmq.a library.
2016-09-27 18:39:07 +01:00
Doron Somech
131a2627b9
Merge pull request #2131 from minrk/poller-static-2
...
pass through poller events
2016-09-27 16:00:37 +03:00
Min RK
ec750732d4
pass through poller events
...
instead of allocating a new, identical array and copying the data.
This is only safe while zmq_poller_event_t and zmq::socket_poller_t::event_t are the same struct,
which they presumably will remain.
2016-09-27 14:59:07 +02:00
Doron Somech
06aeb47d73
Merge pull request #2130 from minrk/poller-static-alloc
...
add n_events argument to zmq_poller_wait_all
2016-09-27 15:39:33 +03:00
Min RK
de7fc1fcf8
add n_events argument to zmq_poller_wait_all
...
avoids unnecessary heap allocations, races on the number of items
2016-09-27 14:37:52 +02:00
Doron Somech
187b4bff48
Merge pull request #2128 from minrk/multi-event-poller
...
Problem: zmq_poller only signals one event
2016-09-27 14:45:03 +03:00
Min RK
2bc9796651
Problem: zmq_poller only signals one event
...
Solution: zmq_poller_wait_all signals all events
allows signaling multiple events with one call to zmq_poller_wait_all
rather than emitting only one event.
this prepares for zmq_poll being based on zmq_poller,
which requires events for all sockets rather than just one.
2016-09-27 13:39:16 +02:00
Laughing
555a087763
fix bugs of the pollset ( #2127 )
...
* fix bugs of the pollset
1. extend 'fd_table' when fd_ is greater or equal than the size of 'fd_table';
2. delete specific fd from pollset before reset pollin or pollout according the description of AIX document
* fix bugs of the pollset
edit error. remove extra spaces and paste fault
* fix bugs of pollset
remove character '-' at the end line.
2016-09-27 08:44:54 +01:00
Constantin Rack
113d3ffc0b
Merge pull request #2126 from paddor/master
...
fix markup syntax on zmq_tipc(7) page
2016-09-25 19:23:36 +02:00
Patrik Wenger
7e07ff3e5b
fix markup syntax on zmq_tipc(7) page
2016-09-25 19:19:13 +02:00
Luca Boccassi
2e55bc5838
Merge pull request #2125 from GreatFruitOmsk/master
...
Fix fd_entry may reference invalid object.
2016-09-25 11:07:26 +01:00
Ilya Kulakov
06614a394d
Fix fd_entry may reference invalid object.
...
fd_entries (std::vector) can reallocate underlying storage
which will render reference invalid.
2016-09-24 21:17:32 -07:00
Constantin Rack
22dac19429
Merge pull request #2123 from bluca/dealer_router_async
...
Problem: zmq_ctx_term asserts with connect-before-bind and sockets with identity over inproc transport
2016-09-24 20:56:19 +02:00
Luca Boccassi
ab5c8c8dea
Problem: zmq_ctx_term segfaults with too many pending inproc connects
...
Solution: add a zmq_assert to check if the ephemeral sockets created
to drain the queue of pending inproc connecting sockets was allocated
successfully.
2016-09-24 18:59:29 +01:00
Luca Boccassi
fab846a5e5
Problem: zmq_ctx_term asserts with connect-before-bind and sockets with identity over inproc transport
...
Solution: check if the connecting inproc socket has been closed
before trying to send the identity.
Otherwise the pipe will be in waiting_for_delimiter state causing
writes to fail and the connect to assert when the context is being
torn down and the pending inproc connects are resolved.
Add test case that covers this behaviour.
2016-09-24 18:59:29 +01:00
Luca Boccassi
25402335fd
Problem: no bind-after-connect TCP test
...
Solution: add one to increase coverage
2016-09-24 18:27:19 +01:00
Luca Boccassi
55244935c2
Merge pull request #2122 from gena-moscow/master
...
Problem: Pub socket crashes on client disconnect.
2016-09-23 13:53:55 +01:00
Gennady Makovetski
2e3888dd45
Problem: Pub socket crashes on client disconnect. family_entry.fd_entries [i] is modified in zmq::select_t::rm_fd()
...
Solution: do not copy family_entry.fd_entries [i]
2016-09-23 15:26:36 +03:00
Constantin Rack
e30ab69738
Merge pull request #2121 from paddor/master
...
Problem: documentation markup unrecognized
2016-09-21 21:50:20 +02:00
Patrik Wenger
18e0451092
Problem: documentation markup unrecognized
...
The effect can be seen on http://api.zeromq.org/4-2:zmq-getsockopt at
options ZMQ_USE_FD and ZMQ_RATE.
Solution: fix length of squiggly line under option title
2016-09-21 21:39:01 +02:00
Luca Boccassi
bacba21ef2
Merge pull request #2120 from hnwyllmm/pollset
...
Pollset-change the position of `pollset`
2016-09-21 07:57:36 +01:00
hnwyllmm@126.com
bdf887fd74
move macro define ZMQ_USE_POLLSET
to the position between ZMQ_USE_DEVPOLL
and ZMQ_USE_POLL
2016-09-21 11:41:35 +08:00
hnwyllmm@126.com
55442699ef
replace tabs with space
2016-09-21 11:28:32 +08:00
hnwyllmm@126.com
eee7880752
move the pollset
to the position between devpoll
and poll
2016-09-21 11:24:26 +08:00
Luca Boccassi
861fcaf745
Merge pull request #2113 from hnwyllmm/pollset
...
remove pollset.hpp/.cpp to src directory
2016-09-20 13:16:57 +01:00
hnwyllmm@126.com
c964b7cfaf
remove pollset.hpp/.cpp to src directory
2016-09-20 17:05:14 +08:00
Doron Somech
4039858754
Merge pull request #2112 from hnwyllmm/pollset
...
Pollset
2016-09-20 09:40:35 +02:00
Laughing
3a5971171f
add pollset poller in AIX
...
add a new poller named pollset which will get benefit of performance in AIX platform.
2016-09-20 10:52:12 +08:00
Laughing
45286fa1fe
add pollset poller in AIX
...
add a new poller named pollset which will get benefit of performance in AIX platform.
2016-09-20 10:50:50 +08:00
Laughing
38931b2d8b
add pollset poller in AIX
...
add a new poller named pollset which will get benefit of performance in AIX platform.
2016-09-20 10:44:37 +08:00
Laughing
390e8f4d82
add pollset poller in AIX
...
add a new poller named pollset which will get benefit of performance in AIX platform.
2016-09-20 10:44:03 +08:00
Constantin Rack
50e277bd8f
Merge pull request #2111 from bluca/ipv6_multi_endpoint
...
Problem: zmq_connect with IPv6 "source:port;dest:port" format is broken
2016-09-17 21:34:46 +02:00
Luca Boccassi
53e5a9a6f9
Problem: zmq_connect with IPv6 "source:port;dest:port" format is broken
...
Solution: allow for '[' character when doing the basic sanity check
on the TCP endpoint.
Also add unit tests for both IPv4 and IPv6 source;dest format.
2016-09-17 20:04:40 +01:00
Luca Boccassi
c1d07c6cd6
Problem: test_reqrep_tcp does not have IPv6 tests
...
Solution: add them
2016-09-17 20:04:40 +01:00
Luca Boccassi
896192ff42
Problem: test_reqrep_tcp does not test multiple endpoints
...
Solution: add a test for this use case
2016-09-17 19:30:59 +01:00
Luca Boccassi
75219e33a7
Problem: test_reqrep_tcp does not test disconnect/unbind
...
Solution: add disconnect and unbind calls to the test
2016-09-17 19:30:35 +01:00
Luca Boccassi
8d723fee3d
Problem: test_reqrep_tcp is too limited
...
Solution: refactor it to allow for multiple functionalities to be
tested
2016-09-17 19:30:22 +01:00
Luca Boccassi
f0945c85ef
Merge pull request #2110 from c-rack/remove-tabs
...
Problem: source conatins tabs and trailing spaces
2016-09-17 08:44:35 +01:00
Constantin Rack
8cd33339a1
Problem: source conatins trailing spaces
...
Solution: remove them
2016-09-17 08:46:54 +02:00
Constantin Rack
022cf2aeaa
Problem: source code contains tabs
...
Solution: replace tabes with spaces
2016-09-17 08:44:00 +02:00
Luca Boccassi
e8d665c4e5
Merge pull request #2106 from kou/support-mingw-cross-compile
...
Problem: MinGW cross compile is failed on Linux
2016-09-14 16:15:12 +01:00
Kouhei Sutou
da9b9540f3
Problem: MinGW cross compile is failed on Linux
...
Solution: Use only lower case for header file name.
We can find "wincrypt.h" by "WinCrypt.h" on Windows because Windows uses
case insensitive file system. But we can't find "wincrypt.h" by
"WinCrypt.h" on Linux Because Linux uses case sensitive file system.
2016-09-15 00:07:37 +09:00
Constantin Rack
3683a96fcb
Merge pull request #2105 from t-b/bugfix/missing_newline
...
Problem: Missing newline in printf statement
2016-09-12 19:52:11 +02:00
Thomas Braun
c9c49f3e9f
Problem: Missing newline in printf statement
...
Solution: Add "\n" at end of format string.
2016-09-12 19:45:31 +02:00
Constantin Rack
cf34aeb298
Merge pull request #2100 from a4z/master
...
Problem: scoped optional mutex lock caused unit tests to fail
2016-09-04 16:45:09 +02:00
a4z
a43f6ce0a6
Problem: scoped optional mutex lock caused unit tests to fail
...
Solution: Add a scope that scopegurad unlocks the mutex
before the object instance deletes itself and wants to unlock
a locked mutex
2016-09-04 16:18:07 +02:00
Luca Boccassi
3068f4762a
Merge pull request #2099 from a4z/master
...
Problem: socket_base uses macros for mutex lock and unlock
2016-09-04 11:58:43 +01:00
a4z
9201009f17
Problem: socket_base uses macros for mutex lock and unlock
...
Solution: add a lock guard that takes optional a mutex and use it
2016-09-04 10:11:47 +02:00
Constantin Rack
fb34c3234d
Merge pull request #2097 from bluca/cmake_dist
...
Problem: CMake build from dist tarball broken
2016-09-01 19:58:57 +02:00
Luca Boccassi
a4ae43e036
Problem: CMake build from dist tarball broken
...
Solution: include src/version.rc.in and tests/CMakeLists.txt in the
make dist tarball by adding them to makefile.am EXTRA_DIST list.
2016-09-01 13:15:02 +01:00
Constantin Rack
ae31587e4d
Merge pull request #2094 from bluca/obs_draft
...
Problem: cannot build packages with DRAFT APIs
2016-08-28 18:28:58 +02:00
Luca Boccassi
abd37423d3
Problem: cannot build rpm with drafts on OBS
...
Solution: if rpmbuild is called with --with drafts, which can be
triggered on OBS by adding:
Macros:
%_with_drafts 1
to the bottom of the prjconf, then enable draft APIs.
2016-08-28 15:44:55 +01:00
Luca Boccassi
a8a774e71b
Problem: cannot build deb with drafts on OBS
...
Solution: parse the OBS prjconf and the user env variable
DEB_BUILD_OPTIONS. If either of those define "drafts" then build with
draft APIs enabled.
2016-08-28 15:44:55 +01:00
Luca Boccassi
493f17cc81
Merge pull request #2093 from t-b/fix_building_documentation
...
Fix building documentation
2016-08-28 12:33:15 +01:00
Thomas Braun
ae08099eb5
Problem: Documentation still has .txt suffix
...
Solution: The regular expression replacement expected a non-existing
space at the beginning of the input files.
2016-08-28 13:06:36 +02:00
Thomas Braun
1303eea508
Problem: Broken documentation build
...
Solution: The CMAKE module PythonInterp sets the variable
PYTHONINTERP_FOUND and not PYTHON_FOUND if it finds
a python interpreter.
2016-08-28 13:04:02 +02:00
Constantin Rack
81fd4044f0
Merge pull request #2092 from bluca/xp_testutils_ipv6
...
Problem: testutil.hpp fails to build on Windows XP
2016-08-27 18:15:11 +02:00
Luca Boccassi
a9343dbbc3
Problem: testutil.hpp fails to build on Windows XP
...
Solution: ifdef is_ipv6_available to always return false if building
on Windows XP, as it doesn't support the needed standard libc
functions
2016-08-27 16:48:38 +01:00
Luca Boccassi
5d1c75f033
Merge pull request #2090 from jolting/patch-1
...
[gssapi] memory allocation mismatch on windows
2016-08-27 11:28:03 +01:00
Hunter Laux
fd758d7239
[gssapi] memory allocation mismatch on windows
...
The gssapi has some helper functions gssalloc_malloc()/gssalloc_free()
which on windows doesn't call malloc()/free(). Instead these are
wrappers around HeapAlloc() and HeapFree(). To complicate matters
gssapi doesn't export these helper functions, so you're left using
the allocation method of your choice.
See Here:
89683d1f13/src/lib/gssapi/generic/gssapi_alloc.h
The zmq gssapi implementation is calling malloc and then calling
gss_release_buffer() to free the memory. gss_release_buffer uses
gssalloc_free() to free this buffer which on windows calls HeapFree()
instead of free(). This causes an access violation on windows.
2016-08-26 18:23:31 -07:00
Constantin Rack
7f8a1da372
Merge pull request #2089 from bluca/ipv6_test_windows
...
Problem: tests should not create 2 ZMQ contexts
2016-08-24 08:04:36 +02:00
Luca Boccassi
0002824fc0
Problem: is_ipv6_available needs context to work on Windows
...
Solution: call the function after the zmq_ctx has been created, not
before, so that the relevant Windows system calls have been setup.
2016-08-23 21:48:57 +01:00
Luca Boccassi
f486176741
Revert "is_ipv6_available: Create a fake zmq context on windows"
...
This reverts commit 9adf20aaeb2abfcbdf6baa08e524207c5b8c4dfb.
2016-08-23 21:46:43 +01:00
Luca Boccassi
aab6ca787d
Merge pull request #2088 from t-b/bugfix/initialize_network_stack_for_ipv6_test
...
is_ipv6_available: Create a fake zmq context on windows
2016-08-23 21:45:52 +01:00
Thomas Braun
9adf20aaeb
is_ipv6_available: Create a fake zmq context on windows
...
This is required as zmq_ctx_new calls WSAStartup. Without that the IPV6
socket creation always fails.
2016-08-23 21:52:16 +02:00
Luca Boccassi
c9bc939705
Merge pull request #2084 from GreatFruitOmsk/cmake-fix
...
Fix compatibility with newer CMake.
2016-08-16 08:37:07 +01:00
Ilya Kulakov
8678fcce7c
Fix compatibility with newer CMake.
2016-08-15 18:31:12 -07:00
Luca Boccassi
8d00cdd928
Merge pull request #2082 from pijyoi/fix_zmqstream_doc
...
Problem: zmq_stream doc is confusing regarding ZMQ_SNDMORE flag
2016-08-13 15:04:24 +02:00
KIU Shueng Chuan
5340215613
Problem: zmq_stream doc is confusing regarding ZMQ_SNDMORE flag
...
Solution: fix it.
The documentation first states that the ZMQ_SNDMORE flag is ignored on
data frames. Then it states that omitting the ZMQ_SNDMORE flag has
consequences. The example HTTP server code further muddies the situation
with a similar comment.
The implementation of ZMQ_STREAM only accepts two-part messages.
The first part is an identity frame while the second and last part is
the data frame.
As with any multipart message, all parts except the last need the
ZMQ_SNDMORE flag. The second and last part would normally omit the
ZMQ_SNDMORE flag to mark the end of the multipart message.
However, the ZMQ_STREAM implementation ignores the ZMQ_SNDMORE flag on
the data frame rather than requiring that it be omitted. The latter
behaviour would have been more consistent with the other ZeroMQ
sockets.
2016-08-13 20:37:24 +08:00
Kevin Sapper
2fc86bc3c6
Merge pull request #2074 from bluca/obs_compress
...
Problem: OBS compress not available on CentOS
2016-08-01 14:04:05 +00:00
Luca Boccassi
ae0ba5296f
Problem: OBS service changes ver after compress
...
Solution: run the update version service before the recompress
service
2016-08-01 15:01:47 +01:00
Luca Boccassi
9029121eb4
Problem: OBS compress not available on CentOS
...
Solution: run the obs-service-compress at service time rather than
buildtime
2016-08-01 12:35:24 +01:00
Constantin Rack
845426710e
Merge pull request #2073 from bluca/obs
...
Problem: no OBS _service and various packaging problems
2016-07-31 18:39:15 +02:00