]> git.ipfire.org Git - people/jschlag/network.git/commitdiff
Add functionality to identify tun/tap devices
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 17 Oct 2015 14:51:26 +0000 (16:51 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 17 Oct 2015 14:51:26 +0000 (16:51 +0200)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/functions/functions.device

index a851b669d50e864f358549e3620ce8bd108ce59c..a79b81d58e6216e0121d3b9aebbcde546facf44f 100644 (file)
@@ -313,6 +313,13 @@ device_is_serial() {
        serial_exists $@
 }
 
+# Returns true if a device is a tun device
+device_is_tun() {
+       local device="${1}"
+
+       [ -e "${SYS_CLASS_NET}/${device}/tun_flags" ]
+}
+
 # Check if the device is a physical network interface
 device_is_ethernet() {
        local device=${1}
@@ -338,6 +345,9 @@ device_is_ethernet() {
        device_is_dummy ${device} && \
                return ${EXIT_ERROR}
 
+       device_is_tun ${device} && \
+               return ${EXIT_ERROR}
+
        return ${EXIT_OK}
 }
 
@@ -377,6 +387,9 @@ device_get_type() {
        elif device_is_dummy ${device}; then
                echo "dummy"
 
+       elif device_is_tun ${device}; then
+               echo "tun"
+
        elif device_is_ethernet ${device}; then
                echo "ethernet"