[RFC v3] Fixed Problems with Port mode changing

Jan Kraus mayosemmel at googlemail.com
Do Sep 15 21:45:20 CEST 2016


cleaned up config files (moved commands to script)

Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
---
Dieser Patch ist ungetest.
Änderungen in v3:
-reset von sysctl entfernt
-check auf "CLIENT/WAN/BATMAN" in network.$board im WebUi entfernt
---
 src/packages/fff/fff-network/ar71xx/network.mode   |  3 +-
 .../fff/fff-network/ar71xx/network.tl-mr3020-v1    | 23 ++------------
 .../fff/fff-network/ar71xx/network.tl-wa850re-v1   | 23 ++------------
 .../fff/fff-network/ar71xx/network.tl-wa860re-v1   | 23 ++------------
 .../fff/fff-network/ar71xx/network.ubnt-bullet-m   | 22 ++------------
 .../fff/fff-network/ar71xx/network.ubnt-loco-m-xw  | 24 ++-------------
 .../fff/fff-network/ar71xx/network.ubnt-nano-m     | 22 ++------------
 .../fff/fff-network/ar71xx/network.ubnt-unifi      | 22 ++------------
 .../fff-network/files/usr/sbin/configurenetwork    | 35 ++++++++++++++++++++++
 .../fff/fff-web/files/www/ssl/cgi-bin/ports.html   |  9 ++----
 10 files changed, 52 insertions(+), 154 deletions(-)

diff --git a/src/packages/fff/fff-network/ar71xx/network.mode b/src/packages/fff/fff-network/ar71xx/network.mode
index 6c07f68..124d93f 100644
--- a/src/packages/fff/fff-network/ar71xx/network.mode
+++ b/src/packages/fff/fff-network/ar71xx/network.mode
@@ -3,8 +3,7 @@
 ## if the routers interfaces differ from the standard WAN+4LAN-Ports
 ## +2Wireless APs.
 ## If you want to change their behavior, you can do so below.
-## After that you have to reset the config with following commands.
-#cp /rom/etc/sysctl.conf /etc/sysctl.conf
+## After that you have to reboot the router with following command.
 #reboot
 #
 ### The canonical syntax of this file is:
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
index 1198c3d..62f456a 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-mr3020-v1
@@ -3,28 +3,9 @@ SWITCHDEV=eth0
 CLIENT_PORTS=""
 WAN_PORTS=""
 BATMAN_PORTS=""
+ONE_PORT="YES"
 
 . /etc/network.mode
 
 ETHMESHMAC=eth0
-ROUTERMAC=eth0
-
-uci set network.$SWITCHDEV=interface
-uci set network.$SWITCHDEV.ifname=$SWITCHDEV
-uci set network.mesh.ifname="bat0"
-
-if [ "$ETHMODE" = "WAN" ] ; then
-  ## Activate for WAN:
-  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
-  uci set network.wan.ifname=$WANDEV
-elif [ "$ETHMODE" = "CLIENT" ] ; then
-  ## Activate Client:
-  uci set network.mesh.ifname="bat0 $SWITCHDEV"
-else
-  ## Activate BATMAN:
-  uci set network.ethmesh.ifname="$SWITCHDEV"
-  ETH0MAC="w2ap"
-fi
+ROUTERMAC=eth0
\ No newline at end of file
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
index e745b21..307a201 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa850re-v1
@@ -3,28 +3,9 @@ SWITCHDEV=eth0
 CLIENT_PORTS=""
 WAN_PORTS=""
 BATMAN_PORTS=""
+ONE_PORT="YES"
 
 . /etc/network.mode
 
 ETHMESHMAC=
-ROUTERMAC=w2mesh
-
-uci set network.$SWITCHDEV=interface
-uci set network.$SWITCHDEV.ifname=$SWITCHDEV
-uci set network.mesh.ifname="bat0"
-
-if [ "$ETHMODE" = "WAN" ] ; then
-  ## Activate for WAN:
-  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
-  uci set network.wan.ifname=$WANDEV
-elif [ "$ETHMODE" = "CLIENT" ] ; then
-  ## Activate Client:
-  uci set network.mesh.ifname="bat0 $SWITCHDEV"
-else
-  ## Activate BATMAN:
-  uci set network.ethmesh.ifname="$SWITCHDEV"
-  ETH0MAC="w2ap"
-fi
+ROUTERMAC=w2mesh
\ No newline at end of file
diff --git a/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1 b/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
index e745b21..307a201 100644
--- a/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
+++ b/src/packages/fff/fff-network/ar71xx/network.tl-wa860re-v1
@@ -3,28 +3,9 @@ SWITCHDEV=eth0
 CLIENT_PORTS=""
 WAN_PORTS=""
 BATMAN_PORTS=""
+ONE_PORT="YES"
 
 . /etc/network.mode
 
 ETHMESHMAC=
-ROUTERMAC=w2mesh
-
-uci set network.$SWITCHDEV=interface
-uci set network.$SWITCHDEV.ifname=$SWITCHDEV
-uci set network.mesh.ifname="bat0"
-
-if [ "$ETHMODE" = "WAN" ] ; then
-  ## Activate for WAN:
-  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
-  uci set network.wan.ifname=$WANDEV
-elif [ "$ETHMODE" = "CLIENT" ] ; then
-  ## Activate Client:
-  uci set network.mesh.ifname="bat0 $SWITCHDEV"
-else
-  ## Activate BATMAN:
-  uci set network.ethmesh.ifname="$SWITCHDEV"
-  ETH0MAC="w2ap"
-fi
+ROUTERMAC=w2mesh
\ No newline at end of file
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m b/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
index c16993d..307a201 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-bullet-m
@@ -3,27 +3,9 @@ SWITCHDEV=eth0
 CLIENT_PORTS=""
 WAN_PORTS=""
 BATMAN_PORTS=""
+ONE_PORT="YES"
 
 . /etc/network.mode
 
 ETHMESHMAC=
-ROUTERMAC=w2mesh
-
-uci set network.$SWITCHDEV=interface
-uci set network.$SWITCHDEV.ifname=$SWITCHDEV
-uci set network.mesh.ifname="bat0"
-
-if [ "$ETHMODE" = "WAN" ] ; then
-  ## Activate for WAN:
-  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
-  uci set network.wan.ifname=$WANDEV
-elif [ "$ETHMODE" = "CLIENT" ] ; then
-  ## Activate Client:
-  uci set network.mesh.ifname="bat0 $SWITCHDEV"
-else
-  ## Activate BATMAN:
-  uci set network.ethmesh.ifname="$SWITCHDEV"
-fi
+ROUTERMAC=w2mesh
\ No newline at end of file
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw b/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
index 2298117..307a201 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-loco-m-xw
@@ -3,29 +3,9 @@ SWITCHDEV=eth0
 CLIENT_PORTS=""
 WAN_PORTS=""
 BATMAN_PORTS=""
+ONE_PORT="YES"
 
 . /etc/network.mode
 
 ETHMESHMAC=
-ROUTERMAC=w2mesh
-
-uci set network.$SWITCHDEV=interface
-uci set network.$SWITCHDEV.ifname=$SWITCHDEV
-uci set network.mesh.ifname="bat0"
-uci set network.eth0.mtu="1500"
-
-
-if [ "$ETHMODE" = "WAN" ] ; then
-  ## Activate for WAN:
-  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
-  uci set network.wan.ifname=$WANDEV
-elif [ "$ETHMODE" = "CLIENT" ] ; then
-  ## Activate Client:
-  uci set network.mesh.ifname="bat0 $SWITCHDEV"
-else
-  ## Activate BATMAN:
-  uci set network.ethmesh.ifname="$SWITCHDEV"
-fi
+ROUTERMAC=w2mesh
\ No newline at end of file
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m b/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
index c16993d..307a201 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-nano-m
@@ -3,27 +3,9 @@ SWITCHDEV=eth0
 CLIENT_PORTS=""
 WAN_PORTS=""
 BATMAN_PORTS=""
+ONE_PORT="YES"
 
 . /etc/network.mode
 
 ETHMESHMAC=
-ROUTERMAC=w2mesh
-
-uci set network.$SWITCHDEV=interface
-uci set network.$SWITCHDEV.ifname=$SWITCHDEV
-uci set network.mesh.ifname="bat0"
-
-if [ "$ETHMODE" = "WAN" ] ; then
-  ## Activate for WAN:
-  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
-  uci set network.wan.ifname=$WANDEV
-elif [ "$ETHMODE" = "CLIENT" ] ; then
-  ## Activate Client:
-  uci set network.mesh.ifname="bat0 $SWITCHDEV"
-else
-  ## Activate BATMAN:
-  uci set network.ethmesh.ifname="$SWITCHDEV"
-fi
+ROUTERMAC=w2mesh
\ No newline at end of file
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
index c16993d..307a201 100644
--- a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifi
@@ -3,27 +3,9 @@ SWITCHDEV=eth0
 CLIENT_PORTS=""
 WAN_PORTS=""
 BATMAN_PORTS=""
+ONE_PORT="YES"
 
 . /etc/network.mode
 
 ETHMESHMAC=
-ROUTERMAC=w2mesh
-
-uci set network.$SWITCHDEV=interface
-uci set network.$SWITCHDEV.ifname=$SWITCHDEV
-uci set network.mesh.ifname="bat0"
-
-if [ "$ETHMODE" = "WAN" ] ; then
-  ## Activate for WAN:
-  echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
-  echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
-  uci set network.wan.ifname=$WANDEV
-elif [ "$ETHMODE" = "CLIENT" ] ; then
-  ## Activate Client:
-  uci set network.mesh.ifname="bat0 $SWITCHDEV"
-else
-  ## Activate BATMAN:
-  uci set network.ethmesh.ifname="$SWITCHDEV"
-fi
+ROUTERMAC=w2mesh
\ No newline at end of file
diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
index 3b21411..7c8429a 100755
--- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
+++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
@@ -65,6 +65,41 @@ if ! uci get network.$SWITCHDEV.ifname; then
     /etc/init.d/network restart
 fi
 
+if [ "$ONE_PORT" = "YES" ]; then
+    uci set network.$SWITCHDEV=interface
+    uci set network.$SWITCHDEV.ifname=$SWITCHDEV
+    if [ "$ETHMODE" = "WAN" ]; then
+        echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 1" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 1" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.autoconf = 1" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 1" >> /etc/sysctl.conf
+        uci set network.mesh.ifname="bat0"
+        uci set network.wan.ifname="$WANDEV"
+        uci del uci set network.ethmesh.ifname
+        uci del network.eth0.macaddr
+    elif [ "$ETHMODE" = "CLIENT" ] ; then
+        echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> /etc/sysctl.conf
+        uci set network.mesh.ifname="bat0 $SWITCHDEV"
+        uci set network.wan.ifname="eth1" #eth1 because it is default in config file
+        uci del network.ethmesh.ifname
+        uci del network.eth0.macaddr
+    elif [ "$ETHMODE" = "BATMAN" ] ; then
+        echo "net.ipv6.conf.$WANDEV.accept_ra_defrtr = 0" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.accept_ra_pinfo = 0" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.autoconf = 0" >> /etc/sysctl.conf
+        echo "net.ipv6.conf.$WANDEV.accept_ra_rtr_pref = 0" >> /etc/sysctl.conf
+        uci set network.mesh.ifname="bat0"
+        uci set network.wan.ifname="eth1" #eth1 because it is default in config file
+        uci set network.ethmesh.ifname="$SWITCHDEV"
+        ETH0MAC="w2ap"
+    fi
+    uci commit
+    /etc/init.d/network restart
+fi
+
 if [[ -n "$ETHMESHMAC" ]]; then
     if uci get network.ethmesh.macaddr
     then
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
index c2d5890..26de8d5 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
@@ -5,7 +5,6 @@
 if [ "$REQUEST_METHOD" == "POST" ] ; then
 	sed -i '/^.*# set via WebUI/d' /etc/network.mode
 	echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.mode
-	cp /rom/etc/sysctl.conf /etc/sysctl.conf
 	do_reboot=1
 	MSG='<span class="green">Port Modus geändert! Router startet neu...</span>'
 fi
@@ -67,12 +66,8 @@ fi
 				<th style="width: 1em;">Anschluss Modus:</th>
 				<td>
 					<select name="mode">
-						<% if grep ETHMODE /etc/network.$(uci -q get board.model.name) | grep -q WAN ; then %>
-							<option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n selected %>>WAN</option>
-						<% fi %>
-						<% if grep ETHMODE /etc/network.$(uci -q get board.model.name) | grep -q CLIENT ; then %>
-							<option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n selected %>>Client</option>
-						<% fi %>
+						<option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n selected %>>WAN</option>
+						<option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n selected %>>Client</option>
 						<option value="BATMAN" <% [ "$ETHMODE" == "BATMAN" ] && echo -n selected %>>BATMAN</option>
 					</select>
 				</td>
-- 
2.1.4



Mehr Informationen über die Mailingliste franken-dev