cjdns: uci-defaults: work around missing lan interface

The current uci-defaults scripts assumes than a network interface named
'lan' always exists. Check if this is true before adding ETHInterface
section.
This is a temporary work-around until cjdrouteconf gets the Linux
interface from netifd via ubus...

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Daniel Golle 2015-04-30 19:26:47 +02:00
parent 25d637576d
commit e26942118b
1 changed files with 16 additions and 14 deletions

View File

@ -22,22 +22,24 @@ EOF
exit 1 exit 1
fi fi
# enable auto-peering on ethernet # enable auto-peering on ethernet interface lan, if existing
uci show network.lan | grep bridge >/dev/null 2>&1 uci get network.lan | grep interface >/dev/null 2>&1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
# most routers will set up an ethernet bridge for the lan uci get network.lan.type | grep bridge >/dev/null 2>&1
ifname="br-lan" if [ $? -eq 0 ]; then
else # most routers will set up an ethernet bridge for the lan
# docker containers don't have permission to create bridges by default, ifname="br-lan"
# so we bind to the underlying interface instead (likely eth0) else
ifname=`uci get network.lan.ifname` # docker containers don't have permission to create bridges by default,
fi # so we bind to the underlying interface instead (likely eth0)
uci -q batch <<-EOF >/dev/null ifname=`uci get network.lan.ifname`
add cjdns eth_interface fi
set cjdns.@eth_interface[-1].beacon=2 uci -q batch <<-EOF >/dev/null
set cjdns.@eth_interface[-1].bind=$ifname add cjdns eth_interface
set cjdns.@eth_interface[-1].beacon=2
set cjdns.@eth_interface[-1].bind=$ifname
EOF EOF
fi
# set the tun interface name # set the tun interface name
uci set cjdns.cjdns.tun_device=tuncjdns uci set cjdns.cjdns.tun_device=tuncjdns