Age | Commit message (Collapse) | Author |
|
Previous patch have broken flushing a delimiter in pipe_t::terminate()
function. This patch allows the flush to happen even if pipe state
is set to 'terminated'.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
* src/pipe.cpp (flush): Fix bogus typo: '&&' was used instead of '||'
|
|
This patch introduces following features:
- XS_PLUGIN context option to add plugins to libxs
- XS_FILTER option to switch between different filter types
- Automatic loading of plug-ins is *not* implemented.
From the implementation point of view:
- standard prefix filter is implemented as a pluggable filter
- trie_t and mtrie_t are joined into a single class
- the code for 0MQ/3.1 compatibility is left in in the form of comments
- new test for testing re-subscriptions is added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Although not a POSIX behaviour, FreeBSD can fail with ECONNRESET.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
- XS_PROTOCOL option added
- libxs ignores when unused flags are set to 1 (0MQ/2.1 bug)
- compatibility tests added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
This option allows to turn on TCP keepalives on the underlying connections.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
When connection with duplicate identity arrives it is ignored.
Till now it resulted in assertion.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
|
|
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Error handling of asynchronous connect for IPC was incorrectly copied
from TCP transport. This patch fixes the problem.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
On reconnections, state machine in req_session_t is
reset to the initial state.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
When reconnection happened, identity was not resent to the peer.
Fixed.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Piotr Sikora <piotr.sikora@frickle.com>
|
|
Signed-off-by: Piotr Sikora <piotr.sikora@frickle.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Originally, the parameter was of type long which is incompatible
with POSIX poll() function.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Moved xs_stopwatch_* functions from xs_utils.cpp/xs_utils.h, and
removed those files. This leaves us with a single header file for
libxs.
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
Reduced xs_utils to the minimum functions required (xs_stopwatch_*)
xs_sleep, xs_thread_* are internal to unit tests and have been moved
to testutil.hpp, useless use of xs_sleep in perf/ has been removed.
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
|
|
This simplifies the options for new users; either use libxs APIs or build
with --enable-libzmq and get libzmq 2.1 emulation.
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
The argument was changed to a context option (XS_IO_THREADS).
0MQ compatibility mode sets the option and ensures that
there's at least one I/O thread present.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Check if the constant is defined before using it. While the constant may
be defined on FreeBSD, there's no support for the functionality and
specifying the flag may cause errors.
Signed-off-by: Gabriele Svelto <gabriele.svelto@gmail.com>
|
|
Removing the pipe may have caused problems with matching,
active and eligible pipes. Some pipes may have moved from one
category to another without any reason.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
connection is closed
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.cpm>
|
|
|
|
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
|
|
This is a fail-fast mechanism to prevent undefined behaviour later
on. In the future, the new connection should be closed in this case.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
Enabled using --enable-libzmq-compat, this installs a drop-in
libzmq library and headers. Not enabled by default since it will
overwrite any existing libzmq install.
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
Signed-off-by: Martin Lucina <martin@lucina.net>
|
|
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
|
|
This matches the behaviour of zmq_setsockopt(ZMQ_SUBSCRIBE, ...), which also
silently drops subscription messages if the SNDHWM is reached.
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
|
|
On systems where int size != pointer size the coversion
resulted in compile-time error.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
The timeout should be int. For historical reasons, however,
it is defined as long. To fix the problem the value is
checked in the runtime to assure it is not larger than INT_MAX.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
It doesn't play well with multipart messages.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
The relationship of these two classes was 1:1.
Thus one of them was obsolete.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|
|
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
|