diff options
author | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org> | 2006-12-19 17:41:53 +0000 |
---|---|---|
committer | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org> | 2006-12-19 17:41:53 +0000 |
commit | b4c3a23c884c24f4e5d941fb928cf49561a9cdf9 (patch) | |
tree | 1b171cb10c87258f590650761f020cbcb77ebc97 /src/conntrack/snprintf.c | |
parent | 9cd6994c1d784e55fb009d6ab0ddc5832158a77d (diff) |
Introduce the new libnetfilter_conntrack API, features:
- object oriented infrastructure
- extensible and configurable output (XML)
- low level functions to interact with netlink details
- fairly documented
Still backward compatible.
Diffstat (limited to 'src/conntrack/snprintf.c')
-rw-r--r-- | src/conntrack/snprintf.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/conntrack/snprintf.c b/src/conntrack/snprintf.c new file mode 100644 index 0000000..0c500b7 --- /dev/null +++ b/src/conntrack/snprintf.c @@ -0,0 +1,36 @@ +/* + * (C) 2006 by Pablo Neira Ayuso <pablo@netfilter.org> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + */ + +#include "internal.h" + +int __snprintf_conntrack(char *buf, + unsigned int len, + const struct nf_conntrack *ct, + unsigned int type, + unsigned int msg_output, + unsigned int flags) +{ + int size; + + switch(msg_output) { + case NFCT_O_DEFAULT: + size = __snprintf_conntrack_default(buf, len, ct, type, flags); + break; + case NFCT_O_XML: + size = __snprintf_conntrack_xml(buf, len, ct, type, flags); + break; + default: + errno = ENOENT; + return -1; + } + + /* NULL terminated string */ + if (snprintf(buf+size, len-size, "\0") == -1) + return -1; + + return size; +} |