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
14configure_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)
30olsrd_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)
40olsrd_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
48olsrd_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
67olsrd_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.
89olsrd6_disable() {
90 trap 'error_trap olsrd6_disable "$*"' EXIT
91 /etc/init.d/olsrd6 disable
92}
93
94
95# erwuenschte Einstellungen setzen
96olsrd_enable_ondataservice
97olsrd_enable_nameservice
98disable_missing_olsr_modules
99olsr_set_main_ip
101configure_olsrd_httpinfo_port "$OLSR_HTTP_PORT"
102olsrd_enable_txtinfo
103olsrd_enable_jsoninfo
104olsrd6_disable
105
106apply_changes olsrd
msg_info(message)
Informationen und Fehlermeldungen ins syslog schreiben.
Definition: core.sh:15
olsr_sync_routing_tables()
Synchronisiere die olsrd-Routingtabellen-Konfiguration mit den iproute-Routingtabellennummern.
Definition: olsr.sh:7