Determine the space required by an IPv6 routing header
#include <netinet/in.h> size_t inet6_rthdr_space(int type, int segments);
libsocket
Use the -l socket option to qcc to link against this library.
This function returns the number of bytes required to hold a Routing header of the specified type containing a specified number of segments (addresses). For an IPv6 Type 0 Routing header, the number of segments must be between 1 and 23, inclusive. The return value includes the size of the cmsghdr structure that precedes the Routing header, and any required padding.
This function returns the size but doesn't allocate the space required for the ancillary data. This allows an application to allocate a larger buffer, if other ancillary data objects are desired. All the ancillary data objects must be specified to sendmsg() as a single msg_control buffer in the msghdr structure msg_control member. |
0, for either of the two situations: the type of the routing header isn't supported by this implementation or the number of segments is invalid for this type of routing header.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
inet6_rthdr_add() inet6_rthdr_getaddr(), inet6_rthdr_getflags(), inet6_rthdr_init(), inet6_rthdr_lasthop(), inet6_rthdr_reverse(), inet6_rthdr_segments(), inet6_rthdr_space()
Based on: