mirror of
https://github.com/zeromq/libzmq.git
synced 2025-02-23 23:16:41 +01:00
Merge pull request #1472 from reunanen/allow-explicitly-setting-buf-sizes-to-0
Allow explicitly setting buf sizes to 0
This commit is contained in:
commit
311f4d00e4
@ -450,14 +450,12 @@ Applicable socket types:: all, when using multicast transports
|
||||
ZMQ_RCVBUF: Retrieve kernel receive buffer size
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_RCVBUF' option shall retrieve the underlying kernel receive buffer
|
||||
size for the specified 'socket'. A value of zero means that the OS default is
|
||||
in effect. For details refer to your operating system documentation for the
|
||||
'SO_RCVBUF' socket option.
|
||||
size for the specified 'socket'. For details refer to your operating system
|
||||
documentation for the 'SO_RCVBUF' socket option.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
Option value unit:: bytes
|
||||
Default value:: 0
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
@ -566,14 +564,12 @@ Applicable socket types:: all, when using multicast transports
|
||||
ZMQ_SNDBUF: Retrieve kernel transmit buffer size
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_SNDBUF' option shall retrieve the underlying kernel transmit buffer
|
||||
size for the specified 'socket'. A value of zero means that the OS default is
|
||||
in effect. For details refer to your operating system documentation for the
|
||||
'SO_SNDBUF' socket option.
|
||||
size for the specified 'socket'. For details refer to your operating system
|
||||
documentation for the 'SO_SNDBUF' socket option.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
Option value unit:: bytes
|
||||
Default value:: 0
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
|
@ -469,14 +469,14 @@ Applicable socket types:: all, when using multicast transports
|
||||
ZMQ_RCVBUF: Set kernel receive buffer size
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_RCVBUF' option shall set the underlying kernel receive buffer size for
|
||||
the 'socket' to the specified size in bytes. A value of zero means leave the
|
||||
the 'socket' to the specified size in bytes. A value of -1 means leave the
|
||||
OS default unchanged. For details refer to your operating system documentation
|
||||
for the 'SO_RCVBUF' socket option.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
Option value unit:: bytes
|
||||
Default value:: 0
|
||||
Default value:: -1
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
@ -660,14 +660,14 @@ Applicable socket types:: ZMQ_ROUTER
|
||||
ZMQ_SNDBUF: Set kernel transmit buffer size
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_SNDBUF' option shall set the underlying kernel transmit buffer size
|
||||
for the 'socket' to the specified size in bytes. A value of zero means leave
|
||||
for the 'socket' to the specified size in bytes. A value of -1 means leave
|
||||
the OS default unchanged. For details please refer to your operating system
|
||||
documentation for the 'SO_SNDBUF' socket option.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
Option value unit:: bytes
|
||||
Default value:: 0
|
||||
Default value:: -1
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
|
@ -41,8 +41,8 @@ zmq::options_t::options_t () :
|
||||
rate (100),
|
||||
recovery_ivl (10000),
|
||||
multicast_hops (1),
|
||||
sndbuf (0),
|
||||
rcvbuf (0),
|
||||
sndbuf (-1),
|
||||
rcvbuf (-1),
|
||||
tos (0),
|
||||
type (-1),
|
||||
linger (-1),
|
||||
|
@ -196,14 +196,14 @@ int zmq::pgm_socket_t::init (bool udp_encapsulation_, const char *network_)
|
||||
|
||||
{
|
||||
const int rcvbuf = (int) options.rcvbuf;
|
||||
if (rcvbuf) {
|
||||
if (rcvbuf >= 0) {
|
||||
if (!pgm_setsockopt (sock, SOL_SOCKET, SO_RCVBUF, &rcvbuf,
|
||||
sizeof (rcvbuf)))
|
||||
goto err_abort;
|
||||
}
|
||||
|
||||
const int sndbuf = (int) options.sndbuf;
|
||||
if (sndbuf) {
|
||||
if (sndbuf >= 0) {
|
||||
if (!pgm_setsockopt (sock, SOL_SOCKET, SO_SNDBUF, &sndbuf,
|
||||
sizeof (sndbuf)))
|
||||
goto err_abort;
|
||||
|
@ -340,9 +340,9 @@ int zmq::socks_connecter_t::connect_to_proxy ()
|
||||
unblock_socket (s);
|
||||
|
||||
// Set the socket buffer limits for the underlying socket.
|
||||
if (options.sndbuf != 0)
|
||||
if (options.sndbuf >= 0)
|
||||
set_tcp_send_buffer (s, options.sndbuf);
|
||||
if (options.rcvbuf != 0)
|
||||
if (options.rcvbuf >= 0)
|
||||
set_tcp_receive_buffer (s, options.rcvbuf);
|
||||
|
||||
// Set the IP Type-Of-Service for the underlying socket
|
||||
|
@ -258,9 +258,9 @@ int zmq::tcp_connecter_t::open ()
|
||||
unblock_socket (s);
|
||||
|
||||
// Set the socket buffer limits for the underlying socket.
|
||||
if (options.sndbuf != 0)
|
||||
if (options.sndbuf >= 0)
|
||||
set_tcp_send_buffer (s, options.sndbuf);
|
||||
if (options.rcvbuf != 0)
|
||||
if (options.rcvbuf >= 0)
|
||||
set_tcp_receive_buffer (s, options.rcvbuf);
|
||||
|
||||
// Set the IP Type-Of-Service for the underlying socket
|
||||
|
@ -207,9 +207,9 @@ int zmq::tcp_listener_t::set_address (const char *addr_)
|
||||
set_ip_type_of_service (s, options.tos);
|
||||
|
||||
// Set the socket buffer limits for the underlying socket.
|
||||
if (options.sndbuf != 0)
|
||||
if (options.sndbuf >= 0)
|
||||
set_tcp_send_buffer (s, options.sndbuf);
|
||||
if (options.rcvbuf != 0)
|
||||
if (options.rcvbuf >= 0)
|
||||
set_tcp_receive_buffer (s, options.rcvbuf);
|
||||
|
||||
// Allow reusing of the address.
|
||||
|
Loading…
x
Reference in New Issue
Block a user