diff --git a/files/etc/hotplug.d/iface/11-meshrouting b/files/etc/hotplug.d/iface/11-meshrouting index 561e61a9..050b3215 100755 --- a/files/etc/hotplug.d/iface/11-meshrouting +++ b/files/etc/hotplug.d/iface/11-meshrouting @@ -4,6 +4,7 @@ configmode=$(uci -q -c /etc/local/uci/ get hsmmmesh.settings.config) if [ "$configmode" != "mesh" ] ; then exit 0; fi +xlink=$(uci -q -c /etc/config.mesh/ show xlink | grep "ifname='${DEVICE}'") # This section will generate rtnetlink errors when the rule doesn't exist. # This will be most common in the case of ifup. @@ -16,7 +17,7 @@ if [ "$ACTION" = "ifdown" ] || [ "$ACTION" = "ifup" ] ; then echo "Deleting specific routing rules that may exist." - if [ "$INTERFACE" == "wifi" ] || [ "$INTERFACE" == "dtdlink" ] ; then + if [ "$INTERFACE" == "wifi" ] || [ "$INTERFACE" == "dtdlink" ] || [ "${INTERFACE:0:3}" == "tun" ] || [ "$xlink" != "" ] ; then ip rule del pref 20010 iif $DEVICE lookup 29 ip rule del pref 20020 iif $DEVICE lookup 30 ip rule del pref 20080 iif $DEVICE lookup 31 @@ -49,7 +50,7 @@ if [ "$ACTION" = "ifup" ] ; then echo "Setting routing rules." - if [ "$INTERFACE" == "wifi" ] || [ "$INTERFACE" == "dtdlink" ]; then + if [ "$INTERFACE" == "wifi" ] || [ "$INTERFACE" == "dtdlink" ] || [ "${INTERFACE:0:3}" = "tun" ] || [ "$xlink" != "" ]; then if [ "$(/sbin/uci -q get aredn.@dmz[0].mode)" != "0" ] ; then ip rule add pref 20010 iif $DEVICE lookup 29 fi diff --git a/files/etc/hotplug.d/iface/13-vtun b/files/etc/hotplug.d/iface/13-vtun deleted file mode 100644 index a82c7b78..00000000 --- a/files/etc/hotplug.d/iface/13-vtun +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# Handles setting up rules for tunnel interfaces -if [ -x "/usr/sbin/vtund" ] -then - ISVPN=false - case "$INTERFACE" in - tun*) - ISVPN=true; - ;; - esac - - if [ "$ISVPN" = true ]; then - INTF=tun${INTERFACE:3} - if [ $ACTION = "ifup" ] ; then - /usr/local/bin/vtun_up $INTF up - # echo "$INTF up" >> /tmp/vtundscript.log - elif [ $ACTION = "ifdown" ] ; then - /usr/local/bin/vtun_up $INTF down - # echo "$INTF down" >> /tmp/vtundscript.log - fi - fi -fi diff --git a/files/etc/hotplug.d/iface/15-xlink b/files/etc/hotplug.d/iface/15-xlink deleted file mode 100755 index 2b25c886..00000000 --- a/files/etc/hotplug.d/iface/15-xlink +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# Handles setting up rules for extra interfaces - -islink=$(uci -q -c /etc/config.mesh/ show xlink | grep "ifname='${INTERFACE}'") -if [ "${islink}" != "" ]; then - if [ ${ACTION} = "ifup" ] ; then - /usr/local/bin/vtun_up ${INTERFACE} up - elif [ ${ACTION} = "ifdown" ] ; then - /usr/local/bin/vtun_up ${INTERFACE} down - fi -fi diff --git a/files/usr/local/bin/vtun_up b/files/usr/local/bin/vtun_up deleted file mode 100755 index 4df4f1d5..00000000 --- a/files/usr/local/bin/vtun_up +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -<<'LICENSE' - Part of AREDN -- Used for creating Amateur Radio Emergency Data Networks - Copyright (C) 2015 Joe Ayers ae6xe@arrl.net - See Contributors file for additional contributors - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation version 3 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - - Additional Terms: - - Additional use restrictions exist on the AREDN(TM) trademark and logo. - See AREDNLicense.txt for more info. - - Attributions to the AREDN Project must be retained in the source code. - If importing this code into a new or existing project attribution - to the AREDN project must be added to the source code. - - You must not misrepresent the origin of the material contained within. - - Modified versions must be modified to attribute to the original source - and be marked in reasonable ways as differentiate it from the original - version. - -LICENSE -# This script assumes a pre-existing OpenWRT-UCI netfilter table structure -# $1 = tun0 | tun1 | ... | tun9 -# $2 = up | down - -interface=$1 -action=$2 -configmode=$(uci -q -c /etc/local/uci/ get hsmmmesh.settings.config) -echo "Firewall rules for $interface $action" - -# Do nothing if node is not in mesh mode -if [ "$configmode" != "mesh" ] ; then exit 0; fi - -if [ "$action" = "up" ] ; then - # Adding route policies for tunnel interface - # identical to hotplug for dtdlink - if ( ! ip rule list | egrep "^20020:.*$interface.*30" > /dev/null ) then - if [ "$(/sbin/uci -q get aredn.@dmz[0].mode)" != "0" ] ; then - ip rule add pref 20010 iif "$interface" lookup 29 # local interfaces - fi - ip rule add pref 20020 iif "$interface" lookup 30 # mesh - ip rule add pref 20080 iif "$interface" lookup 31 # gateway - ip rule add pref 20090 iif "$interface" lookup main - ip rule add pref 20099 iif "$interface" unreachable - fi -else - # Remove route policies for tunnel interface - ip rule del pref 20010 iif "$interface" lookup 29 - ip rule del pref 20020 iif "$interface" lookup 30 - ip rule del pref 20080 iif "$interface" lookup 31 - ip rule del pref 20090 iif "$interface" lookup main - ip rule del pref 20099 iif "$interface" unreachable -fi - -exit 0;