Comtrol eCos User Manual

Page 540

Advertising
background image

Chapter 38. TCP/IP Library Reference

inet6_option_next

This function processes 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 (which is followed by the 8-bit option data length,

followed by the option data).

If no more options remain to be processed,

the return value is -1 and *tptrp is NULL.

If an error occurs, the

return value is -1 and *tptrp is not NULL.

cmsg is a pointer to cmsghdr structure of which cmsg_level equals

IPPROTO_IPV6 and cmsg_type equals either IPV6_HOPOPTS or IPV6_DSTOPTS.

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 this function is called for a

given ancillary data object, *tptrp must be set to NULL.

Each time this function returns success, *tptrp points to the 8-bit

option type field for the next option to be processed.

inet6_option_find

This function is similar to the previously described inet6_option_next()

function, except this function lets the caller specify the option type to

be searched for, instead of always returning the next option in the

ancillary data object.

cmsg is a pointer to cmsghdr structure of which

cmsg_level equals IPPROTO_IPV6 and cmsg_type equals either IPV6_HOPOPTS

or IPV6_DSTOPTS.

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 this function is called for a

given ancillary data object, *tptrp must be set to NULL.

~ This function

starts searching for an option of the specified type beginning after the

value of *tptrp.

If an option of the specified type is located, this

function returns 0 and *tptrp points to the 8- bit option type field for

the option of the specified type.

If an option of the specified type is

not located, the return value is -1 and *tptrp is NULL.

If an error

occurs, the return value is -1 and *tptrp is not NULL.

DIAGNOSTICS

inet6_option_init() and inet6_option_append() return 0 on success or -1

on an error.

inet6_option_alloc() returns NULL on an error.

On errors, inet6_option_next() and inet6_option_find() return -1 setting

*tptrp to non NULL value.

EXAMPLES

RFC2292 gives comprehensive examples in chapter 6.

SEE ALSO

W. Stevens and M. Thomas, Advanced Sockets API for IPv6, RFC2292,

February 1998.

436

Advertising