diff options
Diffstat (limited to 'emulators/virtualbox-ose-kmod-71/files/vboxnet.in')
-rw-r--r-- | emulators/virtualbox-ose-kmod-71/files/vboxnet.in | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/emulators/virtualbox-ose-kmod-71/files/vboxnet.in b/emulators/virtualbox-ose-kmod-71/files/vboxnet.in new file mode 100644 index 000000000000..af3d18884273 --- /dev/null +++ b/emulators/virtualbox-ose-kmod-71/files/vboxnet.in @@ -0,0 +1,67 @@ +#!/bin/sh + +# PROVIDE: vboxnet +# BEFORE: NETWORKING +# REQUIRE: FILESYSTEMS +# KEYWORD: nojail + +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# vboxnet_enable (bool): Set to NO by default. +# Set it to YES to load network related kernel modules on startup + +. /etc/rc.subr + +name="vboxnet" +rcvar=vboxnet_enable +start_cmd="vboxnet_start" +stop_cmd="vboxnet_stop" + +vboxnet_modules="vboxdrv vboxnetflt:ng_vboxnetflt vboxnetadp" + +vboxnet_start() +{ + local _k _m + + for _m in ${vboxnet_modules}; do + _k=${_m%:*} + _m=${_m#*:} + if ! kldstat -q -m ${_m}; then + if ! kldload ${_k} > /dev/null 2>&1; then + warn "Can't load ${_k} module." + return 1 + fi + fi + done + + # initialize configured host-only interfaces + LD_LIBRARY_PATH=%%PREFIX%%/lib %%PREFIX%%/bin/VBoxManage list hostonlyifs >/dev/null +} + +vboxnet_stop() +{ + local _k _m _r + + _r= + for _m in ${vboxnet_modules}; do + _r="${_m} ${_r}" + done + for _m in ${_r}; do + _k=${_m%:*} + _m=${_m#*:} + if kldstat -q -m ${_m}; then + if ! kldunload ${_k} > /dev/null 2>&1; then + warn "Can't unload ${_k} module." + return 1 + fi + fi + done +} + +load_rc_config $name + +: ${vboxnet_enable="NO"} + +run_rc_command "$1" |