summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2010-10-28 17:04:16 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2010-11-09 00:42:27 +0100
commita729bb44a14f78f12edb09ae76ce04dbc171c266 (patch)
treec7b07c251c5c6579b9ee755cdf2851a90a1c5148
parent58145ed8a0c6fc94ed42a1542a466e8d8ebc2afd (diff)
expect: export already implement low-level functions
This patch exports several low-level function that allow to build and parse netlink messages that contain ctnetlink expectation information. They have been in the tree for quite so long, but they were not exported. To leave the library in a consistent state (ctnetlink conntrack functions provide the similar functionality) I have decided to export them. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--include/libnetfilter_conntrack/libnetfilter_conntrack.h18
-rw-r--r--src/expect/api.c28
2 files changed, 32 insertions, 14 deletions
diff --git a/include/libnetfilter_conntrack/libnetfilter_conntrack.h b/include/libnetfilter_conntrack/libnetfilter_conntrack.h
index 029eebd..5315f42 100644
--- a/include/libnetfilter_conntrack/libnetfilter_conntrack.h
+++ b/include/libnetfilter_conntrack/libnetfilter_conntrack.h
@@ -588,6 +588,24 @@ extern int nfexp_snprintf(char *buf,
extern int nfexp_catch(struct nfct_handle *h);
+/* low level API */
+extern int nfexp_build_expect(struct nfnl_subsys_handle *ssh,
+ void *req,
+ size_t size,
+ u_int16_t type,
+ u_int16_t flags,
+ const struct nf_expect *exp);
+
+extern int nfexp_parse_expect(enum nf_conntrack_msg_type type,
+ const struct nlmsghdr *nlh,
+ struct nf_expect *exp);
+
+extern int nfexp_build_query(struct nfnl_subsys_handle *ssh,
+ const enum nf_conntrack_query qt,
+ const void *data,
+ void *buffer,
+ unsigned int size);
+
/* Bitset representing status of connection. Taken from ip_conntrack.h
*
* Note: For backward compatibility this shouldn't ever change
diff --git a/src/expect/api.c b/src/expect/api.c
index 35c8672..35aaac9 100644
--- a/src/expect/api.c
+++ b/src/expect/api.c
@@ -465,12 +465,12 @@ int nfexp_attr_unset(struct nf_expect *exp,
* On error, -1 is returned and errno is appropiately set.
* On success, 0 is returned.
*/
-static int nfexp_build_expect(struct nfnl_subsys_handle *ssh,
- void *req,
- size_t size,
- u_int16_t type,
- u_int16_t flags,
- const struct nf_expect *exp)
+int nfexp_build_expect(struct nfnl_subsys_handle *ssh,
+ void *req,
+ size_t size,
+ u_int16_t type,
+ u_int16_t flags,
+ const struct nf_expect *exp)
{
assert(ssh != NULL);
assert(req != NULL);
@@ -509,11 +509,11 @@ static int nfexp_build_expect(struct nfnl_subsys_handle *ssh,
* On success, 0 is returned. On error, -1 is returned and errno is set
* appropiately.
*/
-static int nfexp_build_query(struct nfnl_subsys_handle *ssh,
- const enum nf_conntrack_query qt,
- const void *data,
- void *buffer,
- unsigned int size)
+int nfexp_build_query(struct nfnl_subsys_handle *ssh,
+ const enum nf_conntrack_query qt,
+ const void *data,
+ void *buffer,
+ unsigned int size)
{
struct nfnlhdr *req = buffer;
const u_int8_t *family = data;
@@ -571,9 +571,9 @@ static int nfexp_build_query(struct nfnl_subsys_handle *ssh,
* the message received is not of the requested type then 0 is returned,
* otherwise this function returns the message type parsed.
*/
-static int nfexp_parse_expect(enum nf_conntrack_msg_type type,
- const struct nlmsghdr *nlh,
- struct nf_expect *exp)
+int nfexp_parse_expect(enum nf_conntrack_msg_type type,
+ const struct nlmsghdr *nlh,
+ struct nf_expect *exp)
{
unsigned int flags;
int len = nlh->nlmsg_len;