0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-31 01:43:02 +08:00

2493 Commits

Author SHA1 Message Date
Christian Kamm
7de23c0c8d Fix intermittent failure in test_spec_req.
There still is a problem when a stale peer's message
arrives at the REQ just after a request was sent to that peer.
2013-07-14 11:57:15 +02:00
Pieter Hintjens
bccf3d6126 Merge pull request #613 from ckamm/coding-style-spec-tests
Fix coding style in spec tests.
2013-07-14 02:32:20 -07:00
Pieter Hintjens
93b9f9021c Merge pull request #608 from ckamm/req-drops-unwanted
REQ sockets drop replies from unasked peers.
2013-07-14 02:30:21 -07:00
Christian Kamm
bbc9a61197 Fix coding style in spec tests. 2013-07-14 08:33:33 +02:00
Christian Kamm
c56d797bf9 REQ sockets drop replies from unasked peers.
* Add lb_t::sendpipe() that returns the pipe that was used for sending,
  similar to fq_t::recvpipe().
* Add forwarder functions to dealer_t to access these two.
* Add logic to req_t to ignore replies on pipes that are not the one
  where the request was sent.
* Enable test in test_spec_req.
2013-07-14 07:55:47 +02:00
Pieter Hintjens
524bd7ac76 Merge pull request #612 from ulikoehler/markdown
Converted README to markdown
2013-07-13 16:27:41 -07:00
Uli Köhler
6bf4ffe727 Converted README to markdown + added travis build img 2013-07-14 00:55:40 +02:00
Pieter Hintjens
7560910f50 Merge pull request #611 from pijyoi/master
update Makefile to include new files
2013-07-13 10:39:06 -07:00
KIU Shueng Chuan
0f28b72914 update to include stream.cpp and curve related 2013-07-13 14:31:46 +08:00
Ian Barber
5ac19647d9 Merge pull request #610 from hintjens/master
Problem: new spec test cases don't all work
2013-07-08 04:12:06 -07:00
Pieter Hintjens
9ca6898f24 Got new test cases working with libzmq
* disabled the specific tests that do not work (yet) on libzmq
* cleaned up one source (test_spec_rep.c) but the others need similar work
* added sleep in test_spec_rep to allow connects time to happen; this would
  not be needed if we connected out to the REP peers instead in from them,
  but I didn't want to change the logic of the test code.
2013-07-07 12:49:24 +02:00
Pieter Hintjens
08622a7788 Merge pull request #609 from ckamm/tests
Make pipeline/reqrep tests try tcp:// endpoints.
2013-07-05 15:36:14 -07:00
Christian Kamm
dfba19c4b6 Make pipeline/reqrep tests try tcp:// endpoints.
The inproc:// endpoints sometimes use different code paths so
testing with regular tcp:// endpoints as well can show different
issues.
2013-07-05 17:58:01 +02:00
Pieter Hintjens
5038ef74b5 Merge pull request #606 from ckamm/master
Add tests for Request-Reply and Pipeline pattern sockets.
2013-07-05 08:18:41 -07:00
Christian Kamm
8fd163cf5c Add tests for PUSH/PULL sockets. 2013-07-05 15:20:42 +02:00
Pieter Hintjens
e093bd9923 Merge pull request #607 from cjuniet/master
[LIBZMQ-544] Fix compilation errors with Clang
2013-07-03 15:43:09 -07:00
Christophe Juniet
7b7f7e4ebd Fix compilation warnings on unsigned comparisons.
Fix two unsigned comparisons to zero or more being always true. Clang
won't compile this with -Werror.
2013-07-03 22:30:48 +02:00
Christian Kamm
798b394087 Add tests for Request-Reply pattern sockets.
* See http://rfc.zeromq.org/spec:28/REQREP
* Not all testable statements are covered.
* At this point, there are several failures:
  - test_spec_req: The REQ socket does not correctly discard messages
    from peers that are not currently being talked to.
  - test_spec_dealer/router: On disconnect, the queues seem to not be
    emptied. The DEALER can still receive a message the disconnected
    peer sent, the ROUTER can still send to the identity of the dis-
    connected peer.
2013-07-02 15:04:31 +02:00
Pieter Hintjens
78e47912d2 Merge pull request #605 from ricnewton/master
Fix tab/space formatting issue
2013-07-01 04:41:46 -07:00
Richard Newton
998610602e Fix tab/space formatting issue 2013-07-01 12:10:57 +01:00
Ian Barber
5a30022045 Merge pull request #603 from ricnewton/master
Add monitor event for when monitoring is stopped so we can unblock any sockets waiting on monitor socket.
2013-07-01 04:08:25 -07:00
Ian Barber
a3e16c18b1 Merge pull request #604 from ricnewton/cmake_fix
Fix cmake build
2013-07-01 04:07:44 -07:00
Richard Newton
01dd6eb110 Fix cmake build
Fix build on windows, uint isn't a standard type, unsigned int is.
2013-07-01 11:52:39 +01:00
Richard Newton
f6e972d546 Fix montior tests to handle the monitor stopped event correctly 2013-07-01 10:31:57 +00:00
Richard Newton
d4d23caf32 Add new socket monitor event for when socket monitoring is stopped. 2013-07-01 11:00:46 +01:00
Pieter Hintjens
1cfee8d1e7 Merge pull request #601 from leewoosung/hotfixes/patched
[LIBZMQ-541] pub socket sending fail issue
2013-07-01 02:14:07 -07:00
Pieter Hintjens
2a4aef9223 Merge pull request #602 from hurtonm/master
Implement socket type checking
2013-07-01 02:06:29 -07:00
Martin Hurton
783bb890a9 Check socket types during mechanism handshake 2013-07-01 10:12:08 +02:00
ganesh.vr
4671108e57 LIBZMQ-541 issue fix 2013-07-01 15:57:06 +09:00
Pieter Hintjens
58b1082467 Merge pull request #600 from hurtonm/master
Set socket buffers before establishing TCP connection
2013-06-29 23:56:04 -07: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
11947b1ccb Merge pull request #597 from hintjens/master
Problem: working with binary keys is painful
2013-06-29 09:36:50 -07:00
Ian Barber
a71d64ab95 Merge pull request #599 from hurtonm/master
Minor code refactoring
2013-06-29 09:34:47 -07:00
Martin Hurton
aef2171e83 Make last_endpoint attribute of socket object 2013-06-29 17:26:13 +02:00
Martin Hurton
c9bdb893f8 Use generic session class whenever possible 2013-06-29 12:24:36 +02:00
Pieter Hintjens
7460d00bac Merge pull request #598 from hurtonm/master
Use generic session class whenever possible
2013-06-29 02:36:30 -07:00
Martin Hurton
fd7e9b8c46 Use generic session class whenever possible 2013-06-29 11:27:03 +02:00
Pieter Hintjens
7041770108 Added Z85 support
The use of binary for CURVE keys is painful; you cannot easily copy
these in e.g. email, or use them directly in source code. There are
various encoding possibilities. Base16 and Base64 are not optimal.
Ascii85 is not safe for source (it generates quotes and escapes).

So, I've designed a new Base85 encoding, Z85, which is safe to use
in code and elsewhere, and I've modified libzmq to use this where
it also uses binary keys (in get/setsockopt).

Very simply, if you use a 32-byte value, it's Base256 (binary),
and if you use a 40-byte value, it's Base85 (Z85).

I've put the Z85 codec into z85_codec.hpp, it's not elegant C++
but it is minimal and it works. Feel free to rewrap as a real class
if this annoys you.
2013-06-28 22:10:22 +02:00
Martin Hurton
1beec5e960 Merge pull request #596 from hintjens/master
Problem: mechanisms are lagging behind specs
2013-06-28 05:05:54 -07:00
Pieter Hintjens
76df045950 Return EINVAL when trying to use CURVE without libsodium 2013-06-28 12:04:01 +02:00
Martin Hurton
357a9c45fb Simplify ZMQ_STREAM socket implementation, part II 2013-06-28 11:44:34 +02:00
Pieter Hintjens
7832addd20 Updated security mechanisms to use variable-length commands
RFC23, RFC24, RFC26 now use variable-length command names that
end in null octet (valid C strings) instead of fixed-length
space padded strings.
2013-06-28 11:42:54 +02:00
Pieter Hintjens
ba1ae7d639 Merge pull request #595 from hurtonm/master
Another ZMQ_STREAM simplification
2013-06-28 02:28:23 -07:00
Martin Hurton
7b27c125dc Simplify ZMQ_STREAM socket implementation, part II 2013-06-28 11:24:14 +02:00
Pieter Hintjens
dd14d4e01b Minor whitespace fixes in man page 2013-06-28 10:16:56 +02:00
Pieter Hintjens
c4ae74f816 Fixed zmq_errno function definition 2013-06-28 10:16:56 +02:00
Pieter Hintjens
fe2753da0a Merge pull request #594 from hurtonm/master
Simplify ZMQ_STREAM socket implementation
2013-06-28 01:15:02 -07:00
Martin Hurton
a1bb5e83ff Simplify ZMQ_STREAM socket implementation 2013-06-28 09:48:54 +02:00
Martin Hurton
d8f1376008 Merge pull request #593 from hintjens/master
Problem: ROUTER+RAW was not a clean API
2013-06-27 14:09:04 -07:00
Pieter Hintjens
ad77937956 Added ZMQ_STREAM socket type
- designed for TCP clients and servers
- added HTTP client / server example in tests/test_stream.cpp
- same as ZMQ_ROUTER + ZMQ_ROUTER_RAW + ZMQ_ROUTER_MANDATORY
- includes b893ce set ZMQ_IDENTITY on outgoing connect
- deprecates ZMQ_ROUTER_RAW
2013-06-27 20:53:15 +02:00