Message ID | 1503333988-5080-2-git-send-email-freifunk@adrianschmutzler.de |
---|---|
State | Accepted |
Headers | show |
diff --git a/src/packages/fff/fff-network/Makefile b/src/packages/fff/fff-network/Makefile index d34016c..23a1345 100644 --- a/src/packages/fff/fff-network/Makefile +++ b/src/packages/fff/fff-network/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-network -PKG_VERSION:=0.0.7 +PKG_VERSION:=8 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/fff-network diff --git a/src/packages/fff/fff-network/ar71xx/network.cpe210 b/src/packages/fff/fff-network/ar71xx/network.cpe210 index 8180789..6764c64 100644 --- a/src/packages/fff/fff-network/ar71xx/network.cpe210 +++ b/src/packages/fff/fff-network/ar71xx/network.cpe210 @@ -8,20 +8,5 @@ ETHMESHMAC="w2ap" . /etc/network.mode -#LAN0: default: BATMAN -if [ "${LAN0MODE}" = "BATMAN" ] ; then - BATMAN_PORTS="${BATMAN_PORTS} 5" -elif [ "${LAN0MODE}" = "CLIENT" ] ; then - CLIENT_PORTS="${CLIENT_PORTS} 5" -else - WAN_PORTS="${WAN_PORTS} 5" -fi - -#LAN1: default: BATMAN -if [ "${LAN1MODE}" = "WAN" ] ; then - WAN_PORTS="${WAN_PORTS} 4" -elif [ "${LAN1MODE}" = "CLIENT" ] ; then - CLIENT_PORTS="${CLIENT_PORTS} 4" -else - BATMAN_PORTS="${BATMAN_PORTS} 4" -fi +LAN0PORT=5 +LAN1PORT=4 diff --git a/src/packages/fff/fff-network/ar71xx/network.cpe510 b/src/packages/fff/fff-network/ar71xx/network.cpe510 index 8180789..6764c64 100644 --- a/src/packages/fff/fff-network/ar71xx/network.cpe510 +++ b/src/packages/fff/fff-network/ar71xx/network.cpe510 @@ -8,20 +8,5 @@ ETHMESHMAC="w2ap" . /etc/network.mode -#LAN0: default: BATMAN -if [ "${LAN0MODE}" = "BATMAN" ] ; then - BATMAN_PORTS="${BATMAN_PORTS} 5" -elif [ "${LAN0MODE}" = "CLIENT" ] ; then - CLIENT_PORTS="${CLIENT_PORTS} 5" -else - WAN_PORTS="${WAN_PORTS} 5" -fi - -#LAN1: default: BATMAN -if [ "${LAN1MODE}" = "WAN" ] ; then - WAN_PORTS="${WAN_PORTS} 4" -elif [ "${LAN1MODE}" = "CLIENT" ] ; then - CLIENT_PORTS="${CLIENT_PORTS} 4" -else - BATMAN_PORTS="${BATMAN_PORTS} 4" -fi +LAN0PORT=5 +LAN1PORT=4 diff --git a/src/packages/fff/fff-network/ar71xx/network.gl-ar150 b/src/packages/fff/fff-network/ar71xx/network.gl-ar150 index 4e59b86..61ce71a 100644 --- a/src/packages/fff/fff-network/ar71xx/network.gl-ar150 +++ b/src/packages/fff/fff-network/ar71xx/network.gl-ar150 @@ -1,19 +1,12 @@ WANDEV=eth0 SWITCHDEV=eth1 WAN_PORTS= +BATMAN_PORTS="0t" +CLIENT_PORTS="0t" ETHMESHMAC=eth1 ROUTERMAC=eth0 . /etc/network.mode -if [ "$ETHMODE" = "CLIENT" ] ; then - ## Activate Client: - CLIENT_PORTS="1 0t" - BATMAN_PORTS="0t" -else - ## Activate BATMAN: - BATMAN_PORTS="1 0t" - CLIENT_PORTS="0t" -fi - +ETHPORT=1 diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork index 5b06009..c6b3113 100755 --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork @@ -12,6 +12,61 @@ BOARD="$(uci get board.model.name)" . /etc/network.$BOARD +if [ -s /etc/network.config ] ; then + . /etc/network.config +else + echo "CLIENT_PORTS='$CLIENT_PORTS'" > /etc/network.config + echo "BATMAN_PORTS='$BATMAN_PORTS'" >> /etc/network.config + if [ -n "$WAN_PORTS" ] ; then + echo "WAN_PORTS='$WAN_PORTS'" >> /etc/network.config + fi + if [ "$ONE_PORT" = "YES" ] || [ -n "$ETHPORT" ] ; then + echo "ETHMODE='$ETHMODE' # use BATMAN, CLIENT or WAN" >> /etc/network.config + fi + if [ -n "$LAN0PORT" ] ; then + echo "LAN0MODE='$LAN0MODE' # use BATMAN, CLIENT or WAN" >> /etc/network.config + fi + if [ -n "$LAN1PORT" ] ; then + echo "LAN1MODE='$LAN1MODE' # use BATMAN, CLIENT or WAN" >> /etc/network.config + fi + echo "FORCEPARSE='0' # Parse at: 0=first boot only, 1=every reboot, 2=next reboot (once)" >> /etc/network.config +fi + +if [ "$FORCEPARSE" = '2' ] ; then + sed -i '/^FORCEPARSE/d' /etc/network.config + echo "FORCEPARSE='0' # Parse at: 0=first boot only, 1=every reboot, 2=next reboot (once)" >> /etc/network.config + FORCEPARSE='1' +fi + +if [ -n "$ETHPORT" ] ; then + #LAN@AR150: default: BATMAN + if [ "${ETHMODE}" = "BATMAN" ] ; then + BATMAN_PORTS="${BATMAN_PORTS} ${ETHPORT}" + else + CLIENT_PORTS="${CLIENT_PORTS} ${ETHPORT}" + fi +fi +if [ -n "$LAN0PORT" ] ; then + #LAN0@two-port: default: BATMAN + if [ "${LAN0MODE}" = "BATMAN" ] ; then + BATMAN_PORTS="${BATMAN_PORTS} ${LAN0PORT}" + elif [ "${LAN0MODE}" = "CLIENT" ] ; then + CLIENT_PORTS="${CLIENT_PORTS} ${LAN0PORT}" + else + WAN_PORTS="${WAN_PORTS} ${LAN0PORT}" + fi +fi +if [ -n "$LAN1PORT" ] ; then + #LAN1@two-port: default: BATMAN + if [ "${LAN1MODE}" = "WAN" ] ; then + WAN_PORTS="${WAN_PORTS} ${LAN1PORT}" + elif [ "${LAN1MODE}" = "CLIENT" ] ; then + CLIENT_PORTS="${CLIENT_PORTS} ${LAN1PORT}" + else + BATMAN_PORTS="${BATMAN_PORTS} ${LAN1PORT}" + fi +fi + if ! uci -q get network.$SWITCHDEV > /dev/null || [ "$FORCEPARSE" = '1' ] ; then SWITCHHW=$(swconfig list | awk '{ print $4 }') diff --git a/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysupgrade b/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysupgrade index 61f2d1f..ab6f2de 100644 --- a/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysupgrade +++ b/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff-sysupgrade @@ -7,6 +7,6 @@ cat > /etc/sysupgrade.conf <<-__EOF__ /etc/dropbear/dropbear_dss_host_key /etc/dropbear/dropbear_rsa_host_key /etc/dropbear/authorized_keys -/etc/network.mode +/etc/network.config /etc/config/system __EOF__ 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 26de8d5..9d54be7 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 @@ -1,18 +1,32 @@ #!/usr/bin/haserl <% +board_name=$(uci -q get board.model.name) # write if [ "$REQUEST_METHOD" == "POST" ] ; then - sed -i '/^.*# set via WebUI/d' /etc/network.mode - echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.mode - do_reboot=1 - MSG='<span class="green">Port Modus geändert! Router startet neu...</span>' + if [ "$POST_change_mode" != "" ] ; then + sed -i '/^.*# set via WebUI/d' /etc/network.config + echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.config + sed -i '/^FORCEPARSE/d' /etc/network.config + echo "FORCEPARSE='2'" >> /etc/network.config + do_reboot=1 + MSG='<span class="green">Port Modus geändert! Router startet neu...</span>' + fi + if [ "$POST_change_twoport" != "" ] ; then + sed -i '/^.*# set via WebUI/d' /etc/network.config + echo "LAN0MODE=\"${POST_mode0}\" # set via WebUI" >> /etc/network.config + echo "LAN1MODE=\"${POST_mode1}\" # set via WebUI" >> /etc/network.config + sed -i '/^FORCEPARSE/d' /etc/network.config + echo "FORCEPARSE='2'" >> /etc/network.config + do_reboot=1 + MSG='<span class="green">Port Modus geändert! Router startet neu...</span>' + fi fi %> <%in /www/ssl/cgi-bin/header %> <%in /www/ssl/cgi-bin/helpers %> <% show_msg %> -<form method="POST"> +<form method="post"> <table style="width: 100%;"> <% if swconfig list | grep -q switch0 ; then %> <%# Device has a switch %> @@ -53,10 +67,11 @@ fi </fieldset> </td></tr> <% fi %> -<% if grep -q network.mode /etc/network.$(uci -q get board.model.name) ; then %> +<% if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q "ETHPORT" "/etc/network.$board_name" ; then %> <% - # Device has only one or two ports and makes use of /etc/network.mode + # Device has a port set by $ETHMODE . /etc/network.mode + . /etc/network.config %> <tr><td> <fieldset> @@ -66,9 +81,11 @@ fi <th style="width: 1em;">Anschluss Modus:</th> <td> <select name="mode"> - <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> + <option value="BATMAN" <% [ "$ETHMODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option> + <option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option> + <% if grep -q "ONE_PORT" "/etc/network.$board_name" ; then %> + <option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option> + <% fi %> </select> </td> </tr> @@ -87,6 +104,52 @@ fi </fieldset> </td></tr> <% fi %> +<% if grep -q "LAN0PORT" "/etc/network.$board_name" || grep -q "LAN1PORT" "/etc/network.$board_name" ; then %> + <% + # Device has two ports + . /etc/network.mode + . /etc/network.config + %> + <tr><td> + <fieldset> + <legend>Ethernet Anschlüsse</legend> + <table> + <tr> + <th style="width: 15em;text-align:left">Modus Anschluss 0:</th> + <th style="width: 15em;text-align:left">Modus Anschluss 1:</th> + <th></th> + </tr> + <tr> + <td> + <select name="mode0"> + <option value="BATMAN" <% [ "$LAN0MODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option> + <option value="CLIENT" <% [ "$LAN0MODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option> + <option value="WAN" <% [ "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option> + </select> + </td> + <td> + <select name="mode1"> + <option value="BATMAN" <% [ "$LAN1MODE" == "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option> + <option value="CLIENT" <% [ "$LAN1MODE" == "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option> + <option value="WAN" <% [ "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option> + </select> + </td> + <td><input type="submit" name="change_twoport" /></td> + </tr> + <tr><td colspan="3"></td></tr> + <tr><td colspan="3"> + WAN: Knoten stellt über Ethernet Anschluss Verbindung zum Internet her.<br /> + Client: Normale Clients stellen über Ethernet Anschluss des Knotens Verbindung zum Freifunk Netz her.<br /> + BATMAN: Knoten stellt über Ethernet Anschluss Verbindung zu anderen MESH Knoten her.<br /><br /> + + Wenn diese Einstellung verändert wird, wird eine evtl. vorhandene manuelle Netzwerkkonfiguration in der + <tt>/etc/config/network</tt> überschrieben.<br /> + Anschließend wird der Router neugestartet. + </td></tr> + </table> + </fieldset> + </td></tr> +<% fi %> </table> </form> <%in /www/ssl/cgi-bin/footer %>
Hi Reviewed und mit kleiner Doku-Änderung an der network.mode applied. Tim Am Montag, den 21.08.2017, 18:46 +0200 schrieb Adrian Schmutzler: > This writes CLIENT/BATMAN/WAN port configurations for devices > with switches to a separate file. This file can be changed > based on the desired setup and is then preserved during > firmware upgrade. In case of a future bugfix concerning the > entries of a specific network.* file, this will still be > effective as only the port configurations reside in the > new file, while the other settings could be overwritten by > the upgrade. > > For one- and two-port devices, adjustments have been made so > that their relevant settings also reside in the new file now. > > This also adds a WebUI interface for setting the two-port > devices (CPE210 and CPE510). > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > --- > src/packages/fff/fff-network/Makefile | 2 +- > src/packages/fff/fff-network/ar71xx/network.cpe210 | 19 +---- > src/packages/fff/fff-network/ar71xx/network.cpe510 | 19 +---- > .../fff/fff-network/ar71xx/network.gl-ar150 | 13 +--- > .../fff-network/files/usr/sbin/configurenetwork | 55 > ++++++++++++++ > .../files/etc/uci-defaults/99-fff-sysupgrade | 2 +- > .../fff/fff-web/files/www/ssl/cgi-bin/ports.html | 83 > +++++++++++++++++++--- > 7 files changed, 137 insertions(+), 56 deletions(-) > > diff --git a/src/packages/fff/fff-network/Makefile > b/src/packages/fff/fff-network/Makefile > index d34016c..23a1345 100644 > --- a/src/packages/fff/fff-network/Makefile > +++ b/src/packages/fff/fff-network/Makefile > @@ -1,7 +1,7 @@ > include $(TOPDIR)/rules.mk > > PKG_NAME:=fff-network > -PKG_VERSION:=0.0.7 > +PKG_VERSION:=8 > PKG_RELEASE:=1 > > PKG_BUILD_DIR:=$(BUILD_DIR)/fff-network > diff --git a/src/packages/fff/fff-network/ar71xx/network.cpe210 > b/src/packages/fff/fff-network/ar71xx/network.cpe210 > index 8180789..6764c64 100644 > --- a/src/packages/fff/fff-network/ar71xx/network.cpe210 > +++ b/src/packages/fff/fff-network/ar71xx/network.cpe210 > @@ -8,20 +8,5 @@ ETHMESHMAC="w2ap" > > . /etc/network.mode > > -#LAN0: default: BATMAN > -if [ "${LAN0MODE}" = "BATMAN" ] ; then > - BATMAN_PORTS="${BATMAN_PORTS} 5" > -elif [ "${LAN0MODE}" = "CLIENT" ] ; then > - CLIENT_PORTS="${CLIENT_PORTS} 5" > -else > - WAN_PORTS="${WAN_PORTS} 5" > -fi > - > -#LAN1: default: BATMAN > -if [ "${LAN1MODE}" = "WAN" ] ; then > - WAN_PORTS="${WAN_PORTS} 4" > -elif [ "${LAN1MODE}" = "CLIENT" ] ; then > - CLIENT_PORTS="${CLIENT_PORTS} 4" > -else > - BATMAN_PORTS="${BATMAN_PORTS} 4" > -fi > +LAN0PORT=5 > +LAN1PORT=4 > diff --git a/src/packages/fff/fff-network/ar71xx/network.cpe510 > b/src/packages/fff/fff-network/ar71xx/network.cpe510 > index 8180789..6764c64 100644 > --- a/src/packages/fff/fff-network/ar71xx/network.cpe510 > +++ b/src/packages/fff/fff-network/ar71xx/network.cpe510 > @@ -8,20 +8,5 @@ ETHMESHMAC="w2ap" > > . /etc/network.mode > > -#LAN0: default: BATMAN > -if [ "${LAN0MODE}" = "BATMAN" ] ; then > - BATMAN_PORTS="${BATMAN_PORTS} 5" > -elif [ "${LAN0MODE}" = "CLIENT" ] ; then > - CLIENT_PORTS="${CLIENT_PORTS} 5" > -else > - WAN_PORTS="${WAN_PORTS} 5" > -fi > - > -#LAN1: default: BATMAN > -if [ "${LAN1MODE}" = "WAN" ] ; then > - WAN_PORTS="${WAN_PORTS} 4" > -elif [ "${LAN1MODE}" = "CLIENT" ] ; then > - CLIENT_PORTS="${CLIENT_PORTS} 4" > -else > - BATMAN_PORTS="${BATMAN_PORTS} 4" > -fi > +LAN0PORT=5 > +LAN1PORT=4 > diff --git a/src/packages/fff/fff-network/ar71xx/network.gl-ar150 > b/src/packages/fff/fff-network/ar71xx/network.gl-ar150 > index 4e59b86..61ce71a 100644 > --- a/src/packages/fff/fff-network/ar71xx/network.gl-ar150 > +++ b/src/packages/fff/fff-network/ar71xx/network.gl-ar150 > @@ -1,19 +1,12 @@ > WANDEV=eth0 > SWITCHDEV=eth1 > WAN_PORTS= > +BATMAN_PORTS="0t" > +CLIENT_PORTS="0t" > > ETHMESHMAC=eth1 > ROUTERMAC=eth0 > > . /etc/network.mode > > -if [ "$ETHMODE" = "CLIENT" ] ; then > - ## Activate Client: > - CLIENT_PORTS="1 0t" > - BATMAN_PORTS="0t" > -else > - ## Activate BATMAN: > - BATMAN_PORTS="1 0t" > - CLIENT_PORTS="0t" > -fi > - > +ETHPORT=1 > diff --git a/src/packages/fff/fff- > network/files/usr/sbin/configurenetwork b/src/packages/fff/fff- > network/files/usr/sbin/configurenetwork > index 5b06009..c6b3113 100755 > --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork > @@ -12,6 +12,61 @@ > BOARD="$(uci get board.model.name)" > . /etc/network.$BOARD > > +if [ -s /etc/network.config ] ; then > + . /etc/network.config > +else > + echo "CLIENT_PORTS='$CLIENT_PORTS'" > /etc/network.config > + echo "BATMAN_PORTS='$BATMAN_PORTS'" >> /etc/network.config > + if [ -n "$WAN_PORTS" ] ; then > + echo "WAN_PORTS='$WAN_PORTS'" >> /etc/network.config > + fi > + if [ "$ONE_PORT" = "YES" ] || [ -n "$ETHPORT" ] ; then > + echo "ETHMODE='$ETHMODE' # use BATMAN, CLIENT or WAN" >> > /etc/network.config > + fi > + if [ -n "$LAN0PORT" ] ; then > + echo "LAN0MODE='$LAN0MODE' # use BATMAN, CLIENT or WAN" >> > /etc/network.config > + fi > + if [ -n "$LAN1PORT" ] ; then > + echo "LAN1MODE='$LAN1MODE' # use BATMAN, CLIENT or WAN" >> > /etc/network.config > + fi > + echo "FORCEPARSE='0' # Parse at: 0=first boot only, 1=every > reboot, 2=next reboot (once)" >> /etc/network.config > +fi > + > +if [ "$FORCEPARSE" = '2' ] ; then > + sed -i '/^FORCEPARSE/d' /etc/network.config > + echo "FORCEPARSE='0' # Parse at: 0=first boot only, 1=every > reboot, 2=next reboot (once)" >> /etc/network.config > + FORCEPARSE='1' > +fi > + > +if [ -n "$ETHPORT" ] ; then > + #LAN@AR150: default: BATMAN > + if [ "${ETHMODE}" = "BATMAN" ] ; then > + BATMAN_PORTS="${BATMAN_PORTS} ${ETHPORT}" > + else > + CLIENT_PORTS="${CLIENT_PORTS} ${ETHPORT}" > + fi > +fi > +if [ -n "$LAN0PORT" ] ; then > + #LAN0@two-port: default: BATMAN > + if [ "${LAN0MODE}" = "BATMAN" ] ; then > + BATMAN_PORTS="${BATMAN_PORTS} ${LAN0PORT}" > + elif [ "${LAN0MODE}" = "CLIENT" ] ; then > + CLIENT_PORTS="${CLIENT_PORTS} ${LAN0PORT}" > + else > + WAN_PORTS="${WAN_PORTS} ${LAN0PORT}" > + fi > +fi > +if [ -n "$LAN1PORT" ] ; then > + #LAN1@two-port: default: BATMAN > + if [ "${LAN1MODE}" = "WAN" ] ; then > + WAN_PORTS="${WAN_PORTS} ${LAN1PORT}" > + elif [ "${LAN1MODE}" = "CLIENT" ] ; then > + CLIENT_PORTS="${CLIENT_PORTS} ${LAN1PORT}" > + else > + BATMAN_PORTS="${BATMAN_PORTS} ${LAN1PORT}" > + fi > +fi > + > if ! uci -q get network.$SWITCHDEV > /dev/null || [ "$FORCEPARSE" = > '1' ] ; then > > SWITCHHW=$(swconfig list | awk '{ print $4 }') > diff --git a/src/packages/fff/fff-sysupgrade/files/etc/uci- > defaults/99-fff-sysupgrade b/src/packages/fff/fff- > sysupgrade/files/etc/uci-defaults/99-fff-sysupgrade > index 61f2d1f..ab6f2de 100644 > --- a/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff- > sysupgrade > +++ b/src/packages/fff/fff-sysupgrade/files/etc/uci-defaults/99-fff- > sysupgrade > @@ -7,6 +7,6 @@ cat > /etc/sysupgrade.conf <<-__EOF__ > /etc/dropbear/dropbear_dss_host_key > /etc/dropbear/dropbear_rsa_host_key > /etc/dropbear/authorized_keys > -/etc/network.mode > +/etc/network.config > /etc/config/system > __EOF__ > 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 26de8d5..9d54be7 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 > @@ -1,18 +1,32 @@ > #!/usr/bin/haserl > > <% > > +board_name=$(uci -q get board.model.name) > # write > if [ "$REQUEST_METHOD" == "POST" ] ; then > - sed -i '/^.*# set via WebUI/d' /etc/network.mode > - echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> > /etc/network.mode > - do_reboot=1 > - MSG='<span class="green">Port Modus geändert! Router > startet neu...</span>' > + if [ "$POST_change_mode" != "" ] ; then > + sed -i '/^.*# set via WebUI/d' /etc/network.config > + echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> > /etc/network.config > + sed -i '/^FORCEPARSE/d' /etc/network.config > + echo "FORCEPARSE='2'" >> /etc/network.config > + do_reboot=1 > + MSG='<span class="green">Port Modus geändert! > Router startet neu...</span>' > + fi > + if [ "$POST_change_twoport" != "" ] ; then > + sed -i '/^.*# set via WebUI/d' /etc/network.config > + echo "LAN0MODE=\"${POST_mode0}\" # set via WebUI" >> > /etc/network.config > + echo "LAN1MODE=\"${POST_mode1}\" # set via WebUI" >> > /etc/network.config > + sed -i '/^FORCEPARSE/d' /etc/network.config > + echo "FORCEPARSE='2'" >> /etc/network.config > + do_reboot=1 > + MSG='<span class="green">Port Modus geändert! > Router startet neu...</span>' > + fi > fi > %> > <%in /www/ssl/cgi-bin/header %> > <%in /www/ssl/cgi-bin/helpers %> > <% show_msg %> > -<form method="POST"> > +<form method="post"> > <table style="width: 100%;"> > <% if swconfig list | grep -q switch0 ; then %> > <%# Device has a switch %> > @@ -53,10 +67,11 @@ fi > </fieldset> > </td></tr> > <% fi %> > -<% if grep -q network.mode /etc/network.$(uci -q get > board.model.name) ; then %> > +<% if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q > "ETHPORT" "/etc/network.$board_name" ; then %> > <% > - # Device has only one or two ports and makes use of > /etc/network.mode > + # Device has a port set by $ETHMODE > . /etc/network.mode > + . /etc/network.config > %> > <tr><td> > <fieldset> > @@ -66,9 +81,11 @@ fi > <th style="width: > 1em;">Anschluss Modus:</th> > <td> > <select name="mode"> > - <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> > + <option > value="BATMAN" <% [ "$ETHMODE" == "BATMAN" ] && echo -n > 'selected="selected" ' %>>BATMAN</option> > + <option > value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n > 'selected="selected" ' %>>CLIENT</option> > + <% if grep -q > "ONE_PORT" "/etc/network.$board_name" ; then %> > + <option value="WAN" > <% [ "$ETHMODE" == "WAN" ] && echo -n 'selected="selected" ' > %>>WAN</option> > + <% fi %> > </select> > </td> > </tr> > @@ -87,6 +104,52 @@ fi > </fieldset> > </td></tr> > <% fi %> > +<% if grep -q "LAN0PORT" "/etc/network.$board_name" || grep -q > "LAN1PORT" "/etc/network.$board_name" ; then %> > + <% > + # Device has two ports > + . /etc/network.mode > + . /etc/network.config > + %> > + <tr><td> > + <fieldset> > + <legend>Ethernet Anschlüsse</legend> > + <table> > + <tr> > + <th style="width: 15em;text- > align:left">Modus Anschluss 0:</th> > + <th style="width: 15em;text- > align:left">Modus Anschluss 1:</th> > + <th></th> > + </tr> > + <tr> > + <td> > + <select name="mode0"> > + <option > value="BATMAN" <% [ "$LAN0MODE" == "BATMAN" ] && echo -n > 'selected="selected" ' %>>BATMAN</option> > + <option > value="CLIENT" <% [ "$LAN0MODE" == "CLIENT" ] && echo -n > 'selected="selected" ' %>>CLIENT</option> > + <option value="WAN" > <% [ "$LAN0MODE" == "WAN" ] && echo -n 'selected="selected" ' > %>>WAN</option> > + </select> > + </td> > + <td> > + <select name="mode1"> > + <option > value="BATMAN" <% [ "$LAN1MODE" == "BATMAN" ] && echo -n > 'selected="selected" ' %>>BATMAN</option> > + <option > value="CLIENT" <% [ "$LAN1MODE" == "CLIENT" ] && echo -n > 'selected="selected" ' %>>CLIENT</option> > + <option value="WAN" > <% [ "$LAN1MODE" == "WAN" ] && echo -n 'selected="selected" ' > %>>WAN</option> > + </select> > + </td> > + <td><input type="submit" > name="change_twoport" /></td> > + </tr> > + <tr><td colspan="3"></td></tr> > + <tr><td colspan="3"> > + WAN: Knoten stellt über > Ethernet Anschluss Verbindung zum Internet her.<br /> > + Client: Normale Clients stellen > über Ethernet Anschluss des Knotens Verbindung zum Freifunk Netz > her.<br /> > + BATMAN: Knoten stellt über > Ethernet Anschluss Verbindung zu anderen MESH Knoten her.<br /><br /> > + > + Wenn diese Einstellung > verändert wird, wird eine evtl. vorhandene manuelle > Netzwerkkonfiguration in der > + <tt>/etc/config/network</tt> > überschrieben.<br /> > + Anschließend wird der Router > neugestartet. > + </td></tr> > + </table> > + </fieldset> > + </td></tr> > +<% fi %> > </table> > </form> > <%in /www/ssl/cgi-bin/footer %> > -- > 2.7.4 >