From 6ac58e399ccb3c2fbadc373266f454ce301547da Mon Sep 17 00:00:00 2001 From: Yasuyuki KOZAKAI Date: Tue, 24 Jul 2007 06:50:03 +0000 Subject: Use unified API in string match --- extensions/libipt_string.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'extensions') diff --git a/extensions/libipt_string.c b/extensions/libipt_string.c index 186013a3..e879dca1 100644 --- a/extensions/libipt_string.c +++ b/extensions/libipt_string.c @@ -26,9 +26,9 @@ #include #include #include -#include +#include #include -#include +#include /* Function which prints out usage message. */ static void @@ -56,17 +56,17 @@ static struct option opts[] = { static void init(struct xt_entry_match *m, unsigned int *nfcache) { - struct ipt_string_info *i = (struct ipt_string_info *) m->data; + struct xt_string_info *i = (struct xt_string_info *) m->data; if (i->to_offset == 0) i->to_offset = (u_int16_t) ~0UL; } static void -parse_string(const char *s, struct ipt_string_info *info) +parse_string(const char *s, struct xt_string_info *info) { - if (strlen(s) <= IPT_STRING_MAX_PATTERN_SIZE) { - strncpy(info->pattern, s, IPT_STRING_MAX_PATTERN_SIZE); + if (strlen(s) <= XT_STRING_MAX_PATTERN_SIZE) { + strncpy(info->pattern, s, XT_STRING_MAX_PATTERN_SIZE); info->patlen = strlen(s); return; } @@ -74,17 +74,17 @@ parse_string(const char *s, struct ipt_string_info *info) } static void -parse_algo(const char *s, struct ipt_string_info *info) +parse_algo(const char *s, struct xt_string_info *info) { - if (strlen(s) <= IPT_STRING_MAX_ALGO_NAME_SIZE) { - strncpy(info->algo, s, IPT_STRING_MAX_ALGO_NAME_SIZE); + if (strlen(s) <= XT_STRING_MAX_ALGO_NAME_SIZE) { + strncpy(info->algo, s, XT_STRING_MAX_ALGO_NAME_SIZE); return; } exit_error(PARAMETER_PROBLEM, "ALGO too long `%s'", s); } static void -parse_hex_string(const char *s, struct ipt_string_info *info) +parse_hex_string(const char *s, struct xt_string_info *info) { int i=0, slen, sindex=0, schar; short hex_f = 0, literal_f = 0; @@ -154,7 +154,7 @@ parse_hex_string(const char *s, struct ipt_string_info *info) info->pattern[sindex] = s[i]; i++; } - if (sindex > IPT_STRING_MAX_PATTERN_SIZE) + if (sindex > XT_STRING_MAX_PATTERN_SIZE) exit_error(PARAMETER_PROBLEM, "STRING too long `%s'", s); sindex++; } @@ -174,7 +174,7 @@ parse(int c, char **argv, int invert, unsigned int *flags, unsigned int *nfcache, struct xt_entry_match **match) { - struct ipt_string_info *stringinfo = (struct ipt_string_info *)(*match)->data; + struct xt_string_info *stringinfo = (struct xt_string_info *)(*match)->data; switch (c) { case '1': @@ -293,8 +293,8 @@ print(const void *ip, const struct xt_entry_match *match, int numeric) { - const struct ipt_string_info *info = - (const struct ipt_string_info*) match->data; + const struct xt_string_info *info = + (const struct xt_string_info*) match->data; if (is_hex_string(info->pattern, info->patlen)) { printf("STRING match %s", (info->invert) ? "!" : ""); @@ -315,8 +315,8 @@ print(const void *ip, static void save(const void *ip, const struct xt_entry_match *match) { - const struct ipt_string_info *info = - (const struct ipt_string_info*) match->data; + const struct xt_string_info *info = + (const struct xt_string_info*) match->data; if (is_hex_string(info->pattern, info->patlen)) { printf("--hex-string %s", (info->invert) ? "! ": ""); @@ -333,11 +333,12 @@ save(const void *ip, const struct xt_entry_match *match) } -static struct iptables_match string = { +static struct xtables_match string = { .name = "string", + .family = AF_INET, .version = IPTABLES_VERSION, - .size = IPT_ALIGN(sizeof(struct ipt_string_info)), - .userspacesize = offsetof(struct ipt_string_info, config), + .size = XT_ALIGN(sizeof(struct xt_string_info)), + .userspacesize = offsetof(struct xt_string_info, config), .help = help, .init = init, .parse = parse, @@ -350,5 +351,5 @@ static struct iptables_match string = { void _init(void) { - register_match(&string); + xtables_register_match(&string); } -- cgit v1.2.3