diff options
| -rw-r--r-- | doc/xs_getsockopt.txt | 9 | ||||
| -rw-r--r-- | doc/xs_setsockopt.txt | 6 | ||||
| -rw-r--r-- | src/decoder.cpp | 6 | ||||
| -rw-r--r-- | src/decoder.hpp | 4 | ||||
| -rw-r--r-- | src/options.cpp | 13 | ||||
| -rw-r--r-- | src/options.hpp | 2 | ||||
| -rw-r--r-- | src/xszmq.cpp | 2 | 
7 files changed, 21 insertions, 21 deletions
| diff --git a/doc/xs_getsockopt.txt b/doc/xs_getsockopt.txt index e7ddb8e..5a09453 100644 --- a/doc/xs_getsockopt.txt +++ b/doc/xs_getsockopt.txt @@ -269,16 +269,15 @@ Applicable socket types:: all, only for connection-oriented transports  XS_MAXMSGSIZE: Maximum acceptable inbound message size -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  The option shall retrieve limit for the inbound messages. If a peer sends -a message larger than XS_MAXMSGSIZE it is disconnected. Value of -1 means -'no limit'. +a message larger than XS_MAXMSGSIZE it is disconnected.  [horizontal] -Option value type:: int64_t +Option value type:: uint64_t  Option value unit:: bytes -Default value:: -1 +Default value:: 2^64-1  Applicable socket types:: all diff --git a/doc/xs_setsockopt.txt b/doc/xs_setsockopt.txt index 7cb91d2..6263a26 100644 --- a/doc/xs_setsockopt.txt +++ b/doc/xs_setsockopt.txt @@ -280,12 +280,12 @@ XS_MAXMSGSIZE: Maximum acceptable inbound message size  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  Limits the size of the inbound message. If a peer sends a message larger than -XS_MAXMSGSIZE it is disconnected. Value of -1 means 'no limit'. +XS_MAXMSGSIZE it is disconnected.  [horizontal] -Option value type:: int64_t +Option value type:: uint64_t  Option value unit:: bytes -Default value:: -1 +Default value:: 2^64-1  Applicable socket types:: all diff --git a/src/decoder.cpp b/src/decoder.cpp index a7f669a..23546f1 100644 --- a/src/decoder.cpp +++ b/src/decoder.cpp @@ -28,7 +28,7 @@  #include "wire.hpp"  #include "err.hpp" -xs::decoder_t::decoder_t (size_t bufsize_, int64_t maxmsgsize_) : +xs::decoder_t::decoder_t (size_t bufsize_, uint64_t maxmsgsize_) :      decoder_base_t <decoder_t> (bufsize_),      session (NULL),      maxmsgsize (maxmsgsize_) @@ -70,7 +70,7 @@ bool xs::decoder_t::one_byte_size_ready ()          //  close it before calling xs_msg_init_size, however, it's a 0-byte          //  message and thus we can treat it as uninitialised...          int rc; -        if (maxmsgsize >= 0 && (int64_t) (*tmpbuf - 1) > maxmsgsize) { +        if (maxmsgsize >= 0 && (uint64_t) (*tmpbuf - 1) > maxmsgsize) {              rc = -1;              errno = ENOMEM;          } @@ -105,7 +105,7 @@ bool xs::decoder_t::eight_byte_size_ready ()      //  close it before calling xs_msg_init_size, however, it's a 0-byte      //  message and thus we can treat it as uninitialised...      int rc; -    if (maxmsgsize >= 0 && (int64_t) (size - 1) > maxmsgsize) { +    if (maxmsgsize >= 0 && (uint64_t) (size - 1) > maxmsgsize) {          rc = -1;          errno = ENOMEM;      } diff --git a/src/decoder.hpp b/src/decoder.hpp index 9131861..c0ca85a 100644 --- a/src/decoder.hpp +++ b/src/decoder.hpp @@ -193,7 +193,7 @@ namespace xs      {      public: -        decoder_t (size_t bufsize_, int64_t maxmsgsize_); +        decoder_t (size_t bufsize_, uint64_t maxmsgsize_);          ~decoder_t ();          void set_session (xs::session_base_t *session_); @@ -209,7 +209,7 @@ namespace xs          unsigned char tmpbuf [8];          msg_t in_progress; -        int64_t maxmsgsize; +        uint64_t maxmsgsize;          decoder_t (const decoder_t&);          void operator = (const decoder_t&); diff --git a/src/options.cpp b/src/options.cpp index 50ef379..2b123c2 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -21,6 +21,7 @@  */  #include <string.h> +#include <limits>  #include "options.hpp"  #include "err.hpp" @@ -40,7 +41,7 @@ xs::options_t::options_t () :      reconnect_ivl (100),      reconnect_ivl_max (0),      backlog (100), -    maxmsgsize (-1), +    maxmsgsize (std::numeric_limits <uint64_t>::max ()),      rcvtimeo (-1),      sndtimeo (-1),      ipv4only (1), @@ -169,11 +170,11 @@ int xs::options_t::setsockopt (int option_, const void *optval_,          return 0;      case XS_MAXMSGSIZE: -        if (optvallen_ != sizeof (int64_t)) { +        if (optvallen_ != sizeof (uint64_t)) {              errno = EINVAL;              return -1;          } -        maxmsgsize = *((int64_t*) optval_); +        maxmsgsize = *((uint64_t*) optval_);          return 0;      case XS_MULTICAST_HOPS: @@ -343,12 +344,12 @@ int xs::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)          return 0;      case XS_MAXMSGSIZE: -        if (*optvallen_ < sizeof (int64_t)) { +        if (*optvallen_ < sizeof (uint64_t)) {              errno = EINVAL;              return -1;          } -        *((int64_t*) optval_) = maxmsgsize; -        *optvallen_ = sizeof (int64_t); +        *((uint64_t*) optval_) = maxmsgsize; +        *optvallen_ = sizeof (uint64_t);          return 0;      case XS_MULTICAST_HOPS: diff --git a/src/options.hpp b/src/options.hpp index 0bb3cf9..1ea61bd 100644 --- a/src/options.hpp +++ b/src/options.hpp @@ -78,7 +78,7 @@ namespace xs          int backlog;          //  Maximal size of message to handle. -        int64_t maxmsgsize; +        uint64_t maxmsgsize;          // The timeout for send/recv operations for this socket.          int rcvtimeo; diff --git a/src/xszmq.cpp b/src/xszmq.cpp index d1fb20c..bac6985 100644 --- a/src/xszmq.cpp +++ b/src/xszmq.cpp @@ -377,7 +377,7 @@ int zmq_recv (void *s, zmq_msg_t *msg, int flags)  int zmq_poll (zmq_pollitem_t *items, int nitems, long timeout)  { -    return xs_poll ((xs_pollitem_t*) items, nitems, timeout / 1000); +    return xs_poll ((xs_pollitem_t*) items, nitems, (int) (timeout / 1000));  }  int zmq_device (int device, void *frontend, void *backend) | 
