diff options
author | brian <brian@FreeBSD.org> | 1999-09-22 00:40:47 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 1999-09-22 00:40:47 +0000 |
commit | 531472ba31cba86db696789d70af350ac50faa0c (patch) | |
tree | c57202a4f821be33d494a67c4a12ed7f73d3a39c /usr.sbin/ppp/id.c | |
parent | 227027e9978c1e9aada6ef823c687b00c69e6436 (diff) | |
download | FreeBSD-src-531472ba31cba86db696789d70af350ac50faa0c.zip FreeBSD-src-531472ba31cba86db696789d70af350ac50faa0c.tar.gz |
Do a kldload() if we get ENXIO trying to open /dev/tun0
Originally submitted by: green
Diffstat (limited to 'usr.sbin/ppp/id.c')
-rw-r--r-- | usr.sbin/ppp/id.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/usr.sbin/ppp/id.c b/usr.sbin/ppp/id.c index 4aaba37..79dec72 100644 --- a/usr.sbin/ppp/id.c +++ b/usr.sbin/ppp/id.c @@ -26,7 +26,7 @@ * $FreeBSD$ */ -#include <sys/types.h> +#include <sys/param.h> #include <sys/socket.h> #include <sys/un.h> @@ -37,6 +37,9 @@ #include <stdio.h> #include <string.h> #include <sysexits.h> +#if defined(__FreeBSD__) && !defined(NOKLDLOAD) +#include <sys/linker.h> +#endif #include <unistd.h> #ifdef __OpenBSD__ #include <util.h> @@ -265,3 +268,17 @@ ID0kill(pid_t pid, int sig) ID0setuser(); return result; } + +#ifdef KLDSYM_LOOKUP +int +ID0kldload(const char *dev) +{ + int result; + + ID0set0(); + result = kldload(dev); + log_Printf(LogID0, "%d = kldload(\"%s\")\n", result, dev); + ID0setuser(); + return result; +} +#endif |