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

FreeBSD Manual Pages

  
 
  

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

NAME
       nn_cmsg - access	control	information

SYNOPSIS
       #include	<nanomsg/nn.h>

       struct nn_cmsghdr *NN_CMSG_FIRSTHDR(struct nn_msghdr *hdr);

       struct nn_cmsghdr *NN_CMSG_NXTHDR(struct	nn_msghdr *hdr,	struct
       nn_cmsghdr *cmsg);

       unsigned	char *NN_CMSG_DATA(struct nn_cmsghdr *cmsg);

       size_t NN_CMSG_SPACE(size_t len);

       size_t NN_CMSG_LEN(size_t len);

DESCRIPTION
       These functions can be used to iterate over ancillary data attached to
       a message.

       Structure nn_cmsghdr represents a single	ancillary property and
       contains	following members:

	   size_t cmsg_len;
	   int cmsg_level;
	   int cmsg_type;

       cmsg_len	is the size of the property data, including the	preceding
       nn_cmsghdr structure. cmsg_level	is the level of	the property; same
       values can be used as with nn_getsockopt(3) and nn_setsockopt(3).
       cmsg_type is the	name of	the property. These names are specific for
       each level.

       NN_CMSG_FIRSTHDR	returns	a pointer to the first nn_cmsghdr in the
       control buffer in the supplied nn_msghdr	structure.

       NN_CMSG_NXTHDR returns the next nn_cmsghdr after	the supplied
       nn_cmsghdr. Returns NULL	if there isn't enough space in the buffer.

       NN_CMSG_DATA returns a pointer to the data associated with supplied
       nn_cmsghdr.

       NN_CMSG_SPACE returns the number	of bytes occupied by nn_cmsghdr	with
       payload of the specified	length.

       NN_CMSG_LEN returns the value to	store in the cmsg_len member of	the
       cmsghdr structure, taking into account any  necessary  alignment.

EXAMPLE
       Iterating over ancillary	properties:

	   struct nn_cmsghdr *hdr = NN_CMSG_FIRSTHDR (&msg);
	   while (hdr != NULL) {
	       size_t len = hdr->cmsg_len - sizeof (nn_cmsghdr);
	       printf ("level: %d property: %d length: %dB data: ",
		   (int) hdr->cmsg_level,
		   (int) hdr->cmsg_type,
		   (int) len);
	       unsigned	char *data = NN_CMSG_DATA(hdr);
	       while (len) {
		   printf ("%02X", *data);
		   ++data;
		   --len;
	       }
	       printf ("\n");
	       hdr = NN_CMSG_NXTHDR (&msg, hdr);
	   }

SEE ALSO
       nn_sendmsg(3) nn_recvmsg(3) nn_getsockopt(3) nn_setsockopt(3)
       nanomsg(7)

AUTHORS
       Martin Sustrik <sustrik@250bpm.com>

				  2018-10-15			    NN_CMSG(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | SEE ALSO | AUTHORS

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

home | help