53 Commits

Author SHA1 Message Date
Pieter Hintjens
94d9a4ffdf Problem: copyright statements are out of date
Solution: update for 2015

Fixes #1320
2015-01-22 10:32:37 +01:00
Claudio Freire
6a227b2ee4 Re-enable pollout before cancelling tx timeout 2014-11-10 14:00:34 -03:00
Claudio Freire
3de1163369 Fix busy-polling bug in pgm_sender causing it to consume CPU cycles 2014-11-10 13:22:54 -03:00
Pieter Hintjens
b3b9e046ee Updated copyright statements for 2014 2014-01-02 12:00:57 +01:00
Martin Hurton
b35c08beb4 Rename engine's methods to improve code readability 2013-10-09 20:26:38 +02:00
Martin Hurton
7942db7606 Refactor code so that messages go through engines 2013-04-11 18:52:51 +02:00
Pieter Hintjens
f0f16505e5 Removed corporate advertisements from source file headers
Copyrights had become ads for Sustrik's corporate sponsors, going against the original
agreement to share copyrights with the community (that agreement was: one line stating
iMatix copyright + one reference to AUTHORS file). The proliferation of corporate ads
is also unfair to the many individual authors. I've removed ALL corporate title from
the source files so the copyright statements can now be centralized in AUTHORS and
source files can be properly updated on an annual basis.
2013-03-12 13:24:57 +01:00
Pieter Hintjens
4ba34c9d70 Whitespace and style fixes 2012-10-24 09:18:52 +09:00
Ian Barber
d7331b7b1f Fixing PGM issues
Hopefully fixed LIBZMQ-427 - there was a slight typo in the init_address
refactor. The encoder refactoring had also broken pgm_sender and
receiver, but just required updating to use the new functions.
2012-09-04 23:24:48 +01:00
Martin Hurton
dfc0222ee6 Decouple encoder_t and decoder_t from session_base_t
This patch introduces i_msg_sink and i_msg_source interfaces. This
allows us to make message encoder and decoder more general.
2012-09-02 22:46:26 +02:00
Martin Hurton
24b79c7e0b Prefer errno_assert/alloc_assert to zmq_assert 2012-05-28 23:17:03 +02:00
Martin Lucina
0319cb2cd1 Fix data loss for PUB/SUB and unidirectional transports (LIBZMQ-268)
With the introduction of subscription forwarding, the first message sent
on a PUB socket using a unidirectional transport (e.g. PGM) is always
lost due to the "subscribe to all" being done asynchronously.

This patch fixes the problem and also refactors the code to have a single
point where the "subscribe to all" is performed.

Signed-off-by: Martin Lucina <martin@lucina.net>
2012-02-02 13:07:48 +01:00
Martin Lucina
029e28865d Fix assertion in pgm_sender_t::plug() (LIBZMQ-303)
Opening any PGM socket gives this assertion. The problem is in
pgm_sender_t::plug() which is incorrectly testing the return value from
session::write().

Signed-off-by: Martin Lucina <martin@lucina.net>
2011-12-25 02:57:04 +01:00
Martin Sustrik
8e21d64c97 Copyright dates adjusted to reflect reality
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-01 18:06:11 +01:00
Martin Sustrik
8a0f5f7650 Miru copyrights added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-01 14:46:18 +01:00
Martin Sustrik
ac7717b7b3 250bpm copyrights added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31 16:20:30 +01:00
Martin Sustrik
f78d9b6bfc Session class separated into socket-type-specific sessions
This is a preliminary patch allowing for socket-type-specific
functionality in the I/O thread. For example, message format
can be checked asynchronously and misbehaved connections dropped
straight away.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-15 10:00:23 +02:00
Martin Sustrik
3488af048f Fix the PGM support on win64
On win64 the size of file descriptor is not the same as size of int.
The bug in PGM transport caused a runtime error because of this.
The problem is fixed now.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-17 18:41:02 +02:00
Martin Sustrik
43b5b3444c PGM subscription forwarding fixed
PGM when using in XPUB socket has to subscribe for all the messages
as it has no idea what the subscribers are interesred in.
This generic subscribe message was malformed. Fixed.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24 18:30:48 +02:00
Martin Sustrik
7c1dca546d Session classes merged into a single class
Removal of ZMQ_IDENTITY resulted in various session classes doing
almost the same thing. This patch merges the classes into a single
class.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-24 18:25:30 +02:00
Martin Sustrik
c7542981d1 PGM transport reconciled with subscription forwarding
As PGM is not capable of passing subscriptions upstream,
subscriptions are ignored at sub side and engine subscribes
for all messages on pub side.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-07-11 10:18:30 +02:00
Martin Sustrik
f8bf3a4cef Rename i_inout to i_engine_sink
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-06-27 18:16:53 +02:00
Martin Sustrik
18b9ebea32 The copyrights in file headers updated.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-02 16:30:40 +01:00
Martin Sustrik
43e8868875 Added explicit error message in case of memory exhaustion
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-02-22 16:23:36 +01:00
Martin Sustrik
b358df9fff Name of "GNU Lesser Public License" corrected.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-30 15:08:28 +02:00
Toralf Wittner
a1474e3057 Cancel tx_timer_id in pgm_sender_t::out_event().
Signed-off-by: Toralf Wittner <toralf.wittner@gmail.com>
2010-10-16 08:27:57 +02:00
Martin Sustrik
b64b50ae21 Timers correctly canceled by PGM engines on shutdown.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-15 10:58:19 +02:00
Steven McCoy
5b8af52efc Fix assertion in PGM transports on cancel_timer
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
2010-10-11 17:59:58 +02:00
Steven McCoy
d14be62499 more fixes to (e)pgm transport 2010-09-30 09:11:51 +02:00
Martin Sustrik
43e34d0281 engine leak fixed; pgm compilation fixed 2010-08-25 15:39:20 +02:00
Martin Sustrik
dfdaff5eba XREP-style prefixing/trimming messages removed 2010-03-20 10:58:59 +01:00
Martin Hurton
61ee6fae53 Implement flow control
This commit introduces the necessary changes necessary
for implementing flow control. None of the socket types
implements the flow control yet. The code will crash when
the flow control is enabled and the thw lwm is reached.

The following commits will add flow-control support for
individual socket types.
2010-03-12 11:07:38 +01:00
Martin Sustrik
b9caa319e2 Multi-hop REQ/REP, part XI., finalise the XREQ/XREP functionality 2010-02-16 18:30:38 +01:00
Martin Sustrik
f5ce81f289 Multi-hop REQ/REP, part VIII., new blob_t type used for holding identity 2010-02-13 14:07:30 +01:00
Martin Sustrik
36a576370c Multi-hop REQ/REP, part I., tracerouting switched on on XREP socket 2010-02-12 15:57:54 +01:00
malosek
11fec367d1 added pending event fd handling by the pgm_sender 2010-01-05 11:22:14 +01:00
Martin Sustrik
4f6baf4dde Copyrights transferred from FastMQ to iMatix 2010-01-05 08:29:35 +01:00
Martin Sustrik
5852db451a PGM code cleanup 2009-12-28 11:51:06 +01:00
Martin Sustrik
aebff623f3 ZMQII-28: Bidirectional introduction on TCP connection establishment 2009-12-23 19:37:56 +01:00
Martin Sustrik
e49115224a zmq_encoder/decoder are able to add/trim prefixes from messages; fair queueing and load balancing algorithms factorised into separate classes 2009-12-15 09:09:19 +01:00
Martin Sustrik
fa6bf24d80 XREP & XREQ socket types added; zmq_queue device added 2009-12-13 14:45:23 +01:00
Martin Sustrik
c43aded531 debug code removed from PGM engines 2009-12-13 11:27:43 +01:00
Martin Sustrik
f4ac8d7a44 OpenPGM v1 support removed 2009-12-13 09:56:02 +01:00
Martin Sustrik
73b765e4b4 PGM transport fixed 2009-12-13 09:11:08 +01:00
malosek
9ccf2b42cf minor tweaks in pgm code 2009-11-30 16:45:18 +01:00
malosek
7afc61ae7c 0MQ compilable on winXP mingw with --with-pgm2 option 2009-10-06 12:57:24 +02:00
malosek
39d915ded8 PGM2 sender 2009-09-28 18:06:06 +02:00
malosek
72c5c5fff4 --with-pgm2 compilable 2009-09-24 16:23:49 +02:00
malosek
33afdcd1ad added --with-pgm2 into build system 2009-09-24 12:43:35 +02:00
malosek
03d494d4f0 added udp:// transport prefix for PGM UDP encapsulation 2009-09-16 15:36:38 +02:00