设为首页 加入收藏

TOP

如何扩展Linux的ip_conntrack(二)
2014-11-23 23:41:53 来源: 作者: 【 】 浏览:20
Tags:如何 扩展 Linux ip_conntrack
_conntrack_info ctinfo;
struct nf_conn_counter *acct;
struct nf_info *info;
unsigned char *cn = NULL;
ct = nf_ct_get(skb, &ctinfo);
if (!ct || ct == &nf_conntrack_untracked)
return NF_ACCEPT;


acct = nf_conn_acct_find(ct);
if (acct) {
info = (struct nf_info *)acct;
info->info = (unsigned char*) kzalloc(32, GFP_ATOMIC);
if (!info->info) {
return NF_ACCEPT;
}
// 测试将1234567890作为字符串设置到conntrack
memcpy(info->info, "1234567890", min(32, strlen("1234567890")));
}
}
return NF_ACCEPT;
}


static struct nf_hook_ops ipv4_conn_info __read_mostly = {
.hook = ipv4_conntrack_info,
.owner = THIS_MODULE,
.pf = NFPROTO_IPV4,
.hooknum = NF_INET_LOCAL_OUT,
.priority = NF_IP_PRI_CONNTRACK + 1,
};


static int __init test_info_init(void)
{
int err;
err = nf_register_hook(&ipv4_conn_info);
if (err) {
return err;
}
return err;
}


static void __exit test_info_exit(void)
{
nf_unregister_hook(&ipv4_conn_info);
}


module_init(test_info_init);
module_exit(test_info_exit);


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇printf的归宿-数据打印到哪儿了 下一篇ip_conntrack的extend机制以及扩展

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: