Commit Graph

3964 Commits

Author SHA1 Message Date
Pieter Hintjens
72a94881de Merge pull request #1471 from reunanen/retry-on-WSAENOBUFS
on Windows, handle WSAENOBUFS like WSAEWOULDBLOCK
2015-07-07 21:51:36 +02:00
Pieter Hintjens
adafdb8f4f Merge pull request #1470 from reunanen/check-msg-type-in-rm_refs
add message type sanity check in msg_t::rm_refs
2015-07-07 21:50:35 +02:00
Juha Reunanen
ccb13e1732 add sanity check in msg_t::rm_refs in order to avoid invalid memory access with u.zclmsg.refcnt 2015-07-07 19:31:46 +03:00
Juha Reunanen
8339271a3e LIBZMQ-195 on Windows, handle WSAENOBUFS like WSAEWOULDBLOCK 2015-07-07 13:38:10 +03:00
Pieter Hintjens
db898deb09 Merge pull request #1469 from tkoeppe/master
[decoder.hpp] Fix misspelled inclusion
2015-07-06 01:23:52 +02:00
Thomas Köppe
29b45489fa [decoder.hpp] Fix misspelled inclusion 2015-07-06 00:20:59 +01:00
Pieter Hintjens
d60040ddea Merge pull request #1468 from tkoeppe/master
[decoder*] Style fixes for consistency
2015-07-06 01:12:58 +02:00
Thomas Köppe
5b4b8a063b [decoder*] Style fixes for consistency 2015-07-06 00:01:52 +01:00
Pieter Hintjens
e83bad14cd Merge pull request #1467 from jens-auer/upstream
Addressed comments from T. Köppe
2015-07-06 00:06:54 +02:00
Jens Auer
ef365151ca - Replaced C-style casts with C++-casts
- Replaced stdlib.h with cstdlib
- Made single-argument constructors explicit
2015-07-05 23:19:41 +02:00
Pieter Hintjens
f541ac9612 Merge pull request #1466 from jens-auer/upstream
"zero-copy" raw_decoder
2015-07-05 16:18:04 +02:00
Jens Auer
3679793601 "zero-copy" raw_decoder
A memcpy is eliminated when receiving data on a ZMQ_STREAM socket. Instead
of receiving into a static buffer and then copying the data into the
buffer malloced in msg_t::init_size, the raw_decoder allocates the memory
for together with the reference-counter and creates a msg_t object
on top of that memory. This saves the memcpy operation.

For small messages, data is still copied and the receive buffer is reused.
2015-07-05 16:05:46 +02:00
Joe Eli McIlvain
d83220e92e Merge pull request #1465 from tkoeppe/master
Clean-up: Rename internal macros consistently.
2015-07-02 12:59:39 -04:00
Thomas Köppe
14d69a312d Clean-up: Rename internal macros consistently. 2015-07-02 17:41:09 +01:00
Pieter Hintjens
6059e8eea7 Merge pull request #1461 from tkoeppe/master
Add C++11 atomic support also to atomic_counter_t.
2015-07-01 18:30:49 +02:00
Thomas Köppe
ddb82a546b atomic_counter.hpp: clean up the clean-up 2015-07-01 09:55:43 +01:00
Thomas Köppe
26e3873f70 Add C++11 support to atomic_counter_t. 2015-07-01 09:55:25 +01:00
Pieter Hintjens
010f93b34c Merge pull request #1460 from tkoeppe/master
atomic_ptr.h: clean up the clean-up
2015-07-01 00:11:07 +02:00
Thomas Köppe
73e6a3808f atomic_ptr.h: clean up the clean-up 2015-06-30 22:57:13 +01:00
Pieter Hintjens
80b1e67e45 Merge pull request #1459 from tkoeppe/master
Add missing relaxed memory ordering.
2015-06-30 23:35:29 +02:00
Thomas Köppe
08f9bf589e Add missing relaxed memory ordering. 2015-06-30 22:26:35 +01:00
Pieter Hintjens
f448dcde35 Merge pull request #1458 from tkoeppe/master
Add support for <atomic> in C++11
2015-06-30 22:39:40 +02:00
Thomas Köppe
68f5926ec6 Add support for <atomic> in C++11 2015-06-30 20:57:38 +01:00
KAPP Arnaud
f3ef027e87 Merge pull request #1457 from calid/ignore-unbind-tests
ignore unbind tests
2015-06-30 10:56:52 +02:00
Dylan Cali
ee787664bb ignore unbind tests 2015-06-29 03:19:24 -05:00
Pieter Hintjens
818491e7ee Merge pull request #1455 from calid/update-gitignore
update gitignore with additional tests
2015-06-29 08:08:57 +02:00
Pieter Hintjens
9802dd5933 Merge pull request #1456 from calid/issue-949-tests
add tests for #949
2015-06-29 08:04:53 +02:00
Dylan Cali
0f208c122d be pedantic and call zmq_close in tests 2015-06-28 22:32:15 -05:00
Dylan Cali
d14f419743 another errant comment 2015-06-28 21:29:23 -05:00
Dylan Cali
6dac5092ad fix errant comments 2015-06-28 21:27:06 -05:00
Dylan Cali
a9fd750e1c add tests for #949 2015-06-28 21:23:25 -05:00
Dylan Cali
34129593f0 update gitignore with additional tests 2015-06-28 21:13:02 -05:00
Pieter Hintjens
6ab66ca51a Merge pull request #1451 from jbreams/heartbeat-defaults
Fix units and default values for heartbeats options
2015-06-26 20:31:46 +02:00
Jonathan Reams
e9a5bc8d1e Fix units and default values for heartbeats options
Set the ZMQ_HEARTBEAT_TIMEOUT to default to the value of
ZMQ_HEARTBEAT_IVL if it's not explicitly set.
Change the units of ZMQ_HEARTBEAT_TTL to milliseconds in the API
and round down to the nearest decisecond so that all the options
are using the same units.
Make the maximum heartbeat TTL match the spec (6553 seconds)
2015-06-26 14:25:58 -04:00
Pieter Hintjens
2e5435e38f Merge pull request #1449 from jbreams/heartbeats-docswindows
Add documentation for ZMTP heartbeats/fix test
2015-06-24 21:13:32 +02:00
Jonathan Reams
85417ba2fc Add documentation for ZMTP heartbeat socket options 2015-06-24 15:02:53 -04:00
Jonathan Reams
df0c7076bd Fix test_heartbeats compile in VS2013 2015-06-24 14:28:36 -04:00
Pieter Hintjens
3a27be3b6c Merge pull request #1448 from jbreams/heartbeats
Add ZMTP connection heartbeats
2015-06-24 19:42:41 +02:00
Jonathan Reams
cbb3b176a6 Add ZMTP heartbeats
This commit adds ZMTP connection heartbeats described in
http://rfc.zeromq.org/spec:37/ZMTP.
2015-06-24 13:24:53 -04:00
Constantin Rack
4b4e00bde0 Merge pull request #1446 from dnaeon/typo-fix
Typo fix
2015-06-23 10:47:31 +02:00
Marin Atanasov Nikolov
fa3b5d8b03 Typo fix 2015-06-23 14:45:51 +03:00
Richard Newton
f9d0dab630 Merge pull request #1445 from c-rack/fix-resolve-ipv6
Problem: zmq::socket_base_t::connect fails on tcp ipv6 address
2015-06-23 08:10:48 +01:00
Constantin Rack
15f9ee19cb Solution: allow brackets in tcp ipv6 address 2015-06-23 08:54:49 +02:00
Pieter Hintjens
d33fb6a2af Merge pull request #1441 from jens-auer/rebase3
Rebase3
2015-06-14 14:13:49 +02:00
Jens Auer
e70b5efa0b Reuse buffer when no messages depend on it. 2015-06-14 14:01:04 +02:00
Jens Auer
51cb57e2c9 Fixed wrong handling of shared messages
The shared reference count was not shared but copied. msg_t cannot
store the refcnt itsef but has to store a pointer to an externally
allocated (shared) refcnter. The changes to lmsg are reverted to
use content_t again. Howver, this introduces an allocation in v2_decoder
when creating the message which can be avoided. When allocating the reception
buffer, space is allocated for the maximum number of reference counts
(8192 / max_vsm_size = 8192/64 = 128 zmq:atomic_counter objects). This
increases the buffer by 128*sizeof(atomic_counter) = 128*4 = 512 bytes only.
When creating a message, the refcnt member is set to the address of one of the
pre-allocated atomic_counter_t objects. To do so, a new msg_t type zcmsg
is introduced because msg::copy must discriminate between the message types
when releasing memory.
2015-06-14 13:35:33 +02:00
Jens Auer
dfe1908008 Fixed wrong buffer end detection in v2_decoder.
zero-copy msg_t::init cannot be used when the message exceeds either
the buffer end or the last received byte. To detect this, the buffer
is now resized to the numnber of received bytes.
2015-06-14 13:35:23 +02:00
Constantin Rack
b3f2acf7d6 Merge pull request #1440 from xaqq/fix_solaris_build
Probably fix build issue on Solaris.
2015-06-13 22:20:23 +02:00
Kapp Arnaud
8ffd723271 Probably fix build issue on Solaris.
See #1220 recent comments. This change is untested yet seems
safe.
2015-06-13 22:08:14 +02:00
KAPP Arnaud
6d4d7a5820 Merge pull request #1439 from hintjens/master
Problem: 4.1 broke the ABI yet did not bump ABI number
2015-06-12 01:32:22 +02:00