Handbook:Alpha/Networking/Extending/hu
Standard függvényhorgok
Négy függvény határozható meg az /etc/conf.d/net fájlban:
preup()
, amelyet egy interfész felhozatala előtt hívnak meg.predown()
, amelyet egy interfész lehozása előtt hívnak meg.postup()
, amelyet egy interfész felhozatala után hívnak meg.postdown()
, amelyet egy interfész lehozása után hívnak meg.
Ezeket a függvényeket mindegyik interfész nevével hívják meg, amely az egyes függvényeken belül az IFACE változón keresztül érhető el, így egy függvény több interfészt is képes irányítani.
A preup()
és predown()
függvények visszatérési értékei a következők kell, hogy legyenek:
- 0, amely a sikert jelzi, és hogy az interfész beállítása vagy nem beállítása (dekonfigurálása) folytatódhat.
- Egy nullánál nagyobb bármely más érték.
Ha a preup()
nulla értéknél nagyobbat ad vissza, akkor az interfész beállítása megszakad. Ha a predown()
nulla értéknél nagyobbat ad vissza, akkor az interfész nem beállítása (dekonfigurálása) nem folytatható.
A postup()
és postdown()
függvények visszatérési értékei figyelmen kívül maradnak, mivel nincs teendő, ha azok hibát jeleznek.
A ${IFACE} az éppen felhozott/lehozott interfészre van állítva. A ${IFVAR} a ${IFACE} változóvá alakított változata, amelyet a bash lehetővé tesz.
/etc/conf.d/net
pre/post up/down függvény példákpreup() {
# Test for link on the interface prior to bringing it up. This
# only works on some network adapters and requires the ethtool
# package to be installed.
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
# Remember to return 0 on success
return 0
}
predown() {
# The default in the script is to test for NFS root and disallow
# downing interfaces in that case. Note that if you specify a
# predown() function you will override that logic. Here it is, in
# case you still want it...
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
# Remember to return 0 on success
return 0
}
postup() {
# This function could be used, for example, to register with a
# dynamic DNS service. Another possibility would be to
# send/receive mail once the interface is brought up.
return 0
}
postdown() {
# This function is mostly here for completeness... I haven't
# thought of anything nifty to do with it yet ;-)
return 0
}
További információért a függvények írásáról, kérjük olvassa el a következőt: /usr/share/doc/netifrc-*/net.example.bz2.
Wireless függvény horgok
Ez nem fog működni a WPA Supplicant programmal, de a ${ESSID} és ${ESSIDVAR} változók elérhetők a
postup()
függvényben.Két függvény határozható meg az /etc/conf.d/net fájlban:
preassociate()
, amely az asszociáció előtt van meghívva.postassociate()
, amely az asszociáció után van meghívva.
Ezeket a függvényeket mindegyik interfész nevével hívják meg, amely az egyes függvényeken belül az IFACE változón keresztül érhető el, így egy függvény több interfészt is képes irányítani.
A preassociate() függvény visszatérési értékei a következők kell, hogy legyenek:
- 0, amely a sikert jelzi, és a konfiguráció folytatódhat.
- Nulla értéknél nagyobb, bármely más érték.
Ha a preassociate()
nulla értéknél nagyobbat ad vissza, akkor az interfész beállítása megszakad.
Ha nincs teendő, akkor a postassociate()
függvény visszatérési értéke figyelmen kívül lesz hagyva, ha hibát jelez.
Az egyes függvényeken belül az éppen csatlakozó hozzáférési pont pontos ESSID értéke az ESSID változón keresztül érhető el. A ${ESSIDVAR} a ${ESSID} változó névre alakított változata, amelyet a bash lehetővé tesz.
/etc/conf.d/net
pre/post asszociációs függvényekpreassociate() {
# The below adds two configuration variables leap_user_ESSID
# and leap_pass_ESSID. When they are both configured for the ESSID
# being connected to then we run the CISCO LEAP script
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() {
# This function is mostly here for completeness... I haven't
# thought of anything nifty to do with it yet ;-)
return 0
}
A ${ESSID} és a ${ESSIDVAR} változók nem érhetők el a
predown()
és postdown()
függvényekben.További információért az egyedi függvények írásáról, kérjük, olvassa el a következőt: /usr/share/doc/netifrc-*/net.example.bz2.