inet6_rthdr_space()

Определить пространство, необходимое для заголовка маршрутизации IPv6

Прототип:

#include <netinet/in.h>
size_t inet6_rthdr_space( int type,
int segments );

Аргументы:

type
Тип заголовка маршрутизации IPv6 (например, Type 0 определенный в <netinet/in.h>).
segments
Количество сегментов (адресов) в заголовке маршрутизации.

Библиотека:

libsocket

Описание:

Данная функция возвращает количество байтов, необходимых для хранения заголовка маршрутизации указанного типа, содержащего указанное количество сегментов (адресов). Для заголовка маршрутизации IPv6 Type 0 количество сегментов должно быть от 1 до 23 включительно. Возвращаемое значение включает размер структуры cmsghdr, которая предшествует заголовку маршрутизации, а также выравнивание.


Note: Данная функция возвращает размер, но не выделяет память под вспомогательные данные. Это позволяет приложению выделять буфер большего размера, если требуются другие объекты вспомогательных данных. Все объекты вспомогательных данных должны быть указаны для 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 сетевой библиотеки