inet6_opt_append 子例程

用途

返回扩展头的更新总长度。

语法

int inet6_opt_append(void *extbuf, socklen_t extlen, int offset,
                           uint8_t type, socklen_t len, uint_t align,
                           void **databufp);

描述

inet6_opt_append 子例程返回扩展头的更新总长度,同时考虑添加长度为 len 且对齐 align的选项。 如果 extbuf 不为 NULL ,那么除了返回长度之外,子例程还会插入任何需要的 pad 选项,初始化选项 (设置类型和长度字段) ,并返回指向 databufp中选项内容的位置的指针。 调用 inet6_opt_append() 后,应用程序可以直接使用 databuf , 或使用 inet6_opt_set_val() 来指定选项的内容。

参数

描述
扩展缓冲区 如果为 NULL ,那么 inet6_opt_append 将仅返回更新的长度。 如果 extbuf 不为 NULL ,那么除了返回长度外,该函数还会插入任何需要的 pad 选项, 初始化选项 (设置 typelength 字段) ,并返回指向 databufp中选项内容的位置的指针。
扩展 extbuf指向的缓冲区大小。
偏移量 inet6_opt_init() 或先前 inet6_opt_append()返回的长度。
TYPE 8 位选项类型。 必须具有从 2 到 255 (含) 的值。 (0 和 1 分别为 Pad1PadN 选项保留。)
len 选项数据的长度 (不包括选项类型和选项长度字段)。 必须是 0 到 255 (含) 之间的值,并且是后面的选项数据的长度。
对齐 选项数据的对齐。 必须是值 1 , 2 , 4 或 8。 align 值不能超过 len的值。
数据缓冲 指定选项的内容。

返回值

描述
-1 选项内容不适合扩展头缓冲区。
整数值 已更新扩展头的总长度。