mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-22 10:25:52 +01:00
Merge pull request #585 from hintjens/master
Problem: allows CURVE security even if libzmq was built without libsodium
This commit is contained in:
commit
acaaaa5351
@ -180,6 +180,7 @@ Option value unit:: milliseconds
|
||||
Default value:: 10000
|
||||
Applicable socket types:: all, when using multicast transports
|
||||
|
||||
|
||||
ZMQ_SNDBUF: Set kernel transmit buffer size
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_SNDBUF' option shall set the underlying kernel transmit buffer size
|
||||
|
@ -102,8 +102,8 @@ int zmq::lb_t::send (msg_t *msg_)
|
||||
return -1;
|
||||
}
|
||||
|
||||
// If it's final part of the message we can fluch it downstream and
|
||||
// continue round-robinning (load balance).
|
||||
// If it's final part of the message we can flush it downstream and
|
||||
// continue round-robining (load balance).
|
||||
more = msg_->flags () & msg_t::more? true: false;
|
||||
if (!more) {
|
||||
pipes [current]->flush ();
|
||||
|
@ -286,6 +286,10 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
|
||||
break;
|
||||
|
||||
case ZMQ_CURVE_SERVER:
|
||||
# ifndef HAVE_LIBSODIUM
|
||||
puts ("E: libzmq was not built using libsodium, CURVE not available");
|
||||
assert (false);
|
||||
# endif
|
||||
if (is_int && (value == 0 || value == 1)) {
|
||||
as_server = value;
|
||||
mechanism = value? ZMQ_CURVE: ZMQ_NULL;
|
||||
@ -294,6 +298,10 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
|
||||
break;
|
||||
|
||||
case ZMQ_CURVE_PUBLICKEY:
|
||||
# ifndef HAVE_LIBSODIUM
|
||||
puts ("E: libzmq was not built using libsodium, CURVE not available");
|
||||
assert (false);
|
||||
# endif
|
||||
if (optvallen_ == CURVE_KEYSIZE) {
|
||||
memcpy (curve_public_key, optval_, CURVE_KEYSIZE);
|
||||
mechanism = ZMQ_CURVE;
|
||||
@ -302,6 +310,10 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
|
||||
break;
|
||||
|
||||
case ZMQ_CURVE_SECRETKEY:
|
||||
# ifndef HAVE_LIBSODIUM
|
||||
puts ("E: libzmq was not built using libsodium, CURVE not available");
|
||||
assert (false);
|
||||
# endif
|
||||
if (optvallen_ == CURVE_KEYSIZE) {
|
||||
memcpy (curve_secret_key, optval_, CURVE_KEYSIZE);
|
||||
mechanism = ZMQ_CURVE;
|
||||
@ -310,6 +322,10 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
|
||||
break;
|
||||
|
||||
case ZMQ_CURVE_SERVERKEY:
|
||||
# ifndef HAVE_LIBSODIUM
|
||||
puts ("E: libzmq was not built using libsodium, CURVE not available");
|
||||
assert (false);
|
||||
# endif
|
||||
if (optvallen_ == CURVE_KEYSIZE) {
|
||||
memcpy (curve_server_key, optval_, CURVE_KEYSIZE);
|
||||
as_server = 0;
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "../include/zmq.h"
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include "testutil.hpp"
|
||||
|
||||
// REQ socket events handled
|
||||
@ -215,7 +216,7 @@ int main (void)
|
||||
assert (rc == 0);
|
||||
rc = pthread_create (&threads [1], NULL, req_socket_monitor, ctx);
|
||||
assert (rc == 0);
|
||||
sleep(1);
|
||||
sleep (1);
|
||||
|
||||
// Bind REQ and REP
|
||||
rc = zmq_bind (rep, addr.c_str());
|
||||
|
Loading…
x
Reference in New Issue
Block a user