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

2507 Commits

Author SHA1 Message Date
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
Pieter Hintjens
4a4d222ec4 Merge pull request #592 from gavinmcniff/master
Store identity for raw socket
2013-06-23 23:29:44 -07:00
Gavin
b893ce2503 Store identity for raw socket
Identity stored during connect procedure. Can be read using
zmq_getsockopt and used as the identity frame when sending messages.
This allows the implementation of a raw socket client.
2013-06-23 18:16:33 +01:00
Ian Barber
e9d11c6611 Merge pull request #591 from hurtonm/master
Rename parse_properties to parse_metadata
2013-06-23 01:07:59 -07:00
Martin Hurton
b12be41736 Rename parse_properties to parse_metadata 2013-06-23 09:01:52 +02:00
Ian Barber
ec943ac5de Merge pull request #590 from hurtonm/master
Refactor how properties are parsed
2013-06-22 14:19:02 -07:00
Martin Hurton
99d4974580 Refactor how properties are parsed 2013-06-22 19:02:08 +02:00
Martin Hurton
19cf076f8c Merge pull request #589 from ianbarber/master
Add test for CURVE mechanism
2013-06-22 08:28:03 -07:00
Ian Barber
13df8e6546 Merge branch 'master' of git://github.com/zeromq/libzmq 2013-06-22 16:19:26 +01:00
Ian Barber
211bf2b08e Added security curve test
Test is skipped if no libsodium.
Added warning if libsodium not configured
2013-06-22 16:17:25 +01:00
Pieter Hintjens
73e195279a Merge pull request #588 from hurtonm/master
Small code cleanup
2013-06-22 07:25:26 -07:00
Martin Hurton
084e8792de Small cleanup in pipe.cpp 2013-06-22 16:15:35 +02:00
Ian Barber
2bf51247fe Merge pull request #587 from hurtonm/master
Make ZAP optional for CURVE mechanism
2013-06-22 07:14:28 -07:00
Martin Hurton
fa0f0e21b8 Make ZAP optional for PLAIN mechanism 2013-06-22 16:05:46 +02:00
Pieter Hintjens
8bb79b5eb1 Merge pull request #586 from hurtonm/master
Make ZAP optional for CURVE mechanism
2013-06-22 06:42:26 -07:00
Martin Hurton
5975e00fd1 Make ZAP optional for CURVE mechanism 2013-06-22 15:36:21 +02:00
Ian Barber
acaaaa5351 Merge pull request #585 from hintjens/master
Problem: allows CURVE security even if libzmq was built without libsodium
2013-06-22 05:19:01 -07:00
Pieter Hintjens
fadfcac1de Fixed compile error, needed unistd.h 2013-06-22 13:50:22 +02:00
Pieter Hintjens
1ea06883c0 Fixed spelling in comments 2013-06-22 13:39:24 +02:00
Pieter Hintjens
fb43d5a0fe Whitespace fix to man page 2013-06-22 13:39:24 +02:00
Pieter Hintjens
f4848ddb32 Prints message and exits if app tries to use CURVE without libsodium 2013-06-22 13:39:24 +02:00
Pieter Hintjens
675bd4640b Merge pull request #584 from hurtonm/master
Fix test_disconnect_inproc to work on ILP64 systems
2013-06-22 04:18:27 -07:00
Martin Hurton
1b86324396 Fix test_disconnect_inproc to work on ILP64 systems 2013-06-22 13:05:46 +02:00
Pieter Hintjens
9eb2521537 Merge pull request #583 from ianbarber/master
Small stream engine issue and test_monitor tidy up
2013-06-22 03:25:44 -07: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
Pieter Hintjens
91bc74089f Merge pull request #582 from hurtonm/master
Implement CurveZMQ message encryption and authentication
2013-06-22 02:57:34 -07:00
Martin Hurton
8af208fab7 Implement ZMTP/3.0 CURVE mechanism 2013-06-22 11:48:44 +02:00
Martin Hurton
e4a211870c Implement CurveZMQ message encryption and authentication 2013-06-22 11:46:40 +02:00
Martin Hurton
c9638fceb4 Merge pull request #581 from hintjens/master
Problem: code isn't setting mechanism to CURVE properly
2013-06-22 02:12:39 -07:00
Pieter Hintjens
8c0ded5076 Properly set mechanism to CURVE when setting a curve option 2013-06-22 11:05:01 +02:00
Ian Barber
c5078ea1b8 Merge pull request #580 from hurtonm/master
Stop ZMTP handshake when an unexpected message comes
2013-06-22 01:08:35 -07:00
Martin Hurton
20a7978d67 Stop ZMTP handshake when an unexpected message comes 2013-06-22 08:12:11 +02:00
Pieter Hintjens
92b02b98cd Merge pull request #579 from ianbarber/master
Clean up socket_type_string
2013-06-21 09:00:18 -07:00
Ian Barber
cabf4e658f Comments to clarify the socket name function 2013-06-21 16:56:45 +01:00
Ian Barber
1fe7820629 Merge pull request #577 from hintjens/master
API for CURVE configuration
2013-06-20 11:09:20 -07:00
Pieter Hintjens
c5a9fa5b5e Merge pull request #578 from gonzus/master
Changes to sanity tag in ctx
2013-06-20 09:47:22 -07:00
Gonzalo Diethelm
3b355fec9a Introduced private constants for the context sanity tag values.
Ignored more MSVC intermmediate files.
2013-06-20 12:43:32 -04:00
Pieter Hintjens
10f69c1500 Clarified man pages on mixed security 2013-06-20 18:30:30 +02:00
Pieter Hintjens
d9bb16725e Added options for CURVE security
- ZMQ_CURVE_PUBLICKEY for clients and servers
- ZMQ_CURVE_SECRETKEY for clients
- ZMQ_CURVE_SERVERKEY for clients
- ZMQ_CURVE_SERVER for servers
- added tools/curve_keygen.c as example
- updated man pages
2013-06-20 18:09:12 +02:00
Pieter Hintjens
65c84abdb5 Merge pull request #576 from hurtonm/zmtp_curve
Implement ZMTP/3.0 CURVE handshake
2013-06-20 05:27:49 -07:00
Martin Hurton
37b99c0b4b Implement ZMTP/3.0 CURVE handshake 2013-06-20 13:36:12 +02:00
Pieter Hintjens
9273022260 Merge pull request #575 from murphybytes/master
Missing files in cmake generated build.
2013-06-17 06:38:33 -07:00
John Murphy
9bd8d9a726 added missing files required to build 2013-06-16 18:42:51 -05:00
Ian Barber
1195092c61 Merge pull request #574 from pijyoi/master
fix memory leak in ipc_listener wildcard
2013-06-15 01:27:38 -07:00
xinchuan
38327927ce fix memory leak in tempnam() usage 2013-06-15 16:11:50 +08:00
Pieter Hintjens
5c54bc358e Merge pull request #573 from shripchenko/master
another iteration on ZMQ_PROBE_ROUTER
2013-06-10 03:34:23 -07:00
shripchenko
627190c8be another iteration on ZMQ_PROBE_ROUTER
now it properly works for ROUTER
2013-06-10 02:31:00 -07:00
Martin Hurton
6b8569d78a Merge pull request #572 from hintjens/master
Updated ZAP PLAIN request to follow latest draft
2013-06-07 07:33:25 -07:00
Pieter Hintjens
6ff51ee909 Updated ZAP request for changed protocol draft
- username and password sent as two string frames
- fixed test case to match
2013-06-07 15:50:36 +02:00
Pieter Hintjens
656ff5b208 Small fixes to documentation
- REQ and REP sockets don't have HWM issues
- ZMQ_DONTWAIT applies to DEALER and PUSH only
2013-06-07 13:28:47 +02:00
Ian Barber
210fcbbbeb Merge pull request #571 from hurtonm/master
Add ZAP support
2013-06-06 04:41:55 -07:00
Martin Hurton
2928c91a6d Implement ZAP and integrate it with PLAIN mechanism 2013-06-06 13:28:21 +02:00
Martin Hurton
4e47084dd4 Minor cleanups 2013-06-06 13:28:21 +02:00
Martin Hurton
c3e40736de Rename terminated->pipe_terminated 2013-06-06 13:28:21 +02:00
Ian Barber
7a43c02aaf Merge pull request #570 from hintjens/master
Packaging of probe function
2013-06-06 01:18:37 -07:00
Pieter Hintjens
a9679da764 Packaging on ZMQ_PROBE_ROUTER
- renamed to ZMQ_PROBE_ROUTER
2013-06-05 15:55:15 +02:00
Pieter Hintjens
2344131db3 Packaging of ZMQ_PROBE
- Cleaned up man page a little
- Wrote test case tests/test_router_probe.cpp
2013-06-05 15:29:40 +02:00
Pieter Hintjens
dbd58f8e15 Fixed out-of-date reference 2013-06-05 15:29:40 +02:00
shripchenko
9c980e17dd changed option name. +documentation changes 2013-06-05 15:29:40 +02:00
shripchenko
97324398a7 refactored ZMQ_ROUTER_ANNOUNCE_SELF code. renamed it to ZMQ_PROBE_NEW_PEERS.
implement it for DEALER tocket.
+documentation
2013-06-05 15:29:40 +02:00
Pieter Hintjens
d5f603690f Merge pull request #569 from jpoliv/master
Make "./configure --with-system-pgm" detect the OpenPGM 5.2 system library.
2013-06-01 01:08:48 -07:00
Jose Pedro Oliveira
42ab0e8217 Make
./configure --with-system-pgm
detect the OpenPGM 5.2 system library.

Note that OpenPGM installs a versioned pkgconfig file
(openpgm-5.2.pc, openpgm-5.1.pc).
2013-06-01 03:39:40 +01:00
Pieter Hintjens
d1f011d7e5 Merge pull request #568 from jmgao/patch-2
Fold constant expression into constant.
2013-05-31 16:14:02 -07:00
Josh Gao
43d049741f Fix mistaken use of xor in "2^31 - 1". 2013-05-31 15:54:01 -07:00
Pieter Hintjens
6caa17373b Merge pull request #567 from ianbarber/master
Fixed memory leak in stream engine
2013-05-29 14:13:13 -07:00
Ian Barber
9a0b2c8970 Pieter's change to fix memory leak on mechanism 2013-05-29 21:58:20 +01:00
Pieter Hintjens
240eff384a Merge pull request #563 from shripchenko/master
Refactoring of 'ZMQ_ROUTER_ANNOUNCE_SELF'
2013-05-29 09:03:54 -07:00
Pieter Hintjens
9d63ebf6d6 Merge pull request #564 from hurtonm/master
Rename pipe states so they are more mnemonic
2013-05-28 04:51:47 -07:00
Martin Hurton
4e4803e07f Rename pipe states to make it more mnemonic 2013-05-28 13:45:20 +02:00
shripchenko
f805e4dd03 changed option name. +documentation changes 2013-05-24 07:09:53 -07:00
shripchenko
aec989fb5d small refactoring 2013-05-23 02:02:18 -07:00
shripchenko
51750a7d2a refactored ZMQ_ROUTER_ANNOUNCE_SELF code. renamed it to ZMQ_PROBE_NEW_PEERS.
implement it for DEALER tocket.
+documentation
2013-05-23 01:49:40 -07:00
Martin Hurton
f781eb7e7b Merge pull request #562 from hintjens/master
Removed tracing on router option setting
2013-05-22 07:05:20 -07:00
Pieter Hintjens
fbd1729cbd Removed tracing for Travis builds 2013-05-22 00:17:03 +02:00
Pieter Hintjens
13643b2aec Merge pull request #561 from shripchenko/master
Add ROUTER socket option to introduce self(send an empty message) to new peers, to allow ROUTER<->ROUTER auto-discovery problem.
2013-05-21 14:32:05 -07:00
shripchenko
910b469224 Merge branch 'master' of https://github.com/shripchenko/libzmq 2013-05-21 10:26:11 -07:00
shripchenko
ed3a115da9 Add ROUTER socket option to introduce self(send an empty message) to new peers, to allow ROUTER<->ROUTER auto-discovery problem. 2013-05-21 10:25:21 -07:00
root
ec7f711c58 Add ROUTER socket option to introduce self(send an empty message) to new peers, to allow ROUTER<->ROUTER auto-discovery problem. 2013-05-21 10:20:24 -07:00
Pieter Hintjens
c7c865da75 Whitespace fixes 2013-05-21 18:52:44 +02:00
Pieter Hintjens
d113495500 Merge pull request #560 from hintjens/master
Working on Travis builds
2013-05-21 09:03:51 -07:00
Pieter Hintjens
4112693051 Cleaned up router option code
- made consistent with options.cpp code
- added trace print for ongoing issue with Travis CI builds
2013-05-21 15:15:16 +02:00
Ian Barber
536ea4fc24 Merge pull request #559 from hintjens/master
Adding support for Travis CI
2013-05-21 00:39:58 -07:00
Pieter Hintjens
bf96cb44e2 Fixed name of Travis file 2013-05-21 09:32:13 +02:00
Pieter Hintjens
59a164d2b5 Added support for Travis CI 2013-05-21 09:20:39 +02:00
Martin Hurton
e9e44c6b09 Merge pull request #558 from hintjens/master
stdint.h isn't available on all platforms
2013-05-19 02:05:57 -07:00
Pieter Hintjens
31ee92f2fd stdint.h is not available on all platforms 2013-05-19 10:01:33 +01:00