0
0
mirror of https://github.com/zeromq/libzmq.git synced 2025-01-15 10:18:01 +08:00

4522 Commits

Author SHA1 Message Date
Constantin Rack
ec41f6540f Problem: tcp_recv/send_buffer should be byte value instead of scale factor
Solution: change option behaviour and adopt documentation
2015-11-13 10:47:15 +01:00
Constantin Rack
5ba328d7f3 Problem: there is no test for setsockopt ZMQ_TCP_SEND/RECV_BUFFER
Solution: add test case
2015-11-13 10:44:00 +01:00
Pieter Hintjens
f80faeca29 Merge pull request #1640 from c-rack/fix-setsockopt
Solution: fix compilation errors
2015-11-13 10:27:31 +01:00
Constantin Rack
a992d9aca0 Problem: comparison between signed and unsigned integer expressions
Solution: make tcp_recv_buffer_size and tcp_send_buffer_size unsigned
2015-11-13 10:08:30 +01:00
Constantin Rack
98d5d4d7f0 Problem: call of overloaded ‘pow()’ is ambiguous
Solution: make base a double value
2015-11-13 09:47:03 +01:00
Constantin Rack
18c517020b Merge pull request #1638 from jens-auer/tcp_buffer_options
Tcp buffer options to set RECV/SEND buffer
2015-11-12 23:17:14 +01:00
Jens Auer
908d6b6740 Update options.cpp
Fixed ZMQ_TCP_RECV_BUFFER set case.
2015-11-08 21:48:36 +01:00
Jens Auer
d2516a9c42 Merge branch 'tcp_buffer_options' of github.com:jens-auer/libzmq into tcp_buffer_options 2015-11-08 19:01:04 +01:00
Jens Auer
cdeec4c115 New options to set send/recv buffer size for TCP sockets. 2015-11-08 19:00:29 +01:00
Constantin Rack
c41fe88df6 Merge pull request #1636 from roalz/feature-add-msvc2015-build
Added solution and project files to build with Microsoft VS2015
2015-11-05 17:22:17 +01:00
roalz
5f5fb5e5ad Added solution and project files to build with Microsoft Visual Studio 2015 2015-11-05 16:08:33 +01:00
Pieter Hintjens
c775c509da Merge pull request #1631 from swansontec/master
Do not crash on unusual connection-failure cases
2015-11-03 00:08:00 +01:00
William Swanson
b2010432c7 Do not crash on unusual connection-failure cases
Only assert on errors we know are our fault,
instead of trying to whitelist every possible network-related failure.
This makes ZeroMQ more portable to other platforms
where the possible errors are different.

In particular, the previous code would often die under iOS.
2015-11-02 14:59:15 -08:00
Constantin Rack
22179afaba Merge pull request #1629 from hintjens/master
Problem: Windows 7 TCP slow start
2015-11-01 13:16:55 +01:00
Pieter Hintjens
54e2e2a7ad Problem: Windows 7 TCP slow start
See issue #1608.

This is an old issue with Windows 7. The effect is that we see a latency
ramp on the first 500 messages.

* The ramp is unaffected by message size.
* Sleeping up to 100msec between sends has no effect except to switch
    off ZeroMQ batching so making the ramp more visible.
* After 500 messages, latency falls back down to ~10-40 usec.
* Over inproc:// the ramp happens when we use the signaler class.
* Client-server over inproc:// does not show the ramp.
* Client-server over tcp:// shows a similar ramp.

We know that the signaller is using TCP on Windows. We can 'prime' the
connection by doing 500 dummy sends. This potentially causes new sockets
to be delayed on creation, which is not a good solution.

Note that the signaller sends zero-byte messages. This may also be
confusing TCP.

Solution: flood the receive buffer when creating a new FD pair; send a
1M buffer and discard it.

Fixes #1608
2015-11-01 12:57:53 +01:00
Constantin Rack
ac46e6da96 Merge pull request #1628 from hintjens/master
Fix for #1399
2015-11-01 10:47:33 +01:00
Pieter Hintjens
ba1515fe07 Problem: asserts if EINVAL recieved on read/write
This causes assertion failures after network reconnects.

Solution: allow EINVAL as a possible condition after read/write.

Fixes #829
Fixes #1399

Patch provided by Michele Dionisio @mdionisio, thanks :)
2015-11-01 08:56:50 +01:00
Pieter Hintjens
f38c11c063 Whitespace fixes 2015-10-30 10:22:05 +01:00
Pieter Hintjens
ab2c009d0d Merge pull request #1626 from ahmetkakici/master
Added missing socket_poller.cpp file to msvc solutions.
2015-10-27 12:23:03 +01:00
ahmet
7c8e65e2cd Added missing socket_poller.cpp file to msvc solutions.
also fixes issue https://github.com/zeromq/libzmq/issues/1624
2015-10-27 14:16:36 +02:00
Pieter Hintjens
182688d431 Merge pull request #1625 from lytboris/master
Acutally allow specifying interfaces as source address
2015-10-26 23:02:05 +01:00
Boris Lytochkin
a4baa36ba4 acutally allow specifying interfaces as source address 2015-10-27 00:37:53 +03:00
Constantin Rack
9b1432256d Merge pull request #1623 from zeromq/sappo-patch-1
Problem: libzmq appveyor build status is not visible
2015-10-26 09:28:35 +01:00
Kevin Sapper
64ffb3fc92 Problem: libzmq appveyor build status is not visible
Solution: Add a travis like badge to the README

fixes #1622
2015-10-26 08:59:22 +01:00
Pieter Hintjens
dc04c5bbd6 Merge pull request #1621 from madebr/cmake_winci_fixes
Cmake winci fixes
2015-10-25 09:54:00 +01:00
Anonymous Maarten
0a0b9fd760 tweetNaCL: fix winrandom
problem: random byte generation on windows got stuck in an infinite loop
solution: the failure test is incorrect. Change it
2015-10-25 03:43:24 +01:00
Anonymous Maarten
571ee21eef appveyor: build all relevant combinations
problem: not all configurations were built (and some were duplicated) in
Windows CI
solution: add all correct combinations to appveyor.yml
2015-10-25 01:14:27 +02:00
Anonymous Maarten
89338f43d5 CMake: fix library name on linux
problem: cmake added a prefix of lib to libzmq, resulting in
liblibzmq.so
solution: set an empty prefix
2015-10-25 01:14:27 +02:00
Pieter Hintjens
c5572211e7 Merge pull request #1620 from madebr/ctest_missing_tests
CTest: add all sources in tests folder to CTest
2015-10-24 12:19:10 +02:00
Anonymous Maarten
9930f1fc20 CTest: add missing tests + check for unknown tests 2015-10-24 00:17:52 +02:00
Anonymous Maarten
2f63231860 cmake: libzmq can now be built with both sodium and TweetNaCL 2015-10-24 00:16:01 +02:00
Constantin Rack
7fe032180a Merge pull request #1619 from madebr/winrandombytes
TweetNaCL: add windows randombytes implementation
2015-10-24 00:01:55 +02:00
Anonymous Maarten
b2c87b9a70 TweetNaCL: add windows randombytes implementation 2015-10-23 23:34:53 +02:00
Pieter Hintjens
e182438ad6 Merge pull request #1618 from madebr/cmake_sodium
CMake: use libsodium + add Windows CI
2015-10-23 09:20:18 +02:00
Anonymous Maarten
35d723ce5b Add Windows Continuous Integration (appveyor) 2015-10-23 04:07:12 +02:00
Anonymous Maarten
55ca9c5654 CMake: use libsodium if available, else use tweet_nacl 2015-10-23 04:06:57 +02:00
Constantin Rack
5d98e602c9 Merge pull request #1617 from somdoron/removing_pollfd
problem: zmq_pollfd is not needed anymore when zmq_poller in place.
2015-10-22 11:21:16 +02:00
somdoron
da2bc60abe Removing zmq_pollfd as it is replaced by zmq_poller 2015-10-22 11:52:24 +03:00
Richard Newton
0650b59b10 Merge pull request #1616 from somdoron/ZMQ_POLLER
problem: ZMQ_POLLER doesn't support polling on out
2015-10-21 12:42:44 +01:00
somdoron
24fc0d4e89 drop the socket postfix from poller methods 2015-10-21 14:04:33 +03:00
somdoron
5c71fe6538 Fix socket_poller windows compiling issue 2015-10-21 10:34:00 +03:00
somdoron
024819b491 add ZMQ_HAVE_POLLER define to check if ZMQ_POLLER exist 2015-10-21 10:17:33 +03:00
somdoron
476ba22e0a ZMQ_Poller support more event types 2015-10-21 10:14:36 +03:00
somdoron
544d1e3499 Change the error of zmq_poller from EAGAIN to ETIMEDOUT 2015-10-21 09:37:52 +03:00
Pieter Hintjens
a7ea57fb68 Merge pull request #1615 from jeroenooms/master
enable static libraries on mingw
2015-10-20 13:50:07 +02:00
Jeroen Ooms
9114d39577 enable static libraries on mingw 2015-10-20 13:10:38 +02:00
Pieter Hintjens
979e6bb45c Merge pull request #1613 from maxkozlovsky/master
honor buffer reference count in zmq::shared_message_memory_allocator:…
2015-10-19 23:08:11 +02:00
Max Kozlovsky
06e882f8ea honor buffer reference count in zmq::shared_message_memory_allocator::deallocate 2015-10-19 13:29:26 -07:00
Constantin Rack
f1e6cb8ba9 Merge pull request #1611 from somdoron/zpoller-port
problem: polling on multiple sockets is complicated
2015-10-18 21:13:31 +02:00
somdoron
e387ce1571 remove pollfd from sockets when destroying poller 2015-10-18 21:50:24 +03:00
somdoron
6501b8089f port zpoller to libzmq as zmq_poller 2015-10-18 21:07:23 +03:00
Pieter Hintjens
500269955d Merge pull request #1604 from wcs1only/master
Fixed for issue  #1315
2015-10-09 15:56:27 +02:00
Charles Stanley
516b440e0d fixes #1315 socket monitor hangs if zmq_bind fails 2015-10-09 09:02:09 -04:00
Constantin Rack
a28398a4e8 Merge pull request #1603 from jizhilong/fix/typo
fix a typo in ypipe.hpp
2015-10-09 05:48:39 +02:00
Zhilong.JI
9a7858245c fix a typo in ypipe.hpp 2015-10-09 10:52:36 +08:00
Jens Auer
ea26e68b9d New options to set send/recv buffer size for TCP sockets. 2015-10-08 22:06:33 +02:00
Constantin Rack
ca52520944 Merge pull request #1602 from scemama/master
Fixes issue #1556
2015-10-07 22:30:53 +02:00
Anthony Scemama
aefc5d120b Default behavior is --with-libsodium=yes 2015-10-07 22:18:08 +02:00
Anthony Scemama
73a0eed75d Fixes issue #1556 2015-10-07 21:45:49 +02:00
Pieter Hintjens
96014ee7ed Merge pull request #1600 from lsniks/master
Issue 1588 : Rollback in case send fails for multipart msg
2015-10-05 20:57:51 +02:00
Nikhil Mishra
8ec747e14a Issue 1588 : Rollback in case send fails for multipart msg 2015-10-05 11:46:48 -07:00
Constantin Rack
cca67fdd1b Merge pull request #1595 from pijyoi/signaler_failable
create signaler::recv_failable()
2015-09-29 06:01:51 +02:00
KIU Shueng Chuan
596d6e5b1c create signaler::recv_failable()
In real world usage, there have been reported signaler failures where the
eventfd read() or socket recv() system call in signaler::recv() fails,
despite having made a prior successful signaler::wait() call.

this patch creates a signaler::recv_failable() method that allows
unreadable eventfd / socket to return an error without asserting.
2015-09-29 09:14:02 +08:00
Richard Newton
52ee724144 Merge pull request #1593 from meox/master
fix error with gcc 5.2
2015-09-27 13:34:48 +01:00
meox
992ac3baa8 fix error with gcc 5.2 2015-09-27 14:24:08 +02:00
Pieter Hintjens
79daac119a Merge pull request #1592 from c-rack/fix-test
Solution: full is if number of msg is greater than hwm, not greater than hwm - 1
2015-09-25 12:26:33 +02:00
Constantin Rack
e4c06bef18 Problem: check_hwm() has different semantic of 'full' 2015-09-25 11:56:54 +02:00
Pieter Hintjens
a8605f576e Merge pull request #1591 from c-rack/check-hwm
Solution: use existing check_hwm() method
2015-09-25 11:36:41 +02:00
Constantin Rack
f1358c1243 Problem: duplicate code for hwm check 2015-09-25 11:24:48 +02:00
Constantin Rack
dd6bb9ae0c Merge pull request #1586 from ricnewton/master
Update cmake to support Visual Studio 2015
2015-09-19 15:51:47 +02:00
Richard Newton
05d0451e29 Update cmake to support Visual Studio 2015 2015-09-19 14:39:18 +01:00
Pieter Hintjens
d89753cbf0 Merge pull request #1585 from msb-at-yahoo/fix-send-doc-typo
Fix typo on send documentation re: nullification
2015-09-18 20:28:50 +02:00
maurice barnum
b12b8ca23b Fix typo on send documentation re: nullification 2015-09-18 11:22:12 -07:00
Constantin Rack
ed1009b3a5 Merge pull request #1584 from ymax/master
fixed zmq assertion in signaler.cpp under ubuntu
2015-09-18 16:57:19 +02:00
Maxim Yakhontov
e9e03f5ade fixed zmq assertion in signaler.cpp under ubuntu 2015-09-18 20:48:08 +06:00
Constantin Rack
2452c598b7 Merge pull request #1582 from pengweichu/master
Fixed the bug which cause the application crashed when use TCP connec…
Fixes #1581
2015-09-17 11:31:10 +02:00
PP
5dc8b51ceb Fixed the bug which cause the application crashed when use TCP connect to an invalid address(such as 192.168.1.255). 2015-09-17 16:59:25 +08:00
Pieter Hintjens
0f51190c27 Merge pull request #1580 from ricnewton/master
Fix windows cmake build
2015-09-14 14:24:37 +02:00
Richard Newton
3f4f3c1137 Fix windows cmake build 2015-09-14 13:21:20 +01:00
Constantin Rack
ee7f2a278a Merge pull request #1579 from staticfloat/patch-2 2015-09-14 07:59:12 +02:00
Elliot Saba
1fbc67a40a Fix pointer indirection precedence issue in docs
Without this change, a segmentation fault is likely to occur when using the proposed snippet of code, as `*address[size]` is equivalent to `*(address[size])`, not `(*address)[size]` as clearly intended.
2015-09-13 20:46:14 -07:00
Constantin Rack
2c94bb42c5 Merge pull request #1578 from hintjens/master
Problem: drop tests on CLIENT/SERVER are misleading
2015-09-13 14:18:49 +02:00
Pieter Hintjens
3f9255019b Problem: description of ZMQ_CLIENT/SERVER has inaccuracies
- both are thread safe
- they do not accept ZMQ_SNDMORE nor ZMQ_RCVMORE
2015-09-13 12:28:43 +02:00
Pieter Hintjens
50859e40b9 Problem: drop tests on CLIENT/SERVER are misleading
These sockets deal only with single part data (at present), so the
drop tests are misleading / inappropriate.

Solution: remove them.
2015-09-13 12:17:53 +02:00
Joe Eli McIlvain
fb57110b94 Merge pull request #1577 from hintjens/master
Various cleanups for CLIENT-SERVER sockets
2015-09-11 14:24:51 -07:00
Pieter Hintjens
f3ee8c69db Problem: request-reply pattern is lousy
REQ-REP barely work, and DEALER-ROUTER are misnamed. As we move to
formalizing CLIENT-SERVER, we can deprecate request-reply.

Solution: move this section to the end of the man page, and mark as
"will be deprecated".
2015-09-11 17:22:37 -04:00
Pieter Hintjens
e7da0ea07b Problem: client/server pattern is not documented
Solution: add man pages/sections for:

 * ZMQ_SERVER
 * ZMQ_CLIENT
 * ZMQ_THREADSAFE
 * zmq_msg_routing_id
 * zmq_msg_set_routing_id
2015-09-11 17:12:58 -04:00
Pieter Hintjens
4db73fc18b Problem: msg.cpp:set_routing_id accepts a zero routing ID
Solution: check/reject a zero routing ID with EINVAL.
2015-09-11 17:09:24 -04:00
Pieter Hintjens
6b00f40f74 Problem: test_client/server_drop_more are invalid
These tests connected CLIENT and SERVER to DEALER... this isn't
allowed. I changed to CLIENT-to-SERVER in both cases. The result
was aborts in client.cpp and server.cpp which cannot handle
invalid multipart data.

I removed the asserts in each of these in xsend.

Solution: fix the test cases and remove the (unwanted?) asserts
in client.cpp:xsend and server.cpp:xsend.
2015-09-11 17:07:50 -04:00
Pieter Hintjens
c2dffb9908 Problem: threadsafe test uses CLIENT-to-CLIENT
Solution: fix to use CLIENT-to-SERVER and increase number of messages
sent to 100K per thread, to better stress thread safety.
2015-09-11 17:01:27 -04:00
Pieter Hintjens
d416ffcec5 Problem: cannot build single test case in tests
This is due to the mangled include of platform.h, which was to make
CMake happy.

Solution: in CMakeLists.txt, define USING_CMAKE and then look for
platform.h in current directory if that is defined, else look in
../src/ as one would expect.
2015-09-11 16:42:26 -04:00
Pieter Hintjens
5e936fe955 Problem: routing ID cycles back to zero
It should never be zero.

Solution: if rid cycles back to zero, bump to 1.
2015-09-11 14:30:27 -04:00
Pieter Hintjens
60fdfd9a1b Problem: whitespace at end of lines, removed 2015-09-11 14:30:20 -04:00
Pieter Hintjens
c5b1de368a Problem: code lets CLIENT connect to CLIENT
This has no sense IMO; people who need this can still use DEALER-DEALER.

Solution: let CLIENT talk only to SERVER.
2015-09-11 13:46:02 -04:00
Pieter Hintjens
87f2dff38c Problem: zmq_msg_get_routing_id () is not consistent with API
We do not use 'get' for getters.

Solution: rename to zmq_msg_routing_id () for public API.
2015-09-11 13:15:00 -04:00
Pieter Hintjens
7be6ad0504 Replaced tabs in some files, with spaces 2015-09-11 13:03:31 -04:00
Constantin Rack
d0ffb91323 Merge pull request #1574 from pijyoi/master
avoid dereferencing uint32_t on unaligned address
2015-09-08 11:40:04 +02:00
KIU Shueng Chuan
25a50ca0d5 avoid dereferencing uint32_t on unaligned address 2015-09-08 17:26:31 +08:00
Pieter Hintjens
734a73c63d Merge pull request #1571 from c-rack/fix-typos
Solution: fix typos
2015-09-06 19:00:56 +02:00
Constantin Rack
bd923f0fbb Problem: some comments contain typos 2015-09-06 18:46:32 +02:00