Handbuch:PPC64/Netzwerk/Erweitern
Standard Funktionshooks
Vier Funktionen können in /etc/conf.d/net definiert werden, die vor und nach der start/stop Operationen aufgerufen werden. Die Funktionen werden mit vorangestelltem Schnittstellennamen aufgerufen, so dass eine Funktion mehrere Adapter kontrollieren kann.
Der Rückgabewert der preup()
und predown()
Funktionen sollte 0 sein (Erfolg) um anzuzeigen, dass die Konfiguration und De-Konfiguration der Schnittstelle fortgesetzt werden kann. Wenn preup()
einen Wert ungleich null zurückliefert, wird die Konfiguration der Schnittstellen abgebrochen. Wenn predown()
einen Wert ungleich null zurückgibt, ist es der Schnittstelle nicht gestatten die De-Konfiguration fortzusetzen.
Die Rückgabewerte der postup()
und postdown()
Funktionen werden ignoriert da es nichts weiter zu tun gibt, wenn sie einen Fehler anzeigen.
${IFACE} ist auf das Interface gesetzt, das gestartet/ gestoppt wird. ${IFVAR} ist ${IFACE} in einen Variablennamen umgesetzt, den bash gestattet.
preup() {
# Überprüft die Existenz eines Links auf die Schnittstelle vor
# der Aktivierung. Dies funktioniert nur mit einigen
# Netzwerk-Adaptern und benötigt ein installiertes ethtool Paket.
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
# Denken Sie daran 0 bei Erfolg zurückzugeben
return 0
}
predown() {
# Der Standard im Script ist auf NFS root zu prüfen und in diesem
# Fall das Stoppen der Schnittstelle zu unterbinden. Beachten Sie,
# dass Sie diese Logik überschreiben, wenn Sie eine predown()
# Funktion angeben. Hier ist sie für den Fall, dass Sie sie dennoch
# wollen ...
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
# Denken Sie daran 0 bei Erfolg zurückzugeben
return 0
}
postup() {
# Diese Funktion könnte beispielsweise genutzt werden, um sich bei
# einem DNS Service zu registrieren. Eine weitere Möglichkeit würde
# das Senden/Empfangen von Mails nach dem Start einer Schnittstelle
# sein.
return 0
}
postdown() {
# Diese Funktion ist hauptsächlich der Vollständigkeit halber
# hier... Ich habe bisher noch nicht darüber nachgedacht etwas
# Raffiniertes damit anzustellen ;-D
return 0
}
Für weitere Informationen zum Schreiben von Funktionen lesen Sie bitte /usr/share/doc/netifrc-*/net.example.bz2.
Wireless Tools Funktionshook
Dies wird mit WPA Supplicant nicht funktionieren - aber die Variablen ${ESSID} und ${ESSIDVAR} sind in der Funktion
postup()
verfügbar.Zwei Funktionen können in /etc/conf.d/net definiert werden, die vor und nach der start/stop Operationen aufgerufen werden. Die Funktionen werden mit vorangestelltem Schnittstellennamen aufgerufen, so dass eine Funktion mehrere Adapter kontrollieren kann.
Die Rückgabewerte der Funktion preassociate()
sollte 0 sein (Erfolg) um anzuzeigen, dass die Konfiguration oder De-Konfiguration der Schnittstelle fortgesetzt werden kann. Wenn preassociate()
einen Wert ungleich Null zurückgibt, wird die Schnittstellen-Konfiguration abgebrochen.
Der Rückgabewert der Funktion postassociate()
wird ignoriert, weil es nicht zu tun gibt wenn er Fehler anzeigt.
${ESSID} wir auf die exakte ESSID des Access Points (AP) gesetzt zu dem sich das System verbindet. ${ESSIDVAR} ist ${ESSID} in einen Variablennamen umgewandelt, den bash erlaubt.
preassociate() {
# Das Untere fügt zwei Konfigurations-Variablen leap_user_ESSID und
# leap_pass_ESSID hinzu. Wenn beide für die ESSID konfiguriert sind
# zu der sie verbunden sind, führen wir das CISCO LEAP Script aus.
local user pass
eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"
if [[ -n ${user} && -n ${pass} ]]; then
if [[ ! -x /opt/cisco/bin/leapscript ]]; then
eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
return 1
fi
einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
ewarn "Login Failed for ${user}"
return 1
fi
fi
return 0
}
postassociate() {
# Diese Funktion ist hauptsächlich der Vollständigkeit halber
# hier... Ich habe bisher noch nicht darüber nachgedacht etwas
# Raffiniertes damit anzustellen ;-D
return 0
}
${ESSID} und ${ESSIDVAR} sind in den Funktionen
predown()
und postdown()
nicht verfügbar.Schauen Sie sich bitte /usr/share/doc/netifrc-*/net.example.bz2 an, um weitere Informationen zum Schreiben von angepassten Funktionen zu erhalten.