|
1.
Standardowe zaczepy funkcji
Można zdefiniować cztery funkcje w pliku /etc/conf.d, które będą
uruchamiane przy okazji operacji start/stop. Początkowo funkcje
są uruchamiane razem z nazwą interfejsu tak, aby jedna funkcja mogła
kontrolować wiele urządzeń.
Wartości jakie są zwracane po wykonaniu funkcji preup oraz predown powinny być
równe 0 (sukces), aby powiadomić, że konfiguracja urządzenia mogła być
kontynuowana. Jeżeli funkcja preup zwróci wartość różną od 0,
konfiguracja zostanie przerwana. Jeżeli funkcja predown zwróci wartość różną od
zera, to niemożliwa będzie dalsza dekonfiguracja urządzenia.
Wartości jakie są zwracane po wykonaniu funkcji postup oraz postdown są
ignorowane, gdyż nic nie jest wykonywane w przypadku niepowodzenia.
${IFACE} jest ustawione jako nazwa urządzenia, które jest
włączane/wyłączane. ${IFVAR} to ${IFACE} przekonwertowane do
zmiennej akceptowanej przez bash.
Listing 1.1: Przykłady funkcji pre/post up/down w pliku /etc/conf.d/net |
preup() {
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "Brakuje linku na ${IFACE}, przerywam konfigurację"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "katalog główny jest zamontowany przez sieć -- nie można zatrzymać ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
Uwaga:
Więcej informacji na temat tworzenia własnych funkcji znajdziemy w pliku
/etc/conf.d/net.example.
|
1.
Funkcje dla sieci bezprzewodowych
Uwaga:
Poniższe funkcje nie zadziałają z WPA Supplicant, ale zmienne${ESSID}
oraz ${ESSIDVAR} są dostępne w funkcji postup().
|
Można w pliku /etc/conf.d/net zdefiniować dwie funkcje, które
zostaną uruchomione razem z powiązaną funkcją. Funkcje te są uruchamiane
najpierw z nazwą interfejsu, aby jedna z nich mogła obsługiwać wiele urządzeń.
Zwracane wartości dla funkcji uruchamianych przed uruchomieniem urządzenia
powinny być równe 0 (sukces), aby wskazać, że konfiguracja może być
kontynuowana. Jeżeli zostanie zwrócona wartość różna od zera, konfiguracja
zostanie przerwana.
Zwracane wartości dla funkcji preassociate są ignorowane gdyż i tak nie
mają wpływu na dalszą konfigurację.
${ESSID} jest równe wartości ESSID punktu dostępu z którym dokonywane
jest połączenie. ${ESSIDVAR} jest równe ${ESSID} przekonwertowane
do zmiennej akceptowanej przez powłokę bash
Listing 1.1: Funkcje pre/post association w pliku /etc/conf.d/net |
preassociate() {
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() {
return 0
}
|
Uwaga:
${ESSID} oraz ${ESSIDVAR} są niedostępne dla funkcji
predown() oraz postdown().
|
Uwaga:
Więcej informacji na temat tworzenia własnych funkcji znajdziemy w pliku
/etc/conf.d/net.example.
|
|