From 013227cb6f13cbab2fbccbeb750199a051fd7a43 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 10 Jul 2013 18:34:57 +0200 Subject: 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 --- examples/nft-table-xml-add.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'examples/nft-table-xml-add.c') 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 + * (C) 2013 by Pablo Neira Ayuso + * (C) 2013 by Arturo Borrero Gonzalez * * 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 */ #include @@ -21,8 +24,6 @@ #include #include -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); -- cgit v1.2.3