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 选项, 初始化选项 (设置 type 和 length 字段) ,并返回指向 databufp中选项内容的位置的指针。 |
| 扩展 | extbuf指向的缓冲区大小。 |
| 偏移量 | inet6_opt_init() 或先前 inet6_opt_append()返回的长度。 |
| TYPE | 8 位选项类型。 必须具有从 2 到 255 (含) 的值。 (0 和 1 分别为 Pad1 和 PadN 选项保留。) |
| len | 选项数据的长度 (不包括选项类型和选项长度字段)。 必须是 0 到 255 (含) 之间的值,并且是后面的选项数据的长度。 |
| 对齐 | 选项数据的对齐。 必须是值 1 , 2 , 4 或 8。 align 值不能超过 len的值。 |
| 数据缓冲 | 指定选项的内容。 |
返回值
| 项 | 描述 |
|---|---|
| -1 | 选项内容不适合扩展头缓冲区。 |
| 整数值 | 已更新扩展头的总长度。 |