ipq_set_verdict(3)
IPQ_SET_VERDICT(3) 2001-10-16
NAME
ipq_set_verdict —— 下达判决,可选地修改给内核的数据包
SYNOPSIS
#include <linux/netfilter.h>
#include <libipq.h>
int ipq_set_verdict(const struct ipq_handle *h, ipq_id_t id, unsigned int verdict, size_t data_len, unsigned char *buf);
DESCRIPTION
函数ipq_set_verdict对之前调用ipq_read获取的数据包下达一个判决,指定如何处理该数据包,可选的,还可以提供一个负载数据被修改过的版本。
参数h是之前调用ipq_create_handle成功返回的上下文句柄。
参数id是通过ipq_get_packet获取的数据包标识符。
参数verdict必须是下列之一:
NF_ACCEPT
接受该数据包并在内核中继续处理。
NF_DROP
丢弃该数据包。
NF_QUEUE
将该数据包重新入队。
NF_STOLEN和NF_REPEAT是内核内部常理,不应该在用户空间使用,尚未探究其效用。
参数data_len说明buf指向的数据的长度,可选的负载数据的替补。
如果只是简单地设置一个判决而不修改负载数据,将data_len和buf分别赋值为0与NULL。
当修改了数据包时,重新计算任何数据包的校验和是用户的责任。
RETURN VALUE
失败时返回-1。
成功时返回非0的正数。
ERRORS
错误时,可以通过ipq_errstr获取一个错误描述。
BUGS
None known.
AUTHOR
James Morris <jmorris@intercode.com.au>
COPYRIGHT
Copyright (c) 2000-2001 Netfilter Core Team.
Distributed under the GNU General Public License.
SEE ALSO
iptables(8), libipq(3).