Opennet Firmware
on-olsr-setup
gehe zur Dokumentation dieser Datei
1 #!/bin/sh
2 #
3 # Setzen aller fuer Opennet relevanten olsr-Einstellungen.
4 #
5 # Dieses Skript wird nur ein einziges Mal nach einem Upgrade oder der Erstinstallation ausgefuehrt:
6 # http://wiki.openwrt.org/doc/uci#defaults
7 #
8 
9 
10 # shellcheck source=opennet/packages/on-core/files/usr/lib/opennet/on-helper.sh
11 . "${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
12 
13 
14 configure_olsrd_httpinfo_port() {
15  trap 'error_trap configure_olsrd_httpinfo_port "$*"' EXIT
16  local port="$1"
17  local uci_prefix
18 
19  # add and activate httpinfo plugin
20  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "httpinfo")
21  # Wir koennen leider nicht zwischen "Nutzer hat 1978 eingestellt" und "Auslieferungszustand" unterscheiden.
22  # Falls der Nutzer also explizit diesen Port will, dann muss er ihn nach einem Upgrade wieder einstellen.
23  if [ "$(uci_get "${uci_prefix}.port" "1978")" = "1978" ]; then
24  uci set "${uci_prefix}.port=$port"
25  fi
26 }
27 
28 
29 # das txtinfo-Modul ist notwendig fuer die Dienstverwaltung (Routen-Entfernung)
30 olsrd_enable_txtinfo() {
31  trap 'error_trap olsrd_enable_txtinfo "$*"' EXIT
32  local uci_prefix
33  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "txtinfo")
34  uci set "${uci_prefix}.ignore=0"
35 }
36 
37 
38 # das jsoninfo-Modul ist notwendig fuer die luci-Integration von olsrd
39 # (nett, aber unwichtig)
40 olsrd_enable_jsoninfo() {
41  trap 'error_trap olsrd_enable_jsoninfo "$*"' EXIT
42  local uci_prefix
43  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "jsoninfo")
44  uci set "${uci_prefix}.ignore=0"
45 }
46 
47 
48 olsrd_enable_ondataservice() {
49  trap 'error_trap enable_ondataservice "$*"' EXIT
50  local uci_prefix
51 
52  # schon vorhanden? Unberuehrt lassen ...
53  uci -q show olsrd | grep -q ondataservice && return
54 
55  # add and activate ondataservice plugin
56  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "ondataservice_light")
57  uci set "${uci_prefix}.interval=10800"
58  uci set "${uci_prefix}.inc_interval=5"
59  uci set "${uci_prefix}.database=/tmp/database.json"
60  # Wir setzen "ignore" nicht explizit auf "0", da es nicht unbedingt erforderlich ist und
61  # im Unterschied zu den relevanten olsrd-Plugins nicht zu erwarten ist, dass es zuvor
62  # bereits existierte. Falls also "ignore" auf "1" gesetzt ist, dann war es eine bewusste
63  # Entscheidung des Nutzers.
64 }
65 
66 
67 olsrd_enable_nameservice() {
68  trap 'error_trap enable_nameservice "$*"' EXIT
69  local current_trigger
70  local uci_prefix
71 
72  # fuer NTP, DNS und die Gateway-Auswahl benoetigen wir das nameservice-Plugin
73  local uci_prefix
74  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "nameservice")
75  if [ -z "$uci_prefix" ]; then
76  msg_info "Failed to find olsrd_nameservice plugin"
77  else
78  # Option 'services-change-script' setzen
79  current_trigger=$(uci_get "${uci_prefix}.services_change_script" || true)
80  [ -n "$current_trigger" ] && [ "$current_trigger" != "$OLSR_NAMESERVICE_SERVICE_TRIGGER" ] && \
81  msg_info "WARNING: overwriting 'services-change-script' option of olsrd nameservice plugin with custom value. You should place a script below /etc/olsrd/nameservice.d/ instead."
82  uci set "${uci_prefix}.services_change_script=$OLSR_NAMESERVICE_SERVICE_TRIGGER"
83  uci set "${uci_prefix}.ignore=0"
84  fi
85 }
86 
87 
88 # disable olsrd6. By default it is enabled. We use olsrd2 for IPv6.
89 olsrd6_disable() {
90  trap 'error_trap olsrd6_disable "$*"' EXIT
91  /etc/init.d/olsrd6 disable
92 }
93 
94 
95 # erwuenschte Einstellungen setzen
96 olsrd_enable_ondataservice
97 olsrd_enable_nameservice
98 disable_missing_olsr_modules
99 olsr_set_main_ip
101 configure_olsrd_httpinfo_port "$OLSR_HTTP_PORT"
102 olsrd_enable_txtinfo
103 olsrd_enable_jsoninfo
104 olsrd6_disable
105 
106 apply_changes olsrd
olsr_sync_routing_tables()
Synchronisiere die olsrd-Routingtabellen-Konfiguration mit den iproute-Routingtabellennummern.
Definition: olsr.sh:7
msg_info(message)
Informationen und Fehlermeldungen ins syslog schreiben.
Definition: core.sh:15