Dhammika Pathirana
10227899b1
assert on malformed messages
2010-09-04 16:59:25 +02:00
Jon Dyte
c2f3b3b445
forwarder and streamer devices handle multi-part messages correctly
2010-09-04 16:58:59 +02:00
Ivo Danihelka
ae567be0c2
improved null checking in zmq_term
2010-09-04 16:58:29 +02:00
Martin Lucina
51a84c15de
zmq::select_t, zmq_poll(): assert if FD_SETSIZE reached
...
Ensure that 0MQ does not attempt to call select() on more than FD_SETSIZE
file descriptors.
2010-09-04 16:12:33 +02:00
Jon Dyte
14853c2db5
Prior to this patch prefix_tree asserts.
...
This is because as it adds the 255th element at a node it attempts to calculate
the count member var which is an unsigned char via count = (255 -0) + 1; and
pass the result to realloc. Unfortunately the result is zero and realloc returns
null; the prefix_tree asserts. I have fixed it by making the count an unsigned
short.
2010-09-02 07:52:02 +02:00
Bernd Melchers
8ec0743c75
Fix for signaler_t on HP-UX and AIX platforms
2010-09-02 07:33:57 +02:00
Mikael Helbo Kjær
59315ebdcb
Erasure of retired fd's in select.cpp causes an assertion in MSVC 2008 STL
...
I was hitting an issue with an SCL enabled STL library in connection with the
way select_t::loop was erasing retired fd's. The problem as identified by the
SCL assertion was that by the time the iterator given to the erase method was
called it was considered invalid by the library. I am not sure this isn't just
a "quirk" of the MSVC STL library as the other code looks valid to me as well.
2010-09-01 18:39:12 +02:00
Martin Lucina
b66dd7afd2
zmq_stopwatch_stop: Don't return EFAULT
...
Function returning unsigned long int cannot return (-1)
2010-08-25 09:50:45 +02:00
Pieter Hintjens
5be54b9120
46 - Devices vulnerable to invalid messages
...
http://github.com/zeromq/zeromq2/issues#issue/46
Invalid messages are now discarded silently, instead of causing an assertion
failure.
2010-08-11 17:05:19 +02:00
Pieter Hintjens
b6cdd369e3
Added error checking (EFAULT) for null arguments
...
* Fixed zmq_term, zmq_socket, zmq_close, zmq_setsockopt,
* zmq_getsockopt, zmq_bind, zmq_connect, zmq_send,
* zmq_recv, zmq_poll, zmq_device, zmq_stopwatch_stop
* Updated Reference Manual for these methods
2010-08-08 11:43:32 +02:00
Pieter Hintjens
677b3d906a
Added not-null assertions on pointer arguments in C API functions
...
* zmq_term
* zmq_socket
* zmq_close
* zmq_setsockopt
* zmq_getsockopt
* zmq_bind
* zmq_connect
* zmq_send
* zmq_recv
* zmq_poll
* zmq_device
* zmq_stopwatch_stop
2010-08-07 20:55:07 +02:00
Martin Lucina
6d35e82db4
Fix uninitialized use of nbytes in signaler fix
2010-08-06 12:00:57 +02:00
Martin Lucina
9ac2ff449c
zmq::signaler_t: Restart syscalls on EINTR
...
This patch restarts the send() or recv() inside zmq::signaler_t if the call fails
due to EINTR.
2010-08-05 23:40:30 +02:00
Pieter Hintjens
11a410b658
Renamed ZMQ_UPSTREAM to ZMQ_PULL, and ZMQ_DOWNSTREAM to ZMQ_PUSH. Left the old
...
definitions as aliases, to be removed in release 3.0. Also renamed the source
files implementing these two socket types. This change does not break existing
applications nor bindings, but allows us to fix the documentation and user guide
now, rather than keeping the old (confusing) names.
2010-08-04 14:38:56 +02:00
Martin Lucina
544b36da68
XREQ: Correct behaviour on hitting ZMQ_HWM
...
This reverts part of commit 84e0c7991a
to get
correct ZMQ_HWM semantics with XREQ sockets:
When sending a message to an XREQ socket, the underlying pipe is selected in
a round-robin fashion. If an underlying pipe is full it is skipped. If there
are no underlying pipes, or all underlying pipes are full then zmq_send()
shall block or return EAGAIN, depending on whether or not the call is blocking.
Messages are never dropped.
2010-07-30 16:49:06 +02:00
Martin Hurton
10533a560b
pipe: check_read() should check for message delimiter
2010-07-24 17:33:54 +02:00
Martin Hurton
e1c596b37e
Make sure lwm > 0 when hwm > 0
2010-07-24 17:19:47 +02:00
Martin Lucina
5b1a6a4bea
Issue 42 - getaddrinfo() fails
2010-07-21 17:33:40 +02:00
Martin Sustrik
aedf3f808b
EHOSTUNREACH is a valid return value from recv()
2010-07-19 08:38:24 +02:00
Martin Sustrik
269904361b
minor comment clarification
2010-07-13 11:46:56 +02:00
Martin Sustrik
da49e5a4dd
devices exit in case of context termination
2010-07-13 07:57:29 +02:00
Martin Hurton
ca057c7db8
Fix identity generation for transient inproc connections
2010-07-10 23:02:50 +02:00
Martin Hurton
1f61c87ac5
issue 40 - nbytes != -1 (tcp_socket.cpp:216)
2010-07-07 17:15:32 +02:00
Martin Hurton
fd707fedc5
issue 38 - Assertion failed: fetched (xrep.cpp:196)
2010-07-07 12:41:53 +02:00
Pieter Hintjens
0ab6532419
Prevent socket reuse by second bind, on win32
2010-06-29 21:08:41 +02:00
Martin Sustrik
79a3d07c85
MSVC build fixed
2010-06-29 07:45:11 +02:00
Martin Sustrik
ba91644fdb
msg_store added to MSVC build
2010-06-26 20:11:40 +02:00
Pieter Hintjens
1dda8a2aaa
Used more expressive variable names
2010-06-25 18:35:42 +02:00
Martin Hurton
fca2e8e8cc
Add SWAP support
2010-06-21 15:06:51 +02:00
Martin Hurton
10c28c1fc2
Revive reader on pipe termination
2010-06-19 20:51:42 +02:00
Martin Hurton
2c3913bb19
fix double free error in PAIR socket
2010-06-19 19:50:55 +02:00
Martin Sustrik
cff7ba2315
Windows build fixed
2010-06-17 17:09:51 +02:00
Martin Sustrik
7f01e9970d
stopwatch returned to libzmq
2010-06-17 16:51:53 +02:00
Martin Hurton
4777fe4010
pipe: fix bug in rollback() method
...
The msgs_written variable keeps track how many complete
messages have been written so far. The rollback operation drops all
fragments of the last incomplete message so it shouldn't
change this variable at all.
2010-06-17 13:00:30 +02:00
Martin Sustrik
9151de3895
generate identity for transient inproc connections
2010-06-17 11:01:18 +02:00
Brian Buchanan
ac90b7e0ba
issue 35 - ZMQ_RCVMORE sometimes erroneously returns false
2010-06-11 08:03:34 +02:00
Martin Sustrik
5ee355d188
if connect asserts, exact error is reported
2010-06-11 07:02:36 +02:00
Martin Sustrik
27877d73ea
EHOSTUNREACH is acceptable outcome from connect
2010-06-11 06:55:30 +02:00
Piotr Trojanek
c818b14bbd
clearing thread info structure
2010-06-10 12:57:42 +02:00
Martin Sustrik
74a3907be2
couple of ICC warnings fixed
2010-06-10 12:36:27 +02:00
Martin Sustrik
76e0153d4f
issue 33 - missing virtual destructors
2010-06-10 07:21:05 +02:00
Martin Sustrik
d329c55da9
issue 31 - Assertion failed: err == ECONNREFUSED || err == ETIMEDOUT (tcp_connecter.cpp:296)
2010-06-10 07:12:00 +02:00
Martin Sustrik
604f7475ec
issue 32 - poll_t poller broken
2010-06-09 17:49:08 +02:00
Piotr Trojanek
751b60a18d
extra ';' inside a struct or union -- clang warnings fixed
2010-06-09 17:06:32 +02:00
Martin Sustrik
240fc33f65
minor comment clarification
2010-06-07 20:23:48 +02:00
Martin Lucina
94dfe1368a
Fix MINGW build
...
Mingw seems to define NOMINMAX, so don't redefine it if already defined
2010-06-04 17:02:16 +02:00
Martin Sustrik
cf048bb1f8
platform.hpp for MSVC contains only very basic stuff
2010-06-04 16:29:36 +02:00
Martin Lucina
621d7415b3
Fix Solaris/NetBSD breakage in atomic_ptr.hpp
2010-06-04 15:35:14 +02:00
Martin Sustrik
67ca7dcbe6
obsolete API elements removed - this commit breaks backward compatibility
2010-06-04 15:24:06 +02:00
Martin Lucina
606c77368c
Move perf helper functions to perf/helpers.cpp
2010-06-04 14:48:49 +02:00