11 # Clean or delete interface defaults
12 handle_interfacedefaults
() {
13 if [ "$cleanup" == 1 ]; then
14 section_cleanup olsrd.
$1
16 if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
17 section_rename olsrd
$1 InterfaceDefaults
23 config_foreach handle_interfacedefaults InterfaceDefaults
25 # Setup new InterfaceDefaults
27 echo " + Setup InterfaceDefaults"
28 uci
set olsrd.InterfaceDefaults
=InterfaceDefaults
29 set_defaults
"olsr_interfacedefaults_" olsrd.InterfaceDefaults
31 # Delete old interface for $netrenamed
33 config_get interface
"$1" Interface
34 if [ "$interface" == "$netrenamed" ]; then
35 if [ "$cleanup" == 1 ]; then
36 section_cleanup olsrd.
$1
37 elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
38 section_rename olsrd
$1 $netrenamed
43 config_foreach handle_interface Interface
45 # Setup new interface for $netrenamed
47 echo " + Setup Interface"
49 uci
set olsrd.
$netrenamed=Interface
51 set_defaults
"olsr_interface_" olsrd.
$net
53 uci
set olsrd.
$netrenamed.interface
="$netrenamed"
54 echo " interface: $netrenamed"
56 # If dhcp-network is inside the mesh_network then add HNA for it
57 dhcprange
=$
(uci get meshwizard.netconfig.
$net\_dhcprange
)
58 meshnet
="$(uci get profile_$community.profile.mesh_network)"
60 uci
-q delete olsrd.
${netrenamed}clients
62 # check if the dhcprange is inside meshnet
63 dhcpinmesh
="$($dir/helpers/check-range-in-range.sh $dhcprange $meshnet)"
65 if [ "$dhcpinmesh" == 1 ]; then
66 echo " + Setting up HNA"
67 uci
set olsrd.
${netrenamed}clients
="Hna4"
68 eval $
(sh
$dir/helpers
/ipcalc-cidr.sh
$dhcprange)
69 uci
set olsrd.
${netrenamed}clients.netaddr
="$NETWORK"
70 uci
set olsrd.
${netrenamed}clients.netmask
="$NETMASK"
71 echo " netaddr: $NETWORK"
72 echo " natmask: $NETMASK"
76 # Delete nameservice, dyngw and httpinfo plugins
78 echo " + Configure Plugins"
80 config_get library
"$1" library
81 if [ "$cleanup" == 1 ]; then
84 section_cleanup olsrd.
$1
86 elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
87 new
="$(echo $library | cut -d '.' -f 1)"
88 section_rename olsrd
$1 $new
91 config_foreach handle_plugin LoadPlugin
93 # Setup nameservice plugin
94 if [ -n "$profile_suffix" ]; then
95 suffix
=".$profile_suffix"
100 set olsrd.olsrd_nameservice=LoadPlugin
101 set olsrd.olsrd_nameservice.library="olsrd_nameservice.so.0.3"
102 set olsrd.olsrd_nameservice.latlon_file="/var/run/latlon.js"
103 set olsrd.olsrd_nameservice.hosts_file="/var/etc/hosts.olsr"
104 set olsrd.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid"
105 set olsrd.olsrd_nameservice.suffix="$suffix"
108 echo " Nameservice Plugin configured."
112 # If Sharing of Internet is enabled then enable dyngw_plain plugin
113 sharenet
=$
(uci
-q get meshwizard.general.sharenet
)
115 if [ -n "$(uci -q get olsrd.dyngw_plain.library)" ]; then
116 section_cleanup olsrd.dyngw_plain
119 if [ "$sharenet" == 1 ]; then
120 echo " + Setup dyngw_plain"
121 uci
set olsrd.dyngw_plain
=LoadPlugin
122 uci
set olsrd.dyngw_plain.ignore
=0
123 uci
set olsrd.dyngw_plain.library
="olsrd_dyn_gw_plain.so.0.4"