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) eines Dienstes. Mehr ... | |
update_service_routing_distance (service_name) | |
Aktualisiere Routing-Entfernung und Hop-Count eines Dienst-Anbieters. 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) | |
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 ... | |
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 27 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 43 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 38 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 67 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 111 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 131 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 124 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 74 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 61 der Datei services.sh.
is_existing_service | ( | service_name | ) |
Prüfe ob ein Service existiert.
service_name | der Name des Diensts |
Definiert in Zeile 22 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 136 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 97 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 104 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 88 der Datei services.sh.
notify_service | ( | ) |
Aktualisiere den Zeitstempel und die Entfernung (etx) eines Dienstes.
Definiert in Zeile 11 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.
Definiert in Zeile 56 der Datei services.sh.
print_services | ( | service_type | ) |
menschenfreundliche Ausgabe der aktuell angemeldeten Dienste
service_type | (optional) ein Service-Type |
Definiert in Zeile 79 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 149 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 118 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 31 der Datei services.sh.
update_service_routing_distance | ( | service_name | ) |
Aktualisiere Routing-Entfernung und Hop-Count eines Dienst-Anbieters.
service_name | der zu aktualisierende Dienst |
Beide Dienst-Werte werden gelöscht, falls der Host nicht route-bar sein sollte. Diese Funktion sollte regelmäßig für alle Hosts ausgeführt werden.
Definiert in Zeile 17 der Datei services.sh.