summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ngctl/main.c
diff options
context:
space:
mode:
authorarchie <archie@FreeBSD.org>1999-10-27 22:17:18 +0000
committerarchie <archie@FreeBSD.org>1999-10-27 22:17:18 +0000
commit869bd7a8e7f60349be187b9ec6cdc090b695ff0d (patch)
treeaf16742e0fea4939917cf29be23df6bc9d0eae7e /usr.sbin/ngctl/main.c
parent053f9da1114d571b390e3b3c8b8e61b5098320e3 (diff)
downloadFreeBSD-src-869bd7a8e7f60349be187b9ec6cdc090b695ff0d.zip
FreeBSD-src-869bd7a8e7f60349be187b9ec6cdc090b695ff0d.tar.gz
If we get an EPROTONOSUPP error when trying to create the netgraph socket
node, it's most likely because the "ng_socket.ko" KLD is not loaded yet. So make an attempt to load it before giving up.
Diffstat (limited to 'usr.sbin/ngctl/main.c')
-rw-r--r--usr.sbin/ngctl/main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr.sbin/ngctl/main.c b/usr.sbin/ngctl/main.c
index 9a54cc7..f6d68b9 100644
--- a/usr.sbin/ngctl/main.c
+++ b/usr.sbin/ngctl/main.c
@@ -42,6 +42,7 @@
#define PROMPT "+ "
#define MAX_ARGS 512
#define WHITESPACE " \t\r\n\v\f"
+#define NG_SOCKET_KLD "ng_socket.ko"
/* Internal functions */
static int ReadFile(FILE *fp);
@@ -134,8 +135,16 @@ main(int ac, char *av[])
av += optind;
/* Create a new socket node */
- if (NgMkSockNode(name, &csock, &dsock) < 0)
+ if (NgMkSockNode(name, &csock, &dsock) < 0) {
+ if (errno == EPROTONOSUPPORT) {
+ if (kldload(NG_SOCKET_KLD) < 0)
+ err(EX_OSERR, "can't load %s", NG_SOCKET_KLD);
+ if (NgMkSockNode(name, &csock, &dsock) >= 0)
+ goto gotNode;
+ }
err(EX_OSERR, "can't create node");
+ }
+gotNode:
/* Do commands as requested */
if (ac == 0) {
OpenPOWER on IntegriCloud