summaryrefslogtreecommitdiffstats
path: root/examples/nft-table-xml-add.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-07-10 18:34:57 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-07-10 18:51:11 +0200
commit013227cb6f13cbab2fbccbeb750199a051fd7a43 (patch)
treedb99a745cdbe3eaa21b0689852591be5098fb358 /examples/nft-table-xml-add.c
parenta73f84d41b93c7945acdbdc92199e1c257887191 (diff)
examples: nft-{table,chain,rule}-xml-add: fix missing NLM_F_CREATE
Thus, automodule loading was not working. While at it, apply not so relevant comestic cleanups and fix some inconsistencies between examples. * Fix copyright header, this is code heavily based on existing nft-*-add examples. * Remove unrequired extern struct nft_table definition. * Make sure we close file descriptor once we don't need it anymore. * Remove unrequired casting. * Remove comment that provides nothing interesting. I considered a patch to address each on those was too much burden. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'examples/nft-table-xml-add.c')
-rw-r--r--examples/nft-table-xml-add.c21
1 files changed, 8 insertions, 13 deletions
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);