Opennet Firmware
 Alle Dateien Funktionen Variablen Gruppen Seiten
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 . "${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
11 
12 
13 configure_olsrd_httpinfo_port() {
14  trap "error_trap configure_olsrd_httpinfo_port '$*'" $GUARD_TRAPS
15  local port="$1"
16  local uci_prefix
17 
18  # add and activate httpinfo plugin
19  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "httpinfo")
20  # Wir koennen leider nicht zwischen "Nutzer hat 1978 eingestellt" und "Auslieferungszustand" unterscheiden.
21  # Falls der Nutzer also explizit diesen Port will, dann muss er ihn nach einem Upgrade wieder einstellen.
22  [ "$(uci_get "${uci_prefix}.port" "1978")" = "1978" ] && uci set "${uci_prefix}.port=$OLSR_HTTP_PORT"
23  return 0
24 }
25 
26 
27 # das txtinfo-Modul ist notwendig fuer die Dienstverwaltung (Routen-Entfernung)
28 olsrd_enable_txtinfo() {
29  trap "error_trap olsrd_enable_txtinfo '$*'" $GUARD_TRAPS
30  local uci_prefix
31  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "txtinfo")
32  uci set "${uci_prefix}.ignore=0"
33 }
34 
35 
36 # das jsoninfo-Modul ist notwendig fuer die luci-Integration von olsrd
37 # (nett, aber unwichtig)
38 olsrd_enable_jsoninfo() {
39  trap "error_trap olsrd_enable_jsoninfo '$*'" $GUARD_TRAPS
40  local uci_prefix
41  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "jsoninfo")
42  uci set "${uci_prefix}.ignore=0"
43 }
44 
45 
46 olsrd_enable_ondataservice() {
47  trap "error_trap enable_ondataservice '$*'" $GUARD_TRAPS
48  local uci_prefix
49 
50  # schon vorhanden? Unberuehrt lassen ...
51  uci -q show olsrd | grep -q ondataservice && return
52 
53  # add and activate ondataservice plugin
54  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "ondataservice_light")
55  uci set "${uci_prefix}.interval=10800"
56  uci set "${uci_prefix}.inc_interval=5"
57  uci set "${uci_prefix}.database=/tmp/database.json"
58  # Wir setzen "ignore" nicht explizit auf "0", da es nicht unbedingt erforderlich ist und
59  # im Unterschied zu den relevanten olsrd-Plugins nicht zu erwarten ist, dass es zuvor
60  # bereits existierte. Falls also "ignore" auf "1" gesetzt ist, dann war es eine bewusste
61  # Entscheidung des Nutzers.
62 }
63 
64 
65 olsrd_enable_nameservice() {
66  trap "error_trap enable_nameservice '$*'" $GUARD_TRAPS
67  local current_trigger
68  local uci_prefix
69 
70  # fuer NTP, DNS und die Gateway-Auswahl benoetigen wir das nameservice-Plugin
71  local uci_prefix
72  uci_prefix=$(get_and_enable_olsrd_library_uci_prefix "nameservice")
73  if [ -z "$uci_prefix" ]; then
74  msg_info "Failed to find olsrd_nameservice plugin"
75  else
76  # Option 'services-change-script' setzen
77  current_trigger=$(uci_get "${uci_prefix}.services_change_script" || true)
78  [ -n "$current_trigger" ] && [ "$current_trigger" != "$OLSR_NAMESERVICE_SERVICE_TRIGGER" ] && \
79  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."
80  uci set "${uci_prefix}.services_change_script=$OLSR_NAMESERVICE_SERVICE_TRIGGER"
81  uci set "${uci_prefix}.ignore=0"
82  fi
83 }
84 
85 
86 # erwuenschte Einstellungen setzen
87 olsrd_enable_ondataservice
88 olsrd_enable_nameservice
89 disable_missing_olsr_modules
90 olsr_set_main_ip
92 configure_olsrd_httpinfo_port "$OLSR_HTTP_PORT"
93 olsrd_enable_txtinfo
94 olsrd_enable_jsoninfo
95 
96 # Neuinitialisierung des Policy-Routing - auch nach einer Paket-Installation hilfreich
98 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
initialize_olsrd_policy_routing()
Policy-Routing-Initialisierung nach dem System-Boot und nach Interface-Hotplug-Ereignissen.
Definition: routing.sh:43