Opennet Firmware
 Alle Dateien Funktionen Variablen Gruppen Seiten
Dienste

Verwaltung von Diensten (z.B. via olsrd-nameservice announciert) Mehr ...

Funktionen

 update_service_routing_distance (service_name)
 Aktualisiere Routing-Entfernung und Hop-Count eines Dienst-Anbieters.
 is_existing_service (service_name)
 Prüfe ob ein Service existiert.
 sort_services_by (sort_key)
 Sortiere den eingegebenen Strom von Dienstnamen und gib eine sortierte Liste entsprechende des Arguments aus.
 filter_reachable_services ()
 Filtere aus einer Reihe eingehender Dienste diejenigen heraus, die erreichbar sind.
 filter_enabled_services ()
 Filtere aus einer Reihe eingehender Dienste diejenigen heraus, die nicht manuell ausgeblendet wurden.
 pipe_service_attribute (key, default)
 Liefere zu einer Reihe von Diensten ein gewähltes Attribut dieser Dienste zurück.
 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.
 filter_services_by_value (key, value)
 get_service_value (key, default)
 Auslesen eines Werts aus der Service-Datenbank.
 print_services (service_type)
 menschenfreundliche Ausgabe der aktuell angemeldeten Dienste
 move_service_up (service_name, service_type)
 Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach oben.
 move_service_down (service_name, service_type)
 Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach unten.
 move_service_top (service_name, service_types)
 Verschiebe einen Dienst an die Spitze der Dienst-Sortierung.
 get_service_detail (service_name, key, default)
 Ermittle den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts.
 set_service_detail (service_name, key, value)
 Setze den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts.
 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.
 update_service_wan_status (service_name)
 Pruefe ob der Verkehr zum Anbieter des Diensts über ein WAN-Interface verlaufen würde. Das "wan_status"-Flag des Diensts wird daraufhin aktualisiert.

Ausführliche Beschreibung

Verwaltung von Diensten (z.B. via olsrd-nameservice announciert)

Dokumentation der Funktionen

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 30 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 25 der Datei services.sh.

filter_services_by_value ( key  ,
value   
)
Parameter
keyein Schlüssel
valueein Wert

Als Parameter kann ein "key/value"-Schluesselpaar angegeben werden. Nur diejenigen Dienste, auf die diese Bedingung zutrifft, werden zurueckgeliefert.

Definiert in Zeile 54 der Datei services.sh.

get_service_detail ( service_name  ,
key  ,
default   
)

Ermittle den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts.

Parameter
service_nameName eines Diensts
keyName des Schlüssels
defaultdieser Wert wird zurückgeliefert, falls der Schlüssel nicht gefunden wurde
Rückgabe
den ermittelten Wert aus dem Schlüssel-Wert-Paar

Definiert in Zeile 98 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.

Parameter
serviceName eines Dienstes.
otherEine 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 111 der Datei services.sh.

get_service_value ( key  ,
default   
)

Auslesen eines Werts aus der Service-Datenbank.

Parameter
keyDer Name eines Dienst-Attributs
defaultDer 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 61 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.

Parameter
service_type(optional) ein Service-Typ

Definiert in Zeile 48 der Datei services.sh.

is_existing_service ( service_name  )

Prüfe ob ein Service existiert.

Parameter
service_nameder Name des Diensts
Rückgabe
exitcode=0 falls der Dienst existiert

Definiert in Zeile 14 der Datei services.sh.

move_service_down ( service_name  ,
service_type   
)

Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach unten.

Parameter
service_nameder zu verschiebende Dienst
service_typeder Service-Typ innerhalb derer Mitglieder die Verschiebung stattfinden soll

Für verschiedene Sortier-Modi hat dies verschiedene Auswirkungen:

  • manual: Verschiebung hinter den dahinterliegenden Dienst desselben Typs
  • etx/hop: Erhöhung des Offsets um eins Falls keine Dienst-Typen angegeben sind, bewegt der Dienst sich in der globalen Liste nach unten.

Definiert in Zeile 84 der Datei services.sh.

move_service_top ( service_name  ,
service_types   
)

Verschiebe einen Dienst an die Spitze der Dienst-Sortierung.

Parameter
service_nameder zu verschiebende Dienst
service_typesein 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 91 der Datei services.sh.

move_service_up ( service_name  ,
service_type   
)

Verschiebe einen Dienst in der Dienst-Sortierung um eine Stufe nach oben.

Parameter
service_nameder zu verschiebende Dienst
service_typeder Service-Typ innerhalb derer Mitglieder die Verschiebung stattfinden soll

Für verschiedene Sortier-Modi hat dies verschiedene Auswirkungen:

  • manual: Verschiebung vor den davorplatzierten Dienst desselben Typs
  • etx/hop: Reduzierung des Offsets um eins Falls keine Dienst-Typen angegeben sind, bewegt der Dienst sich in der globalen Liste nach unten.

Definiert in Zeile 75 der Datei services.sh.

pipe_service_attribute ( key  ,
default   
)

Liefere zu einer Reihe von Diensten ein gewähltes Attribut dieser Dienste zurück.

Parameter
keyDer Name eines Dienst-Attributs
defaultDer 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 43 der Datei services.sh.

print_services ( service_type  )

menschenfreundliche Ausgabe der aktuell angemeldeten Dienste

Parameter
service_type(optional) ein Service-Type
Rückgabe
Ausgabe der bekannten Dienste (für Menschen - nicht parsebar)

Definiert in Zeile 66 der Datei services.sh.

set_service_detail ( service_name  ,
key  ,
value   
)

Setze den Wert eines Schlüssel-Wert-Paars im "details"-Attribut eines Diensts.

Parameter
service_nameName eines Diensts
keyName des Schlüssels
valueder neue Wert

Ein leerer Wert löscht das Schlüssel-Wert-Paar.

Definiert in Zeile 105 der Datei services.sh.

sort_services_by ( sort_key  )

Sortiere den eingegebenen Strom von Dienstnamen und gib eine sortierte Liste entsprechende des Arguments aus.

Parameter
sort_keyDer Dienst-Wert, anhand dessen die Auswertung und Sortierung stattfinden soll.

Definiert in Zeile 18 der Datei services.sh.

update_service_routing_distance ( service_name  )

Aktualisiere Routing-Entfernung und Hop-Count eines Dienst-Anbieters.

Parameter
service_nameder 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 9 der Datei services.sh.

update_service_wan_status ( service_name  )

Pruefe ob der Verkehr zum Anbieter des Diensts über ein WAN-Interface verlaufen würde. Das "wan_status"-Flag des Diensts wird daraufhin aktualisiert.

Parameter
service_nameder Name des Diensts

Diese Operation dauert ca. 5s, da zusätzlich die Ping-Zeit des Zielhosts ermittelt wird.

Definiert in Zeile 116 der Datei services.sh.