80 Commits

Author SHA1 Message Date
Martin Hurton
b9c2748146 Add metadata to received messages 2014-05-01 17:30:51 +02:00
Pieter Hintjens
39ccfea036 Added more scaffolding for security
- additional messages to help people debugging security errors
2014-04-29 22:21:58 +02:00
Chris Laws
09647fa916 src/gssapi_client.cpp 2014-04-25 13:47:07 +09:30
Mike Gatny
a4a0dc6644 Split up gssapi mechanism into client and server. 2014-04-24 14:17:05 -07:00
Mike Gatny
4b1c851db4 Stubbed in gssapi security mechanism. 2014-04-24 14:17:05 -07:00
Matt Arsenault
00aeaddf94 Fix unused parameter and variable warnings. 2014-01-18 13:17:29 -08:00
Goswin von Brederlow
afb24b53e6 Add STREAM connect notification.
Adjust test cases to connection notification.
Increase error checking in test cases.
2014-01-17 23:31:51 +01:00
Andre Caron
17651b9276 Adds support for detecting ZMQ_STREAM disconnections.
When a ZMQ_STREAM socket connection is broken (intentionally, via `shutdown()`
or accidentally via client crash or network failure), there is no way for the
application to dertermine that it should drop per-connection data (such as
buffers).

This contribution makes sure the application receives a 0-length message to
notify it that the connection has been broken.  This is symmetric with the
process of closing the connection from within the application (where the
application sends a 0-length message to tell ZeroMQ to close the connection).

Conflicts:
	CMakeLists.txt
2014-01-14 17:20:46 -08:00
Martin Hurton
e46ec31209 Implement socket_base_t::get_credential member function
The get_credential () member function returns
credential for the last peer we received message for.
The idea is that this function is used to implement user-level API.
2014-01-13 00:40:27 +01:00
Martin Hurton
5d41d51ba5 Replace assert with zmq_assert 2014-01-08 21:11:54 +01:00
AJ Lewis
cd2827fb36 Fix LIBZMQ-576 - Revert "Merge pull request #510 from miniway/master"
This reverts commit f27eb67e1abb0484c41050e454404cce30647b63, reversing
changes made to a3ae0d4c16c892a4e6c96d626a7c8b7068450336.

https://zeromq.jira.com/browse/LIBZMQ-576

Conflicts:
	src/stream_engine.cpp

Conflicts were around additional defaults to the constructor after the
'terminating' default.  The additional defaults were left alone, and
the 'terminating' default was removed.
2014-01-02 11:05:39 -06:00
Pieter Hintjens
b3b9e046ee Updated copyright statements for 2014 2014-01-02 12:00:57 +01:00
Pieter Hintjens
5bf96f64b0 Removed ZMQ_ZAP_IPC_CREDS option
- This seems redundant; is there a use case for NOT providing
  the IPC credentials to the ZAP authenticator?

- More, why is IPC authentication done via libzmq instead of ZAP?
  Is it because we're missing the transport type on the ZAP request?
2014-01-01 17:39:14 +01:00
Brandon Carpenter
a018ef5e86 Add support for extending ZAP request address with IPC peer credentials.
Another take on LIBZMQ-568 to allow filtering IPC connections, this time
using ZAP.  This change is backward compatible.  If the
ZMQ_ZAP_IPC_CREDS option is set, the user, group, and process IDs of the
peer process are appended to the address (separated by colons) of a ZAP
request; otherwise, nothing changes.  See LIBZMQ-568 and zmq_setsockopt
documentation for more information.
2013-12-06 14:28:44 -08:00
Martin Hurton
973d13d545 Code cleanup 2013-12-03 15:59:34 +01:00
Martin Hurton
cf14c54102 Fix issue #763 2013-11-30 21:25:18 +01:00
Martin Hurton
05d5962872 Signal that the peer performed orderly shutdown 2013-11-07 21:40:26 +01:00
Martin Hurton
7ecab54ac3 Load identity message to decoder at start 2013-10-11 14:32:38 +02:00
Martin Hurton
b35c08beb4 Rename engine's methods to improve code readability 2013-10-09 20:26:38 +02:00
Volodymyr Korniichuk
7a960ff29c useless checks were removed 2013-10-04 21:54:52 +03:00
Pieter Hintjens
e42a0a4074 Added test case for issue 566
* Tests dealer-to-router connection 100 times
* This was failing in ZMQ v4.0.0 RC1
2013-09-26 14:18:40 +02:00
Martin Hurton
be25cfdf35 Call flush after writing the identity message 2013-09-26 09:40:23 +02:00
Pieter Hintjens
28b0a5fa27 Updated libzmq to match RFC 23, 24, 25, 26
* Command names changed from null terminated to length-specified
* Command frames use the correct flag (bit 2)
* test_stream acts as test case for command frames
* Some code cleanups
2013-09-04 17:59:45 +02:00
Martin Hurton
4a5358f4d0 Implement ZAP for NULL mechanism 2013-07-18 10:59:39 +02:00
Martin Hurton
53bc53da04 Update PLAIN mechanism to the latest ZAP revision 2013-07-18 10:59:34 +02:00
Martin Hurton
d65231be1c Update CURVE mechanism to the latest ZAP revision 2013-07-18 10:59:31 +02:00
Martin Hurton
afe9afa2a5 Set socket buffers before establishing TCP connection
The window scale option carried in SYN segment is computed from socket's
receive buffer size. So we need to set this buffer size before calling
connect or bind.
2013-06-30 07:30:51 +02:00
Ian Barber
694543e3a2 Merge branch 'master' of git://github.com/zeromq/libzmq 2013-06-22 10:59:16 +01:00
Ian Barber
f4c51db842 Fix small streamengine issue w/ term and handshake
Also tidy up monitor test a little.
2013-06-22 10:58:16 +01:00
Martin Hurton
8af208fab7 Implement ZMTP/3.0 CURVE mechanism 2013-06-22 11:48:44 +02:00
Martin Hurton
20a7978d67 Stop ZMTP handshake when an unexpected message comes 2013-06-22 08:12:11 +02:00
Martin Hurton
2928c91a6d Implement ZAP and integrate it with PLAIN mechanism 2013-06-06 13:28:21 +02:00
Ian Barber
9a0b2c8970 Pieter's change to fix memory leak on mechanism 2013-05-29 21:58:20 +01:00
Pieter Hintjens
f909b9c722 plain_mechanism now uses options.as_server
- we need to switch to PLAIN according to options.mechanism
- we need to catch case when both peers are as-server (or neither is)
- and to use username/password from options, for client
2013-05-17 17:21:59 +01:00
Martin Hurton
182a224bb0 Use socket options to select security mechanism 2013-05-17 15:49:59 +02:00
Martin Hurton
4eecda8af3 Implement ZMTP/3.0 PLAIN mechanism
This implements protocol handshake.
We still need to design and implement 1) API changes so a user
can set username and password, and 2) a mechanism for engine
to authenticate users.
2013-05-14 11:20:13 +02:00
Martin Hurton
d47295db70 Abstract security mechanism 2013-05-14 10:52:52 +02:00
Martin Hurton
cd4d8bb15a Implement ZMTP/3.0 NULL mechanism 2013-04-28 14:13:40 +02:00
Lourens Naudé
b5e5e10126 Fix return code redeclaration for platforms with SO_NOSIGPIPE 2013-04-23 23:01:14 +01:00
Martin Hurton
e52c436252 Interoperate with higher versions of ZMTP protocol 2013-04-14 22:59:50 +02:00
Martin Hurton
9d79ac2830 Use state functions for message flow
The patch makes the code somewhat simpler and prepares it for
more complex initialization handshakes.
2013-04-12 15:49:08 +02:00
Martin Hurton
7942db7606 Refactor code so that messages go through engines 2013-04-11 18:52:51 +02:00
Pieter Hintjens
12c7db8c42 Code name clean up 2013-03-12 15:56:10 +01:00
Pieter Hintjens
d826c53b9b Bumped ZMTP revision to 2
* Starting draft ZMTP/2.1 protocol (revision 2)
* Basis for adding security to the wire protocol
* Maintains backward compatibility
2013-03-12 15:49:23 +01:00
Pieter Hintjens
785ef41f67 Refactored codecs to match ZMTP version numbers 2013-03-12 15:29:37 +01:00
Pieter Hintjens
f0f16505e5 Removed corporate advertisements from source file headers
Copyrights had become ads for Sustrik's corporate sponsors, going against the original
agreement to share copyrights with the community (that agreement was: one line stating
iMatix copyright + one reference to AUTHORS file). The proliferation of corporate ads
is also unfair to the many individual authors. I've removed ALL corporate title from
the source files so the copyright statements can now be centralized in AUTHORS and
source files can be properly updated on an annual basis.
2013-03-12 13:24:57 +01:00
Min(Dongmin Yu)
2c1a3c55f7 LIBZMQ-497 there could be unsent bytes in encoder
When we send a large message, the message can be splitted into two chunks.
One is in the encoder buffer and the other is the zero-copy pointer.
The session could get the term before the last chunk is sent.
2013-02-01 17:32:28 +09:00
Pieter Hintjens
ef186fe15b Spelling fixes 2013-01-08 09:08:01 +01:00
Lourens Naudé
6d245eb6bc Copy monitor specific event endpoints to event messages as the engine etc. can be released at anytime 2012-11-17 11:29:47 +00:00
Lourens Naudé
ce4d321684 Revert "Merge pull request #473 from methodmissing/fix-engine-endpoint"
This reverts commit 1a18c7b0a816e10f8a8a770b2141d47f661f0302, reversing
changes made to bef9a41bdb991b867981317e0e20ee174ecd6fea.
2012-11-17 10:06:09 +00:00