Martin Sustrik
718885fdcd
Pending messages are delivered even if connection doesn't exist yet
...
Bug in previous refactoring fixed.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-26 11:30:25 +02:00
Martin Sustrik
87a6490b39
All pipe termination code moved to pipe_t
...
Till now the code was spread over mutliple locations.
Additionally, the code was made more formally correct,
with explicit pipe state machine etc.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-25 10:25:51 +02:00
Martin Sustrik
3d4203decf
Fabien Ninoles added to the AUTHORS file
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-23 21:37:52 +02:00
Fabien Ninoles
71ac91ba41
Add multi-array support to array_item_t.
...
Allow to have the same item part of two different arrays, as long as
they are using different array identifier.
2011-05-23 21:36:00 +02:00
Martin Sustrik
0f6f7276e3
Move the pipe termination code to socket_base_t
...
So far, the pipe termination code was spread among socket type
classes, fair queuer, load balancer, etc. This patch moves
all the associated logic to a single place.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-23 20:30:01 +02:00
Martin Sustrik
acf0b0e515
Introduces bi-directional pipes
...
So far, there was a pair of unidirectional pipes between a socket
and a session (or an inproc peer). This resulted in complex
problems with half-closed states and tracking which inpipe
corresponds to which outpipe.
This patch doesn't add any functionality in itself, but is
essential for further work on features like subscription
forwarding.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-22 17:26:53 +02:00
Martin Sustrik
9e6b399256
Couple of minor issues in MSVC build fixed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-17 14:27:03 +02:00
Martin Sustrik
da7b6d0b38
Paul Colomiets added to AUTHORS file
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-17 10:13:54 +02:00
Paul Colomiets
38e5f8699c
Better handling of memory error in resolve_ip_hostname
...
Signed-off-by: Paul Colomiets <pc@gafol.net>
2011-05-17 10:12:27 +02:00
Paul Colomiets
864c18f797
zmq_msg_init_data returns ERRNO instead aborting
...
Signed-off-by: Paul Colomiets <pc@gafol.net>
2011-05-17 10:09:04 +02:00
Martin Sustrik
d8d5a627b1
Duplicate initialisation of PGM_MULTICAST_HOPS removed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-16 10:44:38 +02:00
Martin Sustrik
5d0cffc52f
ZMQ_MULTICAST_HOPS socket option added
...
Sets the time-to-live field in every multicast packet sent from the socket.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-15 18:25:43 +02:00
Martin Sustrik
49df2f416c
Fixes warning when compiling with MSVC on Win64
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-15 13:12:09 +02:00
Martin Sustrik
49387874ef
Async connect doesn't fail on EWSANETDOWN
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-08 09:03:49 +02:00
Pieter Hintjens
da1ef4d268
Fixed REP assert on missing envelope
...
Signed-off-by: Pieter Hintjens <ph@imatix.com>
2011-05-08 09:02:47 +02:00
Martin Sustrik
0c5b781e97
urrent pipe pointer in XREP out of range -- fixed.
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-06 15:51:56 +02:00
Martin Sustrik
3ef7c747ac
Tore Halvorsen added to the AUTHORS file
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-04 12:43:23 +02:00
Tore Halvorsen
10120214ac
Accessing an iterator after it is accessed is not valid.
...
Moving the erase after the access and check agains current_id.
2011-05-04 12:41:10 +02:00
Martin Sustrik
ceb5e1a073
Deallocation functions in zmq.h and msg_t class are consistent.
...
The two functions had different calling conventions (C vs. C++).
It is fixed now.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-03 23:20:43 +02:00
Martin Sustrik
5e329ba7ca
Minor patch to keep ICC compiler happy
...
ICC doesn't recognise that assert(false) terminates the program
and thus complains that certain functions have no return values.
This patch supplies dummy return values to keep the compiler happy.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-03 23:16:03 +02:00
Martin Sustrik
6ecec9bbf1
Current inpipe remains unchaged in XREP when other pipe terminates
...
When an inpipe terminated within XREP, it was erased from the array
and thus current_in (which is an index) pointed to a different
element in the array. This caused problems when we were in the
middle of reading a multipart message.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-02 19:28:51 +02:00
Martin Sustrik
e5d4cd39e1
Yet one more fix related to PUB socket and multipart messages
...
This patch fixes the activation of the pipes, when they pass
from passive state directly to active.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-05-02 19:26:30 +02:00
Pieter Hintjens
e78cc47b18
Moved tests off 5555 (conflict with Eclipse)
...
Signed-off-by: Pieter Hintjens <ph@imatix.com>
2011-05-02 18:59:55 +02:00
Martin Sustrik
eb9bc1b064
Message atomicity problem in PUB socket fixed.
...
Reaching the HWM caused breaking message atomicity when the
flow was reestablished - initial parts of multipart messages
may have been lost.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-30 06:48:18 +02:00
Martin Sustrik
fe2e772dd5
pgm_socket uses binary version of UUID
...
pgm_socket used textural form of UUID to generate GSIs.
The recent patch that removed support for textual UUIDs
broke the functionality. This patch fixes the problem.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-30 06:47:36 +02:00
Martin Sustrik
96213d5735
WSAENETUNREACH is a valid networking error
...
Till now, 0MQ asserted on Windows when connect () returned
WSAENETUNREACH.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-29 07:23:30 +02:00
Martin Sustrik
b2eb84f8ca
Substantial simplification of uuid_t
...
The string format of UUID is not used in 0MQ. Further on,
it turns out that UUIDs have fixed microarchitecture-agnostic
binary layout (see RFC4122). Thus, the conversion to string
and back to binary can be avoided.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-29 07:19:22 +02:00
Martin Sustrik
10fbc78e5c
Assert during SUB socket termination fixed.
...
Fair queueing algorithm was checking whether the current pipe
is not closed in the middle of reading a multipart message.
However, this is OK when the socket is closing down.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-22 07:51:24 +02:00
Martin Sustrik
e0246e32d7
Message-related functionality factored out into msg_t class.
...
This patch addresses serveral issues:
1. It gathers message related functionality scattered over whole
codebase into a single class.
2. It makes zmq_msg_t an opaque datatype. Internals of the class
don't pollute zmq.h header file.
3. zmq_msg_t size decreases from 48 to 32 bytes. That saves ~33%
of memory in scenarios with large amount of small messages.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-21 22:27:48 +02:00
Martin Sustrik
581697695a
Message validity is checked in the runtime
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-19 08:08:15 +02:00
Martin Sustrik
20e0b7cdcb
zmq_socket(3) describes the EMFILE error code
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-18 09:11:45 +02:00
Martin Sustrik
e3dc0b25d9
OpenPGM compilation error on OSX fixed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-18 08:55:51 +02:00
Martin Sustrik
452ea97f5b
zmq_send(3) manpage improved
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-15 08:03:26 +02:00
Martin Sustrik
590ad2510b
Error handling for accept on Cygwin fixed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-15 07:59:28 +02:00
Martin Sustrik
5444064c1a
Minor cleanup of preprocessor definitions for OpenPGM
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-13 10:33:54 +02:00
Martin Sustrik
933ace0919
MSVC build fixed to reflect zmq.cpp split
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-13 10:06:44 +02:00
Martin Sustrik
6191213a57
Code dealing with messages moved to msg.cpp
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-12 14:20:49 +02:00
Martin Sustrik
3b636d7d18
zmq_utils implementation moved to zmq_utils.cpp
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-12 10:00:29 +02:00
Martin Sustrik
e6fd193760
OpenPGM now doesn't redefine bool, we can drop the workaround
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-12 09:22:22 +02:00
Pieter Hintjens
a3b49ca958
Fixed example
...
Signed-off-by: Pieter Hintjens <ph@imatix.com>
2011-04-11 12:14:00 +02:00
Martin Sustrik
0839cceac9
Missing ENOTSOCK added on Win32
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-09 09:46:59 +02:00
Martin Sustrik
b96fe15bb6
Run-time checking for context & socket validity added
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-09 09:35:34 +02:00
Mikko Koppanen
e62686aca5
RPM packaging improvements
...
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-04-09 08:45:12 +02:00
Mikko Koppanen
6fd403c4d8
Make pkg-config dependency conditional
...
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-04-04 22:52:02 +02:00
Martin Sustrik
4b52cf949f
TCP and IPC connection initiation allow for multiple properties
...
So far the only property passed on connection initiation was
identity. The mechanism was now made extensible. Additional
properties are needed to introduce functionality such as
checking the peer's socket type, "subports" etc.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-04 17:53:49 +02:00
Martin Sustrik
8203c4dbb2
Another error handling issue on Win32 solved
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-04 13:12:46 +02:00
Martin Sustrik
475ba3849d
Issue with error checking on Win32 platform fixed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-04 12:49:39 +02:00
Martin Sustrik
1842628b90
Unreferenced variable removed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-04 12:12:06 +02:00
Robert G. Jakabosky
2c7af35827
Add note about thread-safety to zmq_msg_init_data() manpage.
...
Signed-off-by: Robert G. Jakabosky <bobby@sharedrealm.com>
2011-04-03 20:44:02 +02:00
Martin Sustrik
54ea458f62
Git ignores .gcno files
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-03 07:36:02 +02:00
Mikko Koppanen
a48b6cfc00
Additional gcov changes
...
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-04-03 07:34:14 +02:00
Mikko Koppanen
656b646bc6
Large rename: AC_ZMQ_ to LIBZMQ_ and ac_zmq_ to libzmq_. Fixes "warning suspicious cache-id"
...
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-04-02 22:50:46 +02:00
Mikko Koppanen
bdeddb89f7
Added code coverage checking
...
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-04-02 22:49:41 +02:00
Mikko Koppanen
7af18468f8
Add option to build with system opepgm
...
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-04-02 22:48:52 +02:00
Martin Sustrik
0e0e4559a0
Project location on github changed in README file
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-02 19:32:44 +02:00
Pieter Hintjens
3e655227bd
Fixed memory leak with threads on win32
...
Signed-off-by: Pieter Hintjens <ph@imatix.com>
2011-04-02 09:22:41 +02:00
Martin Sustrik
85c2a84036
inproc perf tests now work on Windows
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-02 09:50:35 +02:00
Martin Sustrik
54830ac0f6
MSVC build system updated to match 3.0 changes
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-02 09:03:57 +02:00
Martin Sustrik
ae90d3bdbe
inproc_lat and inproc_thr added to .gitignore
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-01 11:55:10 +02:00
Martin Sustrik
599df5203c
PGM wire format specification improved in zmq_pgm(7)
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-04-01 11:53:51 +02:00
Martin Sustrik
cce57617c7
Ian Barber and Zed Shaw added to credits section
...
talks on conferences, videos
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-31 23:49:28 +02:00
Martin Sustrik
5142a1624b
Robert G. Jakabosky added to the AUTHORS file
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-31 23:16:14 +02:00
Robert G. Jakabosky
d84558e172
Adding thread latency/throughput perf. examples.
...
Signed-off-by: Robert G. Jakabosky <bobby@sharedrealm.com>
2011-03-31 23:14:38 +02:00
Mikko Koppanen
fbf1f51468
Upstream the openpgm build fixes. Add DSO symbol visibility to OpenPGM builds
...
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
2011-03-31 18:42:09 +02:00
Martin Sustrik
d36d9a378a
Comments improvement
...
related to fairness while reading/writing large messages
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-27 19:41:32 +02:00
Martin Sustrik
17fdb5e3a8
zmq_recv() returns size of the message even if it's truncated
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-27 09:50:25 +02:00
Martin Sustrik
82dbef360c
Memory leak in zmq_recv fixed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-26 11:05:55 +01:00
Martin Sustrik
abb184a051
ZMQ_NOBLOCK renamed ZMQ_DONTWAIT
...
Done because of POSIX compliance
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-26 10:38:40 +01:00
Martin Sustrik
bc4a1ce334
ZMQ_HWM split into ZMQ_SNDHWM and ZMQ_RCVHWM
...
These new options allow to control the maximum size of the
inbound and outbound message pipe separately.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 16:47:33 +01:00
Martin Sustrik
507718ee1a
ZMQ_HWM type changed to int
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 15:43:03 +01:00
Martin Sustrik
bd9d7715eb
ZMQ_RATE and ZMQ_RECOVERY_IVL types cahnged to int
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 15:18:20 +01:00
Martin Sustrik
d61f067f5b
ZMQ_EVENTS type changed to int
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 15:07:23 +01:00
Martin Sustrik
23bd3726a5
ZMQ_RCVMORE type changed to int
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 14:59:43 +01:00
Martin Sustrik
17e82a3611
ZMQ_SNDBUF and ZMQ_RCVBUF type changed to int
...
This mimics POSIX specification.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 14:48:50 +01:00
Martin Sustrik
a2252de2bc
ZMQ_RECOVERY_IVL and ZMQ_RECOVERY_IVL_MSEC reconciled
...
There's only one option now -- ZMQ_RECOVRY_IVL --
and it's measured in milliseconds.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 14:36:40 +01:00
Martin Sustrik
8463b4d55e
SWAP functionality removed
...
On-disk storage should be implemented in devices rather than
in 0MQ core. 0MQ is a networking library and there's no point
in storing network buffers on disk.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 12:27:06 +01:00
Martin Sustrik
fb27a000d9
send/recv was changed to send/recv/sendmsg/recvmsg
...
send/recv now complies with POSIX by using raw buffers instead
of message objects and by returning number of bytes sent/recvd
instead of 0/-1.
The return value is changed accordingly for sendmsg and recvmsg.
Note that related man pages will be fixed in a separate patch.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 11:53:55 +01:00
Martin Sustrik
d4e83d2601
C++ binding removed from the core
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 10:18:06 +01:00
Martin Sustrik
7d87db0529
Auto-tests modified to use C API instead of C++ binding
...
As a side effect, broker HWM test was fixed.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-24 10:03:49 +01:00
Martin Sustrik
941be8d217
zmq_device removed
...
Devices are basically applications on top of 0MQ stack. They
should reside in separate libraties.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 17:44:16 +01:00
Martin Sustrik
d4d184a750
Pre-compiled devices removed
...
Along with the devices, xmlParser which is no longer needed
is removed.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 17:33:07 +01:00
Martin Sustrik
b45b68ae4a
ZMQ_MCAST_LOOP removed
...
Multicast loopback is not a real multicast, rather a kernel-space
simulation. Moreover, it tends to be rather unreliable and lossy.
Removing the option will force users to use transports better
suited for the job, such as inproc or ipc.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 17:01:39 +01:00
Martin Sustrik
f5e6d67948
Timeout in zmq_poll is in milliseconds
...
The old timeout in microsecond haven't been compliant with
POSIX and was impractical at the same time.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 15:50:18 +01:00
Martin Sustrik
e3cf6e9ced
Obsolete note removed from zmq_poll(3) manpage
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 15:40:35 +01:00
Martin Sustrik
34d7854199
Obsolete constants ZMQ_UPSTREAM and ZMQ_DOWNSTREAM removed
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 15:26:47 +01:00
Martin Sustrik
dee5f650dd
Version bumped to 3.0.0
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-23 15:24:18 +01:00
Martin Sustrik
1619b3d84a
Message atomicity bug in load-balancer fixed
...
If the peer getting the message have disconnected in the middle
of multiplart message, the remaining part of the message went
to a different peer. This patch fixes the issue.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-20 20:52:54 +01:00
Martin Sustrik
92c7c18367
Message atomicity problem solved in PUB socket
...
When new peer connects to a PUB socket while it is in the middle
of sending of multi-part messages, it gets just the remaining
part of the message, i.e. message atomicity is broken.
This patch drops the tail part of the message and starts sending
to the peer only when new message is started.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-20 11:50:51 +01:00
Martin Sustrik
fac9c2da56
zmq_socket(3) and zmq_setsockopt(3) man pages improved
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-16 16:32:31 +01:00
Martin Sustrik
f5015f4c93
Incorrect errno reported from tcp_listener_t::set_address
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-16 13:48:40 +01:00
Martin Sustrik
32ded2b457
Duplicate identities now checked with zmq_connect
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-16 13:26:23 +01:00
Jon Dyte
b79d07b8bc
reset socket state when identity message cannot be written to xrep
...
Signed-off-by: Jon Dyte <jon@totient.co.uk>
2011-03-16 09:54:03 +01:00
Martin Sustrik
7045a4a213
Dead code removed from named_session.cpp
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-15 13:11:20 +01:00
Martin Sustrik
f987f4b3e2
FreeBSD complation error fixed
...
There was an error in pgm_receiver wrt strict aliasing.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-14 20:29:00 +01:00
Martin Sustrik
2970d6c30b
Remove obsolete assert from pgm_socket.cpp
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-14 07:11:30 +01:00
Guido Goldstein
d0c8edde35
Added missing close method w/ check if socket is already closed.
...
Signed-off-by: Guido Goldstein <github@a-nugget.de>
2011-03-12 17:16:27 +01:00
Martin Sustrik
7b95c5920c
Windows build fixed
...
Compilation of ip.cpp have failed because EPROTONOSUPPORT
was undefined. Including zmq.h should help as the error
code is defined there.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-09 16:34:37 +01:00
Brett Cameron
b00be2651c
Different fixed to make OpenVMS port work.
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-08 14:39:52 +01:00
Martin Sustrik
184bdb8e2b
Bug caused by interaction of REQ/REP routing and HWM fixed.
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-03 12:37:11 +01:00
Martin Sustrik
97add1ec2f
Documentation wrt thread-safety cleaned up.
...
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-03 12:15:08 +01:00