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 *opt-
     vallen);

DESCRIPTION
     Retrieves the value for the option. The level argument specifies the proto-
     col 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  op-
     tion  is  greater than size of the buffer, the value will be silently trun-
     cated. 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  mes-
	 sages	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. De-
	 fault 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  mes-
	 sage  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  mes-
	 sage  cannot  be received within the specified timeout, ETIMEDOUT error
	 is returned. Negative value means infinite timeout. The type of the op-
	 tion 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  ran-
	 domised  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 recon-
	 nect  interval  is  based  only  on  NN_RECONNECT_IVL.   If   NN_RECON-
	 NECT_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. How-
	 ever, if the socket type sends each message to a single peer (or a lim-
	 ited 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 pri-
	 ority 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 plat-
	 forms 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  re-
	 ceived  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-com-
	 plaint  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)

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

home | help