summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2012-01-05 21:30:20 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2012-01-05 21:30:20 +0100
commite57d6caa8ddbe268adea991bcf6e58dc6ca43389 (patch)
tree187e09fd0bcb6d4e536a7aa27e4f4c6976c622be /src
parentf4b2c3b617333b5a0f359edccc9a9be34d9f36bd (diff)
Set types moved into libipset library
The libipset library is complete by this step, and "ipset" just a CLI interface based on the lib.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am14
-rw-r--r--src/ipset.c33
-rw-r--r--src/ipset_bitmap_ip.c97
-rw-r--r--src/ipset_bitmap_ipmac.c100
-rw-r--r--src/ipset_bitmap_port.c87
-rw-r--r--src/ipset_hash_ip.c119
-rw-r--r--src/ipset_hash_ipport.c144
-rw-r--r--src/ipset_hash_ipportip.c155
-rw-r--r--src/ipset_hash_ipportnet.c254
-rw-r--r--src/ipset_hash_net.c164
-rw-r--r--src/ipset_hash_netiface.c120
-rw-r--r--src/ipset_hash_netport.c199
-rw-r--r--src/ipset_list_set.c91
13 files changed, 3 insertions, 1574 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 5296047..e3f6549 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,19 +1,7 @@
include $(top_srcdir)/Make_global.am
sbin_PROGRAMS = ipset
-ipset_SOURCES = ipset.c \
- ipset_bitmap_ip.c \
- ipset_bitmap_ipmac.c \
- ipset_bitmap_port.c \
- ipset_hash_ip.c \
- ipset_hash_ipport.c \
- ipset_hash_ipportip.c \
- ipset_hash_ipportnet.c \
- ipset_hash_net.c \
- ipset_hash_netport.c \
- ipset_hash_netiface.c \
- ipset_list_set.c \
- ui.c
+ipset_SOURCES = ipset.c ui.c
ipset_LDADD = ../lib/libipset.la
AM_LDFLAGS = -static
diff --git a/src/ipset.c b/src/ipset.c
index e835f06..4a20ca1 100644
--- a/src/ipset.c
+++ b/src/ipset.c
@@ -33,22 +33,6 @@ static char cmdline[1024];
static char *newargv[255];
static int newargc;
-/* The known set types: (typename, revision, family) is unique */
-extern struct ipset_type ipset_bitmap_ip0;
-extern struct ipset_type ipset_bitmap_ipmac0;
-extern struct ipset_type ipset_bitmap_port0;
-extern struct ipset_type ipset_hash_ip0;
-extern struct ipset_type ipset_hash_net0;
-extern struct ipset_type ipset_hash_net1;
-extern struct ipset_type ipset_hash_netport1;
-extern struct ipset_type ipset_hash_netport2;
-extern struct ipset_type ipset_hash_netiface0;
-extern struct ipset_type ipset_hash_ipport1;
-extern struct ipset_type ipset_hash_ipportip1;
-extern struct ipset_type ipset_hash_ipportnet1;
-extern struct ipset_type ipset_hash_ipportnet2;
-extern struct ipset_type ipset_list_set0;
-
enum exittype {
NO_PROBLEM = 0,
OTHER_PROBLEM,
@@ -725,21 +709,8 @@ main(int argc, char *argv[])
{
int ret;
- /* Register types */
- ipset_type_add(&ipset_bitmap_ip0);
- ipset_type_add(&ipset_bitmap_ipmac0);
- ipset_type_add(&ipset_bitmap_port0);
- ipset_type_add(&ipset_hash_ip0);
- ipset_type_add(&ipset_hash_net0);
- ipset_type_add(&ipset_hash_net1);
- ipset_type_add(&ipset_hash_netport1);
- ipset_type_add(&ipset_hash_netport2);
- ipset_type_add(&ipset_hash_netiface0);
- ipset_type_add(&ipset_hash_ipport1);
- ipset_type_add(&ipset_hash_ipportip1);
- ipset_type_add(&ipset_hash_ipportnet1);
- ipset_type_add(&ipset_hash_ipportnet2);
- ipset_type_add(&ipset_list_set0);
+ /* Load set types */
+ ipset_load_types();
/* Initialize session */
session = ipset_session_init(printf);
diff --git a/src/ipset_bitmap_ip.c b/src/ipset_bitmap_ip.c
deleted file mode 100644
index 8b8220d..0000000
--- a/src/ipset_bitmap_ip.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg bitmap_ip_create_args[] = {
- { .name = { "range", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_netrange, .print = ipset_print_ip,
- },
- { .name = { "netmask", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_NETMASK,
- .parse = ipset_parse_netmask, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Backward compatibility */
- { .name = { "from", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_single_ip,
- },
- { .name = { "to", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP_TO,
- .parse = ipset_parse_single_ip,
- },
- { .name = { "network", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_net,
- },
- { },
-};
-
-static const struct ipset_arg bitmap_ip_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char bitmap_ip_usage[] =
-"create SETNAME bitmap:ip range IP/CIDR|FROM-TO\n"
-" [netmask CIDR] [timeout VALUE]\n"
-"add SETNAME IP|IP/CIDR|FROM-TO [timeout VALUE]\n"
-"del SETNAME IP|IP/CIDR|FROM-TO\n"
-"test SETNAME IP\n\n"
-"where IP, FROM and TO are IPv4 addresses (or hostnames),\n"
-" CIDR is a valid IPv4 CIDR prefix.\n";
-
-struct ipset_type ipset_bitmap_ip0 = {
- .name = "bitmap:ip",
- .alias = { "ipmap", NULL },
- .revision = 0,
- .family = NFPROTO_IPV4,
- .dimension = IPSET_DIM_ONE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- },
- .args = {
- [IPSET_CREATE] = bitmap_ip_create_args,
- [IPSET_ADD] = bitmap_ip_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_NETMASK)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP),
- },
-
- .usage = bitmap_ip_usage,
-};
diff --git a/src/ipset_bitmap_ipmac.c b/src/ipset_bitmap_ipmac.c
deleted file mode 100644
index d822bf6..0000000
--- a/src/ipset_bitmap_ipmac.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg bitmap_ipmac_create_args[] = {
- { .name = { "range", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_netrange, .print = ipset_print_ip,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Backward compatibility */
- { .name = { "from", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_single_ip,
- },
- { .name = { "to", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP_TO,
- .parse = ipset_parse_single_ip,
- },
- { .name = { "network", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_net,
- },
- { },
-};
-
-static const struct ipset_arg bitmap_ipmac_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char bitmap_ipmac_usage[] =
-"create SETNAME bitmap:ip,mac range IP/CIDR|FROM-TO\n"
-" [matchunset] [timeout VALUE]\n"
-"add SETNAME IP[,MAC] [timeout VALUE]\n"
-"del SETNAME IP[,MAC]\n"
-"test SETNAME IP[,MAC]\n\n"
-"where IP, FROM and TO are IPv4 addresses (or hostnames),\n"
-" CIDR is a valid IPv4 CIDR prefix,\n"
-" MAC is a valid MAC address.\n";
-
-struct ipset_type ipset_bitmap_ipmac0 = {
- .name = "bitmap:ip,mac",
- .alias = { "macipmap", NULL },
- .revision = 0,
- .family = NFPROTO_IPV4,
- .dimension = IPSET_DIM_TWO,
- .last_elem_optional = true,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_single_ip,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_ether,
- .print = ipset_print_ether,
- .opt = IPSET_OPT_ETHER
- },
- },
- .args = {
- [IPSET_CREATE] = bitmap_ipmac_create_args,
- [IPSET_ADD] = bitmap_ipmac_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_ETHER)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_ETHER),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_ETHER),
- },
-
- .usage = bitmap_ipmac_usage,
-};
diff --git a/src/ipset_bitmap_port.c b/src/ipset_bitmap_port.c
deleted file mode 100644
index 69be809..0000000
--- a/src/ipset_bitmap_port.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg bitmap_port_create_args[] = {
- { .name = { "range", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PORT,
- .parse = ipset_parse_tcp_port, .print = ipset_print_port,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Backward compatibility */
- { .name = { "from", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PORT,
- .parse = ipset_parse_single_tcp_port,
- },
- { .name = { "to", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PORT_TO,
- .parse = ipset_parse_single_tcp_port,
- },
- { },
-};
-
-static const struct ipset_arg bitmap_port_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char bitmap_port_usage[] =
-"create SETNAME bitmap:port range FROM-TO\n"
-" [timeout VALUE]\n"
-"add SETNAME PORT|FROM-TO [timeout VALUE]\n"
-"del SETNAME PORT|FROM-TO\n"
-"test SETNAME PORT\n\n"
-"where PORT, FROM and TO are port numbers or port names from /etc/services.\n";
-
-struct ipset_type ipset_bitmap_port0 = {
- .name = "bitmap:port",
- .alias = { "portmap", NULL },
- .revision = 0,
- .family = NFPROTO_UNSPEC,
- .dimension = IPSET_DIM_ONE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_tcp_port,
- .print = ipset_print_port,
- .opt = IPSET_OPT_PORT
- },
- },
- .args = {
- [IPSET_CREATE] = bitmap_port_create_args,
- [IPSET_ADD] = bitmap_port_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_PORT),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_PORT),
- },
-
- .usage = bitmap_port_usage,
-};
diff --git a/src/ipset_hash_ip.c b/src/ipset_hash_ip.c
deleted file mode 100644
index 912b991..0000000
--- a/src/ipset_hash_ip.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg hash_ip_create_args[] = {
- { .name = { "family", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family, .print = ipset_print_family,
- },
- /* Alias: family inet */
- { .name = { "-4", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- /* Alias: family inet6 */
- { .name = { "-6", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- { .name = { "hashsize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_HASHSIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "maxelem", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_MAXELEM,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "netmask", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_NETMASK,
- .parse = ipset_parse_netmask, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Ignored options: backward compatibilty */
- { .name = { "probes", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PROBES,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "resize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_RESIZE,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "gc", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_GC,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { },
-};
-
-static const struct ipset_arg hash_ip_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char hash_ip_usage[] =
-"create SETNAME hash:ip\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [netmask CIDR] [timeout VALUE]\n"
-"add SETNAME IP [timeout VALUE]\n"
-"del SETNAME IP\n"
-"test SETNAME IP\n\n"
-"where depending on the INET family\n"
-" IP is a valid IPv4 or IPv6 address (or hostname),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n"
-" Adding/deleting multiple elements in IP/CIDR or FROM-TO form\n"
-" is supported for IPv4.\n";
-
-struct ipset_type ipset_hash_ip0 = {
- .name = "hash:ip",
- .alias = { "iphash", NULL },
- .revision = 0,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_ONE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_single6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- },
- .args = {
- [IPSET_CREATE] = hash_ip_create_args,
- [IPSET_ADD] = hash_ip_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_NETMASK)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP),
- },
-
- .usage = hash_ip_usage,
-};
diff --git a/src/ipset_hash_ipport.c b/src/ipset_hash_ipport.c
deleted file mode 100644
index 748e452..0000000
--- a/src/ipset_hash_ipport.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/ui.h> /* ipset_port_usage */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg hash_ipport_create_args[] = {
- { .name = { "family", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family, .print = ipset_print_family,
- },
- /* Alias: family inet */
- { .name = { "-4", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- /* Alias: family inet6 */
- { .name = { "-6", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- { .name = { "hashsize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_HASHSIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "maxelem", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_MAXELEM,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Backward compatibility */
- { .name = { "probes", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PROBES,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "resize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_RESIZE,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "from", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_ignored,
- },
- { .name = { "to", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP_TO,
- .parse = ipset_parse_ignored,
- },
- { .name = { "network", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_ignored,
- },
- { },
-};
-
-static const struct ipset_arg hash_ipport_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char hash_ipport1_usage[] =
-"create SETNAME hash:ip,port\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP,PROTO:PORT [timeout VALUE]\n"
-"del SETNAME IP,PROTO:PORT\n"
-"test SETNAME IP,PROTO:PORT\n\n"
-"where depending on the INET family\n"
-" IP is a valid IPv4 or IPv6 address (or hostname).\n"
-" Adding/deleting multiple elements in IP/CIDR or FROM-TO form\n"
-" is supported for IPv4.\n"
-" Adding/deleting multiple elements with TCP/SCTP/UDP/UDPLITE\n"
-" port range is supported both for IPv4 and IPv6.\n";
-
-struct ipset_type ipset_hash_ipport1 = {
- .name = "hash:ip,port",
- .alias = { "ipporthash", NULL },
- .revision = 1,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_TWO,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_single6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_proto_port,
- .print = ipset_print_proto_port,
- .opt = IPSET_OPT_PORT
- },
- },
- .args = {
- [IPSET_CREATE] = hash_ipport_create_args,
- [IPSET_ADD] = hash_ipport_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO),
- },
-
- .usage = hash_ipport1_usage,
- .usagefn = ipset_port_usage,
-};
diff --git a/src/ipset_hash_ipportip.c b/src/ipset_hash_ipportip.c
deleted file mode 100644
index 7c046a3..0000000
--- a/src/ipset_hash_ipportip.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/ui.h> /* ipset_port_usage */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg hash_ipportip_create_args[] = {
- { .name = { "family", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family, .print = ipset_print_family,
- },
- /* Alias: family inet */
- { .name = { "-4", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- /* Alias: family inet6 */
- { .name = { "-6", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- { .name = { "hashsize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_HASHSIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "maxelem", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_MAXELEM,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Backward compatibility */
- { .name = { "probes", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PROBES,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "resize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_RESIZE,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "from", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_ignored,
- },
- { .name = { "to", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP_TO,
- .parse = ipset_parse_ignored,
- },
- { .name = { "network", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_ignored,
- },
- { },
-};
-
-static const struct ipset_arg hash_ipportip_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char hash_ipportip1_usage[] =
-"create SETNAME hash:ip,port,ip\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP,PROTO:PORT,IP [timeout VALUE]\n"
-"del SETNAME IP,PROTO:PORT,IP\n"
-"test SETNAME IP,PROTO:PORT,IP\n\n"
-"where depending on the INET family\n"
-" IP is a valid IPv4 or IPv6 address (or hostname).\n"
-" Adding/deleting multiple elements in IP/CIDR or FROM-TO form\n"
-" in the first IP component is supported for IPv4.\n"
-" Adding/deleting multiple elements with TCP/SCTP/UDP/UDPLITE\n"
-" port range is supported both for IPv4 and IPv6.\n";
-
-struct ipset_type ipset_hash_ipportip1 = {
- .name = "hash:ip,port,ip",
- .alias = { "ipportiphash", NULL },
- .revision = 1,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_THREE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_single6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_proto_port,
- .print = ipset_print_proto_port,
- .opt = IPSET_OPT_PORT
- },
- [IPSET_DIM_THREE - 1] = {
- .parse = ipset_parse_single_ip,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP2
- },
- },
- .args = {
- [IPSET_CREATE] = hash_ipportip_create_args,
- [IPSET_ADD] = hash_ipportip_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- },
-
- .usage = hash_ipportip1_usage,
- .usagefn = ipset_port_usage,
-};
diff --git a/src/ipset_hash_ipportnet.c b/src/ipset_hash_ipportnet.c
deleted file mode 100644
index c4cf97e..0000000
--- a/src/ipset_hash_ipportnet.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/ui.h> /* ipset_port_usage */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg hash_ipportnet_create_args[] = {
- { .name = { "family", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family, .print = ipset_print_family,
- },
- /* Alias: family inet */
- { .name = { "-4", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- /* Alias: family inet6 */
- { .name = { "-6", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- { .name = { "hashsize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_HASHSIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "maxelem", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_MAXELEM,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Backward compatibility */
- { .name = { "probes", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PROBES,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "resize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_RESIZE,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "from", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_ignored,
- },
- { .name = { "to", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP_TO,
- .parse = ipset_parse_ignored,
- },
- { .name = { "network", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_IP,
- .parse = ipset_parse_ignored,
- },
- { },
-};
-
-static const struct ipset_arg hash_ipportnet_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char hash_ipportnet1_usage[] =
-"create SETNAME hash:ip,port,net\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP,PROTO:PORT,IP[/CIDR] [timeout VALUE]\n"
-"del SETNAME IP,PROTO:PORT,IP[/CIDR]\n"
-"test SETNAME IP,PROTO:PORT,IP[/CIDR]\n\n"
-"where depending on the INET family\n"
-" IP are valid IPv4 or IPv6 addresses (or hostnames),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n"
-" Adding/deleting multiple elements in IP/CIDR or FROM-TO form\n"
-" in the first IP component is supported for IPv4.\n"
-" Adding/deleting multiple elements with TCP/SCTP/UDP/UDPLITE\n"
-" port range is supported both for IPv4 and IPv6.\n";
-
-struct ipset_type ipset_hash_ipportnet1 = {
- .name = "hash:ip,port,net",
- .alias = { "ipportnethash", NULL },
- .revision = 1,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_THREE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_single6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_proto_port,
- .print = ipset_print_proto_port,
- .opt = IPSET_OPT_PORT
- },
- [IPSET_DIM_THREE - 1] = {
- .parse = ipset_parse_ipnet,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP2
- },
- },
- .args = {
- [IPSET_CREATE] = hash_ipportnet_create_args,
- [IPSET_ADD] = hash_ipportnet_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2)
- | IPSET_FLAG(IPSET_OPT_CIDR2)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2)
- | IPSET_FLAG(IPSET_OPT_CIDR2),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2)
- | IPSET_FLAG(IPSET_OPT_CIDR2),
- },
-
- .usage = hash_ipportnet1_usage,
- .usagefn = ipset_port_usage,
-};
-
-static const char hash_ipportnet2_usage[] =
-"create SETNAME hash:ip,port,net\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP,PROTO:PORT,IP[/CIDR] [timeout VALUE]\n"
-"del SETNAME IP,PROTO:PORT,IP[/CIDR]\n"
-"test SETNAME IP,PROTO:PORT,IP[/CIDR]\n\n"
-"where depending on the INET family\n"
-" IP are valid IPv4 or IPv6 addresses (or hostnames),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n"
-" Adding/deleting multiple elements in IP/CIDR or FROM-TO form\n"
-" in both IP components are supported for IPv4.\n"
-" Adding/deleting multiple elements with TCP/SCTP/UDP/UDPLITE\n"
-" port range is supported both for IPv4 and IPv6.\n";
-
-struct ipset_type ipset_hash_ipportnet2 = {
- .name = "hash:ip,port,net",
- .alias = { "ipportnethash", NULL },
- .revision = 2,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_THREE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_single6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_proto_port,
- .print = ipset_print_proto_port,
- .opt = IPSET_OPT_PORT
- },
- [IPSET_DIM_THREE - 1] = {
- .parse = ipset_parse_ip4_net6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP2
- },
- },
- .args = {
- [IPSET_CREATE] = hash_ipportnet_create_args,
- [IPSET_ADD] = hash_ipportnet_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2)
- | IPSET_FLAG(IPSET_OPT_CIDR2)
- | IPSET_FLAG(IPSET_OPT_IP2_TO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2)
- | IPSET_FLAG(IPSET_OPT_CIDR2)
- | IPSET_FLAG(IPSET_OPT_IP2_TO),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_IP2)
- | IPSET_FLAG(IPSET_OPT_CIDR2),
- },
-
- .usage = hash_ipportnet2_usage,
- .usagefn = ipset_port_usage,
-};
-
diff --git a/src/ipset_hash_net.c b/src/ipset_hash_net.c
deleted file mode 100644
index 76269f0..0000000
--- a/src/ipset_hash_net.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg hash_net_create_args[] = {
- { .name = { "family", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family, .print = ipset_print_family,
- },
- /* Alias: family inet */
- { .name = { "-4", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- /* Alias: family inet6 */
- { .name = { "-6", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- { .name = { "hashsize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_HASHSIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "maxelem", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_MAXELEM,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- /* Ignored options: backward compatibilty */
- { .name = { "probes", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_PROBES,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { .name = { "resize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_RESIZE,
- .parse = ipset_parse_ignored, .print = ipset_print_number,
- },
- { },
-};
-
-static const struct ipset_arg hash_net_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char hash_net0_usage[] =
-"create SETNAME hash:net\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP[/CIDR] [timeout VALUE]\n"
-"del SETNAME IP[/CIDR]\n"
-"test SETNAME IP[/CIDR]\n\n"
-"where depending on the INET family\n"
-" IP is an IPv4 or IPv6 address (or hostname),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n";
-
-struct ipset_type ipset_hash_net0 = {
- .name = "hash:net",
- .alias = { "nethash", NULL },
- .revision = 0,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_ONE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ipnet,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- },
- .args = {
- [IPSET_CREATE] = hash_net_create_args,
- [IPSET_ADD] = hash_net_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR),
- },
-
- .usage = hash_net0_usage,
-};
-
-static const char hash_net1_usage[] =
-"create SETNAME hash:net\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP[/CIDR]|FROM-TO [timeout VALUE]\n"
-"del SETNAME IP[/CIDR]|FROM-TO\n"
-"test SETNAME IP[/CIDR]\n\n"
-"where depending on the INET family\n"
-" IP is an IPv4 or IPv6 address (or hostname),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n"
-" IP range is not supported with IPv6.\n";
-
-struct ipset_type ipset_hash_net1 = {
- .name = "hash:net",
- .alias = { "nethash", NULL },
- .revision = 1,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_ONE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_net6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- },
- .args = {
- [IPSET_CREATE] = hash_net_create_args,
- [IPSET_ADD] = hash_net_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR),
- },
-
- .usage = hash_net1_usage,
-};
-
diff --git a/src/ipset_hash_netiface.c b/src/ipset_hash_netiface.c
deleted file mode 100644
index 51d9cad..0000000
--- a/src/ipset_hash_netiface.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright 2011 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/ui.h> /* ipset_port_usage */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg hash_netiface_create_args[] = {
- { .name = { "family", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family, .print = ipset_print_family,
- },
- /* Alias: family inet */
- { .name = { "-4", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- /* Alias: family inet6 */
- { .name = { "-6", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- { .name = { "hashsize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_HASHSIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "maxelem", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_MAXELEM,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const struct ipset_arg hash_netiface_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char hash_netiface_usage[] =
-"create SETNAME hash:net,iface\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP[/CIDR]|FROM-TO,[physdev:]IFACE [timeout VALUE]\n"
-"del SETNAME IP[/CIDR]|FROM-TO,[physdev:]IFACE\n"
-"test SETNAME IP[/CIDR],[physdev:]IFACE\n\n"
-"where depending on the INET family\n"
-" IP is a valid IPv4 or IPv6 address (or hostname),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n"
-" Adding/deleting multiple elements with IPv4 is supported.\n";
-
-struct ipset_type ipset_hash_netiface0 = {
- .name = "hash:net,iface",
- .alias = { "netifacehash", NULL },
- .revision = 0,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_TWO,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_net6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_iface,
- .print = ipset_print_iface,
- .opt = IPSET_OPT_IFACE
- },
- },
- .args = {
- [IPSET_CREATE] = hash_netiface_create_args,
- [IPSET_ADD] = hash_netiface_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IFACE),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IFACE),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_IFACE),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_IFACE)
- | IPSET_FLAG(IPSET_OPT_PHYSDEV)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_IFACE)
- | IPSET_FLAG(IPSET_OPT_PHYSDEV),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_IFACE)
- | IPSET_FLAG(IPSET_OPT_PHYSDEV),
- },
-
- .usage = hash_netiface_usage,
-};
-
diff --git a/src/ipset_hash_netport.c b/src/ipset_hash_netport.c
deleted file mode 100644
index af6adf1..0000000
--- a/src/ipset_hash_netport.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/ui.h> /* ipset_port_usage */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg hash_netport_create_args[] = {
- { .name = { "family", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family, .print = ipset_print_family,
- },
- /* Alias: family inet */
- { .name = { "-4", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- /* Alias: family inet6 */
- { .name = { "-6", NULL },
- .has_arg = IPSET_NO_ARG, .opt = IPSET_OPT_FAMILY,
- .parse = ipset_parse_family,
- },
- { .name = { "hashsize", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_HASHSIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "maxelem", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_MAXELEM,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const struct ipset_arg hash_netport_add_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const char hash_netport1_usage[] =
-"create SETNAME hash:net,port\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP[/CIDR],PROTO:PORT [timeout VALUE]\n"
-"del SETNAME IP[/CIDR],PROTO:PORT\n"
-"test SETNAME IP[/CIDR],PROTO:PORT\n\n"
-"where depending on the INET family\n"
-" IP is a valid IPv4 or IPv6 address (or hostname),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n"
-" Adding/deleting multiple elements with TCP/SCTP/UDP/UDPLITE\n"
-" port range is supported both for IPv4 and IPv6.\n";
-
-struct ipset_type ipset_hash_netport1 = {
- .name = "hash:net,port",
- .alias = { "netporthash", NULL },
- .revision = 1,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_TWO,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ipnet,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_proto_port,
- .print = ipset_print_proto_port,
- .opt = IPSET_OPT_PORT
- },
- },
- .args = {
- [IPSET_CREATE] = hash_netport_create_args,
- [IPSET_ADD] = hash_netport_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT)
- | IPSET_FLAG(IPSET_OPT_CIDR),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_CIDR),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_CIDR),
- },
-
- .usage = hash_netport1_usage,
- .usagefn = ipset_port_usage,
-};
-
-static const char hash_netport2_usage[] =
-"create SETNAME hash:net,port\n"
-" [family inet|inet6]\n"
-" [hashsize VALUE] [maxelem VALUE]\n"
-" [timeout VALUE]\n"
-"add SETNAME IP[/CIDR]|FROM-TO,PROTO:PORT [timeout VALUE]\n"
-"del SETNAME IP[/CIDR]|FROM-TO,PROTO:PORT\n"
-"test SETNAME IP[/CIDR],PROTO:PORT\n\n"
-"where depending on the INET family\n"
-" IP is a valid IPv4 or IPv6 address (or hostname),\n"
-" CIDR is a valid IPv4 or IPv6 CIDR prefix.\n"
-" Adding/deleting multiple elements with IPv4 is supported.\n"
-" Adding/deleting multiple elements with TCP/SCTP/UDP/UDPLITE\n"
-" port range is supported both for IPv4 and IPv6.\n";
-
-struct ipset_type ipset_hash_netport2 = {
- .name = "hash:net,port",
- .alias = { "netporthash", NULL },
- .revision = 2,
- .family = NFPROTO_IPSET_IPV46,
- .dimension = IPSET_DIM_TWO,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_ip4_net6,
- .print = ipset_print_ip,
- .opt = IPSET_OPT_IP
- },
- [IPSET_DIM_TWO - 1] = {
- .parse = ipset_parse_proto_port,
- .print = ipset_print_proto_port,
- .opt = IPSET_OPT_PORT
- },
- },
- .args = {
- [IPSET_CREATE] = hash_netport_create_args,
- [IPSET_ADD] = hash_netport_add_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_PORT),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_HASHSIZE)
- | IPSET_FLAG(IPSET_OPT_MAXELEM)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_IP_TO)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PORT_TO)
- | IPSET_FLAG(IPSET_OPT_PROTO),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_IP)
- | IPSET_FLAG(IPSET_OPT_CIDR)
- | IPSET_FLAG(IPSET_OPT_PORT)
- | IPSET_FLAG(IPSET_OPT_PROTO),
- },
-
- .usage = hash_netport2_usage,
- .usagefn = ipset_port_usage,
-};
diff --git a/src/ipset_list_set.c b/src/ipset_list_set.c
deleted file mode 100644
index d95290b..0000000
--- a/src/ipset_list_set.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2007-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <libipset/data.h> /* IPSET_OPT_* */
-#include <libipset/parse.h> /* parser functions */
-#include <libipset/print.h> /* printing functions */
-#include <libipset/types.h> /* prototypes */
-
-/* Parse commandline arguments */
-static const struct ipset_arg list_set_create_args[] = {
- { .name = { "size", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_SIZE,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { },
-};
-
-static const struct ipset_arg list_set_adt_args[] = {
- { .name = { "timeout", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_TIMEOUT,
- .parse = ipset_parse_uint32, .print = ipset_print_number,
- },
- { .name = { "before", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_NAMEREF,
- .parse = ipset_parse_before,
- },
- { .name = { "after", NULL },
- .has_arg = IPSET_MANDATORY_ARG, .opt = IPSET_OPT_NAMEREF,
- .parse = ipset_parse_after,
- },
- { },
-};
-
-static const char list_set_usage[] =
-"create SETNAME list:set\n"
-" [size VALUE] [timeout VALUE]\n"
-"add SETNAME NAME [before|after NAME] [timeout VALUE]\n"
-"del SETNAME NAME [before|after NAME]\n"
-"test SETNAME NAME [before|after NAME]\n\n"
-"where NAME are existing set names.\n";
-
-struct ipset_type ipset_list_set0 = {
- .name = "list:set",
- .alias = { "setlist", NULL },
- .revision = 0,
- .family = NFPROTO_UNSPEC,
- .dimension = IPSET_DIM_ONE,
- .elem = {
- [IPSET_DIM_ONE - 1] = {
- .parse = ipset_parse_setname,
- .print = ipset_print_name,
- .opt = IPSET_OPT_NAME
- },
- },
- .compat_parse_elem = ipset_parse_name_compat,
- .args = {
- [IPSET_CREATE] = list_set_create_args,
- [IPSET_ADD] = list_set_adt_args,
- [IPSET_DEL] = list_set_adt_args,
- [IPSET_TEST] = list_set_adt_args,
- },
- .mandatory = {
- [IPSET_CREATE] = 0,
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_NAME),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_NAME),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_NAME),
- },
- .full = {
- [IPSET_CREATE] = IPSET_FLAG(IPSET_OPT_SIZE)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_ADD] = IPSET_FLAG(IPSET_OPT_NAME)
- | IPSET_FLAG(IPSET_OPT_BEFORE)
- | IPSET_FLAG(IPSET_OPT_NAMEREF)
- | IPSET_FLAG(IPSET_OPT_TIMEOUT),
- [IPSET_DEL] = IPSET_FLAG(IPSET_OPT_NAME)
- | IPSET_FLAG(IPSET_OPT_BEFORE)
- | IPSET_FLAG(IPSET_OPT_NAMEREF),
- [IPSET_TEST] = IPSET_FLAG(IPSET_OPT_NAME)
- | IPSET_FLAG(IPSET_OPT_BEFORE)
- | IPSET_FLAG(IPSET_OPT_NAMEREF),
- },
-
- .usage = list_set_usage,
-};