huyc

导航

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).



posted on 2011-11-03 20:23  huyc  阅读(875)  评论(0编辑  收藏  举报