10 # Clean or delete interface defaults
11 handle_interfacedefaults
() {
12 if [ "$cleanup" == 1 ]; then
13 section_cleanup olsrd.
$1
15 if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
16 section_rename olsrd
$1 InterfaceDefaults
22 config_foreach handle_interfacedefaults InterfaceDefaults
24 # Setup new InterfaceDefaults
26 uci
set olsrd.InterfaceDefaults
=InterfaceDefaults
27 set_defaults
"olsr_interfacedefaults_" olsrd.InterfaceDefaults
28 uci_commitverbose
"Setup olsr interface defaults" olsrd
30 # Delete old interface for $netrenamed
32 config_get interface
"$1" Interface
33 if [ "$interface" == "$netrenamed" ]; then
34 if [ "$cleanup" == 1 ]; then
35 section_cleanup olsrd.
$1
36 elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
37 section_rename olsrd
$1 $netrenamed
42 config_foreach handle_interface Interface
44 # Setup new interface for $netrenamed
46 uci
set olsrd.
$netrenamed=Interface
47 set_defaults
"olsr_interface_" olsrd.
$net
48 uci
set olsrd.
$netrenamed.interface
="$netrenamed"
50 uci_commitverbose
"Setup olsr interface for $netrenamed." olsrd
52 # If dhcp-network is inside the mesh_network then add HNA for it
53 dhcprange
=$
(uci get meshwizard.netconfig.
$net\_dhcprange
)
54 meshnet
="$(uci get profile_$community.profile.mesh_network)"
56 uci
-q delete olsrd.
${netrenamed}clients
58 # check if the dhcprange is inside meshnet
59 dhcpinmesh
="$($dir/helpers/check-range-in-range.sh $dhcprange $meshnet)"
61 if [ "$dhcpinmesh" == 1 ]; then
62 uci
set olsrd.
${netrenamed}clients
="Hna4"
63 eval $
(sh
$dir/helpers
/ipcalc-cidr.sh
$dhcprange)
64 uci
set olsrd.
${netrenamed}clients.netaddr
="$NETWORK"
65 uci
set olsrd.
${netrenamed}clients.netmask
="$NETMASK"
66 uci_commitverbose
"Setup HNA for network $dhcprange" olsrd
70 # Delete nameservice, dyngw and httpinfo plugins
73 config_get library
"$1" library
74 if [ "$cleanup" == 1 ]; then
77 section_cleanup olsrd.
$1
79 elif [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
80 new
="$(echo $library | cut -d '.' -f 1)"
81 section_rename olsrd
$1 $new
84 config_foreach handle_plugin LoadPlugin
86 # Setup nameservice plugin
87 if [ -n "$profile_suffix" ]; then
88 suffix
=".$profile_suffix"
93 set olsrd.olsrd_nameservice=LoadPlugin
94 set olsrd.olsrd_nameservice.library="olsrd_nameservice.so.0.3"
95 set olsrd.olsrd_nameservice.latlon_file="/var/run/latlon.js"
96 set olsrd.olsrd_nameservice.hosts_file="/var/etc/hosts.olsr"
97 set olsrd.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid"
98 set olsrd.olsrd_nameservice.suffix="$suffix"
101 uci_commitverbose
"Setup olsr nameservice plugin" olsrd
105 # If Sharing of Internet is enabled then enable dyngw_plain plugin
106 sharenet
=$
(uci
-q get meshwizard.general.sharenet
)
108 if [ -n "$(uci -q get olsrd.dyngw_plain.library)" ]; then
109 section_cleanup olsrd.dyngw_plain
112 if [ "$sharenet" == 1 ]; then
113 uci
set olsrd.dyngw_plain
=LoadPlugin
114 uci
set olsrd.dyngw_plain.ignore
=0
115 uci
set olsrd.dyngw_plain.library
="olsrd_dyn_gw_plain.so.0.4"
116 uci_commitverbose
"Setup olsrd_dyngw_plain plugin"