[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
5. Lisätoimintojen tekeminen
Content:
5.a. Normaalit funktiokoukut
On olemassa neljä funktiota, jotka kutsutaan start- ja
stop-operaatioissa. Nämä funktiot nimetään rajapinnan nimen mukaan
siten, että yksi funktio voi käyttää monia laitteita.
Paluuarvot preup- ja predown-funktioille on 0 (onnistumisissa),
jotta laitteen asettaminen tai asetusten poisto voi jatkua. Jos preup on
jotain muuta, rajapinnan asetukset perutaan. Jos predown on jotain
muuta, rajapinnan asetusten poistoa ei jatketa.
Paluuarvot postup- ja postdown-funktioille ohitetaan, sillä
niille ei voi tehdä mitään enää vaikka ne ilmoittaisivat virheestä.
${IFACE} on rajapinta jota käynnistetään
${IFVAR} on ${IFACE} bashin muuttujana.
Code Listing 1.1: Pre/post up/down -funktioita /etc/conf.d/netissä |
preup() {
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
}
|
Note:
Täysiä esimerkkejä löytyy tiedostosta /etc/conf.d/net.example.
|
5.b. Langattomien työkalujen funktiokoukut
Note:
Nämä eivät toimi WPA Supplicantin kanssa, mutta ${ESSID}- ja
${ESSIDVAR}-muuttujat ovat käytössä postupissa.
|
On olemassa kaksi funktiota, jotka voi määritellä tänne. Funktioiden
nimet ovat rajapinnan nimet siten, että yksi funktio sopii monelle
laitteelle.
Palautusarvojen pitää olla 0 (onnistumiselle), jotta asetusten teko
tai purku voi jatkua. Jos preassociate palauttaa jotain muuta,
rajapinnan asetukset perutaan.
Postassociaten paluuarvo ohitetaan, sillä sille ei voi tehdä mitään
vaikka siinä olisikin virhe.
${ESSID} on yhdistettävän AP:n ESSID
${ESSIDVAR} on ${ESSID} bash-muuttujana.
Code Listing 2.1: pre/post association -funktioita |
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
}
|
Note:
${ESSID} ja ${ESSIDVAR} eivät ole mukana predown- ja
postdown-funktioissa.
|
Note:
Täysiä esimerkkejä löytyy tiedostosta /etc/conf.d/net.example.
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-2.5 license. The Gentoo Name and Logo Usage Guidelines apply.
|