2607 Commits

Author SHA1 Message Date
Jake Cobb
f89e3ee854 Problem: Bad style in tcp.hpp/cpp
Solution: Add spaces between function
name and parentheses.
2017-04-10 13:57:29 -04:00
Luca Boccassi
2df4e87849 Merge pull request #2522 from bjovke/my_working_branch
Another macro correction.
2017-04-10 17:31:32 +01:00
Jake Cobb
cd39b00e19 Consistency of Windows TCP tuning assertions
Treat ECONNRESET, ENETRESET and EINTR as non-fatal
failures in TCP Tuning on Windows as they are in the
Unixes.  Also adds ENETRESET to the Unix list that was missing.
2017-04-10 10:57:17 -04:00
bjovke
9bee9d6d03 Another macro correction. 2017-04-10 16:14:26 +02:00
bjovke
b6fb1f64a5 Macro correction. 2017-04-10 15:39:20 +02:00
bjovke
30cd655b3d Case found not covered in latest zmq::proxy() code. 2017-04-10 14:10:47 +02:00
bjovke
26520fe152 zmq::socket_poller_t speed improvement for constructor and wait() function. 2017-04-10 11:35:08 +02:00
bjovke
a7977a5e84 Reworked zmq::proxy() for improved performance. 2017-04-10 11:34:24 +02:00
bjovke
3e55545ab0 Code reformatting of proxy.cpp 2017-04-10 11:30:52 +02:00
Luca Boccassi
6853e3f935 Merge pull request #2514 from lytboris/freebsd-enable-ai_v4mapped
re-enable AI_V4MAPPED on FreeBSD & DragonFlyBSD
2017-04-09 10:24:50 +01:00
Boris Lytochkin
ef8b0c60fc re-enable AI_V4MAPPED on FreeBSD & DragonFlyBSD
Detect AI_V4MAPPED is not supported in getaddrinfo() on the fly
and retry query. This issue was seen on ancient FreeBSD releases
and current implementation does support this flag correctly.
2017-04-09 11:49:21 +03:00
Boris Lytochkin
2b1bbf1673 fix a typo - assigment was used instead of comparison 2017-04-09 11:37:22 +03:00
Boris Lytochkin
8bc92bde34 choose IP(v6) address based on ipv6_ flag in a correct way 2017-04-08 23:00:23 +03:00
bjovke
319eb27f19 Unnecessary dynamic memory allocation for zmq::socket_poller_t in zmq_poller_poll(). Fixed by allocating zmq::socket_poller_t from stack. 2017-04-04 11:51:59 +02:00
Jake Cobb
5d5263ed8a Prevent DOS by asserts in TCP tuning (#2492)
* Prevent DOS by asserts in TCP tuning

-Propagates socket option errors from the
tuning functions to the callers.
-Asserts a subset of error conditions during tuning,
excluding external network causes.
-Checks tuning results in 3 call sites and treats
them like failures to connect, accept, etc.

* Fix variable name

* Remove lambda requiring C++11
2017-04-04 09:55:26 +01:00
bbdb68
1d58a00992 Problem: no windows UWP support
* add define for windows/UWP

* prevent issue with COM references

* gettickcount not available on uwp

* add compiler definitions

* add convenitnece cmake file

* brute force uwp compilation

* fix compiler version

* cosmetics
2017-04-04 09:50:33 +01:00
evoskuil
1dd9cac24d Problem: xpub_t.xattach_pipe no handle msg.copy or pipe_t.write fails. 2017-03-30 14:45:40 -07:00
evoskuil
6436bc51e6 Problem: sub.xsetsockopt leaks message (0..n bytes) payload on fail. 2017-03-30 14:06:39 -07:00
evoskuil
1b79da0d7d Problem: proxy leaks one message payload (0..n bytes) on close. 2017-03-30 13:57:48 -07:00
evoskuil
4ea7d01803 Problem: send_failure() util name undergeneralized (for read success). 2017-03-30 13:57:47 -07:00
evoskuil
8c165ad1d2 Problem: excess whitespace (style). 2017-03-30 13:57:47 -07:00
evoskuil
a014e77ef7 Problem: leaks on send_zap_request fail, use of goto idiom is fragile. 2017-03-29 16:48:40 -07:00
evoskuil
29a5c98d83 Problem: zap_connect() asserts on write fail (yet returns fail codes). 2017-03-29 14:31:48 -07:00
evoskuil
a0ccdc866e Problem: secure servers ignore zap_connect failre code and set ready. 2017-03-29 14:31:47 -07:00
evoskuil
f44300cb00 Problem: assert used for ZAP error handling aborts process. 2017-03-29 10:43:56 -07:00
Thomas Braun
33e29bd383 Problem: Out of memory condition not always checked
Solution: Use the appropriate assertion macro.
2017-03-27 23:58:38 +02:00
Thomas Braun
fe9f6b2837 Problem: GSSAPI check for Out of memory is done conditionally
Solution: Do it unconditionally.
2017-03-27 23:58:27 +02:00
Thomas Braun
19f30f7926 Problem: throwing version of new called
Solution: Pass (std::nothrow) as done in all other places.
2017-03-27 23:58:19 +02:00
evoskuil
616fbeff21 Problem: insufficient use of const complicates calling. 2017-03-26 00:53:50 -07:00
evoskuil
feb8e868df Problem: typo in comment. 2017-03-25 13:51:18 -07:00
evoskuil
068c815224 Problem: __STDC_LIMIT_MACROS before PCH causes VC++ warning. 2017-03-23 13:58:26 -07:00
evoskuil
af0320f786 Problem: implicit cast from size_t to int implies data loss. 2017-03-23 11:38:51 -07:00
Goswin von Brederlow
1dd5fef20c zmq_curve_keypair(): return result from crypto_box_keypair() to make testcase meaningfull 2017-03-16 14:01:08 +00:00
Luca Boccassi
d7aceef2ed Problem: thread name is redundant
Solution: call it simply "ZMQ background" instead of "ZMQ b/g thread"
2017-03-12 13:11:44 +00:00
Luca Boccassi
092ad50b0c Problem: I can't refactor
Solution: fix ifdef check for pthread_setname
2017-03-12 13:11:11 +00:00
Luca Boccassi
3ab4796c5a Problem: ZMQ background threads are unnamed
Solution: use pthread API to set the name. For now call every thread
"ZMQ b/g thread". Would be nice to number the I/O threads and name
explicitly the reaper thread, but in reality a bit of internal API
churn would be necessary, so perhaps it's not worth it.
This is useful when debugging a process with many threads.
2017-03-12 00:46:15 +00:00
somdoron
f694a2d985 problem: zmq_poll is slow because FD is being created on every call
making the creation of FD only when thread safe sockets are in used
within the zmq_poller which improve the zmq_poll performance.
2017-03-11 11:07:06 +02:00
nexcvon
9624f9ade7 Problem: zmq::signaler_t::send may loop forever
Solution: restore the wsa_assert statement previously removed.
2017-03-06 21:55:30 +08:00
nexcvon
bcf75777c8 Problem: Assertion failed in zmq::signaler_t::send
Solution: Change to the way it does below on non-Windows platforms, retry when send returns -1.
2017-03-03 19:00:58 +08:00
Luca Boccassi
a73d5cd6c6 Problem: router pipe can block forever
Solution: invert check_write and check_hwm calls in router xsend
function so that check_write can mark the pipe as inactive if
necessary.
2017-02-24 23:56:52 +00:00
Luca Boccassi
0f473d14cb Problem: unnecessary change to router_mandatory_hwm test
Solution:

Revert "Problem with ZMQ_ROUTER_MANDATORY option when peer lost"

This partially reverts commit 06740b5d8c1fbf13205c9b6c63ba7e7ef4350a04.

The change in the mentioned commit was fixed to be backward
compatible so test changes are no longer necessary.
Partially revert the commit, leaving only the bug fix and taking out
the test change and the superfluous change in socket_base.
2017-02-24 17:57:14 +00:00
Reza Ebrahimi
06740b5d8c Problem with ZMQ_ROUTER_MANDATORY option when peer lost
indention

Revert "indention"

This reverts commit a6e7e192ac2d089ac9f7dc0d31d4b1fd10de982e.

indention

indention

Fix Failure in tests

Check both pipe full and pipe close
2017-02-24 20:49:26 +03:30
Luca Boccassi
18cb7caeb2 Problem: v4-in-v6 mapped addresses cause parsing failure
Solution: in the address validator accept an endpoint that starts
with :, eg: ::ffff:192.168.0.1:12345 as it's a valid mapped
address.
2017-02-03 11:19:31 +01:00
Patrick McLean
df7c684dd5 fix divide by zero in zmq::lb_t::sendpipe
This is based on https://github.com/zeromq/zeromq3-x/pull/116/files
2017-01-27 17:08:20 -08:00
Ahmad M. Zawawi
bf6d8a5d17 Fix clock_t crash on iOS 9.3.2 and 9.3.5 (#2325)
* Fix possible clock_t crash on iOS 9.3.2 and 9.3.5 + macOS < 10.12

* No need to read return value
2017-01-26 13:21:41 +00:00
sigiesec
c6c21cf197 Problem: zmq_z85_decode does not validate its input (#2322)
* Problem: zmq_z85_decode does not validate its input
Solution: added checks for invalid characters and overflows

* Added tests, added further check for range overflow, removed (multiple) calls to strlen

* Problem: gcc fails to build
Solution: added missing include directive

* Added VS2015 test_utils_z85 project

* Fixed indentation and copyright notice

* Resolved garbage from merge

* Revert "Added VS2015 test_utils_z85 project"

This reverts commit c58b3c664c144326e77135aa1184b6f0dee11143.

* Problem: test calls zmq_z85_decode with a NULL dest
Solution: call zmq_z85_decode with a properly sized buffer

* Problem: tests for zmq_z85_* scattered over two files
Solution: merged files

* Removed reference to removed test file from CMakeLists.txt

* Problem: Missing include directive to stdint.h
Solution: Added include directive

* Define __STDC_LIMIT_MACROS before including stdint.h

* Problem: Wrong variable is checked for invalid character marker
Solution: Use correct variable
2017-01-25 14:28:03 +00:00
Asmod4n
4dbd387fa9 Add "draft" capability to zmq_has
As discussed in #2307
2017-01-19 18:44:56 +01:00
laplaceyang
107f2441d5 Problem: Thread-safe solution for modify hwm of pipe
Solution: where change pipe hwm, send a command (new type pipe_hwm) to peer, so peer pipe can modify hwm thread-safely
2017-01-11 10:49:54 +08:00
Luca Boccassi
edc770d680 Problem: HWM always boosted by 1
Solution: initialise *hwmboost to -1 instead of 1, and use it only if
it's >= 0. The socket option code checks anyway that the
user-provided value is >= 0 so there is no risk of clashing. The
documentation also specifies that it has to be >= 0.
2017-01-10 11:40:14 +00:00
Luca Boccassi
9f1ba60f50 Problem: modifying pipe from different thread is not safe
Solution: revert change from #2299 to avoid bugs while we look for an
alternative and thread-safe solution
2017-01-10 11:38:02 +00:00