contrib/meshwizard: Add initial support for ipv6 config (with auto-ipv6-ib and dhcpv6)
[project/luci.git] / contrib / package / meshwizard / files / usr / bin / meshwizard / helpers / setup_olsrd.sh
1 #!/bin/sh
2 # Sets up olsrd
3
4 . /etc/functions.sh
5 . $dir/functions.sh
6
7 #Rename olsrd basic settings
8 handle_olsrd() {
9         if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
10                 section_rename olsrd $1 olsrd
11         fi
12 }
13 config_load olsrd
14 config_foreach handle_olsrd olsrd
15
16 # Rename interface defaults
17 handle_interfacedefaults() {
18         if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
19                 section_rename olsrd $1 InterfaceDefaults
20         fi
21 }
22 config_foreach handle_interfacedefaults InterfaceDefaults
23
24 # Set basic olsrd settings
25 if [ "profile_ipv6" = 1 ]; then
26         uci set olsrd.olsrd.IpVersion="6and4"
27 fi
28 uci_commitverbose "Setup olsr basic settings" olsrd
29
30
31 # Setup new InterfaceDefaults
32 uci set olsrd.InterfaceDefaults=InterfaceDefaults
33 set_defaults "olsr_interfacedefaults_" olsrd.InterfaceDefaults
34 uci_commitverbose "Setup olsr interface defaults" olsrd
35
36 # Rename nameservice, dyngw and httpinfo plugins
37
38 handle_plugin() {
39         config_get library "$1" library
40         if [ -z "${1/cfg[0-9a-fA-F]*/}" ]; then
41                 new="$(echo $library | cut -d '.' -f 1)"
42                 section_rename olsrd $1 $new
43         fi
44 }
45 config_foreach handle_plugin LoadPlugin
46
47 # Setup nameservice plugin
48 if [ -n "$profile_suffix" ]; then
49         suffix=".$profile_suffix"
50 else
51         suffix=".olsr"
52 fi
53 uci batch << EOF
54         set olsrd.olsrd_nameservice=LoadPlugin
55         set olsrd.olsrd_nameservice.library="olsrd_nameservice.so.0.3"
56         set olsrd.olsrd_nameservice.latlon_file="/var/run/latlon.js"
57         set olsrd.olsrd_nameservice.hosts_file="/var/etc/hosts.olsr"
58         set olsrd.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid"
59         set olsrd.olsrd_nameservice.suffix="$suffix"
60 EOF
61
62 uci_commitverbose "Setup olsr nameservice plugin" olsrd
63
64 # Setup dyngw_plain
65
66 # If Sharing of Internet is enabled then enable dyngw_plain plugin
67
68 if [ "$general_sharenet" == 1 ]; then
69         uci set olsrd.dyngw_plain=LoadPlugin
70         uci set olsrd.dyngw_plain.ignore=0
71         uci set olsrd.dyngw_plain.library="olsrd_dyn_gw_plain.so.0.4"
72
73         uci_commitverbose "Setup olsrd_dyngw_plain plugin" olsrd
74 fi
75
76 # Setup watchdog
77 uci batch << EOF
78         set olsrd.olsrd_watchdog=LoadPlugin
79         set olsrd.olsrd_watchdog.library="olsrd_watchdog.so.0.1"
80         set olsrd.olsrd_watchdog.file="/var/run/olsrd.watchdog"
81         set olsrd.olsrd_watchdog.interval=30
82 EOF
83 uci_commitverbose "Setup olsr watchdog plugin" olsrd