summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2003-10-31 18:32:15 +0000
committerbrooks <brooks@FreeBSD.org>2003-10-31 18:32:15 +0000
commitf1e94c6f29b079e4ad9d9305ef3e90a719bcbbda (patch)
tree4d9e6671d486576767506230a4240131526fea49 /sys/netinet6
parentbe546fdee455a96afdefee10d0bdba8547399f5b (diff)
downloadFreeBSD-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 'sys/netinet6')
-rw-r--r--sys/netinet6/ip6_fw.c17
-rw-r--r--sys/netinet6/ip6_fw.h2
-rw-r--r--sys/netinet6/ip6_mroute.c7
3 files changed, 15 insertions, 11 deletions
diff --git a/sys/netinet6/ip6_fw.c b/sys/netinet6/ip6_fw.c
index ce56a0d..370ff78 100644
--- a/sys/netinet6/ip6_fw.c
+++ b/sys/netinet6/ip6_fw.c
@@ -326,14 +326,17 @@ iface_match(struct ifnet *ifp, union ip6_fw_if *ifu, int byname)
{
/* Check by name or by IP address */
if (byname) {
- /* Check unit number (-1 is wildcard) */
- if (ifu->fu_via_if.unit != -1
- && ifp->if_unit != ifu->fu_via_if.unit)
- return (0);
/* Check name */
- if (strncmp(ifp->if_name, ifu->fu_via_if.name, IP6FW_IFNLEN))
- return (0);
- return (1);
+ if (ifu->fu_via_if.glob) {
+ if (fnmatch(ifu->fu_via_if.name, ifp->if_xname, 0)
+ == FNM_NOMATCH)
+ return(0);
+ } else {
+ if (strncmp(ifp->if_xname, ifu->fu_via_if.name,
+ IP6FW_IFNLEN) != 0)
+ return(0);
+ }
+ return(1);
} else if (!IN6_IS_ADDR_UNSPECIFIED(&ifu->fu_via_ip6)) { /* Zero == wildcard */
struct ifaddr *ia;
diff --git a/sys/netinet6/ip6_fw.h b/sys/netinet6/ip6_fw.h
index 1866ccf..03df44f 100644
--- a/sys/netinet6/ip6_fw.h
+++ b/sys/netinet6/ip6_fw.h
@@ -68,7 +68,7 @@ union ip6_fw_if {
struct { /* Specified by interface name */
#define IP6FW_IFNLEN IFNAMSIZ
char name[IP6FW_IFNLEN];
- short unit; /* -1 means match any unit */
+ short glob; /* Is name a pattern or a name? */
} fu_via_if;
};
diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c
index 8e4dc45..14cf7a6 100644
--- a/sys/netinet6/ip6_mroute.c
+++ b/sys/netinet6/ip6_mroute.c
@@ -584,7 +584,8 @@ add_m6if(mifcp)
if (mifcp->mif6c_flags & MIFF_REGISTER) {
if (reg_mif_num == (mifi_t)-1) {
- multicast_register_if.if_name = "register_mif";
+ strlcpy(multicast_register_if.if_xname, "register_mif",
+ IFNAMSIZ);
multicast_register_if.if_flags |= IFF_LOOPBACK;
multicast_register_if.if_index = mifcp->mif6c_mifi;
reg_mif_num = mifcp->mif6c_mifi;
@@ -626,9 +627,9 @@ add_m6if(mifcp)
#ifdef MRT6DEBUG
if (mrt6debug)
log(LOG_DEBUG,
- "add_mif #%d, phyint %s%d\n",
+ "add_mif #%d, phyint %s\n",
mifcp->mif6c_mifi,
- ifp->if_name, ifp->if_unit);
+ ifp->if_xname);
#endif
return (0);
OpenPOWER on IntegriCloud