summaryrefslogtreecommitdiffstats
path: root/include/net/netfilter/nf_conntrack_timeout.h
diff options
context:
space:
mode:
authorPablo Neira Ayuso2012-08-28 02:53:15 +0200
committerPablo Neira Ayuso2012-09-03 13:33:03 +0200
commit84b5ee939eba0115739c19c0e01ea903b029c9da (patch)
tree5eeab865d1af6d79f5de6ecb6a86cfc449c2c67a /include/net/netfilter/nf_conntrack_timeout.h
parentnetfilter: xt_CT: refactorize xt_ct_tg_check (diff)
downloadkernel-qcow2-linux-84b5ee939eba0115739c19c0e01ea903b029c9da.tar.gz
kernel-qcow2-linux-84b5ee939eba0115739c19c0e01ea903b029c9da.tar.xz
kernel-qcow2-linux-84b5ee939eba0115739c19c0e01ea903b029c9da.zip
netfilter: nf_conntrack: add nf_ct_timeout_lookup
This patch adds the new nf_ct_timeout_lookup function to encapsulate the timeout policy attachment that is called in the nf_conntrack_in path. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/net/netfilter/nf_conntrack_timeout.h')
-rw-r--r--include/net/netfilter/nf_conntrack_timeout.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/net/netfilter/nf_conntrack_timeout.h b/include/net/netfilter/nf_conntrack_timeout.h
index 34ec89f8dbf9..e41e472d08f2 100644
--- a/include/net/netfilter/nf_conntrack_timeout.h
+++ b/include/net/netfilter/nf_conntrack_timeout.h
@@ -55,6 +55,26 @@ struct nf_conn_timeout *nf_ct_timeout_ext_add(struct nf_conn *ct,
#endif
};
+static inline unsigned int *
+nf_ct_timeout_lookup(struct net *net, struct nf_conn *ct,
+ struct nf_conntrack_l4proto *l4proto)
+{
+#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
+ struct nf_conn_timeout *timeout_ext;
+ unsigned int *timeouts;
+
+ timeout_ext = nf_ct_timeout_find(ct);
+ if (timeout_ext)
+ timeouts = NF_CT_TIMEOUT_EXT_DATA(timeout_ext);
+ else
+ timeouts = l4proto->get_timeouts(net);
+
+ return timeouts;
+#else
+ return l4proto->get_timeouts(net);
+#endif
+}
+
#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
extern int nf_conntrack_timeout_init(struct net *net);
extern void nf_conntrack_timeout_fini(struct net *net);