summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorlaforge <laforge>2001-02-26 17:31:20 +0000
committerlaforge <laforge>2001-02-26 17:31:20 +0000
commit9a429943c16c491ba867ef7db1d64078dea645e9 (patch)
tree828149f26538839f8338504058c76608235c3465 /extensions
parentaa6cc13605cc317e1f5d5ff113e893f1676dc103 (diff)
ip6tables-save/-restore by Kis-Szabo Andras
Diffstat (limited to 'extensions')
-rw-r--r--extensions/libipt_string.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/extensions/libipt_string.c b/extensions/libipt_string.c
index 25dacdc..51e5828 100644
--- a/extensions/libipt_string.c
+++ b/extensions/libipt_string.c
@@ -1,6 +1,12 @@
/* Shared library add-on to iptables to add string matching support.
*
* Copyright (C) 2000 Emmanuel Roger <winfield@freegates.be>
+ *
+ * ChangeLog
+ * 27.01.2001: Gianni Tedesco <gianni@ecsc.co.uk>
+ * Changed --tos to --string in save(). Also
+ * updated to work with slightly modified
+ * ipt_string_info.
*/
#include <stdio.h>
#include <netdb.h>
@@ -38,7 +44,7 @@ init(struct ipt_entry_match *m, unsigned int *nfcache)
static void
parse_string(const unsigned char *s, struct ipt_string_info *info)
{
- if (strlen(s) <= 255) strcpy(info->string, s);
+ if (strlen(s) <= BM_MAX_LEN) strcpy(info->string, s);
else exit_error(PARAMETER_PROBLEM, "STRING too long `%s'", s);
}
@@ -59,6 +65,7 @@ parse(int c, char **argv, int invert, unsigned int *flags,
parse_string(argv[optind-1], stringinfo);
if (invert)
stringinfo->invert = 1;
+ stringinfo->len=strlen((char *)&stringinfo->string);
*flags = 1;
break;
@@ -101,7 +108,7 @@ print(const struct ipt_ip *ip,
static void
save(const struct ipt_ip *ip, const struct ipt_entry_match *match)
{
- printf("--tos ");
+ printf("--string ");
print_string(((struct ipt_string_info *)match->data)->string,
((struct ipt_string_info *)match->data)->invert, 0);
}