Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NN_GETSOCKOPT(3)		 nanomsg 1.1.5		      NN_GETSOCKOPT(3)

NAME
       nn_getsockopt - retrieve	a socket option

SYNOPSIS
       #include	<nanomsg/nn.h>

       int nn_getsockopt (int s, int level, int	option,	void *optval, size_t
       *optvallen);

DESCRIPTION
       Retrieves the value for the option. The level argument specifies	the
       protocol	level at which the option resides. For generic socket-level
       options use NN_SOL_SOCKET level.	For socket-type-specific options use
       socket type for level argument (e.g. NN_SUB). For transport-specific
       options use ID of the transport as the level argument (e.g. NN_TCP).

       The value is stored in the buffer pointed to by optval argument.	Size
       of the buffer is	specified by the optvallen argument. If	the size of
       the option is greater than size of the buffer, the value	will be
       silently	truncated. Otherwise, the optvallen will be modified to
       indicate	the actual length of the option.

       _nanomsg/nn.h_ header defines generic socket-level options
       (NN_SOL_SOCKET level). The options are as follows:

       NN_DOMAIN
	   Returns the domain constant as it was passed	to nn_socket().

       NN_PROTOCOL
	   Returns the protocol	constant as it was passed to nn_socket().

       NN_LINGER
	   Specifies how long the socket should	try to send pending outbound
	   messages after nn_close() have been called, in milliseconds.
	   Negative value means	infinite linger. The type of the option	is
	   int.	Default	value is 1000 (1 second).

       NN_SNDBUF
	   Size	of the send buffer, in bytes. To prevent blocking for messages
	   larger than the buffer, exactly one message may be buffered in
	   addition to the data	in the send buffer. The	type of	this option is
	   int.	Default	value is 128kB.

       NN_RCVBUF
	   Size	of the receive buffer, in bytes. To prevent blocking for
	   messages larger than	the buffer, exactly one	message	may be
	   buffered in addition	to the data in the receive buffer. The type of
	   this	option is int. Default value is	128kB.

       NN_RCVMAXSIZE
	   Maximum message size	that can be received, in bytes.	Negative value
	   means that the received size	is limited only	by available
	   addressable memory. The type	of this	option is int. Default is
	   1024kB.

       NN_SNDTIMEO
	   The timeout for send	operation on the socket, in milliseconds. If
	   message cannot be sent within the specified timeout,	ETIMEDOUT
	   error is returned. Negative value means infinite timeout. The type
	   of the option is int. Default value is -1.

       NN_RCVTIMEO
	   The timeout for recv	operation on the socket, in milliseconds. If
	   message cannot be received within the specified timeout, ETIMEDOUT
	   error is returned. Negative value means infinite timeout. The type
	   of the option is int. Default value is -1.

       NN_RECONNECT_IVL
	   For connection-based	transports such	as TCP,	this option specifies
	   how long to wait, in	milliseconds, when connection is broken	before
	   trying to re-establish it. Note that	actual reconnect interval may
	   be randomised to some extent	to prevent severe reconnection storms.
	   The type of the option is int. Default value	is 100 (0.1 second).

       NN_RECONNECT_IVL_MAX
	   This	option is to be	used only in addition to NN_RECONNECT_IVL
	   option. It specifies	maximum	reconnection interval. On each
	   reconnect attempt, the previous interval is doubled until
	   NN_RECONNECT_IVL_MAX	is reached. Value of zero means	that no
	   exponential backoff is performed and	reconnect interval is based
	   only	on NN_RECONNECT_IVL. If	NN_RECONNECT_IVL_MAX is	less than
	   NN_RECONNECT_IVL, it	is ignored. The	type of	the option is int.
	   Default value is 0.

       NN_SNDPRIO
	   Retrieves outbound priority currently set on	the socket. This
	   option has no effect	on socket types	that send messages to all the
	   peers. However, if the socket type sends each message to a single
	   peer	(or a limited set of peers), peers with	high priority take
	   precedence over peers with low priority. The	type of	the option is
	   int.	Highest	priority is 1, lowest priority is 16. Default value is
	   8.

       NN_RCVPRIO
	   Sets	inbound	priority for endpoints subsequently added to the
	   socket. This	option has no effect on	socket types that are not able
	   to receive messages.	When receiving a message, messages from	peer
	   with	higher priority	are received before messages from peer with
	   lower priority. The type of the option is int. Highest priority is
	   1, lowest priority is 16. Default value is 8.

       NN_IPV4ONLY
	   If set to 1,	only IPv4 addresses are	used. If set to	0, both	IPv4
	   and IPv6 addresses are used.	The type of the	option is int. Default
	   value is 1.

       NN_SNDFD
	   Retrieves a file descriptor that is readable	when a message can be
	   sent	to the socket. The descriptor should be	used only for polling
	   and never read from or written to. The type of the option is	same
	   as the type of file descriptor on the platform. That	is, int	on
	   POSIX-complaint platforms and SOCKET	on Windows. The	descriptor
	   becomes invalid and should not be used any more once	the socket is
	   closed. This	socket option is not available for unidirectional
	   recv-only socket types.

       NN_RCVFD
	   Retrieves a file descriptor that is readable	when a message can be
	   received from the socket. The descriptor should be used only	for
	   polling and never read from or written to. The type of the option
	   is same as the type of file descriptor on the platform. That	is,
	   int on POSIX-complaint platforms and	SOCKET on Windows. The
	   descriptor becomes invalid and should not be	used any more once the
	   socket is closed. This socket option	is not available for
	   unidirectional send-only socket types.

       NN_SOCKET_NAME
	   Socket name for error reporting and statistics. The type of the
	   option is string. Default value is "N" where	N is socket integer.
	   This	option is experimental,	see nn_env(7) for details

       NN_MAXTTL
	   Retrieves the maximum number	of "hops" a message can	go through
	   before it is	dropped. Each time the message is received (for
	   example via the nn_device(3)	function) counts as a single hop. This
	   provides a form of protection against inadvertent loops.

RETURN VALUE
       If the function succeeds	zero is	returned. Otherwise, -1	is returned
       and errno is set	to to one of the values	defined	below.

ERRORS
       EBADF
	   The provided	socket is invalid.

       ENOPROTOOPT
	   The option is unknown at the	level indicated.

       ETERM
	   The library is terminating.

EXAMPLE
	   int linger;
	   size_t sz = sizeof (linger);
	   nn_getsockopt (s, NN_SOL_SOCKET, NN_LINGER, &linger,	&sz);

SEE ALSO
       nn_socket(3) nn_setsockopt(3) nanomsg(7)

AUTHORS
       Martin Sustrik <sustrik@250bpm.com> Garrett D'Amore
       <garrett@damore.org>

				  2018-10-15		      NN_GETSOCKOPT(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLE | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=nn_getsockopt&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help