--- embedtools/src/get1steth.c 2009/12/28 13:25:04 1.1.2.4 +++ embedtools/src/get1steth.c 2009/12/28 14:22:25 1.1.2.5 @@ -17,6 +17,33 @@ static void Usage() "\n", compiled, compiledby, compilehost); } +static int kldLoad() +{ + struct module_stat mstat; + register int i, j; + u_char flg = 0; + + memset(&mstat, 0, sizeof mstat); + mstat.version = sizeof mstat; + for (i = kldnext(0); i > 0; i = kldnext(i)) + for (j = kldfirstmod(i); j > 0; j = modfnext(j)) { + if (modstat(j, &mstat) == -1) + continue; + + if (!strncmp(MODVLAN, mstat.name, sizeof MODVLAN)) { + flg = 1; + break; + } + } + if (flg) + return 0; + + if (kldload(MODVLAN) == -1) + return -1; + + return 1; +} + // ------------------------------- int main(int argc, char **argv) @@ -71,6 +98,13 @@ int main(int argc, char **argv) closelog(); return 0; } + + s = kldLoad(); + if (s == -1) { + printf("Error:: kldload(if_vlan) Can`t operate with vlans ...\n"); + return 1; + } else + VERB(1) printf("VLAN module ... %s\n", s ? "Loaded" : "Already loaded"); // create vlan memset(&ifr, 0, sizeof ifr);