IPQ_SET_VERDICT(3) 2001-10-16
NAME
ipq_set_verdict —— 下达判决,可选地修改给内核的数据包SYNOPSIS
#include#include 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).