Определить пространство, необходимое для заголовка маршрутизации IPv6
#include <netinet/in.h>size_t inet6_rthdr_space( int type,int segments );
0
определенный в <netinet/in.h>
).libsocket
Данная функция возвращает количество байт, необходимых для хранения заголовка маршрутизации указанного типа, содержащего указанное количество сегментов (адресов). Для заголовка маршрутизации IPv6 Type 0 количество сегментов должно быть от 1
до 23
включительно. Возвращаемое значение включает размер структуры cmsghdr, которая предшествует заголовку маршрутизации, а также выравнивание.
Данная функция возвращает размер, но не выделяет память под вспомогательные данные. Это позволяет приложению выделять буфер большего размера, если требуются другие объекты вспомогательных данных. Все объекты вспомогательных данных должны быть указаны для sendmsg() как отдельный буфер msg_control в поле msg_control структуры msghdr . |
0
в двух случаях: тип заголовка маршрутизации не поддерживается текущей реализацией или количество сегментов недопустимо для указанного типа заголовка маршрутизации.
RFC 2292
inet6_rthdr_add() inet6_rthdr_getaddr(), inet6_rthdr_getflags(), inet6_rthdr_init(), inet6_rthdr_lasthop(), inet6_rthdr_reverse(), inet6_rthdr_segments(), inet6_rthdr_space()
Основано на:
Предыдущий раздел: Описание API сетевой библиотеки