ipt_mark.c

来自「这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自」· C语言 代码 · 共 42 行

C
42
字号
/* This is a module which is used for setting the NFMARK field of an skb. */#include <linux/module.h>#include <linux/skbuff.h>#include <linux/ip.h>#include <net/checksum.h>#include <linux/netfilter_ipv4/ip_tables.h>#include <linux/netfilter_ipv4/ipt_MARK.h>static unsigned inttarget(struct sk_buff **pskb,       unsigned int hooknum,       const struct net_device *in,       const struct net_device *out,       const void *targinfo,       void *userinfo){	const struct ipt_mark_target_info *markinfo = targinfo;	if((*pskb)->nfmark != markinfo->mark) {		(*pskb)->nfmark = markinfo->mark;		(*pskb)->nfcache |= NFC_ALTERED;	}	return IPT_CONTINUE;}static intcheckentry(const char *tablename,	   const struct ipt_entry *e,           void *targinfo,           unsigned int targinfosize,           unsigned int hook_mask){	if (targinfosize != IPT_ALIGN(sizeof(struct ipt_mark_target_info))) {		printk(KERN_WARNING "MARK: targinfosize %u != %Zu\n",		       targinfosize,		       IPT_ALIGN(sizeof(struct ipt_mark_target_info)));		return 0;	}	if (strcmp(tablename, "mangle") != 0) {		

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?