![]() |
Opennet Firmware
|
Verwaltung von Diensten (z.B. via olsrd-nameservice announciert) Mehr ...
Funktionen | |
get_service_name () | |
Ermittle en Namen eines Diensts basierend auf den Dienst-Attributen. Mehr ... | |
notify_service () | |
Aktualisiere den Zeitstempel und die Entfernung (etx, service, scheme, host, port, path, protocol, details) eines Dienstes. Mehr ... | |
notify_services (source) | |
Siehe "notify_service" - jedoch effizienter im Umgang mit einer großen Anzahl von Diensten. Mehr ... | |
is_existing_service (service_name) | |
Prüfe ob ein Service existiert. Mehr ... | |
_get_local_bias_for_service () | |
Ermittle eine reproduzierbare Zahl von 0 bis (LOCAL_BIAS_MODULO-1, service_name) - abhängig von der lokalen IP und dem Dienstnamen. Mehr ... | |
sort_services_by_priority () | |
Sortiere den eingegebenen Strom von Dienstnamen und gib eine nach der Priorität sortierte Liste. Mehr ... | |
filter_reachable_services () | |
Filtere aus einer Reihe eingehender Dienste diejenigen heraus, die erreichbar sind. Mehr ... | |
filter_enabled_services () | |
Filtere aus einer Reihe eingehender Dienste diejenigen heraus, die nicht manuell ausgeblendet wurden. Mehr ... | |
pipe_service_attribute (key, default) | |
Liefere zu einer Reihe von Diensten ein gewähltes Attribut dieser Dienste zurück. Mehr ... | |
get_services (service_type) | |
Liefere alle Dienste zurueck, die dem angegebenen Typ zugeordnet sind. Falls kein Typ angegben wird, dann werden alle Dienste ungeachtet ihres Typs ausgegeben. Mehr ... | |
filter_services_by_value (key, value) | |
set_service_value () | |
Setzen eines oder mehrerer Werte fuer einen Dienst. Je nach Schluesselname wird der Inhalt in die persistente uci- oder. Mehr ... | |
get_service_value (key, default) | |
Auslesen eines Werts aus der Service-Datenbank. Mehr ... | |
print_services (service_type) | |
menschenfreundliche Ausgabe der aktuell angemeldeten Dienste Mehr ... | |
move_service_up (service_name, service_type) | |
Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach oben. Mehr ... | |
move_service_down (service_name, service_type) | |
Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach unten. Mehr ... | |
move_service_top (service_name, service_types) | |
Verschiebe einen Dienst an die Spitze der Dienst-Sortierung. Mehr ... | |
get_service_detail (service_name, key, default) | |
Ermittle den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts. Mehr ... | |
set_service_detail (service_name, key, value) | |
Setze den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts. Mehr ... | |
get_service_log_filename () | |
Ermittle den Namen der Log-Datei für diesen Dienst. Zusätzliche Details (z.B. "openvpn mtu", service, other) sind möglich. Mehr ... | |
get_service_log_content (service, max_lines) | |
Lies den Inhalt einer Log-Datei für einen Dienst aus. Mehr ... | |
is_service_routed_via_wan (service_name) | |
Pruefe ob der Verkehr zum Anbieter des Diensts über ein WAN-Interface verlaufen würde. Mehr ... | |
is_trusted_service_list_outdated () | |
Ermittle ob mindestens ein Zeitstempel für einen "trusted" Dienst vorhanden ist, der nicht älter als die vorgegebene Aktualisierungsperiode ist. Mehr ... | |
add_custom_proxy_gw () | |
Fuege eine zusätzliches Dienst-Weiterleitung hinzu (proxy-gw, host, port). Mehr ... | |
update_trusted_services_list () | |
Hole die vertrauenswürdigen Dienste von signierten Opennet-Quellen. Mehr ... | |
run_cyclic_service_tests (test_function) | |
Durchlaufe alle via STDIN angegebenen Dienste bis mindestens ein Test erfolgreich ist. Mehr ... | |
Verwaltung von Diensten (z.B. via olsrd-nameservice announciert)
_get_local_bias_for_service | ( | ) |
Ermittle eine reproduzierbare Zahl von 0 bis (LOCAL_BIAS_MODULO-1, service_name) - abhängig von der lokalen IP und dem Dienstnamen.
service_name | der Name des Diensts für den ein Bias-Wert zu ermitteln ist. |
Dadurch können wir beim Sortieren strukturelle Bevorzugungen (z.B. durch alphabetische Sortierung) verhindern.
Definiert in Zeile 33 der Datei services.sh.
add_custom_proxy_gw | ( | ) |
Fuege eine zusätzliches Dienst-Weiterleitung hinzu (proxy-gw, host, port).
host | der DNS Name des OpenVPN Servers |
port | der Port des OpenVPN Server (i.d.R. 1600, protocol) |
protocol | udp oder tcp (i.d.R. udp) |
Definiert in Zeile 159 der Datei services.sh.
filter_enabled_services | ( | ) |
Filtere aus einer Reihe eingehender Dienste diejenigen heraus, die nicht manuell ausgeblendet wurden.
Die Dienst-Namen werden über die Standardeingabe gelesen und an die Standardausgabe weitergeleitet, falls der Dienst nicht abgewählt wurde.
Definiert in Zeile 49 der Datei services.sh.
filter_reachable_services | ( | ) |
Filtere aus einer Reihe eingehender Dienste diejenigen heraus, die erreichbar sind.
Die Dienst-Namen werden über die Standardeingabe gelesen und an die Standardausgabe weitergeleitet, falls der Dienst erreichbar sind. "Erreichbarkeit" gilt als erreicht, wenn der Host via olsr route-bar ist oder wenn er als DNS-entdeckter Dienst eine Priorität hat oder wenn er manuell hinzugefügt wurde.
Definiert in Zeile 44 der Datei services.sh.
key | ein Schlüssel |
value | ein Wert |
Als Parameter kann ein "key/value"-Schluesselpaar angegeben werden. Nur diejenigen Dienste, auf die diese Bedingung zutrifft, werden zurueckgeliefert.
Definiert in Zeile 74 der Datei services.sh.
get_service_detail | ( | service_name | , |
key | , | ||
default | |||
) |
Ermittle den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts.
service_name | Name eines Diensts |
key | Name des Schlüssels |
default | dieser Wert wird zurückgeliefert, falls der Schlüssel nicht gefunden wurde |
Definiert in Zeile 123 der Datei services.sh.
get_service_log_content | ( | service | , |
max_lines | |||
) |
Lies den Inhalt einer Log-Datei für einen Dienst aus.
service | Name eines Dienstes. |
max_lines | maximale Anzahl der auszuliefernden Zeilen (unbegrenzt: 0, other) |
other | Eine beliebige Anzahl weiterer Parameter ist erlaubt: diese erweitern den typischen Log-Dateinamen für diesen Dienst. |
Definiert in Zeile 143 der Datei services.sh.
get_service_log_filename | ( | ) |
Ermittle den Namen der Log-Datei für diesen Dienst. Zusätzliche Details (z.B. "openvpn mtu", service, other) sind möglich.
service | Name eines Dienstes. |
other | Eine beliebige Anzahl weiterer Parameter ist erlaubt: diese erweitern den typischen Log-Dateinamen für diesen Dienst. |
Die Funktion stellt sicher, dass das Verzeichnis der ermittelten Log-Datei anschließend existiert.
Definiert in Zeile 136 der Datei services.sh.
get_service_name | ( | ) |
Ermittle en Namen eines Diensts basierend auf den Dienst-Attributen.
Reihenfolge der Eingabeparameter: SERVICE_TYPE SCHEMA HOST PORT PROTOCOL PATH
Definiert in Zeile 7 der Datei services.sh.
get_service_value | ( | key | , |
default | |||
) |
Auslesen eines Werts aus der Service-Datenbank.
key | Der Name eines Dienst-Attributs |
default | Der Standard-Wert wird anstelle des Attribut-Werts verwendet, falls dieser leer ist. |
Falls das Attribut nicht existiert, wird ein leerer Text zurückgeliefert. Es gibt keinen abschließenden Zeilenumbruch.
Definiert in Zeile 86 der Datei services.sh.
get_services | ( | service_type | ) |
Liefere alle Dienste zurueck, die dem angegebenen Typ zugeordnet sind. Falls kein Typ angegben wird, dann werden alle Dienste ungeachtet ihres Typs ausgegeben.
service_type | (optional) ein Service-Typ |
Definiert in Zeile 68 der Datei services.sh.
is_existing_service | ( | service_name | ) |
Prüfe ob ein Service existiert.
service_name | der Name des Diensts |
Definiert in Zeile 28 der Datei services.sh.
is_service_routed_via_wan | ( | service_name | ) |
Pruefe ob der Verkehr zum Anbieter des Diensts über ein WAN-Interface verlaufen würde.
service_name | der Name des Diensts |
Definiert in Zeile 148 der Datei services.sh.
is_trusted_service_list_outdated | ( | ) |
Ermittle ob mindestens ein Zeitstempel für einen "trusted" Dienst vorhanden ist, der nicht älter als die vorgegebene Aktualisierungsperiode ist.
Definiert in Zeile 153 der Datei services.sh.
move_service_down | ( | service_name | , |
service_type | |||
) |
Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach unten.
service_name | der zu verschiebende Dienst |
service_type | der Service-Typ innerhalb derer Mitglieder die Verschiebung stattfinden soll |
Für verschiedene Sortier-Modi hat dies verschiedene Auswirkungen:
Definiert in Zeile 109 der Datei services.sh.
move_service_top | ( | service_name | , |
service_types | |||
) |
Verschiebe einen Dienst an die Spitze der Dienst-Sortierung.
service_name | der zu verschiebende Dienst |
service_types | ein oder mehrere Dienst-Typen, auf die die Ermittlung der Dienst-Liste begrenzt werden soll (z.B. "gw") |
Der Dienst steht anschließend direkt vor dem bisher führenden Dienst der ausgewählten Typen (falls angegeben). Falls keine Dienst-Typen angegeben sind, bewegt der Dienst sich in der globalen Liste an die Spitze.
Definiert in Zeile 116 der Datei services.sh.
move_service_up | ( | service_name | , |
service_type | |||
) |
Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach oben.
service_name | der zu verschiebende Dienst |
service_type | der Service-Typ innerhalb derer Mitglieder die Verschiebung stattfinden soll |
Für verschiedene Sortier-Modi hat dies verschiedene Auswirkungen:
Definiert in Zeile 100 der Datei services.sh.
notify_service | ( | ) |
Aktualisiere den Zeitstempel und die Entfernung (etx, service, scheme, host, port, path, protocol, details) eines Dienstes.
service | z.B. "gw" |
scheme | z.B. "openvpn" |
host | z.B. "192.168.2.254" |
port | z.B. "1600" |
path | z.B. "/" |
protocol | z.B. "udp" |
details | z.B. "via:megumi" |
Definiert in Zeile 18 der Datei services.sh.
notify_services | ( | source | ) |
Siehe "notify_service" - jedoch effizienter im Umgang mit einer großen Anzahl von Diensten.
source | Quelle (z.B. "olsr") |
Definiert in Zeile 23 der Datei services.sh.
pipe_service_attribute | ( | key | , |
default | |||
) |
Liefere zu einer Reihe von Diensten ein gewähltes Attribut dieser Dienste zurück.
key | Der Name eines Dienst-Attributs |
default | Der Standard-Wert wird anstelle des Attribut-Werts verwendet, falls dieser leer ist. |
Die Dienstenamen werden via Standardeingabe erwartet. Auf der Standardausgabe wird für einen Dienst entweder ein Wert oder nichts ausgeliefert. Keine Ausgabe erfolgt, falls der Wert des Dienste-Attributs leer ist. Bei der Eingabe von mehreren Diensten werden also eventuell weniger Zeilen ausgegeben, als eingelesen wurden. Falls der optionale zweite 'default'-Parameter nicht leer ist, dann wird bei einem leeren Ergebnis stattdessen dieser Wert ausgegeben. Der 'default'-Parameter sorgt somit dafür, dass die Anzahl der eingelesenen Zeilen in jedem Fall mit der Anzahl der ausgegebenen Zeilen übereinstimmt. Die Ausgabe besteht aus dem Service-Namen und dem Attributinhalt (getrennt durch einen Tabulator).
Definiert in Zeile 63 der Datei services.sh.
print_services | ( | service_type | ) |
menschenfreundliche Ausgabe der aktuell angemeldeten Dienste
service_type | (optional) ein Service-Type |
Definiert in Zeile 91 der Datei services.sh.
run_cyclic_service_tests | ( | test_function | ) |
Durchlaufe alle via STDIN angegebenen Dienste bis mindestens ein Test erfolgreich ist.
test_function | der Name der zu verwendenden Test-Funktion für einen Dienst (z.B. "verify_vpn_connection", test_period_minutes, max_fail_attempts) |
test_period_minutes | Wiederholungsperiode der Dienst-Prüfung |
max_fail_attempts | Anzahl von Fehlversuchen, bis ein Dienst von "gut" oder "unklar" zu "schlecht" wechselt |
Die Diensteanbieter werden in der Reihenfolge ihrer Priorität geprüft. Nach dem ersten Durchlauf dieser Funktion sollte typischerweise der nächstgelegene nutzbare Dienst als funktionierend markiert sein. Falls nach dem Durchlauf aller Dienste keiner positiv getestet wurde (beispielsweise weil alle Zeitstempel zu frisch sind), dann wird in jedem Fall der älteste nicht-funktionsfähige Dienst getestet. Dies minimiert die Ausfallzeit im Falle einer globalen Nicht-Erreichbarkeit aller Dienstenanbieter ohne auf den Ablauf der Test-Periode warten zu müssen.
Definiert in Zeile 177 der Datei services.sh.
Setze den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts.
service_name | Name eines Diensts |
key | Name des Schlüssels |
value | der neue Wert |
Ein leerer Wert löscht das Schlüssel-Wert-Paar.
Definiert in Zeile 130 der Datei services.sh.
set_service_value | ( | ) |
Setzen eines oder mehrerer Werte fuer einen Dienst. Je nach Schluesselname wird der Inhalt in die persistente uci- oder.
Definiert in Zeile 79 der Datei services.sh.
sort_services_by_priority | ( | ) |
Sortiere den eingegebenen Strom von Dienstnamen und gib eine nach der Priorität sortierte Liste.
Die Prioritätsinformation wird typischerweise für nicht-mesh-verteilte Dienste verwendet (z.B. den mesh-Tunnel).
Definiert in Zeile 37 der Datei services.sh.
update_trusted_services_list | ( | ) |
Hole die vertrauenswürdigen Dienste von signierten Opennet-Quellen.
Diese Dienste führen beispielsweise auf UGW-APs zur Konfiguration von Portweiterleitungen ins Internet. Daher sind sie nur aus vertrauenswürdiger Quelle zu akzeptieren (oder manuell).
Definiert in Zeile 164 der Datei services.sh.