diff --git a/examples/tuntap b/examples/tuntap new file mode 100644 index 0000000..2917875 --- /dev/null +++ b/examples/tuntap @@ -0,0 +1,6 @@ +INTERFACE='tun0' +CONNECTION='tuntap' +MODE='tun' +USER='nobody' +GROUP='nobody' + diff --git a/src/connections/tuntap b/src/connections/tuntap new file mode 100644 index 0000000..61eab22 --- /dev/null +++ b/src/connections/tuntap @@ -0,0 +1,38 @@ +#! /bin/bash +. /usr/lib/network/network + +tuntap_up() { + load_profile "$1" + + if [ -e /sys/class/net/$INTERFACE ]; then + report_fail "Interface $INTERFACE already exists." + exit 1 + else + ip tuntap add dev "$INTERFACE" mode "$MODE" \ + user "$USER" group "$GROUP" &>/dev/null + fi + bring_interface up "$INTERFACE" + "$CONN_DIR/ethernet" up "$1" + return 0 +} + +tuntap_down() { + load_profile "$1" + + "$CONN_DIR/ethernet" down "$1" + bring_interface down "$INTERFACE" + ip tuntap del "$INTERFACE" mode "$MODE" &>/dev/null + return 0 +} + +tuntap_status() { + if [ -e /sys/class/net/$INTERFACE ]; then + return 0 + else + return 1 + fi +} + +tuntap_$1 "$2" +exit $? +# vim: set ts=4 et sw=4 tw=0: