重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
为伽师等地区用户提供了全套网页设计制作服务,及伽师网站建设行业解决方案。主营业务为网站设计、成都做网站、伽师网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
typedef unsigned int nf_hookfn(unsigned int hooknum,
struct sk_buff *skb,
const struct net_device *in,
const struct net_device *out,
int (*okfn) (struct sk_buff *));
/* 处理函数返回值 */
#define NF_DROP 0 /* drop the packet, don't continue traversal */
#define NF_ACCEPT 1 /* continue traversal as normal */
#define NF_STOLEN 2 /* I've taken over the packet, don't continue traversal */
#define NF_QUEUE 3 /* queue the packet (usually for userspace handling) */
#define NF_REPEAT 4 /* call this hook again */
#define NF_STOP 5
#define NF_MAX_VERDICT NF_STOP
在使用Netfilter时,需要定义一个nf_hook_ops实例。
struct nf_hook_ops {
struct list_head list;
/* User fills in from here down. */
nf_hookfn *hook; /* 要注册的钩子函数 */
struct module *owner;
u_int8_t pf; /* 协议类型 */
unsigned int hooknum; /* 哪个钓鱼台 */
/* Hooks are ordered in asending priority. */
int priority; /* 数值越小,优先级越高 */
};
typedef __u8 u_int8_t;