Commit Graph

3738 Commits

Author SHA1 Message Date
Constantin Rack
9fc0d2f1a3 Merge pull request #1331 from jemc/master
Problem: qt-android build script out of date
2015-01-29 07:45:56 +01:00
Joe Eli McIlvain
2894634829 Problem: qt-android build script out of date
Solution: copy changes from latest zproject
2015-01-28 17:30:35 -08:00
Joe Eli McIlvain
153e0487de Merge pull request #1330 from rodgert/master
Use GCC/Clang compiler intrinsics for atomic operations
2015-01-28 14:55:13 -08:00
Thomas Rodgers
937d485e74 Add cast to make Clang happy 2015-01-28 16:38:14 -06:00
Thomas Rodgers
e6c45f5376 Support using compielr intrinsics for atomic operations
Works with GCC and most likely clang
2015-01-28 10:27:15 -06:00
Pieter Hintjens
8c8d23c761 Merge pull request #1328 from rodgert/master
Code cleanup - removing unused local
2015-01-27 19:41:45 +01:00
Thomas Rodgers
d8c15cf43b Code cleanup - removing unused local 2015-01-27 12:40:35 -06:00
Pieter Hintjens
0303131390 Merge pull request #1327 from rodgert/master
Clean up of metadata_t
2015-01-27 16:51:46 +01:00
Pieter Hintjens
bccf0bc813 Merge pull request #1326 from rodgert/master
resolve #1325 Alignment issue with zmq_msg_t on SPARC CPU
2015-01-27 16:39:02 +01:00
Thomas Rodgers
1c72bf4e55 Clean up of metadata_t
* There is no clear reason why the map should hold const std::strings
* This class is never derived, there doesn't seem to be a compelling
  reason to ever do so, so no need to make virtual members
* In general const member data is an anti-pattern, the *only* reason
  is to prevent assignability, and the accepted idiom for that is to
  to declare the assigment operator private. This change does so, and
  also prevents copy construction.
2015-01-27 09:33:47 -06:00
Thomas Rodgers
d9fb1d36ff resolve #1325 Alignment issue with zmq_msg_t on SPARC CPU
should be backported probably
2015-01-27 09:20:39 -06:00
Pieter Hintjens
96a27d11c9 Merge pull request #1324 from jruffin/invert-matching
Added socket option ZMQ_INVERT_MATCHING.
2015-01-26 18:08:28 +01:00
Julien Ruffin
cf2238f80e Added socket option ZMQ_INVERT_MATCHING.
ZMQ_INVERT_MATCHING reverses the PUB/SUB prefix matching. The subscription
list becomes a rejection list. The PUB socket sends messages to all
connected (X)SUB sockets that do not have any matching subscription.

Whenever the option is used on a PUB/XPUB socket, any connecting SUB
sockets must also set it or they will reject everything the publisher
sends them. XSUB sockets are unaffected because they do not filter out
incoming messages.
2015-01-26 17:59:43 +01:00
Constantin Rack
148cec0a52 Merge pull request #1323 from ricnewton/master
Fix Windows build
2015-01-26 10:38:46 +01:00
Richard Newton
415b49ba0d Fix Windows build 2015-01-26 09:12:07 +00:00
Constantin Rack
4ad2edff38 Merge pull request #1322 from hintjens/master
Problem: commit afb24b53 broke ZMQ_STREAM contract
2015-01-23 18:03:10 +01:00
Pieter Hintjens
6ced7027a0 Problem: commit afb24b53 broke ZMQ_STREAM contract
Symptom is that ZMQ_STREAM sockets in 4.1.0 and 4.1.1 generate zero
sized messages on each new connection, unlike 4.0.x which did not do
this.

Person who made this commit also changed test cases so that contract
breakage did not show. Same person was later banned for persistently
poor form in CZMQ contributions.

Solution: enable connect notifications on ZMQ_STREAM sockets using a
new ZMQ_STREAM_NOTIFY setting. By default, socket does not deliver
notifications, and behaves as in 4.0.x.

Fixes #1316
2015-01-23 15:25:40 +01:00
Constantin Rack
0d9852a2a5 Merge pull request #1321 from hintjens/master
Problem: copyright statements are out of date
2015-01-22 10:49:56 +01:00
Pieter Hintjens
94d9a4ffdf Problem: copyright statements are out of date
Solution: update for 2015

Fixes #1320
2015-01-22 10:32:37 +01:00
Joe Eli McIlvain
fd560b489c Merge pull request #1319 from rodgert/master
Remove more test_id2fd cruft
2015-01-21 14:46:15 -08:00
Thomas Rodgers
73bf0fb1a3 Remoe more test_id2fd cruft 2015-01-21 16:44:41 -06:00
Constantin Rack
3d440507ea Merge pull request #1317 from topher200/master
documentation clarification on pipe::write failure
2015-01-20 21:20:09 +01:00
Topher Brown
708298eaf1 documentation clarification on pipe::write failure
When pipe::write succeeds, it takes control of the message's data buffer.
When it fails, it has not taken control. The caller should clean up the
message appropriately (msg::close).
2015-01-20 15:06:58 -05:00
Joe Eli McIlvain
be23e699c9 Merge pull request #1314 from topher200/master
Close messages that failed to send
2015-01-19 18:10:11 -08:00
Topher Brown
866a04656e Close messages that failed to send
pipe_t.write only takes control of the underlying message memory when it
succeeds. When it returns failure, we must close the message ourselves to
clean up that memory.

This patch is sponsored by FarSounder, Inc (farsounder.com)
2015-01-19 19:46:26 -05:00
KAPP Arnaud
94b0ad3eaa Merge pull request #1312 from rodgert/master
fix typo in zmq_msg_gets documentation
2015-01-18 03:48:29 +01:00
Thomas Rodgers
40d2f9ad5d fix typo in zmq_msg_gets documentation 2015-01-17 20:15:31 -06:00
Constantin Rack
53431a5583 Merge pull request #1310 from rodgert/master
Fix typo in zmq_msg_gets documentation
2015-01-16 22:54:17 +01:00
Thomas Rodgers
4e89ae616a Fix typo in zmq_msg_gets documentation 2015-01-16 15:45:09 -06:00
KAPP Arnaud
0e404ec844 Merge pull request #1309 from rodgert/master
Add 'Peer-Address' property to connection metadata
2015-01-16 22:43:04 +01:00
Thomas Rodgers
cf2bd3b6ae Expand on 'Peer-Address' property documentation 2015-01-16 15:37:22 -06:00
Thomas Rodgers
97f3126175 Formatting cleanup 2015-01-16 15:04:19 -06:00
Thomas Rodgers
b443618333 Code cleanup
std::map::insert() has always had range based insertion, removed
explicit loops.
2015-01-16 15:03:13 -06:00
Thomas Rodgers
7d224d7871 Add 'Peer-Address' property to connection metadata
Allows non-C/C++ based clients easy access to the peer's IP address via
zmq_msg_gets(&msg, "Peer-Address") instead of zmq_msg_get(&msg, ZMQ_SRCFD)
followed by calls to getpeername and getnameinfo
2015-01-16 14:52:16 -06:00
Constantin Rack
2e76bbe4f6 Merge pull request #1308 from rodgert/master
Try to clarify the intent of zmq_msg_gets() in documentation
2015-01-16 18:27:40 +01:00
Thomas Rodgers
39285cb969 Try to clarify the intent of zmq_msg_gets() in documentation 2015-01-16 10:50:04 -06:00
Pieter Hintjens
10466626be Merge pull request #1301 from rodgert/master
Make alignment compiler directive
2015-01-13 23:54:25 +01:00
Thomas Rodgers
413f835bc8 Make alignment compiler directive 2015-01-13 16:47:00 -06:00
Pieter Hintjens
b6b990f5f9 Merge pull request #1300 from moteus/master
Fix. Use C++03 compatible way to align struct. (Build on MSVC)
2015-01-13 17:07:19 +01:00
Alexey Melnichuk
57cb34f123 Fix. Use C++03 compatible way to align struct. (Build on MSVC)
#1299 break compiling with MSVC 2010.
2015-01-13 19:09:49 +04:00
Pieter Hintjens
3503fdad33 Merge pull request #1299 from rodgert/master
Align inter-thread shared structures on cache-line granularity
2015-01-12 20:43:29 +01:00
Thomas Rodgers
6372fc2e56 Align inter-thread shared structers on cache-line granularity
Specifically ypipe_t specializations for msg_t and command_t.

Currently only supports platforms where posix_memalign is available.
2015-01-12 13:37:32 -06:00
Pieter Hintjens
c816e42266 Merge pull request #1298 from rodgert/master
Increase size of zmq_msg_t to 64 bytes
2015-01-10 23:58:57 +01:00
Thomas Rodgers
90194036bf Increase size of zmq_msg_t to 64 bytes
Increasing it would have at least two benefits -

* More messages would be 'VSM' messages, so it would reduce allocation
overhead a bit.
* Remove any chance of false sharing of things that are, by design,
pushed by value onto a ypipe_t<msg_t> which is shared between two threads.

The only downside I see is slightly increased memory consumption on memory
constrained applications.

- Full discussion of this rationale is part of issue #1295
2015-01-10 16:44:55 -06:00
Constantin Rack
95e7611471 Merge pull request #1297 from rodgert/master
Remove ZMQ_IDENTITY_FD socket option
2015-01-10 00:44:45 +01:00
Thomas Rodgers
a55005feb1 Remove documentation for ZMQ_IDENTITY_FD 2015-01-09 17:32:05 -06:00
Thomas Rodgers
7c0a644625 Remove of ZMQ_IDENTITY_FD socket option
Revert "linking fd to pipe identity via socket option"

This reverts commit fe3e8c5c70.

Conflicts:
	include/zmq.h
	src/pipe.hpp
	src/session_base.cpp
2015-01-09 17:28:50 -06:00
Thomas Rodgers
a450bdefec Revert "resolve #1292 ZMQ_IDENTITY_FD does not validate option_len"
This reverts commit 45c6815446.
2015-01-09 16:44:35 -06:00
Pieter Hintjens
1ae98c7422 Merge pull request #1293 from rodgert/master
resolve #1292 ZMQ_IDENTITY_FD does not validate option_len
2015-01-08 16:39:18 +01:00
Thomas Rodgers
45c6815446 resolve #1292 ZMQ_IDENTITY_FD does not validate option_len 2015-01-08 08:37:28 -06:00