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_cms-
     ghdr 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_cms-
     ghdr.

     NN_CMSG_SPACE returns the number of bytes occupied by nn_cmsghdr with  pay-
     load of the specified length.

     NN_CMSG_LEN  returns  the value to store in the cmsg_len member of the cms-
     ghdr 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)

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

home | help