Message ID | 20180612190701.30651-2-fabian@blaese.de |
---|---|
State | Accepted |
Headers | show |
diff --git a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile index 4efaa66..8c80802 100644 --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile @@ -53,6 +53,30 @@ getWirelessHoodfile() { fi } +getEthernetHoodfile() { + if [ $# != 1 ]; then + echo "Usage: getEthernetHoodfile <target-file>" + return 1 + fi + file=$1 + + echo "Trying to get hoodfile from ethernet neighbor..." + + if ! ethmesh_dev=$(uci -q get network.ethmesh.ifname); then + # no ethmesh interface + return 1 + fi + + neighbor_addrs=$(ping6 -c2 ff02::1%"${ethmesh_dev}" | grep seq | grep DUP | cut -d " " -f4 | sed s/:$//g | sort -u) + + for addr in $neighbor_addrs; do + wget -T2 -t1 -qO "$file" "http://[${addr}%${ethmesh_dev}]:2342/keyxchangev2data" && return 0 + done + + # got no hoodfile + return 1 +} + getGatewayHoodfile() { if [ $# != 1 ]; then echo "Usage: getGatewayHoodfile <target-file>" diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood index d06a62d..281d38d 100755 --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood @@ -98,7 +98,7 @@ else sleep 30 # Wait for the config AP, which may be created at the same time as this script has started - getWirelessHoodfile "$hoodfile" + getEthernetHoodfile "$hoodfile" || getWirelessHoodfile "$hoodfile" #UPLINK: Set up uplink data on first contact: if [ -s /tmp/keyxchangev2data ]; then
Hallo, das "if ! ..." bricht nicht ab, wenn network.ethmesh.ifname zwar vorhanden, aber leer ist (zumindest in meinen Tests). Das ist aber wahrscheinlich ein unrealistischer Fall, daher Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Grüße Adrian > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of Fabian Bläse > Sent: Dienstag, 12. Juni 2018 21:07 > To: franken-dev@freifunk.net > Cc: Jan Kraus <mayosemmel@gmail.com>; Adrian Schmutzler > <freifunk@adrianschmutzler.de> > Subject: [PATCH v4 2/2] Allow initial configuration from Ethernet > > Signed-off-by: Fabian Bläse <fabian@blaese.de> > Tested-by: Fabian Bläse <fabian@blaese.de> > --- > Apply after MacKnocker patchset! > > Changes in v2: > - Fix indentation > - Improve usage message > - Return if no ethmesh_dev exists > - Replace . with : in ping6 sed > > Changes in v3: > - Fix messed up v2 > > Changes in v4: > - indentation fix > - double quote ethmesh variable in getEthernetHoodfile function > - use sort -u instead of additional uniq > - grep for DUP in ping6 to avoid downloading own hoodfile if existing > --- > .../fff-hoods/files/usr/lib/functions/fff/hoodfile | 24 > ++++++++++++++++++++++ > .../fff/fff-hoods/files/usr/sbin/configurehood | 2 +- > 2 files changed, 25 insertions(+), 1 deletion(-) > > diff --git a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > index 4efaa66..8c80802 100644 > --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > @@ -53,6 +53,30 @@ getWirelessHoodfile() { > fi > } > > +getEthernetHoodfile() { > + if [ $# != 1 ]; then > + echo "Usage: getEthernetHoodfile <target-file>" > + return 1 > + fi > + file=$1 > + > + echo "Trying to get hoodfile from ethernet neighbor..." > + > + if ! ethmesh_dev=$(uci -q get network.ethmesh.ifname); then > + # no ethmesh interface > + return 1 > + fi > + > + neighbor_addrs=$(ping6 -c2 ff02::1%"${ethmesh_dev}" | grep seq | > grep DUP | cut -d " " -f4 | sed s/:$//g | sort -u) > + > + for addr in $neighbor_addrs; do > + wget -T2 -t1 -qO "$file" > "http://[${addr}%${ethmesh_dev}]:2342/keyxchangev2data" && return 0 > + done > + > + # got no hoodfile > + return 1 > +} > + > getGatewayHoodfile() { > if [ $# != 1 ]; then > echo "Usage: getGatewayHoodfile <target-file>" > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > index d06a62d..281d38d 100755 > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > @@ -98,7 +98,7 @@ else > > sleep 30 # Wait for the config AP, which may be > created at the same time as this script has started > > - getWirelessHoodfile "$hoodfile" > + getEthernetHoodfile "$hoodfile" || > getWirelessHoodfile "$hoodfile" > > #UPLINK: Set up uplink data on first contact: > if [ -s /tmp/keyxchangev2data ]; then > -- > 2.11.0
Hallo Adrian, > On 13. Jun 2018, at 16:10, Adrian Schmutzler <mail@adrianschmutzler.de> wrote: > > Hallo, > > das "if ! ..." bricht nicht ab, wenn network.ethmesh.ifname zwar vorhanden, aber leer ist (zumindest in meinen Tests). diesen Fall dürfte es eigentlich gar nicht geben, denn leer ist im uci gleichbedeutend mit nicht existent. uci set <irgendwas>=‘’ löscht den Wert aus der config. Wenn ich manuell einen Key mit ‘’ als value eintrage, beendet uci get <irgendwas> trotzdem mit Status 1 -> Das if müsste dann eigentlich auch zu einem return 1 führen. Ein Key mit einem Leerzeichen als Wert (‘ ‘) ist kein leerer Wert, allerdings geht es selbst dann nicht schief, weil durch den nicht funktionierenden ping6 neighbor_addrs leer ist. Schlussendlich ist der Kram halt doch nur Shellskript, super richtig sauber kann man da imho sowieso nicht vernünftig. Gruß Fabian
Moin Ich bin mir nicht ganz sicher, ob das mit dem DUP so ne gute Idee ist. Du nimmst an, dass das eigene Paket _immer_ schneller ist. Vermutlich ist das so, das sollten wir aber trotzdem mal beobachten. Reviewed-by: Tim Niemeyer <tim@tn-x.org> Tim Am Dienstag, den 12.06.2018, 21:07 +0200 schrieb Fabian Bläse: > Signed-off-by: Fabian Bläse <fabian@blaese.de> > Tested-by: Fabian Bläse <fabian@blaese.de> > --- > Apply after MacKnocker patchset! > > Changes in v2: > - Fix indentation > - Improve usage message > - Return if no ethmesh_dev exists > - Replace . with : in ping6 sed > > Changes in v3: > - Fix messed up v2 > > Changes in v4: > - indentation fix > - double quote ethmesh variable in getEthernetHoodfile function > - use sort -u instead of additional uniq > - grep for DUP in ping6 to avoid downloading own hoodfile if existing > --- > .../fff-hoods/files/usr/lib/functions/fff/hoodfile | 24 > ++++++++++++++++++++++ > .../fff/fff-hoods/files/usr/sbin/configurehood | 2 +- > 2 files changed, 25 insertions(+), 1 deletion(-) > > diff --git a/src/packages/fff/fff- > hoods/files/usr/lib/functions/fff/hoodfile b/src/packages/fff/fff- > hoods/files/usr/lib/functions/fff/hoodfile > index 4efaa66..8c80802 100644 > --- a/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > @@ -53,6 +53,30 @@ getWirelessHoodfile() { > fi > } > > +getEthernetHoodfile() { > + if [ $# != 1 ]; then > + echo "Usage: getEthernetHoodfile <target-file>" > + return 1 > + fi > + file=$1 > + > + echo "Trying to get hoodfile from ethernet neighbor..." > + > + if ! ethmesh_dev=$(uci -q get network.ethmesh.ifname); then > + # no ethmesh interface > + return 1 > + fi > + > + neighbor_addrs=$(ping6 -c2 ff02::1%"${ethmesh_dev}" | grep > seq | grep DUP | cut -d " " -f4 | sed s/:$//g | sort -u) > + > + for addr in $neighbor_addrs; do > + wget -T2 -t1 -qO "$file" "http://[${addr}%${ethmesh_ > dev}]:2342/keyxchangev2data" && return 0 > + done > + > + # got no hoodfile > + return 1 > +} > + > getGatewayHoodfile() { > if [ $# != 1 ]; then > echo "Usage: getGatewayHoodfile <target-file>" > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > index d06a62d..281d38d 100755 > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > @@ -98,7 +98,7 @@ else > > sleep 30 # Wait for the config AP, which may > be created at the same time as this script has started > > - getWirelessHoodfile "$hoodfile" > + getEthernetHoodfile "$hoodfile" || > getWirelessHoodfile "$hoodfile" > > #UPLINK: Set up uplink data on first > contact: > if [ -s /tmp/keyxchangev2data ]; then
Ist es nicht. Ist aber wohl immer noch besser als das theoretische Risiko zu haben, von sich selbst zu laden. Was besseres ist mir mit dem Shell-Kram nicht eingefallen. Normal sollte die eigene Antwort die schnellste sein, aber auf jeden Fall mal beobachten, ja. Frag nicht, wie das weh tut, solchen Kram zu schreiben. Fabian
Hallo Fabian, ja, nach DUP zu greppen ist nicht schoen. Die Nachbarn stehen in ip -6 n . Die Frage ist nur, ob die da schon drin sind. Nach einem Ping auf ff02::1 schon. Da koennte man was draus basteln. Oder einfach die eigene fe80 weg greppen. Robert Am 13.06.2018 um 23:26 schrieb Fabian Bläse: > Ist es nicht. Ist aber wohl immer noch besser als das theoretische Risiko zu haben, von sich selbst zu laden. > Was besseres ist mir mit dem Shell-Kram nicht eingefallen. > > Normal sollte die eigene Antwort die schnellste sein, aber auf jeden Fall mal beobachten, ja. > > Frag nicht, wie das weh tut, solchen Kram zu schreiben. > > Fabian >
Wäre wahrscheinlich besser, ja. Allerdings auch zumindest ein wenig umfangreicher. Ich würde das in einen eigenen Patch packen. Gruß Fabian On 14.06.2018 14:03, robert wrote: > Hallo Fabian, > > ja, nach DUP zu greppen ist nicht schoen. Die Nachbarn stehen in ip -6 n > . Die Frage ist nur, ob die da schon drin sind. Nach einem Ping auf > ff02::1 schon. Da koennte man was draus basteln. Oder einfach die eigene > fe80 weg greppen. > > Robert > > > Am 13.06.2018 um 23:26 schrieb Fabian Bläse: >> Ist es nicht. Ist aber wohl immer noch besser als das theoretische Risiko zu haben, von sich selbst zu laden. >> Was besseres ist mir mit dem Shell-Kram nicht eingefallen. >> >> Normal sollte die eigene Antwort die schnellste sein, aber auf jeden Fall mal beobachten, ja. >> >> Frag nicht, wie das weh tut, solchen Kram zu schreiben. >> >> Fabian >> > >
Hallo, immer wenn wir was mit ip n machen wollten, hat es in meinem Tests nicht gescheit funktioniert und es standen kaum Geräte drin. Ich wäre daher da eher zurückhaltend. Grüße Adrian > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of robert > Sent: Donnerstag, 14. Juni 2018 14:03 > To: franken-dev@freifunk.net > Subject: Re: [PATCH v4 2/2] Allow initial configuration from Ethernet > > Hallo Fabian, > > ja, nach DUP zu greppen ist nicht schoen. Die Nachbarn stehen in ip -6 n . Die > Frage ist nur, ob die da schon drin sind. Nach einem Ping auf > ff02::1 schon. Da koennte man was draus basteln. Oder einfach die eigene > fe80 weg greppen. > > Robert > > > Am 13.06.2018 um 23:26 schrieb Fabian Bläse: > > Ist es nicht. Ist aber wohl immer noch besser als das theoretische Risiko zu > haben, von sich selbst zu laden. > > Was besseres ist mir mit dem Shell-Kram nicht eingefallen. > > > > Normal sollte die eigene Antwort die schnellste sein, aber auf jeden Fall > mal beobachten, ja. > > > > Frag nicht, wie das weh tut, solchen Kram zu schreiben. > > > > Fabian > > >
Ja, die neighbour table ist nicht zuverlaessig. ich bin inzwischen dafuer, einfach die eigene weg zu greppen. Das ist klar und eindeutig. Und es ist nur eine Zeile mehr. Robert Am 14.06.2018 um 14:18 schrieb Adrian Schmutzler: > Hallo, > > immer wenn wir was mit ip n machen wollten, hat es in meinem Tests nicht > gescheit funktioniert und es standen kaum Geräte drin. Ich wäre daher da > eher zurückhaltend. > > Grüße > > Adrian > >> -----Original Message----- >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf >> Of robert >> Sent: Donnerstag, 14. Juni 2018 14:03 >> To: franken-dev@freifunk.net >> Subject: Re: [PATCH v4 2/2] Allow initial configuration from Ethernet >> >> Hallo Fabian, >> >> ja, nach DUP zu greppen ist nicht schoen. Die Nachbarn stehen in ip -6 n . > Die >> Frage ist nur, ob die da schon drin sind. Nach einem Ping auf >> ff02::1 schon. Da koennte man was draus basteln. Oder einfach die eigene >> fe80 weg greppen. >> >> Robert >> >> >> Am 13.06.2018 um 23:26 schrieb Fabian Bläse: >>> Ist es nicht. Ist aber wohl immer noch besser als das theoretische > Risiko zu >> haben, von sich selbst zu laden. >>> Was besseres ist mir mit dem Shell-Kram nicht eingefallen. >>> >>> Normal sollte die eigene Antwort die schnellste sein, aber auf jeden > Fall >> mal beobachten, ja. >>> Frag nicht, wie das weh tut, solchen Kram zu schreiben. >>> >>> Fabian >>> >
Nimm einfach ping6 -L Tim Am 14. Juni 2018 14:25:54 MESZ schrieb robert <rlanghammer@web.de>: >Ja, die neighbour table ist nicht zuverlaessig. > >ich bin inzwischen dafuer, einfach die eigene weg zu greppen. Das ist >klar und eindeutig. Und es ist nur eine Zeile mehr. > >Robert >Am 14.06.2018 um 14:18 schrieb Adrian Schmutzler: >> Hallo, >> >> immer wenn wir was mit ip n machen wollten, hat es in meinem Tests >nicht >> gescheit funktioniert und es standen kaum Geräte drin. Ich wäre daher >da >> eher zurückhaltend. >> >> Grüße >> >> Adrian >> >>> -----Original Message----- >>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On >Behalf >>> Of robert >>> Sent: Donnerstag, 14. Juni 2018 14:03 >>> To: franken-dev@freifunk.net >>> Subject: Re: [PATCH v4 2/2] Allow initial configuration from >Ethernet >>> >>> Hallo Fabian, >>> >>> ja, nach DUP zu greppen ist nicht schoen. Die Nachbarn stehen in ip >-6 n . >> Die >>> Frage ist nur, ob die da schon drin sind. Nach einem Ping auf >>> ff02::1 schon. Da koennte man was draus basteln. Oder einfach die >eigene >>> fe80 weg greppen. >>> >>> Robert >>> >>> >>> Am 13.06.2018 um 23:26 schrieb Fabian Bläse: >>>> Ist es nicht. Ist aber wohl immer noch besser als das theoretische >> Risiko zu >>> haben, von sich selbst zu laden. >>>> Was besseres ist mir mit dem Shell-Kram nicht eingefallen. >>>> >>>> Normal sollte die eigene Antwort die schnellste sein, aber auf >jeden >> Fall >>> mal beobachten, ja. >>>> Frag nicht, wie das weh tut, solchen Kram zu schreiben. >>>> >>>> Fabian >>>> >>
Hallo, ping6 -L kann das busybox ping6 nicht. Da müsste man wohl ne package dafür reinziehen ... Grüße Adrian > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of Tim Niemeyer > Sent: Donnerstag, 14. Juni 2018 14:28 > To: robert <rlanghammer@web.de>; franken-dev@freifunk.net > Subject: Re: [PATCH v4 2/2] Allow initial configuration from Ethernet > > Nimm einfach ping6 -L > > Tim > > Am 14. Juni 2018 14:25:54 MESZ schrieb robert <rlanghammer@web.de>: > >Ja, die neighbour table ist nicht zuverlaessig. > > > >ich bin inzwischen dafuer, einfach die eigene weg zu greppen. Das ist > >klar und eindeutig. Und es ist nur eine Zeile mehr. > > > >Robert > >Am 14.06.2018 um 14:18 schrieb Adrian Schmutzler: > >> Hallo, > >> > >> immer wenn wir was mit ip n machen wollten, hat es in meinem Tests > >nicht > >> gescheit funktioniert und es standen kaum Geräte drin. Ich wäre daher > >da > >> eher zurückhaltend. > >> > >> Grüße > >> > >> Adrian > >> > >>> -----Original Message----- > >>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On > >Behalf > >>> Of robert > >>> Sent: Donnerstag, 14. Juni 2018 14:03 > >>> To: franken-dev@freifunk.net > >>> Subject: Re: [PATCH v4 2/2] Allow initial configuration from > >Ethernet > >>> > >>> Hallo Fabian, > >>> > >>> ja, nach DUP zu greppen ist nicht schoen. Die Nachbarn stehen in ip > >-6 n . > >> Die > >>> Frage ist nur, ob die da schon drin sind. Nach einem Ping auf > >>> ff02::1 schon. Da koennte man was draus basteln. Oder einfach die > >eigene > >>> fe80 weg greppen. > >>> > >>> Robert > >>> > >>> > >>> Am 13.06.2018 um 23:26 schrieb Fabian Bläse: > >>>> Ist es nicht. Ist aber wohl immer noch besser als das theoretische > >> Risiko zu > >>> haben, von sich selbst zu laden. > >>>> Was besseres ist mir mit dem Shell-Kram nicht eingefallen. > >>>> > >>>> Normal sollte die eigene Antwort die schnellste sein, aber auf > >jeden > >> Fall > >>> mal beobachten, ja. > >>>> Frag nicht, wie das weh tut, solchen Kram zu schreiben. > >>>> > >>>> Fabian > >>>> > >>
Ok, dann machen wir erstmal mit DUP! Reviewed-by: Robert Langhgammer <rlanghammer@web.de> Am 14.06.2018 um 14:31 schrieb Adrian Schmutzler: > Hallo, > > ping6 -L kann das busybox ping6 nicht. Da müsste man wohl ne package dafür reinziehen ... > > Grüße > > Adrian > >> -----Original Message----- >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf >> Of Tim Niemeyer >> Sent: Donnerstag, 14. Juni 2018 14:28 >> To: robert <rlanghammer@web.de>; franken-dev@freifunk.net >> Subject: Re: [PATCH v4 2/2] Allow initial configuration from Ethernet >> >> Nimm einfach ping6 -L >> >> Tim >> >> Am 14. Juni 2018 14:25:54 MESZ schrieb robert <rlanghammer@web.de>: >>> Ja, die neighbour table ist nicht zuverlaessig. >>> >>> ich bin inzwischen dafuer, einfach die eigene weg zu greppen. Das ist >>> klar und eindeutig. Und es ist nur eine Zeile mehr. >>> >>> Robert >>> Am 14.06.2018 um 14:18 schrieb Adrian Schmutzler: >>>> Hallo, >>>> >>>> immer wenn wir was mit ip n machen wollten, hat es in meinem Tests >>> nicht >>>> gescheit funktioniert und es standen kaum Geräte drin. Ich wäre daher >>> da >>>> eher zurückhaltend. >>>> >>>> Grüße >>>> >>>> Adrian >>>> >>>>> -----Original Message----- >>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On >>> Behalf >>>>> Of robert >>>>> Sent: Donnerstag, 14. Juni 2018 14:03 >>>>> To: franken-dev@freifunk.net >>>>> Subject: Re: [PATCH v4 2/2] Allow initial configuration from >>> Ethernet >>>>> Hallo Fabian, >>>>> >>>>> ja, nach DUP zu greppen ist nicht schoen. Die Nachbarn stehen in ip >>> -6 n . >>>> Die >>>>> Frage ist nur, ob die da schon drin sind. Nach einem Ping auf >>>>> ff02::1 schon. Da koennte man was draus basteln. Oder einfach die >>> eigene >>>>> fe80 weg greppen. >>>>> >>>>> Robert >>>>> >>>>> >>>>> Am 13.06.2018 um 23:26 schrieb Fabian Bläse: >>>>>> Ist es nicht. Ist aber wohl immer noch besser als das theoretische >>>> Risiko zu >>>>> haben, von sich selbst zu laden. >>>>>> Was besseres ist mir mit dem Shell-Kram nicht eingefallen. >>>>>> >>>>>> Normal sollte die eigene Antwort die schnellste sein, aber auf >>> jeden >>>> Fall >>>>> mal beobachten, ja. >>>>>> Frag nicht, wie das weh tut, solchen Kram zu schreiben. >>>>>> >>>>>> Fabian >>>>>>