inet6_opt_finish man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

INET6_OPT(3SOCKET)					    INET6_OPT(3SOCKET)

NAME
       inet6_opt,    inet6_opt_init,	inet6_opt_append,    inet6_opt_finish,
       inet6_opt_set_val, inet6_opt_next, inet6_opt_find, inet6_opt_get_val  -
       Option manipulation mechanism

SYNOPSIS
       cc [ flag ... ] file ... -lsocket [library...]
       #include <netinet/in.h>

       int inet6_opt_init(void *extbuf, socklen_t extlen);

       int inet6_opt_append(void *extbuf, socklen_t extlen,
	    int offset, uint8_t type, socklen_t len, uint_t align,
	    void **databufp);

       int inet6_opt_finish(void *extbuf, socklen_t extlen,
	    int offset);

       int inet6_opt_set_val(void *databuf, int offset,
	    void *val, socklen_t vallen);

       int inet6_opt_next(void *extbuf, socklen_t extlen,
	    int offset, uint8_t *typep, socklen_t *lenp,
	    void **databufp);

       int inet6_opt_find(void *extbuf, socklen_t extlen, int offset,
	    uint8_t type, socklen_t *lenp, void **databufp);

       intinet6_opt_get_val(void *databuf, int offset,
	    void *val, socklen_t *vallen);

DESCRIPTION
       The inet6_opt functions enable users to manipulate options without hav‐
       ing to know the structure of the option header.

       The inet6_opt_init() function returns the number of  bytes  needed  for
       the  empty extension header, that is, without any options. If extbuf is
       not NULL, it also initializes  the  extension  header  to  the  correct
       length  field.  If the extlen value is not a positive non-zero multiple
       of 8, the function fails and returns -1.

       The inet6_opt_append() function returns the updated total length	 while
       adding  an option with length len and alignment align. If extbuf is not
       NULL, then, in addition to returning the length, the  function  inserts
       any  needed  Pad	 option,  initializes  the option setting the type and
       length fields, and returns a pointer to the  location  for  the	option
       content in databufp. If the option does not fit in the extension header
       buffer, the function returns -1. The type is the 8-bit option type. The
       len  is	the  length  of the option data, excluding the option type and
       option length fields. Once inet6_opt_append() is called,	 the  applica‐
       tion  can  use the databuf directly, or inet6_opt_set_val() can be used
       to specify the content of the option. The option type must have a value
       from  2 to 255, inclusive. The values 0 and 1 are reserved for the Pad1
       and PadN options, respectively. The option  data	 length	 must  have  a
       value  between 0 and 255, inclusive, and it is the length of the option
       data that follows. The align parameter must have a value of 1, 2, 4, or
       8. The align value cannot exceed the value of len.

       The  inet6_opt_finish()	function  returns the updated total length the
       takes into account the final padding of the extension header to make it
       a  multiple  of	8 bytes. If extbuf is not NULL, the function also ini‐
       tializes the option by inserting a Pad1 or PadN option  of  the	proper
       length.	If the necessary pad does not fit in the extension header buf‐
       fer, the function returns -1.

       The inet6_opt_set_val() function inserts data items of various sizes in
       the  data  portion of the option. The val parameter should point to the
       data to be inserted. The offset	specifies  the	data  portion  of  the
       option  in which the value should be inserted. The first byte after the
       option type and length is accessed by specifying an offset of zero.

       The inet6_opt_next() function  parses  the  received  option  extension
       headers	which return the next option. The extbuf and extlen parameters
       specify the extension header. The offset should be zero for  the	 first
       option	or   the   length  returned  by	 a  previous  call  to	either
       inet6_opt_next() or inet6_opt_find(). The  offset  specifies  where  to
       continue	 scanning  the	extension  buffer.  The	 subsequent  option is
       returned by updating typep, lenp,  and  databufp.  The  typep  argument
       stores  the  option  type.  The	lenp argument stores the length of the
       option data, excluding the option type and option length	 fields.   The
       databufp argument points to the data field of the option.

       The  inet6_opt_find() function is similar to the inet6_opt_next() func‐
       tion. Unlike inet6_opt_next(), the  inet6_opt_find()  function  enables
       the  caller  to specify the option type to be searched for, rather than
       returning the next option in the extension header.

       The inet6_opt_get_val() function extracts data items of	various	 sizes
       in the portion of the option. The val argument should point to the des‐
       tination for the extracted data. The offset specifies at which point in
       the option's data portion the value should be extracted. The first byte
       following the option type and length is accessed by specifying an  off‐
       set of zero.

RETURN VALUES
       The  inet6_opt_init()  function	returns the number of bytes needed for
       the empty extension header. If the extlen value is not a positive  non-
       zero multiple of 8, the function fails and returns -1.

       The inet6_opt_append() function returns the updated total length.

       The inet6_opt_finish() function returns the updated total length.

       The  inet6_opt_set_val() function returns the offset for the subsequent
       field.

       The inet6_opt_next() function returns  the  updated  "previous"	length
       computed by advancing past the option that was returned. When there are
       no additional options or if the option extension header	is  malformed,
       the return value is -1.

       The  inet6_opt_find()  function	returns	 the  updated "previous" total
       length. If an option of the specified type is not located,  the	return
       value  is  -1.  If the option extension header is malformed, the return
       value is -1.

       The inet6_opt_get_val() function returns the offset for the next	 field
       (that  is,  offset  +  vallen) which can be used when extracting option
       content with multiple fields.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │Interface Stability │ Standard	      │
       ├────────────────────┼─────────────────┤
       │MT-Level	    │ Safe	      │
       └────────────────────┴─────────────────┘

SEE ALSO
       RFC 3542 - Advanced Sockets Application Programming Interface (API) for
       IPv6, The Internet Society. May 2003

				 Feb 15, 2007		    INET6_OPT(3SOCKET)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net