[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
5. Ajout de fonctionnalités
Table des matières :
5.a. Fonctions d'interception standard
Quatre fonctions, qui peuvent être définies par l'administrateur, sont appelées
lors du démarrage ou de l'arrêt du réseau. Ces fonctions sont appelées en
spécifiant le nom de l'interface en premier, afin de pouvoir contrôler plusieurs
interfaces avec un même script.
La valeur renvoyée par les fonctions preup() et predown() doit
être 0 (succès) pour que la configuration ou la déconfiguration de l'interface
puisse continuer. Si preup() renvoie autre chose que zéro, alors la
configuration de l'interface sera annulée. Si predown() renvoie autre
chose que zéro, alors l'interface ne sera pas autorisée à être désactivée.
La valeur renvoyée par les fonctions postup() et postdown() n'ont
pas d'importance car il n'y a rien à faire après.
La variable ${IFACE} contient le nom de l'interface qui doit être activée
ou désactivée. La variable ${IFVAR} contient une version utilisable dans
un nom de variable Bash du nom de l'interface.
Exemple de code 1 : Exemples de fonctions pre/post up/down |
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
}
|
5.b. Fonction d'interception pour Wireless Tools
Note :
Cela ne marchera pas avec WPA Supplicant, mais les variables ${ESSID} et
${ESSIDVAR} sont disponibles dans la fonction postup().
|
Deux fonctions qui seront appelées avant et après la connexion à un point
d'accès peuvent être personnalisées. Les fonctions sont appelées en spécifiant
le nom de l'interface en premier afin de pouvoir contrôler plusieurs interfaces
avec la même fonction.
La valeur renvoyée par la fonction preassociate() doit être 0 pour
indiquer que la configuration ou la déconfiguration de l'interface peut
continuer. Si preassociate() renvoie autre chose que zéro, alors la
configuration de l'interface sera annulée.
La valeur renvoyée par la fonction postassociate() est ignorée, car il
n'y a plus rien à faire après.
La variable ${ESSID} contient le nom exact de l'ESSID du point d'accès
auquel on se connecte. ${ESSIDVAR} contient ce même nom, mais transformé
afin qu'il puisse être utilisé dans le nom d'une variable Bash.
Exemple de code 2 : Exemples de fonctions pre/post association |
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 :
Les variables ${ESSID} et ${ESSIDVAR} ne sont pas disponibles dans
les fonctions predown() et postdown().
|
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|