0
0
mirror of https://github.com/zeromq/libzmq.git synced 2025-01-22 07:29:31 +08:00

1412 Commits

Author SHA1 Message Date
Daniel Norberg
67fd4c9a2c add missing semicolon 2012-02-03 17:28:45 +01:00
Daniel Norberg
79f753bf56 xpub: free received subscription messages 2012-02-03 11:04:46 +01:00
Chuck Remes
4f4d72afc6 Merge pull request #232 from chuckremes/master
mato: merge patch to close libzmq-268
2012-02-02 12:22:46 -08:00
Chuck Remes
93db782a1d Merge branch 'libzmq-268' of git://git.lucina.net/libzmq 2012-02-02 14:17:30 -06:00
Chuck Remes
adee8270dd Merge pull request #231 from chuckremes/master
mato: merge patch to close libzmq-303
2012-02-02 12:16:32 -08:00
Chuck Remes
762bcff73f Merge branch 'libzmq-303' of git://git.lucina.net/libzmq 2012-02-02 14:14:56 -06:00
Chuck Remes
e89a5f1e1a Merge pull request #230 from chuckremes/master
mato: merge patch to close libzmq-205
2012-02-02 12:14:27 -08:00
Chuck Remes
c54ad48c9b Merge branch 'libzmq-205' of git://git.lucina.net/libzmq 2012-02-02 14:09:37 -06: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
Pieter Hintjens
edf7db74d9 Merge pull request #227 from gimaker/smaller-mtrie
Reduce memory usage of mtrie.
2012-01-30 01:28:47 -08:00
Staffan Gimåker
e6c97c5ecc Reduce memory usage of mtrie.
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
2012-01-30 09:47:33 +01:00
Martin Lucina
1925c92fe9 Merge branches 'libzmq-205' and 'libzmq-303' 2012-01-30 01:57:18 +01:00
Pieter Hintjens
7e8a839a22 Merge pull request #226 from gitfoxi/master
Support Epoll on cross-compile without runtime test.
2012-01-27 16:01:20 -08:00
m
1e5a48f521 Epoll is default for cross-compile. For regular-compile, test kernel (run) support. 2012-01-27 15:24:47 -08:00
Pieter Hintjens
281dcd2544 Merge pull request #221 from fidlej/master
Updated connector open() doc strings.
2012-01-27 14:48:43 -08:00
Pieter Hintjens
676d4f4e18 Merge pull request #222 from gimaker/trie-pruning
Fix for LIBZMQ-305
2012-01-27 14:48:17 -08:00
Pieter Hintjens
0c94cd036a Merge pull request #223 from gimaker/libzmq-310
Throw away unexpected data received by XPUB sockets, rather than asserting
2012-01-27 14:47:36 -08:00
Pieter Hintjens
95f6a07403 Merge pull request #224 from vortechs2000/master
Patch from Mikko Koppanen for #LIBZMQ-301
2012-01-27 14:47:14 -08:00
Pieter Hintjens
57f64c5079 Merge pull request #225 from gitfoxi/master
Fix build on old-ass Linux
2012-01-27 14:44:42 -08:00
m
c71375ea72 Fix: Case where system library has epoll but kernel does not support it. 2012-01-27 13:27:21 -08:00
m
c4f2240851 Fix: runtime patch for when system has clock_gettime but does not support CLOCK_MONOTONIC. 2012-01-27 12:40:56 -08:00
m
b5dbff8ed4 Fix basic_string<unsigned char> not implemented in stdc++ 3 2012-01-27 12:24:14 -08:00
m
99df984be1 Fix bad combination of gcc3, -Werror and private destructor. 2012-01-27 12:23:32 -08:00
Staffan Gimåker
bc4d1b6002 Fixed segfault bug sometimes happening when pruning the trie/mtrie.
The cause behind the segfault was next.node being deleted but count still
being non-zero.

Signed-off-by: Staffan Gimåker <staffan@spotify.com>
2012-01-26 14:12:11 +01:00
AJ Lewis
2e0c4330fa Patch from Mikko Koppanen for #LIBZMQ-301
Add the '-Ae' flag and check for gethrtime() on HPUX

Check if CLOCK_MONOTONIC defined before using it - if not, use
gethrtime() if it's available, otherwise fall back to the old
behavior.

Signed-off-by: AJ Lewis <aj.lewis@quantum.com>
2012-01-19 13:09:23 -06:00
Staffan Gimåker
36215656eb Throw away unexpected data received by XPUB sockets, rather than asserting.
Fixes LIBZMQ-310.

Signed-off-by: Staffan Gimåker <staffan@spotify.com>
2012-01-09 12:19:59 +01:00
Martin Lucina
c34a144365 Fix pgm_receiver.cpp: zmq_assert (pending_bytes == 0) (LIBZMQ-205)
This patch fixes the problem described in LIBZMQ-205. The assertion itself
is probably caused by previously queued POLLIN events arriving after POLLIN
has been disabled on the socket.

The following additional bugs have been fixed as part of debugging this
problem:

- pgm_receiver_t does not flush messages written to the session in all
  cases which can lead to a stalled reader. Add calls to session->flush ()
  in the appropriate places.

- ensure to restart polling when a pending message is flushed in
  activate_in ().

Signed-off-by: Martin Lucina <martin@lucina.net>
2012-01-04 11:48:41 +01:00
Staffan Gimåker
19129edc60 Prune redundant nodes in the trie.
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
2012-01-03 16:24:44 +01:00
Staffan Gimåker
6fa9ffebe5 Prune redundant nodes in the mtrie.
Signed-off-by: Staffan Gimåker <staffan@spotify.com>
2012-01-03 16:24:16 +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
Ivo Danihelka
1d8b132d36 Updated connector open() doc strings.
Signed-off-by: Ivo Danihelka <ivo@danihelka.net>
2011-12-21 16:33:16 +01:00
Martin Sustrik
6f32361fea Version bumped to 3.1.1
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-19 15:43:38 +01:00
Martin Lucina
b3fbe0113d Merge branch 'master' of github.com:zeromq/libzmq 2011-12-18 12:46:03 +01:00
Martin Sustrik
dcb1d558a5 Fix MSVC10 build distfiles
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
v3.1.0
2011-12-18 12:30:31 +01:00
Martin Sustrik
3bf7860fb7 NEWS updated for 3.1.0 release
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-18 11:41:45 +01:00
Martin Lucina
22ef966d4a Update email address in man pages
Signed-off-by: Martin Lucina <martin@lucina.net>
2011-12-18 11:19:55 +01:00
Martin Lucina
183e126364 Fix typo in zmq_sendmsg(3) manual page
Signed-off-by: Martin Lucina <martin@lucina.net>
2011-12-18 11:12:44 +01:00
Martin Lucina
adc07128e6 Merge branch 'master' of github.com:zeromq/libzmq 2011-12-18 11:06:19 +01:00
Martin Sustrik
3fbe8ac3c3 Dont wait for pending subscription commands on shutdown
When (X)SUB socket is being shut down there may be pending
outbound subscription commands in the pipes. In such case
we want to close the socket immediately instead of waiting
for the commands to be sent.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-17 23:42:45 +01:00
Martin Lucina
bfbd16d099 Merge branch 'master' of github.com:zeromq/libzmq 2011-12-17 11:59:29 +01:00
Martin Sustrik
91fdedf25c Fix polling on XREP socket
When polling on XREP socket in incoming message part was prefetched,
but not the identity of sender. The problem is fixed by this patch.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-17 10:14:32 +01:00
Martin Sustrik
f9eb763293 zmq_sendmsg and zmq_recvmsg checks for NULL message object
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-16 07:04:38 +01:00
Stuart Webster
3fb5c11b03 Added MSVC10 solution and project files for Windows
These include configurations for both Win32 and x64 platforms. All project
settings have been normalised in property sheets (the ".props" files under
builds/msvc/properties) to simplify maintenance. Build artefacts are all
generated in platform-specific subfolders of bin, lib and obj directories.

Also enables the use of precompiled headers with MSVC10.

This significantly reduces the time required to compile libzmq with Visual
Studio on Windows. It should have no impact on other platforms.

Signed-off-by: Stuart Webster <sw_webster@hotmail.com>
2011-12-15 14:03:43 +01:00
Martin Lucina
a9e03336b0 A synchronous connect() failure in ipc_connecter can result in Assertion
failed: s == retired_fd (ipc_connecter.cpp:174), as reported in LIBZMQ-294.

This patch fixes the bug, and also an identical problem in tcp_connecter
which has not hit people since TCP connect() usually completes via the
asynchronous code path (poll, out_event).

Signed-off-by: Martin Lucina <martin@lucina.net>
2011-12-15 13:23:40 +01:00
Martin Lucina
82d935309e Fix synchronous connect failure for ipc://, tcp:// (LIBZMQ-294)
A synchronous connect() failure in ipc_connecter can result in Assertion
failed: s == retired_fd (ipc_connecter.cpp:174), as reported in LIBZMQ-294.

This patch fixes the bug, and also an identical problem in tcp_connecter
which has not hit people since TCP connect() usually completes via the
asynchronous code path (poll, out_event).

Signed-off-by: Martin Lucina <martin@lucina.net>
2011-12-14 00:00:32 +01:00
Martin Lucina
c90f54e6a6 Merge branch 'master' of github.com:zeromq/libzmq 2011-12-11 23:09:48 +01:00
Martin Sustrik
e7d748e812 Mika Fischer added to AUTHORS file
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-03 13:27:20 +01:00
Martin Sustrik
0df86c41b5 rt library required on all platforms
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-12-03 13:25:44 +01:00
Mika Fischer
aaac96d94a This makes clock_t insensitive to the system clock being reset by NTP or
the sysadmin, which could previously cause long hangs for instance in
zmq_poll.

Signed-off-by: Mika Fischer <mika.fischer@zoopnet.de>
2011-12-03 13:07:30 +01:00
Martin Lucina
b4f5ee58a9 Merge branch 'master' of github.com:zeromq/libzmq 2011-11-30 19:34:11 +01:00
Martin Sustrik
fc17bd4117 ENOTCONN on recv() on TCP socket is treated decently (issue 254)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-22 14:48:35 +01:00
Martin Sustrik
daac9ac5b2 Phillip Kovacs added to the AUTHORS file
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-21 08:11:33 +01:00
Philip Kovacs
bf9062902c Fix broken VPATH/parallel builds
Signed-off-by: Philip Kovacs <phil@philkovacs.com>
2011-11-21 08:10:03 +01:00
Martin Sustrik
5c1a91e33e Stuart Webster added to the AUTHORS file
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-19 10:06:06 +01:00
Stuart Webster
a610b3d1b4 Line-ending conversion rules for hg-git users and enabled use of .gitignore by hg-git users
Mercurial does not have built-in support for converting line-endings. This is a
settings file for hg eol (http://mercurial.selenic.com/wiki/EolExtension), an
extension that replicates the behaviour of git with core.autocrlf=true.

Mercurial uses Python regex syntax by default in its .hgignore files. Adding
this line to .gitignore overrides that setting, so hg-git users can just create
a hardlink to it (e.g "mklink /H .hgignore .gitignore" on Windows) to use it.

Signed-off-by: Stuart Webster <sw_webster@hotmail.com>
2011-11-19 10:02:23 +01:00
Martin Sustrik
f8bd3967bf Documentation for IPv4ONLY option clarified
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-16 19:49:31 +01:00
Martin Sustrik
5a6503e5c2 Bug in XREP and XREQ fixed (issue 280)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-15 13:56:59 +01:00
Martin Sustrik
83975c1b21 Missing "defined" tokens added
The missing tokens broke the build if you used -Werror -Wundef

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-15 08:40:46 +01:00
Martin Sustrik
21bca4dbe4 Bug concerining identity in XREQ socket fixed (issue 280)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-14 11:15:20 +01:00
Martin Sustrik
1c239708ab Couple of bugs in XREP handling of identities fixed.
wq:
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-13 10:33:49 +01:00
Martin Sustrik
f8b0055026 Hangup in signaler creation on Windows fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-10 23:38:08 +01:00
Martin Lucina
90d0435b56 Merge branch 'master' of github.com:zeromq/libzmq 2011-11-09 17:46:00 +01:00
Martin Sustrik
a7b0b0d3dc AUTHORS file changed
- AJ Lewis added
- Martin Lucina's email address changed

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-09 15:41:51 +01:00
Martin Lucina
27524908c1 Set libzmq ABI version to 3
libzmq master (3.1) is not ABI compatible with libzmq 2.1.x or 3.0 (removed
functionality), hence the ABI version needs to be set to 3.

Signed-off-by: Martin Lucina <martin@lucina.net>
2011-11-09 15:39:33 +01:00
AJ Lewis
c79abee6bc Get AIX 6.1 compiling again by making msg_t class explicit
Older versions of gcc have problems with in-line forward declarations
when there's a naming conflict with a global symbol.

Signed-off-by: AJ Lewis <aj.lewis@quantum.com>

Expand the original patch to all such forward declarations.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-09 15:22:20 +01:00
Martin Lucina
991f7e2c85 Set libzmq ABI version to 3
libzmq master (3.1) is not ABI compatible with libzmq 2.1.x or 3.0 (removed
functionality), hence the ABI version needs to be set to 3.

Signed-off-by: Martin Lucina <martin@lucina.net>
2011-11-09 13:12:46 +01:00
Martin Sustrik
89962a8256 Uninitialised FSM state in REQ session fixed (issue 278)
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-08 14:49:15 +01:00
Martin Sustrik
11e31988e1 Chuck Remeas added to the AUTHORS file
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-06 14:09:20 +01:00
Chuck Remes
93529d8c5d Add zmq_getmsgopt to the API
The new function allows to retrieve options (flags)
from zmq_msg_t.

Signed-off-by: Chuck Remes <cremes@mac.com>
Renamed from zmq_msg_flags to zmq_getmsgopt
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-06 14:03:51 +01:00
Martin Sustrik
bb66f3cc3b Bug in trie fixed (issue 277)
When there were both '0' and '255' subnodes in (mtrie)
the removal of the node resulted in an infinite loop.
Fixed.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-05 16:05:18 +01:00
Martin Sustrik
6503716203 Minor typo corrected
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-05 11:38:50 +01:00
Martin Sustrik
fe81827bd0 Version changed to 3.1.0
This version downgrade is done because of the previous refatoring.
It removed all the new features and reintroduced some of the old
ones (identities). Thus, it made trunk much closer to existing 3.0
branch than it used to be.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-05 10:18:38 +01:00
Martin Sustrik
21a0b49834 Obsolete ECANTROUTE errror code removed
This error code was used only by new-style ROUTER socket
which is not a part of the codebase.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-05 10:10:44 +01:00
Martin Sustrik
a756956781 Use identities in inproc transport
Previous patches have missed the case when the identity should
be sent from an inproc endpoint. Fixed.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-05 09:57:17 +01:00
Brett Cameron
de1d32daae Fix getaddrinfo calls to work on OpenVMS
Signed-off by: Brett Cameron <Brett.Cameron@hp.com>
2011-11-04 14:15:06 +01:00
Martin Sustrik
50a9ee6e73 MSVC build fixed
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-04 10:02:49 +01:00
Martin Sustrik
05ce301f35 Merge branch 'master' of github.com:zeromq/libzmq 2011-11-04 09:48:25 +01:00
sustrik
6cdd720400 Merge pull request #220 from 250bpm/HEAD
Refactoring
2011-11-04 02:15:37 -07:00
Martin Sustrik
e9c3a227a7 Linking exception corrected
Correctly states 'copyright holders' instead of 'iMatix'.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-04 08:05:39 +01:00
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
1c071f54a6 LABELs removed from the documentation
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-01 14:09:54 +01:00
Martin Sustrik
7563518929 Tests print their name before running
This makes finding out which test have hung-up easier.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-01 13:54:28 +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
9227c38933 ROUTER and DEALER are aliases for XREP and XREQ
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31 15:51:11 +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
Martin Sustrik
541b83bc02 Perry Kundert added to the AUTHORS file
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-29 14:49:08 +02: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
Martin Sustrik
9b3e61a178 Ben Gray added to the AUTHORS file
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-27 14:02:57 +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
Martin Sustrik
68ab5f87ed Paul Betts added to the AUTHORS file
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-27 11:51:23 +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
a8362abf11 Enable exceptions raising on assert on Win32
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-27 11:21:01 +02:00
Martin Sustrik
a70bea01cc Merge branch 'master' of github.com:zeromq/libzmq 2011-10-27 10:37:31 +02:00