summaryrefslogtreecommitdiffstats
path: root/iptables.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2001-05-23 23:07:33 +0000
committerHarald Welte <laforge@gnumonks.org>2001-05-23 23:07:33 +0000
commitde1578fc55c286a2f788a648cd5d702fd0b4aa40 (patch)
treee681e74c7cad997dc4592e45d6bcd54984922aad /iptables.c
parent2d88b871e0ea05f572117f2c4dee80a5d5461a76 (diff)
hopefully fixed the multiple-interface iptables-save problem
Diffstat (limited to 'iptables.c')
-rw-r--r--iptables.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/iptables.c b/iptables.c
index 51aadddb..5e7db06f 100644
--- a/iptables.c
+++ b/iptables.c
@@ -736,19 +736,18 @@ parse_interface(const char *arg, char *vianame, unsigned char *mask)
else if (vianame[vialen - 1] == '+') {
memset(mask, 0xFF, vialen - 1);
memset(mask + vialen - 1, 0, IFNAMSIZ - vialen + 1);
- /* Remove `+' */
- vianame[vialen - 1] = '\0';
+ /* Don't remove `+' here! -HW */
} else {
/* Include nul-terminator in match */
memset(mask, 0xFF, vialen + 1);
memset(mask + vialen + 1, 0, IFNAMSIZ - vialen - 1);
- }
- for (i = 0; vianame[i]; i++) {
- if (!isalnum(vianame[i]) && vianame[i] != '_') {
- printf("Warning: wierd character in interface"
- " `%s' (No aliases, :, ! or *).\n",
- vianame);
- break;
+ for (i = 0; vianame[i]; i++) {
+ if (!isalnum(vianame[i]) && vianame[i] != '_') {
+ printf("Warning: wierd character in interface"
+ " `%s' (No aliases, :, ! or *).\n",
+ vianame);
+ break;
+ }
}
}
}
@@ -1165,10 +1164,6 @@ print_firewall(const struct ipt_entry *fw,
if (fw->ip.iniface[0] != '\0') {
strcat(iface, fw->ip.iniface);
- /* If it doesn't compare the nul-term, it's a
- wildcard. */
- if (fw->ip.iniface_mask[strlen(fw->ip.iniface)] == 0)
- strcat(iface, "+");
}
else if (format & FMT_NUMERIC) strcat(iface, "*");
else strcat(iface, "any");
@@ -1182,10 +1177,6 @@ print_firewall(const struct ipt_entry *fw,
if (fw->ip.outiface[0] != '\0') {
strcat(iface, fw->ip.outiface);
- /* If it doesn't compare the nul-term, it's a
- wildcard. */
- if (fw->ip.outiface_mask[strlen(fw->ip.outiface)] == 0)
- strcat(iface, "+");
}
else if (format & FMT_NUMERIC) strcat(iface, "*");
else strcat(iface, "any");