- 论坛徽章:
- 2
|
看看
- static inline struct nf_conn *
- resolve_normal_ct(struct net *net,
- struct sk_buff *skb,
- unsigned int dataoff,
- u_int16_t l3num,
- u_int8_t protonum,
- struct nf_conntrack_l3proto *l3proto,
- struct nf_conntrack_l4proto *l4proto,
- int *set_reply,
- enum ip_conntrack_info *ctinfo)
- {
- struct nf_conntrack_tuple tuple;
- struct nf_conntrack_tuple_hash *h;
- struct nf_conn *ct;
- if (!nf_ct_get_tuple(skb, skb_network_offset(skb),
- dataoff, l3num, protonum, &tuple, l3proto,
- l4proto)) {
- pr_debug("resolve_normal_ct: Can't get tuple\n");
- return NULL;
- }
- /* look for tuple match */
- h = nf_conntrack_find_get(net, &tuple);
- if (!h) {
- h = init_conntrack(net, &tuple, l3proto, l4proto, skb, dataoff);
- if (!h)
- return NULL;
- if (IS_ERR(h))
- return (void *)h;
- }
- ct = nf_ct_tuplehash_to_ctrack(h);
复制代码 |
|