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