summaryrefslogtreecommitdiffstats
path: root/src/conntrack/copy.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2011-02-17 18:33:22 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2011-02-17 18:33:22 +0100
commit9f53603a10aa738d6f5a41a061bc3e1182c42d0c (patch)
tree0940d6bb8d5d203052496c484b92b883be72ee17 /src/conntrack/copy.c
parent3e6806e7690d0ed79d9aed82dc44d1eaa676d3e8 (diff)
conntrack: add NFCT_CP_OVERRIDE flag for nfct_copy()
Thus, we have a fast version of nfct_copy() which allows to copy the destination to the origin. After this call, the destination is a clone of the origin. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/conntrack/copy.c')
-rw-r--r--src/conntrack/copy.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/conntrack/copy.c b/src/conntrack/copy.c
index 94d0711..c3a4fcc 100644
--- a/src/conntrack/copy.c
+++ b/src/conntrack/copy.c
@@ -505,3 +505,11 @@ const copy_attr copy_attr_array[ATTR_MAX] = {
[ATTR_TIMESTAMP_START] = copy_attr_timestamp_start,
[ATTR_TIMESTAMP_STOP] = copy_attr_timestamp_stop,
};
+
+/* this is used by nfct_copy() with the NFCT_CP_OVERRIDE flag set. */
+void __copy_fast(struct nf_conntrack *ct1, const struct nf_conntrack *ct2)
+{
+ memcpy(ct1, ct2, sizeof(*ct1));
+ /* special case: secctx attribute is allocated dinamically. */
+ copy_attr_secctx(ct1, ct2);
+}