817 Commits

Author SHA1 Message Date
Martin Sustrik
a4843b65d2 Identities re-introduced
However, the "durable socket" behaviour wasn't re-added.
Identities are used solely for routing in REQ/REP pattern.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-04 08:00:47 +01:00
Martin Sustrik
d20ea25b8c ZMQ_IDENTITY option re-introduced
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-02 14:33:58 +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
7842c71073 LABELS and COMMANDs removed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-01 13:39:54 +01:00
Martin Sustrik
626099aa2a VTCP transport removed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31 16:37:20 +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
4b832ea374 Revert the early dropping of request and replies for disconnected clients
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31 15:56:39 +01:00
Martin Sustrik
dee8b2360a New style ROUTER socket removed.
Signed-off-by: Martin Sustrik <sustrik@turist.(none)>
2011-10-31 15:44:42 +01:00
Perry Kundert
09574a6104 Corrected discarding of remainder of message when request ID invalid
When zmq::req_t::xrecv detects that a response has no request ID
label, or the ID is the wrong size, it would return an EAGAIN, but
would not discard the remainder of the message.  This could allow the
remainder of the message to incorrectly "leak" into a future response,
if it is crafted to look like a reply with a valid response ID.
Discard all remaining message blocks, if the ID is invalid in any way.
2011-10-29 14:47:53 +02:00
Bernd Prager
52bab42212 Missing bracket added
Signed-off: Martin Sustrik <sustrik@250bpm.com>
2011-10-27 17:11:28 +02:00
Ben Gray
9e000c8f26 Patch for issue LIBZMQ-275. Dealing with VSM in distribution when pipes fail to write.
Signed-off-by: Ben Gray <ben@benjamg.com>
2011-10-27 13:59:54 +02:00
Paul Betts
1b706ac028 Enable exceptions raising on assert on Win32
This patch changes the Win32 version to call RaiseException instead of abort
(which eventually calls TerminateProcess). This allows crash dumps to be sent
correctly instead of the process disappearing.

Signed-off-by: Paul Betts <paul@paulbetts.org>
2011-10-27 11:48:58 +02:00
Martin Sustrik
b3cda2ad60 Bug in kqueue poller fixed (issue 261)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-27 09:41:48 +02:00
Mikko Koppanen
6c1b50cfab Added compile-time test for SOCK_CLOEXEC
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-10-26 11:26:00 +02:00
Martin Sustrik
d31792e652 Default HWMs are set to 1000
This patch is meant to prevent users from running out of memory
when using 0MQ in the default configuration.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-06 13:12:49 +02:00
Steven McCoy
cc5d31605f Re-add PGM rate limiting
It was accidently lost in commit fcfad5682e, equivalent
to commits 2ddb106 & b62dd40 in version 2.1.  Changes semantics
from TXW_MAX_RATE to ODATA_MAX_RATE.

Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
2011-10-04 09:32:02 +02:00
Martin Sustrik
7a10bbe77a Bug in subscription matching fixed (issue 263)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-29 11:35:31 +02:00
Jon Dyte
34b114d15d Make sure new ROUTER socket honours POLLIN for cmd messages
Signed-off-by: Jon Dyte <jon@totient.co.uk>
2011-09-29 09:07:03 +02:00
Martin Sustrik
8485a5e5a4 Assert fixed in XREP & ROUTER when sending to terminating pipe (issue 258)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-28 08:03:14 +02:00
Martin Sustrik
d726120e60 Bug in matching algorithm fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-26 14:02:31 +02:00
Martin Sustrik
e170136a2e More bugs in mtrie fixed
Aside of fixing couple of corner cases this patch turns the 'match'
function in mtrie from recursive to iterative.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-16 16:34:28 +02:00
Martin Sustrik
5936379b29 Bug in mtrie fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-16 15:02:52 +02:00
Martin Sustrik
06bdf2c4f9 Check message syntax in REQ asynchronously
This patch adds support for checking messages as they arrive
(as opposed to when they are recv'd by the user) and drop
the connection if they are malformed.

It also uses this new feature to check for validity of inbound
messages in REQ socket.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-16 09:29:43 +02: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
78b02d142e Minor optimisation in message distribution algorithm
If several of the outbound pipes become passive while sending
a single message, the refcount on the message is adjusted
once only, not multiple times. It's an atomic operation so
the cost is not negligible.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-14 15:16:48 +02:00
Martin Sustrik
cf499ee016 Bug in message distribution algorithm fixed (issue 251)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-14 14:31:09 +02:00
Mikko Koppanen
8f8bfcaba0 Fixed issue with req assertions (issue 252)
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-13 16:27:07 +02:00
Martin Sustrik
193fa1c079 Accept square brackets around IPv6 address
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-03 10:19:08 +02:00
Martin Sustrik
9fb9fea633 Improve error reporting in a minor way
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-03 07:40:49 +02:00
Martin Sustrik
8b7ac4c2a9 Close file descriptors on exec (issue 218)
When exec is executed to start a different process image old
0MQ file descriptors could stay open, thus blocking TCP ports
and alike. This patch should solve the problem.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-02 15:34:12 +02:00
Martin Sustrik
2910a728dc msg_t::rm_refs closes the message when number of refs drops to 0 (issue 245)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-02 13:44:22 +02:00
Martin Sustrik
82ab08d871 Premature deallocation bug in XSUB fixed (issue 244)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-01 13:02:22 +02:00
Martin Sustrik
65bb75863d Fixed warnings on Win64
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-09-01 07:26:17 +02:00
Martin Sustrik
80a5f60e33 NIC name resolution moved to tcp_address_t
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-19 12:34:31 +02:00
Martin Sustrik
f0c7edbc9c Missing include added to ip.cpp
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-18 21:16:22 +02:00
Martin Sustrik
898ee99dc1 Windows build fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-18 17:58:46 +02:00
Martin Sustrik
b6ecb00d23 TCP address related functionality moved to tcp_address_t
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-18 17:40:42 +02:00
Martin Sustrik
4a8dd1e404 MSVC build fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-18 11:24:14 +02:00
Martin Sustrik
b01a8e1751 IPC address related functionality refactored into ipc_address_t class
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-18 11:08:22 +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
b3bac17607 tcp_engine renamed to stream engine
The engine was not used exclusively for TCP connections.
Rather it was used to handle any socket with SOCK_STREAM
semantics. The class was renamed to reflect its true function.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-16 12:44:34 +02:00
Martin Sustrik
714d3b288f EAFNOSUPPORT defined on Windows platform
Windows headers don't defined this error.
This patch defines it if not already defined.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-15 20:39:48 +02:00
Ghislain Putois
85851d3127 Preliminary Android support
Some small changes to prepare a cross-compilation for the Android platform

Signed-off-by: Ghislain Putois <ghpu@infonie.fr>
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-15 19:39:21 +02:00
Mikko Koppanen
0354d4d37f Added Android support
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-08-15 19:09:04 +02:00
Steven McCoy
57440b86e2 Add IPv6 support to tcp_listener
Signed-off-by: Steven McCoy <steven.mccoy@miru.hk>
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-15 08:56:00 +02:00
Martin Sustrik
3c3c0bfd1f Minor problems in MSVC build fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-15 08:02:36 +02:00
Martin Sustrik
9196c48256 select version zmq_poll reports invalid FDs
Till now, passing invalid file descriptor to zmq_poll()
caused asseration. Now it returns error.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-14 14:23:16 +02:00
Martin Sustrik
9380098534 Compilation error on HP-UX and AIX fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-14 14:06:42 +02:00
Martin Sustrik
6dc3b2a657 Compilation error on FreeBSD fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-08-14 13:48:28 +02:00