3 # Setzen aller fuer Opennet relevanten olsr-Einstellungen. 5 # Dieses Skript wird nur ein einziges Mal nach einem Upgrade oder der Erstinstallation ausgefuehrt: 6 # http://wiki.openwrt.org/doc/uci#defaults 10 # shellcheck source=opennet/packages/on-core/files/usr/lib/opennet/on-helper.sh 11 .
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh" 14 configure_olsrd_httpinfo_port() {
15 trap
'error_trap configure_olsrd_httpinfo_port "$*"' EXIT
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" 29 # das txtinfo-Modul ist notwendig fuer die Dienstverwaltung (Routen-Entfernung) 30 olsrd_enable_txtinfo() {
31 trap
'error_trap olsrd_enable_txtinfo "$*"' EXIT
33 uci_prefix=$(get_and_enable_olsrd_library_uci_prefix
"txtinfo")
34 uci
set "${uci_prefix}.ignore=0" 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
43 uci_prefix=$(get_and_enable_olsrd_library_uci_prefix
"jsoninfo")
44 uci
set "${uci_prefix}.ignore=0" 48 olsrd_enable_ondataservice() {
49 trap
'error_trap enable_ondataservice "$*"' EXIT
52 # schon vorhanden? Unberuehrt lassen ... 53 uci -q show olsrd | grep -q ondataservice &&
return 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.
67 olsrd_enable_nameservice() {
68 trap
'error_trap enable_nameservice "$*"' EXIT
72 # fuer NTP, DNS und die Gateway-Auswahl benoetigen wir das nameservice-Plugin 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" 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" 88 # disable olsrd6. By
default it is enabled. We use olsrd2
for IPv6.
90 trap
'error_trap olsrd6_disable "$*"' EXIT
91 /etc/init.d/olsrd6 disable
95 # erwuenschte Einstellungen setzen 96 olsrd_enable_ondataservice
97 olsrd_enable_nameservice
98 disable_missing_olsr_modules
101 configure_olsrd_httpinfo_port
"$OLSR_HTTP_PORT" 103 olsrd_enable_jsoninfo
olsr_sync_routing_tables()
Synchronisiere die olsrd-Routingtabellen-Konfiguration mit den iproute-Routingtabellennummern.
msg_info(message)
Informationen und Fehlermeldungen ins syslog schreiben.