summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/id.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1999-09-22 00:40:47 +0000
committerbrian <brian@FreeBSD.org>1999-09-22 00:40:47 +0000
commit531472ba31cba86db696789d70af350ac50faa0c (patch)
treec57202a4f821be33d494a67c4a12ed7f73d3a39c /usr.sbin/ppp/id.c
parent227027e9978c1e9aada6ef823c687b00c69e6436 (diff)
downloadFreeBSD-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.c19
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
OpenPOWER on IntegriCloud