summaryrefslogtreecommitdiffstats
path: root/if-bsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'if-bsd.c')
-rw-r--r--if-bsd.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/if-bsd.c b/if-bsd.c
index 2b8b9375..43170bd7 100644
--- a/if-bsd.c
+++ b/if-bsd.c
@@ -369,72 +369,3 @@ manage_link(int fd)
}
}
}
-
-static void
-discover_link(struct interface **ifs, int argc, char * const *argv,
- struct ifreq *ifr)
-{
- struct interface *ifp, *ifl = NULL;
- struct sockaddr_dl *sdl;
- int n;
-
- if (ifr->ifr_addr.sa_family != AF_LINK)
- return;
- for (ifp = *ifs; ifp; ifp = ifp->next) {
- if (strcmp(ifp->name, ifr->ifr_name) == 0)
- return;
- ifl = ifp;
- }
- if (argc > 0) {
- for (n = 0; n < argc; n++)
- if (strcmp(ifr->ifr_name, argv[n]) == 0)
- break;
- if (n == argc)
- return;
- } else {
- for (n = 0; n < ifdc; n++)
- if (fnmatch(ifdv[n], ifr->ifr_name, 0) == 0)
- return;
- for (n = 0; n < ifac; n++)
- if (fnmatch(ifav[n], ifr->ifr_name, 0) == 0)
- break;
- if (ifac && n == ifac)
- return;
- }
- if (!(ifp = init_interface(ifr->ifr_name)))
- return;
- sdl = (struct sockaddr_dl *)(void *)&ifr->ifr_addr;
- switch(sdl->sdl_type) {
- case IFT_ETHER:
- ifp->family = ARPHRD_ETHER;
- ifp->hwlen = sdl->sdl_alen;
- break;
- case IFT_IEEE1394:
- ifp->family = ARPHRD_IEEE1394;
- ifp->hwlen = sdl->sdl_alen;
- break;
- case IFT_LOOP:
- /* We don't allow loopback unless requested */
- if (argc == 0 && ifac == 0) {
- free(ifp);
- ifp = NULL;
- }
- break;
- }
- if (ifp && ifp->hwlen)
- memcpy(ifp->hwaddr, LLADDR(sdl), ifp->hwlen);
- if (ifl)
- ifl->next = ifp;
- else
- *ifs = ifp;
-}
-
-struct interface *
-discover_interfaces(int argc, char * const *argv)
-{
- struct interface *ifs = NULL;
-
- do_interface(NULL, discover_link, &ifs, argc, argv,
- NULL, NULL, NULL, 2);
- return ifs;
-}