X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=contrib%2Fpackage%2Fmeshwizard%2Ffiles%2Fusr%2Fbin%2Fmeshwizard%2Fhelpers%2Fsetup_olsrd.sh;h=5f6f550938384235222c9a60df252860501c56f1;hp=d298828e3dd53feebf755fb1277da9d19bb6e14a;hb=d5fc0a0cef09ab5efc170933eeefb83097b93e36;hpb=ab87896104be09072ccccad305588d46370ab5ad diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh index d298828e3..5f6f55093 100755 --- a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh +++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh @@ -1,94 +1,60 @@ #!/bin/sh # Sets up olsrd -# arg $1 = net - -net=$1 - -. /etc/functions.sh +. /lib/functions.sh . $dir/functions.sh -# Clean or delete interface defaults -handle_interfacedefaults() { - if [ "$cleanup" == 1 ]; then - section_cleanup olsrd.$1 - else - if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then - section_rename olsrd $1 InterfaceDefaults - fi - fi +# Clean the config, remove interface wlan +handle_interface() { + config_get interface "$1" interface + if [ "$interface" = "wlan" ]; then + uci delete olsrd.$1 + fi } - config_load olsrd -config_foreach handle_interfacedefaults InterfaceDefaults - -# Setup new InterfaceDefaults - -echo " + Setup InterfaceDefaults" -uci set olsrd.InterfaceDefaults=InterfaceDefaults -set_defaults "olsr_interfacedefaults_" olsrd.InterfaceDefaults +config_foreach handle_interface Interface -# Delete old interface for $netrenamed -handle_interface() { - config_get interface "$1" Interface - if [ "$interface" == "$netrenamed" ]; then - if [ "$cleanup" == 1 ]; then - section_cleanup olsrd.$1 - elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then - section_rename olsrd $1 $netrenamed - fi +#Rename olsrd basic settings +handle_olsrd() { + if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then + section_rename olsrd $1 olsrd fi } +config_foreach handle_olsrd olsrd -config_foreach handle_interface Interface - -# Setup new interface for $netrenamed - -echo " + Setup Interface" - -uci set olsrd.$netrenamed=Interface - -set_defaults "olsr_interface_" olsrd.$net - -uci set olsrd.$netrenamed.interface="$netrenamed" -echo " interface: $netrenamed" - -# If dhcp-network is inside the mesh_network then add HNA for it -dhcprange=$(uci get meshwizard.netconfig.$net\_dhcprange) -meshnet="$(uci get profile_$community.profile.mesh_network)" - -uci -q delete olsrd.${netrenamed}clients - -# check if the dhcprange is inside meshnet -dhcpinmesh="$($dir/helpers/check-range-in-range.sh $dhcprange $meshnet)" +# Rename interface defaults +handle_interfacedefaults() { + if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then + section_rename olsrd $1 InterfaceDefaults + fi +} +config_foreach handle_interfacedefaults InterfaceDefaults -if [ "$dhcpinmesh" == 1 ]; then - echo " + Setting up HNA" - uci set olsrd.${netrenamed}clients="Hna4" - eval $(sh $dir/helpers/ipcalc-cidr.sh $dhcprange) - uci set olsrd.${netrenamed}clients.netaddr="$NETWORK" - uci set olsrd.${netrenamed}clients.netmask="$NETMASK" - echo " netaddr: $NETWORK" - echo " natmask: $NETMASK" +# Set basic olsrd settings +if [ "$ipv6_enabled" = 1 ] && [ "$has_ipv6" == "1" ]; then + uci set olsrd.olsrd.IpVersion="6and4" fi -# Delete nameservice, dyngw and httpinfo plugins +# Setup new InterfaceDefaults +uci set olsrd.InterfaceDefaults=InterfaceDefaults +set_defaults "olsr_interfacedefaults_" olsrd.InterfaceDefaults + +# Rename nameservice, dyngw and httpinfo plugins -echo " + Configure Plugins" handle_plugin() { - config_get library "$1" library - if [ "$cleanup" == 1 ]; then - case library in - olsrd_*) - section_cleanup olsrd.$1 - esac - elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then + config_get library "$1" library + if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then new="$(echo $library | cut -d '.' -f 1)" - section_rename olsrd $1 $new - fi + section_rename olsrd "$1" "$new" + fi } config_foreach handle_plugin LoadPlugin +uci -q delete olsrd.olsrd_httpinfo +uci -q delete olsrd.olsrd_dyn_gw + +uci_commitverbose "Cleanup olsrd config" olsrd + # Setup nameservice plugin if [ -n "$profile_suffix" ]; then @@ -97,30 +63,40 @@ else suffix=".olsr" fi uci batch << EOF -set olsrd.olsrd_nameservice=LoadPlugin -set olsrd.olsrd_nameservice.library="olsrd_nameservice.so.0.3" -set olsrd.olsrd_nameservice.latlon_file="/var/run/latlon.js" -set olsrd.olsrd_nameservice.hosts_file="/var/etc/hosts.olsr" -set olsrd.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid" -set olsrd.olsrd_nameservice.suffix="$suffix" + set olsrd.olsrd_nameservice=LoadPlugin + set olsrd.olsrd_nameservice.library="olsrd_nameservice.so.0.3" + set olsrd.olsrd_nameservice.latlon_file="/var/run/latlon.js" + set olsrd.olsrd_nameservice.hosts_file="/var/etc/hosts.olsr" + set olsrd.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid" + set olsrd.olsrd_nameservice.suffix="$suffix" EOF -echo " Nameservice Plugin configured." +uci_commitverbose "Setup olsr nameservice plugin" olsrd # Setup dyngw_plain # If Sharing of Internet is enabled then enable dyngw_plain plugin -sharenet=$(uci -q get meshwizard.general.sharenet) -if [ -n "$(uci -q get olsrd.dyngw_plain.library)" ]; then - section_cleanup olsrd.dyngw_plain -fi - -if [ "$sharenet" == 1 ]; then - echo " + Setup dyngw_plain" +if [ "$general_sharenet" == 1 ]; then uci set olsrd.dyngw_plain=LoadPlugin uci set olsrd.dyngw_plain.ignore=0 uci set olsrd.dyngw_plain.library="olsrd_dyn_gw_plain.so.0.4" + + uci_commitverbose "Setup olsrd_dyngw_plain plugin" olsrd fi -uci commit +# Setup watchdog +uci batch << EOF + set olsrd.olsrd_watchdog=LoadPlugin + set olsrd.olsrd_watchdog.library="olsrd_watchdog.so.0.1" + set olsrd.olsrd_watchdog.file="/var/run/olsrd.watchdog" + set olsrd.olsrd_watchdog.interval=30 +EOF +uci_commitverbose "Setup olsr watchdog plugin" olsrd + +# Setup jsoninfo +uci batch << EOF + set olsrd.olsrd_jsoninfo=LoadPlugin + set olsrd.olsrd_jsoninfo.library="olsrd_jsoninfo.so.0.0" +EOF +uci_commitverbose "Setup olsr jsoninfo plugin" olsrd