|
1.
Funcţii standard
Patru funcţii pot fi definite ce vor fi executate în jurul operaţiilor
start/stop. Funcţiile sunt denumite cu numele interfeţei la
început, pentru ca o funcţie să poată controla mai multe adaptoare.
Valorile returnate pentru funcţiile preup() şi predown() ar
trebui să fie 0 (succes) pentru a indica că procesul de configurare sau
deconfigurare poate continua. Dacă preup() returnează o valoarea
non-zero, atunci configurarea interfeţei va fi întreruptă. Dacă
predown() returnează o valoare non-zero, atunci interfeţei nu i se va
permite continuarea deconfigurării.
Valorile returnate de funcţiile postup() şi postdown() sunt
ignorate deoarece nu se poate efectua nimic dacă acestea returnează eroare.
${IFACE} este setată pentru interfaţa care trebuie să fie
activată/dezactivată. ${IFVAR} este ${IFACE} convertit la un
nume de variabilă permis de bash.
Cod 1.1: exemple de funcţii pre/post de activare/dezactivare |
preup() {
if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
1.
Funcţii standard pentru utilitare wireless
Notă:
Aceasta nu funcţiona cu WPA Supplicant - dar variabilele ${ESSID} şi
${ESSIDVAR} sunt disponibile în funcţia postup().
|
Două funcţii pot fi definite ce vor fi invocate înainte şi după
funcţia asociată. Aceste funcţii sunt invocate având numele sufixat cu
numele interfeţei pentru ca o singură funcţie să poată controla mai
multe adaptoare.
Valorile returnate pentru funcţia postassociate() ar trebui să fie 0
(succes) pentru indicarea continuării configurării sau deconfigurării.
Dacă funcţia postassociate() returnează o valoare non-zero, atunci
configurarea interfeţei va fi anulată.
Valoarea returnată pentru funcţia postassociate() este ignorată
deoarece nu rămâne nici o acţiune de efectuat dacă aceasta indică
eroare.
${ESSID} este setată exact la valoarea ESSID a dispozitivului AP la
care vă conectaţi. ${ESSIDVAR} este ${ESSID} convertită la un
nume de variabilă permis de bash.
Cod 1.1: funcţiile de asociere pre/post |
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
}
|
Notă:
${ESSID} şi ${ESSIDVAR} nu sunt disponibile în funcţiile
predown() şi postdown().
|
|