inet6_option_next()

Искать следующий пошаговый (hop-by-hop) параметр или параметр назначения IPv6

Прототип:

#include <netinet/in.h>
int inet6_option_next( const struct cmsghdr *cmsg,
u_int8_t **tptrp );

Аргументы:

cmsg
Указатель на структуру cmsghdr, которая должна была быть проинициализирована inet6_option_init().
tptrp
Указатель на указатель на байт.

Библиотека:

libsocket

Описание:

Функция inet6_option_next() находит следующий параметр hop-by-hop или параметр назначения в объекте вспомогательных данных. Если еще предстоит обработать другую опцию, возвращаемое значение функции - 0, а *tptrp указывает на 8-битное поле типа параметра.

Переменная cmsg указывает на структуру cmsghdr, для которой cmsg_level равен IPPROTO_IPV6 и cmsg_type равен либо IPV6_HOPOPTS либо IPV6_DSTOPTS.

tptrp - это указатель на указатель на байт, а *tptrp используется функцией для запоминания своей позиции в объекте вспомогательных данных при каждом вызове функции. При первом вызове данной функции для данного объекта вспомогательных данных необходимо установить *tptrp в NULL.

Каждый раз, когда функция завершается успешно, *tptrp указывает на 8-битное поле типа параметра для последующего параметра, который будет обработан.

Возвращаемое значение:

0
Параметр найден (*tptrp указывает на8-битное поле параметра).
-1
Нет параметров для обработки (*tptrp указывает на NULL).
-1
Возникла ошибка (*tptrp указывает на не-NULL).

Классификация:

RFC 2292

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

inet6_option_alloc(), inet6_option_append(), inet6_option_find(), inet6_option_init(), inet6_option_space()

Основано на:




Предыдущий раздел: Описание API сетевой библиотеки