summaryrefslogtreecommitdiffstats
path: root/extensions/libipt_condition.c
diff options
context:
space:
mode:
authorlaforge <laforge>2003-02-25 11:54:56 +0000
committerlaforge <laforge>2003-02-25 11:54:56 +0000
commitceadd627afeb5167ac78902569cf0c29a3b1ce40 (patch)
treebe147dfa918b573e24ff86def8827ef1bc757b51 /extensions/libipt_condition.c
parent096f19613cb94e654bd2cd48eb49c125ecd5287f (diff)
update to condition extension, add condition6 (Stephane Ouellette)
Diffstat (limited to 'extensions/libipt_condition.c')
-rw-r--r--extensions/libipt_condition.c118
1 files changed, 68 insertions, 50 deletions
diff --git a/extensions/libipt_condition.c b/extensions/libipt_condition.c
index 351c1aa..41216ca 100644
--- a/extensions/libipt_condition.c
+++ b/extensions/libipt_condition.c
@@ -8,89 +8,107 @@
#include<linux/netfilter_ipv4/ipt_condition.h>
-static void help(void)
+static void
+help(void)
{
- printf("condition match v%s options:\n"
- "--condition [!] filename Match on boolean value stored in /proc file"
- "\n", IPTABLES_VERSION);
+ printf("condition match v%s options:\n"
+ "--condition [!] filename "
+ "Match on boolean value stored in /proc file\n",
+ IPTABLES_VERSION);
}
-static struct option opts[] = { { "condition", 1, 0, 'X' }, { 0 } };
-static void init(struct ipt_entry_match *m, unsigned int *nfcache)
+static struct option opts[] = {
+ { .name = "condition", .has_arg = 1, .flag = 0, .val = 'X' },
+ { .name = 0 }
+};
+
+
+static void
+init(struct ipt_entry_match *m, unsigned int *nfcache)
{
- *nfcache |= NFC_UNKNOWN;
+ *nfcache |= NFC_UNKNOWN;
}
-static int parse(int c, char **argv, int invert, unsigned int *flags,
- const struct ipt_entry *entry, unsigned int *nfcache,
- struct ipt_entry_match **match)
+
+static int
+parse(int c, char **argv, int invert, unsigned int *flags,
+ const struct ipt_entry *entry, unsigned int *nfcache,
+ struct ipt_entry_match **match)
{
- struct condition_info *info = (struct condition_info*)(*match)->data;
+ struct condition_info *info =
+ (struct condition_info *) (*match)->data;
- check_inverse(optarg, &invert, &optind, 0);
+ check_inverse(optarg, &invert, &optind, 0);
- if(*flags)
- exit_error(PARAMETER_PROBLEM, "Can't specify multiple conditions");
+ if (*flags)
+ exit_error(PARAMETER_PROBLEM,
+ "Can't specify multiple conditions");
- if(c == 'X')
- {
- if(strlen(argv[optind-1]) < VARIABLE_NAME_LEN)
- strcpy(info->name, argv[optind-1]);
- else
- exit_error(PARAMETER_PROBLEM, "File name too long");
+ if (c == 'X') {
+ if (strlen(argv[optind - 1]) < CONDITION_NAME_LEN)
+ strcpy(info->name, argv[optind - 1]);
+ else
+ exit_error(PARAMETER_PROBLEM,
+ "File name too long");
- info->invert = invert;
- *flags = 1;
- return 1;
- }
+ info->invert = invert;
+ *flags = 1;
+ return 1;
+ }
- return 0;
+ return 0;
}
-static void final_check(unsigned int flags)
+static void
+final_check(unsigned int flags)
{
- if(!flags)
- exit_error(PARAMETER_PROBLEM, "Condition match: must specify --condition");
+ if (!flags)
+ exit_error(PARAMETER_PROBLEM,
+ "Condition match: must specify --condition");
}
-static void print(const struct ipt_ip *ip,
- const struct ipt_entry_match *match, int numeric)
+static void
+print(const struct ipt_ip *ip,
+ const struct ipt_entry_match *match, int numeric)
{
- const struct condition_info *info = (const struct condition_info*)match->data;
+ const struct condition_info *info =
+ (const struct condition_info *) match->data;
- printf("condition %s%s ", (info->invert) ? "!" : "", info->name);
+ printf("condition %s%s ", (info->invert) ? "!" : "", info->name);
}
-static void save(const struct ipt_ip *ip, const struct ipt_entry_match *match)
+static void
+save(const struct ipt_ip *ip,
+ const struct ipt_entry_match *match)
{
- const struct condition_info *info = (const struct condition_info*)match->data;
+ const struct condition_info *info =
+ (const struct condition_info *) match->data;
- printf("--condition %s%s ", (info->invert) ? "! " : "", info->name);
+ printf("--condition %s%s ", (info->invert) ? "! " : "", info->name);
}
static struct iptables_match condition = {
- NULL,
- "condition",
- IPTABLES_VERSION,
- IPT_ALIGN(sizeof(struct condition_info)),
- IPT_ALIGN(sizeof(struct condition_info)),
- &help,
- &init,
- &parse,
- &final_check,
- &print,
- &save,
- opts
+ .name = "condition",
+ .version = IPTABLES_VERSION,
+ .size = IPT_ALIGN(sizeof(struct condition_info)),
+ .userspacesize = IPT_ALIGN(sizeof(struct condition_info)),
+ .help = &help,
+ .init = &init,
+ .parse = &parse,
+ .final_check = &final_check,
+ .print = &print,
+ .save = &save,
+ .extra_opts = opts
};
-void _init(void)
+void
+_init(void)
{
- register_match(&condition);
+ register_match(&condition);
}
-