summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/internal.h2
-rw-r--r--include/libnetfilter_conntrack/libnetfilter_conntrack.h8
2 files changed, 9 insertions, 1 deletions
diff --git a/include/internal.h b/include/internal.h
index 9c3b64b..ae1bd9d 100644
--- a/include/internal.h
+++ b/include/internal.h
@@ -35,9 +35,11 @@ struct nfct_handle;
typedef void (*set_attr)(struct nf_conntrack *ct, const void *value);
typedef const void *(*get_attr)(const struct nf_conntrack *ct);
+typedef void (*copy_attr)(struct nf_conntrack *d, const struct nf_conntrack *o);
extern set_attr set_attr_array[];
extern get_attr get_attr_array[];
+extern copy_attr copy_attr_array[];
typedef int (*nfct_handler)(struct nfct_handle *cth, struct nlmsghdr *nlh,
void *arg);
diff --git a/include/libnetfilter_conntrack/libnetfilter_conntrack.h b/include/libnetfilter_conntrack/libnetfilter_conntrack.h
index 8d146c4..075ac3a 100644
--- a/include/libnetfilter_conntrack/libnetfilter_conntrack.h
+++ b/include/libnetfilter_conntrack/libnetfilter_conntrack.h
@@ -307,14 +307,20 @@ extern int nfct_catch(struct nfct_handle *h);
/* copy */
enum {
+ NFCT_CP_ALL = 0,
NFCT_CP_ORIG = (1 << 0),
- NFCT_CP_REPL = (1 << 1)
+ NFCT_CP_REPL = (1 << 1),
+ NFCT_CP_META = (1 << 2),
};
extern void nfct_copy(struct nf_conntrack *dest,
const struct nf_conntrack *source,
unsigned int flags);
+extern void nfct_copy_attr(struct nf_conntrack *ct1,
+ const struct nf_conntrack *ct2,
+ const enum nf_conntrack_attr type);
+
/* low level API: netlink functions */
extern int nfct_build_conntrack(struct nfnl_subsys_handle *ssh,