inet6_option_next()
Find the next IPv6 hop-by-hop or destination option
Synopsis:
#include <netinet/in.h> int inet6_option_next(const struct cmsghdr *cmsg, u_int8_t **tptrp);
Arguments:
- cmsg
- A pointer to the cmsghdr structure that must have been initialized by inet6_option_init().
- tptrp
- A pointer to a pointer to an 8-bit byte.
Library:
libsocket
Use the -l socket option to qcc to link against this library.
Description:
This inet6_option_next() function finds the next hop-by-hop option or destination option in an ancillary data object. If another option remains to be processed, the return value of the function is 0 and *tptrp points to the 8-bit option type field the option data.
The cmsg variable is a pointer to cmsghdr structure for which cmsg_level equals IPPROTO_IPV6 and cmsg_type equals either IPV6_HOPOPTS or IPV6_DSTOPTS.
The tptrp is a pointer to a pointer to an 8-bit byte and *tptrp is used by the function to remember its place in the ancillary data object each time the function is called. The first time you call this function for a given ancillary data object, you must set *tptrp to NULL.
Each time this function returns success, *tptrp points to the 8-bit option type field for the next option to be processed.
Based on:
- W. Stevens and M. Thomas, Advanced Sockets API for IPv6, RFC 2292, February 1998. Contains examples.
- S. Deering and R. Hinden, Internet Protocol, Version 6 (IPv6) Specification, RFC 2460, December 1998.
Returns:
- 0
- The option is located and the *tptrp points to the 8-bit option type field.
- -1 with *tptrp pointing to NULL
- No more options to process.
- -1 with *tptrp pointing to non-NULL
- An error has occurred.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |