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

3707 Commits

Author SHA1 Message Date
Richard Newton
82be399527 Merge pull request #1097 from hintjens/master
Added capabilities API
2014-06-23 13:23:20 +01:00
Richard Newton
369725ab8f Fix windows build 2014-06-23 13:10:43 +01:00
Pieter Hintjens
de3832d2f8 Merge pull request #1101 from hurtonm/master
Fix memory leak in socks connecter
2014-06-23 00:18:36 +02:00
Martin Hurton
b73d1c8fed Fix memory leak in socks connecter 2014-06-23 00:02:15 +02:00
Pieter Hintjens
79d578ef0b Merge pull request #1100 from hurtonm/master
Add support for SOCKS proxies
2014-06-22 23:42:23 +02:00
Martin Hurton
f06ca69ae9 Add support for SOCKS proxies
This is still raw and experimental.
To connect through a SOCKS proxy, set ZMQ_SOCKS_PROXY socket option on
socket before issuing a connect call, e.g.:

    zmq_setsockopt (s, ZMQ_SOCKS_PROXY,
        "127.0.0.1:22222", strlen ("127.0.0.1:22222"));
    zmq_connect (s, "tcp://127.0.0.1:5555");

Known limitations:
- only SOCKS version 5 supported
- authentication not supported
- new option is still undocumented
2014-06-22 23:19:33 +02:00
Pieter Hintjens
883e95b22e Merge pull request #1099 from chrox/master
Fixed build with arm-linux-androideabi toolchain
2014-06-22 12:17:35 +02:00
chrox
bdf6427a00 Fixed build with arm-linux-androideabi toolchain 2014-06-22 18:13:05 +08:00
Pieter Hintjens
8b80197207 Merge pull request #1098 from mgatny/add_gssapi_documentation
Add documentation for GSSAPI options.
2014-06-20 07:14:21 +02:00
Mike Gatny
0a4123fd91 Add documentation for GSSAPI options. 2014-06-19 23:57:48 -04:00
Pieter Hintjens
36db9c0803 Fixed compile error if Kerberos installed 2014-06-19 15:28:04 +02:00
Pieter Hintjens
7242cdf842 Trivial whitespace fixup 2014-06-19 14:56:10 +02:00
Pieter Hintjens
f11d673ba9 Problem: need way to probe library capabilities
As libzmq is compiled with optional transports and security mechanisms,
there is no clean way for applications to determine what capabilities
are actually available in a given libzmq instance.

Solution: provide an API specifically for capability reporting. The
zmq_has () method is meant to be open ended. It accepts a string so
that we can add arbitrary capabilities without breaking existing
applications.

zmq.h also defines ZMQ_HAS_CAPABILITIES when this method is provided.
2014-06-18 15:19:07 +02:00
Pieter Hintjens
27547bc9bc Problem: when libgssapi isn't available, GSSAPI options 'seem' to work
Solution: use same approach as for libsodium/CURVE, i.e. return EINVAL
if the library isn't present when libzmq builds, and the application
still tries to use these options in zmq_getsockopt/setsockopt.
2014-06-17 16:32:47 +02:00
Trevor Bernard
cac5e74d55 Merge pull request #1096 from hintjens/master
Problem: API violations are treated as recoverable errors
2014-06-17 11:29:39 -03:00
Pieter Hintjens
1beb54cef0 Added militant API checking on zmq_getsockopt 2014-06-17 16:24:56 +02:00
Pieter Hintjens
d0667461f0 Fixed build: malformed only defined when needed. 2014-06-17 16:14:19 +02:00
Pieter Hintjens
b4ed3f5506 Problem: API violations are treated as recoverable errors
The example is applications passing invalid arguments to a socket option
and then failing to check the return code. The results can be very hard
to diagnose. Here are some threads that show the pain this causes:

* https://github.com/zeromq/zyre/issues/179
* http://lists.zeromq.org/pipermail/zeromq-dev/2014-June/026388.html

One common argument is that a library should never assert, and should
pass errors back to the calling application. The counter argument is
that when an application is broken enough to pass garbage to libzmq,
it cannot be trusted to handle the resulting errors properly. Empirical
evidence from CZMQ, where we systematically assert on bad arguments, is
that this militant approach makes applications more, not less, robust.

I don't see any valid use cases for returning errors on bad arguments,
with one exception: zmq_setsockopt can be used to probe whether libzmq
was e.g. built with CURVE security. I'd argue that it's nasty to use a
side effect like this. If apps need to probe how libzmq was built, this
should be done explicitly, and for ALL build options, not just CURVE.

There are/were no libzmq test cases that check the return code for an
invalid option.

For now I've enabled militant assertions using --with-militant at
configure time. However I'd like to make this the default setting.
2014-06-17 16:00:55 +02:00
Tristian Celestin
232e6ff761 Merge branch 'master' of https://github.com/tristianc/libzmq 2014-06-17 09:41:48 -04:00
Richard Newton
1d236d81c8 Merge pull request #1090 from hintjens/master
Problem: zmq_ctx_get (ZMQ_MAX_SOCKETS) returns gibberish
2014-06-16 08:45:37 +01:00
Pieter Hintjens
373d68844a Merge pull request #1093 from hurtonm/master
Code cleanup
2014-06-15 20:16:58 +02:00
Martin Hurton
b62d1c7d5f Code cleanup 2014-06-15 19:45:09 +02:00
Pieter Hintjens
188f7864ea Fixed testcase for ZMQ_MAX_SOCKETS 2014-06-11 21:25:46 +02:00
Pieter Hintjens
39455c2114 Problem: zmq_ctx_get (ZMQ_MAX_SOCKETS) returns gibberish
Well, not gibberish, but 2^31 on Linux, which is useless. The code
should probably use getrlimit on Linux and other calls depending on
the system. For now I've set the ceiling at 64K.
2014-06-11 18:24:39 +02:00
Tristian Celestin
8d7b64d648 Added packaged files and binary to RPM spec 2014-06-10 16:56:03 -04:00
Pieter Hintjens
3aec42e278 Merge pull request #1089 from jkryl/master
program dumps core when getpeername() returns EINVAL (#1085)
2014-06-10 22:46:19 +02:00
Jan Kryl
cc4c37dc62 program dumps core when getpeername() returns EINVAL (#1085) 2014-06-10 16:11:00 -04:00
Pieter Hintjens
c973c985fe Merge pull request #1088 from olafmandel/WSAENOTSOCK
Fix failed assertion for WSAENOTSOCK
2014-06-10 14:47:29 +02:00
Olaf Mandel
ab5775fb00 Fix failed assertion for WSAENOTSOCK
In de9eef306, the error number assigned to WSAENOTSOCK was EFAULT, but
zmq.cpp:919 expects an ENOTSOCK in this case.
2014-06-10 14:45:04 +02:00
Ian Barber
668b2c4d83 Merge pull request #1083 from hurtonm/master
Code cleanup
2014-06-07 22:45:35 +01:00
Martin Hurton
706eb4da8d Code cleanup 2014-06-07 23:05:45 +02:00
Richard Newton
8c616290c8 Merge pull request #1082 from dmeehan1968/exclude-test-abstract-ipc-non-linux
Exclude test_abstract_ipc from non-Linux builds
2014-06-06 12:13:04 +01:00
Dave Meehan
a1f8737976 Exclude test_abstract_ipc from non-Linux builds 2014-06-06 12:08:55 +01:00
Pieter Hintjens
34e8f3c123 Merge pull request #1080 from tberkey/master
Corrected installer source path for VS pdb debug symbols file.  Removed ...
2014-06-05 21:33:27 +02:00
Pieter Hintjens
fae07d919a Merge pull request #1079 from evoskuil/master
Refresh VS 2010/2012 projects and NuGet templ for recent VS2013 updates.
2014-06-05 21:20:17 +02:00
evoskuil
10e5277e9f Update NuGet template to incorporate platform.hpp from relative dir. 2014-06-05 12:13:00 -07:00
evoskuil
455bba6a15 Refresh VS 2010/2012 projects with recent VS2013 updates. 2014-06-05 12:12:18 -07:00
Pieter Hintjens
c23420ce04 Merge pull request #1078 from mkluwe/handle-WSAEADDRINUSE
handle WSAEADDRINUSE in tcp_connecter_t::connect
2014-06-05 20:27:14 +02:00
Matthias Kluwe
fa95d0b5e8 removed whitespace
(accidentially used my preferred style)
2014-06-05 19:39:15 +02:00
Matthias Kluwe
5154c544ff handle WSAEADDRINUSE in tcp_connecter_t::connect
As mentioned on the mailing list, Windows may return WSAEADDRINUSE when binding
(reconnecting) to a port. Added this to the handled error codes as Pieter
suggested.
2014-06-05 19:29:42 +02:00
Richard Newton
ff6b684ab3 Merge pull request #1076 from dmeehan1968/msvc-platform-hpp-no-copy
Remove copy of platform.hpp for MSVC VS2013 builds
2014-06-05 13:15:50 +01:00
Dave Meehan
d775b4539f Modified remote_thr project to not copy platform.hpp 2014-06-05 13:07:26 +01:00
Dave Meehan
66ebe31bf5 Modified remote_lat project to not copy platform.hpp 2014-06-05 13:07:25 +01:00
Dave Meehan
dd95eb96be Modified local_thr project to not copy platform.hpp 2014-06-05 13:07:25 +01:00
Dave Meehan
06e67ff096 Modified local_lat project to not copy platform.hpp 2014-06-05 13:07:25 +01:00
Dave Meehan
7b50270142 Modified inproc_thr project to not copy platform.hpp 2014-06-05 13:07:25 +01:00
Dave Meehan
f5478859b0 Modified inproc_lat project to not copy platform.hpp 2014-06-05 13:07:25 +01:00
Dave Meehan
649f4b0f24 Modified libzmq project to not copy platform.hpp 2014-06-05 13:07:25 +01:00
Pieter Hintjens
d0371dc0f2 Merge pull request #1075 from dmeehan1968/perf-platform-hpp-restore
Restore unpathed references to platform.hpp for cmake builds
2014-06-05 13:33:02 +02:00
Dave Meehan
87ce17e439 Restore unpathed references to platform.hpp for cmake builds 2014-06-05 12:03:13 +01:00
Pieter Hintjens
14afbf9b48 Merge pull request #1074 from dmeehan1968/ignore-suo-in-subfolders
Exclude MSVC temp files regardless of where they are in builds/msvc
2014-06-05 13:02:03 +02:00
Dave Meehan
79575b0dd9 Exclude MSVC SUO files regardless of where they are in the builds/msvc folder 2014-06-05 11:59:23 +01:00
Pieter Hintjens
78ada21eb7 Merge pull request #1073 from evoskuil/master
VS set switch /Z7 in debug static (DebugLIB/DebugLTCG) base props.
2014-06-05 12:51:16 +02:00
evoskuil
f1111ceb0d VS set switch /Z7 in debug static (DebugLIB/DebugLTCG) base props. 2014-06-05 03:28:03 -07:00
evoskuil
cbad7de0ae Whitespace in VS projects. 2014-06-05 03:20:08 -07:00
Pieter Hintjens
4b543e2c98 Merge pull request #1072 from olafmandel/issue_1071
Extend zmq::wsa_error_to_errno()
2014-06-04 17:56:26 +02:00
Olaf Mandel
de9eef3063 Extend zmq::wsa_error_to_errno()
The list of error codes is taken from zmq::wsa_error_no(). Most of the
new WSA error codes result in EFAULT, but some return a more specific
value (even EAGAIN).

Fixes #1071
2014-06-04 17:28:01 +02:00
Pieter Hintjens
ad9838859f Merge pull request #1069 from evoskuil/master
Update VS import props to allow delinking, reset PDB out path change.
2014-06-04 15:14:15 +02:00
Telford Berkey
920371ee6b Corrected installer source path for VS pdb debug symbols file. Removed prefix path to platform.h 2014-06-04 08:47:22 -04:00
Martin Hurton
8e7a8a43b4 Merge pull request #1070 from ricnewton/master
Fix for issue https://github.com/zeromq/libzmq/issues/1065
2014-06-04 13:38:29 +02:00
Richard Newton
c9e86acf61 Set up hwm's before we connect the other end of the pipe in ctx_t::connect_inproc_sockets 2014-06-04 12:13:15 +01:00
evoskuil
6af46c39c7 Update VS import props to allow delinking by dependent projects. 2014-06-04 01:26:39 -07:00
evoskuil
4a02604cc2 Reset PDB out path change in base VS props. 2014-06-04 01:25:41 -07:00
Ian Barber
764a3495c6 Merge pull request #1067 from hintjens/master
Problem: email addresses in AUTHORS harvested for spam
2014-06-03 11:10:02 +01:00
Pieter Hintjens
ff07d85594 Problem: email addresses in AUTHORS harvested for spam
Solution: remove these email addresses, since authors are reachable
via their Git commit history.
2014-06-03 12:00:37 +02:00
Pieter Hintjens
b42b9c9d67 Merge pull request #1066 from hurtonm/master
Style fixes
2014-06-03 11:25:25 +02:00
Martin Hurton
f447386936 Style fixes 2014-06-03 10:42:29 +02:00
Pieter Hintjens
c6e38ec1b7 Merge pull request #1064 from evoskuil/master
cosmetic msvc xml fix
2014-06-03 07:31:53 +02:00
Pieter Hintjens
77f50f9ab8 Merge pull request #1061 from dmeehan1968/fix-perf-platform-hpp-windows
Fix for perf/platform.hpp not being cleaned up by distclean
2014-05-31 16:11:49 +02:00
Dave Meehan
451c94af8e Fix for perf/platform.hpp not being cleaned up by distclean 2014-05-31 13:51:41 +01:00
Pieter Hintjens
b118acb710 Merge pull request #1059 from dmeehan1968/msvc-pdb-output
Added ProgramDataBaseFile directive
2014-05-30 19:05:43 +02:00
Dave Meehan
ed49057fd7 Added ProgramDataBaseFile directive so that .pdb file goes into same directory as the .lib so that debug builds can find it 2014-05-30 17:47:01 +01:00
evoskuil
d456e70d7d cosmetic msvc xml fix 2014-05-26 21:16:43 -07:00
Pieter Hintjens
cfc754f393 Merge pull request #1020 from jemc/inproc_simult
Add failing test reproducing issue #1015.
2014-05-23 16:03:15 +02:00
Pieter Hintjens
ac244b41c5 Merge pull request #1057 from hurtonm/master
Add const qualifier to register_endpoint param
2014-05-23 14:29:38 +02:00
Martin Hurton
dd2be381ad Add const qualifier to register_endpoint param 2014-05-23 12:27:01 +02:00
Joe Eli McIlvain
8b47d36875 Revert "Mark failing test for issue #1015 as XFAIL"
This reverts commit b6c577a9ecaa3d20b82baf704a90e5555f850be9.
2014-05-22 12:21:32 -07:00
Pieter Hintjens
99dba23dc7 Merge pull request #1055 from hurtonm/master
Fix race condition in connecting inproc sockets
2014-05-22 10:40:38 +02:00
Martin Hurton
3901d94b27 Fix race condition in connecting inproc sockets 2014-05-22 09:09:45 +02:00
Pieter Hintjens
313b2ec84e Merge pull request #1054 from evoskuil/master
Minor updates to VS build configuration and NuGet packaging.
2014-05-21 16:53:40 +02:00
Pieter Hintjens
77514e0e9f Merge pull request #1053 from hurtonm/master
Code cleanup
2014-05-21 14:24:36 +02:00
Martin Hurton
414fc86b22 Code cleanup
- limit visibility of pending_connection_t
- add const qualifiers
2014-05-21 13:08:15 +02:00
evoskuil
be99f060b3 Update NuGet packaging. 2014-05-21 01:35:52 -07:00
evoskuil
c0c89a3bc5 Update VS version resource and package version. 2014-05-21 01:35:34 -07:00
evoskuil
51c1a1c408 Generalize dependency reference in GSL config/script. 2014-05-21 00:14:09 -07:00
evoskuil
0c60256727 Revert change to VS props references because of VS UI limitation. 2014-05-21 00:13:43 -07:00
Pieter Hintjens
96501d7271 Merge pull request #1051 from hurtonm/master
Small code cleanup
2014-05-20 22:20:57 +02:00
Martin Hurton
5f4145e7cb Small code cleanup
- add const modifier to address parameter of event generating functions
2014-05-20 21:48:59 +02:00
Martin Hurton
6bdedcbca3 Merge pull request #1049 from hintjens/master
Minor fixes
2014-05-20 16:12:38 +02:00
Pieter Hintjens
4b67919f93 Minor trim of man page title 2014-05-20 15:42:35 +02:00
Pieter Hintjens
11175a33f1 Problem: security tests block on zmq_send
The expect_bounce_fail () helper assumed that messages could always
be sent. However in some cases zmq_send() blocks, due to there not
being any outgoing pipe. This changed in 77f5f7, where previously
there would be a pipe that kept trying to reconnect forever.

Solution: use a send timeout and check for EAGAIN if sending failed.
2014-05-20 15:42:35 +02:00
Pieter Hintjens
a1fbd97330 Merge pull request #1048 from hurtonm/master
PLAIN: Small simplification
2014-05-19 21:04:40 +02:00
Martin Hurton
32b3daad7e PLAIN: Small simplification 2014-05-19 20:45:42 +02:00
Pieter Hintjens
155feccb3f Merge pull request #1047 from mrvn/pull-testutil-expect_bounce_fail-send-timeout
Add a send timeout in expect_bounce_fail()
2014-05-19 17:52:27 +02:00
Pieter Hintjens
11357df0e0 Merge pull request #1046 from mrvn/pull-testutil-set-alarm
Set an alarm(60) in setup_test_environment() when not on windows so test...
2014-05-19 17:51:42 +02:00
Goswin von Brederlow
2ba5af6d83 Set an alarm(60) in setup_test_environment() when not on windows so tests
will not block too long if they go wrong.
2014-05-19 17:03:41 +02:00
Goswin von Brederlow
0ebf94e429 Add a send timeout in expect_bounce_fail() so tests for authentication
failures don't block.
2014-05-19 17:03:24 +02:00
Pieter Hintjens
77f5f7adae Merge pull request #1043 from hurtonm/dont_reconnect_on_protocol_errors
Don't reconnect on protocol errors
2014-05-18 10:53:32 +02:00
Pieter Hintjens
de639c34ae Merge pull request #1042 from hurtonm/master
Fix bug in reporting protocol errors
2014-05-18 10:09:38 +02:00
Martin Hurton
045dab91a5 Merge pull request #1037 from hintjens/master
Problem: artificial restriction on binary identities
2014-05-18 09:14:06 +02:00