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>
/*
- * 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>
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];
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);
/*
- * 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>
close(fd);
exit(EXIT_FAILURE);
}
+ close(fd);
r = nft_rule_alloc();
if (r == NULL) {
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);
/*
- * 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>
#include <libmnl/libmnl.h>
#include <libnftables/table.h>
-extern struct nft_table nft_table;
-
int main(int argc, char *argv[])
{
struct mnl_socket *nl;
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];
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);