inet6_option_find()

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

Прототип:

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

Аргументы:

cmsg
Указатель на структуру cmsghdr, которая была проинициализирована посредством inet6_option_init().
type
Тип параметра, который необходимо искать. Либо IPV6_HOPOPTS либо IPV6_DSTOPTS. Тип хранится в поле cmsg_type структуры cmsghdr, на которую указывает *cmsgp.
tptrp
Указатель на указатель на байт.

Библиотека:

libsocket

Описание:

Функция inet6_option_find() аналогична функции inet6_option_next(). Однако она позволяет вызывающей стороне указать тип параметра для поиска вместо того, чтобы всегда возвращать следующий параметр в объекте вспомогательных данных. cmsg - это указатель на структуру cmsghdr, в которой cmsg_level равно IPPROTO_IPV6, а cmsg_type равно либо IPV6_HOPOPTS, либо IPV6_DSTOPTS.

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

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

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

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

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

RFC 2292

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

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

inet6_option_alloc(), inet6_option_append(), inet6_option_init(), inet6_option_next(), inet6_option_space()

Основано на:




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