diff options
author | brian <brian@FreeBSD.org> | 2002-04-15 00:14:40 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2002-04-15 00:14:40 +0000 |
commit | 99e79d7fa0bf74e995f0f4db81d90c3795f6b259 (patch) | |
tree | c08a48b296b784be8bba63609d75706ec949b801 /usr.sbin/ppp/defs.c | |
parent | 2ff28d13ad521facf74c76edf050d83053409768 (diff) | |
download | FreeBSD-src-99e79d7fa0bf74e995f0f4db81d90c3795f6b259.zip FreeBSD-src-99e79d7fa0bf74e995f0f4db81d90c3795f6b259.tar.gz |
When it's necessary to kldload tun(4), don't forget to re-try to open
tun0.
Submitted by: qhwt@myrealbox.com
Diffstat (limited to 'usr.sbin/ppp/defs.c')
-rw-r--r-- | usr.sbin/ppp/defs.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/usr.sbin/ppp/defs.c b/usr.sbin/ppp/defs.c index b61b7de..a4929cc 100644 --- a/usr.sbin/ppp/defs.c +++ b/usr.sbin/ppp/defs.c @@ -420,19 +420,25 @@ Concatinate(char *buf, size_t sz, int argc, const char *const *argv) } } -void +int loadmodules(int how, const char *module, ...) { + int loaded = 0; #if defined(__FreeBSD__) && !defined(NOKLDLOAD) va_list ap; va_start(ap, module); while (module != NULL) { - if (modfind(module) == -1 && ID0kldload(module) == -1 && - how == LOAD_VERBOSLY) - log_Printf(LogWARN, "%s: Cannot load module\n", module); + if (modfind(module) == -1) { + if (ID0kldload(module) == -1) { + if (how == LOAD_VERBOSLY) + log_Printf(LogWARN, "%s: Cannot load module\n", module); + } else + loaded++; + } module = va_arg(ap, const char *); } va_end(ap); #endif + return loaded; } |