forked from freifunk-franken/firmware
alfred: Support interfaces IDs with more than two digits
Occationally /proc/net/if_inet6 contains interface IDs with three digits. In this case, the regex in wait_for_ll_address() does not work anymore and alfred is not starting. This patch changes the evaluation so that fields are used instead of the mere position by counting characters. This is a backport from openwrt-routing and can be removed when updating to OpenWRT 18.06, but not for newer versions of 17.01. Fixes #98. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Reviewed-by: Robert Langhgammer <rlanghammer@web.de> Reviewed-by: Tim Niemeyer <tim@tn-x.org>
This commit is contained in:
parent
bce43a3a27
commit
686d0ee2d3
|
@ -0,0 +1,35 @@
|
||||||
|
From 135bc605b4cf91d40ac97f1129a6a5a950f3ff72 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
|
||||||
|
Date: Mon, 19 Mar 2018 14:16:54 +0100
|
||||||
|
Subject: [PATCH] alfred: Support interface IDs with more than two digits
|
||||||
|
|
||||||
|
Occationally /proc/net/if_inet6 contains interface IDs with
|
||||||
|
three digits. In this case, the regex in wait_for_ll_address()
|
||||||
|
does not work anymore and alfred is not starting.
|
||||||
|
|
||||||
|
This patch changes the evaluation so that fields are used instead
|
||||||
|
of the mere position by counting characters.
|
||||||
|
|
||||||
|
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
|
||||||
|
---
|
||||||
|
alfred/files/alfred.init | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/alfred/files/alfred.init b/alfred/files/alfred.init
|
||||||
|
index 4c9a9e19..82934368 100755
|
||||||
|
--- a/alfred/files/alfred.init
|
||||||
|
+++ b/alfred/files/alfred.init
|
||||||
|
@@ -46,11 +46,11 @@ wait_for_ll_address()
|
||||||
|
for i in $(seq $timeout); do
|
||||||
|
# We look for
|
||||||
|
# - the link-local address (starts with fe80)
|
||||||
|
- # - without tentative flag (bit 0x40 in the flags field; the first char of the flags field begins 38 columns after the fe80 prefix
|
||||||
|
+ # - without tentative flag (bit 0x40 in the flags field; the first char of the fifth field is evaluated)
|
||||||
|
# - on interface $iface
|
||||||
|
if awk '
|
||||||
|
BEGIN { RET=1 }
|
||||||
|
- /^fe80.{37} [012389ab]/ { if ($6 == "'"$iface"'") RET=0 }
|
||||||
|
+ $1 ~ /^fe80/ && $5 ~ /^[012389ab]/ && $6 == "'"$iface"'" { RET=0 }
|
||||||
|
END { exit RET }
|
||||||
|
' /proc/net/if_inet6; then
|
||||||
|
return
|
|
@ -38,7 +38,8 @@ GLUON_PKGS="kmod-batman-adv-legacy micrond simple-tc uradvd"
|
||||||
#official openwrt routing packages
|
#official openwrt routing packages
|
||||||
ROUTING=(routing
|
ROUTING=(routing
|
||||||
https://git.openwrt.org/feed/routing.git
|
https://git.openwrt.org/feed/routing.git
|
||||||
d11075cd40a88602bf4ba2b275f72100ddcb4767) # lede-17.01
|
d11075cd40a88602bf4ba2b275f72100ddcb4767
|
||||||
|
"0001-alfred-Support-interface-IDs-with-more-than-two-digi.patch") # lede-17.01
|
||||||
ROUTING_PKGS="kmod-batman-adv batctl alfred"
|
ROUTING_PKGS="kmod-batman-adv batctl alfred"
|
||||||
|
|
||||||
FFF=(fff)
|
FFF=(fff)
|
||||||
|
|
Loading…
Reference in New Issue