summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/nft-chain-xml-add.c12
-rw-r--r--examples/nft-rule-xml-add.c9
-rw-r--r--examples/nft-table-xml-add.c21
3 files changed, 22 insertions, 20 deletions
diff --git a/examples/nft-chain-xml-add.c b/examples/nft-chain-xml-add.c
index 80a513d..2e2fe11 100644
--- a/examples/nft-chain-xml-add.c
+++ b/examples/nft-chain-xml-add.c
@@ -1,10 +1,13 @@
/*
- * 2013 by Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
+ * (C) 2013 by Pablo Neira Ayuso <pablo@netfilter.org>
+ * (C) 2013 by Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
+ *
+ * This code has been sponsored by Sophos Astaro <http://www.sophos.com>
*/
#include <stdlib.h>
@@ -30,8 +33,7 @@ int main(int argc, char *argv[])
struct nlmsghdr *nlh;
uint32_t portid, seq;
struct nft_chain *c = NULL;
- int ret;
- int fd;
+ int ret, fd;
uint16_t family;
char xml[4096];
char reprint[4096];
@@ -70,11 +72,11 @@ int main(int argc, char *argv[])
printf("Parsed:\n%s\n", reprint);
nft_chain_attr_unset(c, NFT_CHAIN_ATTR_HANDLE);
- family = (uint16_t)nft_chain_attr_get_u32(c, NFT_CHAIN_ATTR_FAMILY);
+ family = nft_chain_attr_get_u32(c, NFT_CHAIN_ATTR_FAMILY);
seq = time(NULL);
nlh = nft_chain_nlmsg_build_hdr(buf, NFT_MSG_NEWCHAIN, family,
- NLM_F_ACK, seq);
+ NLM_F_CREATE|NLM_F_ACK, seq);
nft_chain_nlmsg_build_payload(nlh, c);
nft_chain_free(c);
diff --git a/examples/nft-rule-xml-add.c b/examples/nft-rule-xml-add.c
index 7bd44ff..4de7a69 100644
--- a/examples/nft-rule-xml-add.c
+++ b/examples/nft-rule-xml-add.c
@@ -1,10 +1,13 @@
/*
- * 2013 by Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
+ * (C) 2013 by Pablo Neira Ayuso <pablo@netfilter.org>
+ * (C) 2013 by Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
+ *
+ * This code has been sponsored by Sophos Astaro <http://www.sophos.com>
*/
#include <stdlib.h>
@@ -52,6 +55,7 @@ int main(int argc, char *argv[])
close(fd);
exit(EXIT_FAILURE);
}
+ close(fd);
r = nft_rule_alloc();
if (r == NULL) {
@@ -72,7 +76,8 @@ int main(int argc, char *argv[])
seq = time(NULL);
nlh = nft_rule_nlmsg_build_hdr(buf, NFT_MSG_NEWRULE, family,
- NLM_F_APPEND|NLM_F_ACK, seq);
+ NLM_F_CREATE|NLM_F_APPEND|NLM_F_ACK,
+ seq);
nft_rule_nlmsg_build_payload(nlh, r);
nft_rule_free(r);
diff --git a/examples/nft-table-xml-add.c b/examples/nft-table-xml-add.c
index 41df5b4..6de0855 100644
--- a/examples/nft-table-xml-add.c
+++ b/examples/nft-table-xml-add.c
@@ -1,10 +1,13 @@
/*
- * 2013 by Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
+ * (C) 2013 by Pablo Neira Ayuso <pablo@netfilter.org>
+ * (C) 2013 by Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
+ *
+ * This code has been sponsored by Sophos Astaro <http://www.sophos.com>
*/
#include <stdlib.h>
@@ -21,8 +24,6 @@
#include <libmnl/libmnl.h>
#include <libnftables/table.h>
-extern struct nft_table nft_table;
-
int main(int argc, char *argv[])
{
struct mnl_socket *nl;
@@ -30,8 +31,7 @@ int main(int argc, char *argv[])
struct nlmsghdr *nlh;
uint32_t portid, seq;
struct nft_table *t = NULL;
- int ret;
- int fd;
+ int ret, fd;
uint16_t family;
char xml[4096];
char reprint[4096];
@@ -52,33 +52,28 @@ int main(int argc, char *argv[])
close(fd);
exit(EXIT_FAILURE);
}
+ close(fd);
t = nft_table_alloc();
if (t == NULL) {
perror("OOM");
- close(fd);
exit(EXIT_FAILURE);
}
- /* Parsing XML now */
if (nft_table_parse(t, NFT_TABLE_PARSE_XML, xml) < 0) {
printf("E: Unable to parse XML file: %s\n", strerror(errno));
- close(fd);
exit(EXIT_FAILURE);
}
- close(fd);
-
nft_table_snprintf(reprint, sizeof(reprint), t, NFT_TABLE_O_XML, 0);
printf("Parsed:\n%s\n", reprint);
-
- family = (uint16_t)nft_table_attr_get_u32(t, NFT_TABLE_ATTR_FAMILY);
+ family = nft_table_attr_get_u32(t, NFT_TABLE_ATTR_FAMILY);
seq = time(NULL);
nlh = nft_table_nlmsg_build_hdr(buf, NFT_MSG_NEWTABLE, family,
- NLM_F_ACK, seq);
+ NLM_F_CREATE|NLM_F_ACK, seq);
nft_table_nlmsg_build_payload(nlh, t);
nft_table_free(t);