diff options
author | brooks <brooks@FreeBSD.org> | 2003-10-31 18:32:15 +0000 |
---|---|---|
committer | brooks <brooks@FreeBSD.org> | 2003-10-31 18:32:15 +0000 |
commit | f1e94c6f29b079e4ad9d9305ef3e90a719bcbbda (patch) | |
tree | 4d9e6671d486576767506230a4240131526fea49 /sbin/ipfw | |
parent | be546fdee455a96afdefee10d0bdba8547399f5b (diff) | |
download | FreeBSD-src-f1e94c6f29b079e4ad9d9305ef3e90a719bcbbda.zip FreeBSD-src-f1e94c6f29b079e4ad9d9305ef3e90a719bcbbda.tar.gz |
Replace the if_name and if_unit members of struct ifnet with new members
if_xname, if_dname, and if_dunit. if_xname is the name of the interface
and if_dname/unit are the driver name and instance.
This change paves the way for interface renaming and enhanced pseudo
device creation and configuration symantics.
Approved By: re (in principle)
Reviewed By: njl, imp
Tested On: i386, amd64, sparc64
Obtained From: NetBSD (if_xname)
Diffstat (limited to 'sbin/ipfw')
-rw-r--r-- | sbin/ipfw/ipfw2.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c index a7d9acc..7597ebd 100644 --- a/sbin/ipfw/ipfw2.c +++ b/sbin/ipfw/ipfw2.c @@ -1156,11 +1156,7 @@ show_ipfw(struct ip_fw *rule, int pcwidth, int bcwidth) if (cmdif->name[0] == '\0') printf(" %s %s", s, inet_ntoa(cmdif->p.ip)); - else if (cmdif->p.unit == -1) - printf(" %s %s*", s, cmdif->name); - else - printf(" %s %s%d", s, cmdif->name, - cmdif->p.unit); + printf(" %s %s", s, cmdif->name); } break; @@ -2144,7 +2140,8 @@ delete(int ac, char *av[]) * fill the interface structure. We do not check the name as we can * create interfaces dynamically, so checking them at insert time * makes relatively little sense. - * A '*' following the name means any unit. + * Interface names containing '*', '?', or '[' are assumed to be shell + * patterns which match interfaces. */ static void fill_iface(ipfw_insn_if *cmd, char *arg) @@ -2156,15 +2153,8 @@ fill_iface(ipfw_insn_if *cmd, char *arg) if (!strcmp(arg, "any")) cmd->o.len = 0; /* effectively ignore this command */ else if (!isdigit(*arg)) { - char *q; - - strncpy(cmd->name, arg, sizeof(cmd->name)); - cmd->name[sizeof(cmd->name) - 1] = '\0'; - /* find first digit or wildcard */ - for (q = cmd->name; *q && !isdigit(*q) && *q != '*'; q++) - continue; - cmd->p.unit = (*q == '*') ? -1 : atoi(q); - *q = '\0'; + strlcpy(cmd->name, arg, sizeof(cmd->name)); + cmd->p.glob = strpbrk(arg, "*?[") != NULL ? 1 : 0; } else if (!inet_aton(arg, &cmd->p.ip)) errx(EX_DATAERR, "bad ip address ``%s''", arg); } |