[PATCH v4 2/2] Allow initial configuration from Ethernet
Adrian Schmutzler
mail at adrianschmutzler.de
Mi Jun 13 16:10:40 CEST 2018
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 at adrianschmutzler.de>
Grüße
Adrian
> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
> Of Fabian Bläse
> Sent: Dienstag, 12. Juni 2018 21:07
> To: franken-dev at freifunk.net
> Cc: Jan Kraus <mayosemmel at gmail.com>; Adrian Schmutzler
> <freifunk at adrianschmutzler.de>
> Subject: [PATCH v4 2/2] Allow initial configuration from Ethernet
>
> Signed-off-by: Fabian Bläse <fabian at blaese.de>
> Tested-by: Fabian Bläse <fabian at 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
Mehr Informationen über die Mailingliste franken-dev