fff-babeld: Only select first list entry from router_ip #200

Closed
fbl wants to merge 2 commits from fbl/firmware:rip-fix into master
1 changed files with 10 additions and 2 deletions

View File

@ -38,10 +38,18 @@ babel_add_peeraddr() {
uci add_list "$option"="$peer_ip"
elif router_ip=$(uci -q get gateway.meta.router_ip); then
# use router_ip if no peer_ip is set
uci add_list "$option"="$router_ip"
ip=$router_ip
# use only first ip
ip=${ip%% *}
jkimmel marked this conversation as resolved
Review

Der nächste Befehl löscht sowieso alles ab dem ersten /. Richtig nötig ist die Zeile also nicht. Kann man aber zur Not auch behalten, weil es möglicherweise etwas einfacher ist zu verfolgen.

Der nächste Befehl löscht sowieso alles ab dem ersten `/`. Richtig nötig ist die Zeile also nicht. Kann man aber zur Not auch behalten, weil es möglicherweise etwas einfacher ist zu verfolgen.
Review

Die Zeile ist nötig, denn es ist nicht erforderlich, dass die router_ip eine Netzmaske enthält.

Das uci Trennzeichen für Listen ist nunmal ein ' ', in so fern ist das auch die einzige saubere Lösung, selbst wenn ein späterer Regex aus einem vollkommen anderen Grund den gleichen Effekt hätte.

Die Zeile ist nötig, denn es ist nicht erforderlich, dass die router_ip eine Netzmaske enthält. Das uci Trennzeichen für Listen ist nunmal ein ' ', in so fern ist das auch die einzige saubere Lösung, selbst wenn ein späterer Regex aus einem vollkommen anderen Grund den gleichen Effekt hätte.
Review

Ah! Jap, daran hab ich in dem Moment nicht gesacht.

Ah! Jap, daran hab ich in dem Moment nicht gesacht.
# remove CIDR mask
ip=${ip%%/*}
uci add_list "$option"="$ip"
elif ipaddr=$(uci -q get gateway.@client[0].ipaddr); then
# use client interface address (without subnet) if no router_ip is set
uci add_list "$option"=$(echo $ipaddr | cut -d / -f1)
uci add_list "$option"=${ipaddr%%/*}
else
echo "WARNING: No peer_ip, router_ip or client interface ipaddr set! IPv4 routing is not possible."
return 1