3# Setzen aller fuer Opennet relevanten olsr-Einstellungen.
5# Dieses Skript wird nur ein einziges Mal nach einem Upgrade oder der Erstinstallation ausgefuehrt:
10# shellcheck source=opennet/packages/on-core/files/usr/lib/opennet/on-helper.sh
11.
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
14configure_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)
30olsrd_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)
40olsrd_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"
48olsrd_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.
67olsrd_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
96olsrd_enable_ondataservice
97olsrd_enable_nameservice
98disable_missing_olsr_modules
101configure_olsrd_httpinfo_port
"$OLSR_HTTP_PORT"
msg_info(message)
Informationen und Fehlermeldungen ins syslog schreiben.
olsr_sync_routing_tables()
Synchronisiere die olsrd-Routingtabellen-Konfiguration mit den iproute-Routingtabellennummern.