From e6e4bcef4357616b146553ad1ac922c436b9bd0f Mon Sep 17 00:00:00 2001 From: brian Date: Tue, 16 Nov 1999 21:57:34 +0000 Subject: Use modfind() to check if a kld is already loaded. Submitted mostly by: green --- usr.sbin/ppp/ether.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'usr.sbin/ppp/ether.c') diff --git a/usr.sbin/ppp/ether.c b/usr.sbin/ppp/ether.c index da20f9f..52ae083 100644 --- a/usr.sbin/ppp/ether.c +++ b/usr.sbin/ppp/ether.c @@ -49,6 +49,7 @@ #include #if defined(__FreeBSD__) && !defined(NOKLDLOAD) #include +#include #endif #include #include @@ -409,22 +410,15 @@ ether_Create(struct physical *p) int ifacelen, providerlen, oldflag; char connectpath[sizeof dev->hook + 2]; /* .: */ -#ifdef KLDSYM_LOOKUP - /* First make sure we've got the right code loaded */ - char basesym[] = "ng_make_node", socksym[] = "ngdomain"; - struct kld_sym_lookup baselookup = { sizeof baselookup, basesym, 0, 0 }; - struct kld_sym_lookup socklookup = { sizeof socklookup, socksym, 0, 0 }; -#endif - p->fd--; /* We own the device - change fd */ -#ifdef KLDSYM_LOOKUP - if (kldsym(0, KLDSYM_LOOKUP, &baselookup) == -1) { - log_Printf(LogWARN, "Can't run without options NETGRAPH in the kernel\n"); +#if defined(__FreeBSD__) && !defined(NOKLDLOAD) + if (modfind("netgraph") == -1) { + log_Printf(LogWARN, "Netgraph is not built into the kernel\n"); return NULL; } - if (kldsym(0, KLDSYM_LOOKUP, &socklookup) == -1 && + if (modfind("ng_socket") == -1 && ID0kldload("ng_socket") == -1) { log_Printf(LogWARN, "kldload: ng_socket: %s\n", strerror(errno)); return NULL; -- cgit v1.1