Handbook:MIPS/Networking/Extending/fr
Crochets de fonctions de base
Quatre fonctions peuvent être définies dans /etc/conf.d/net qui seront appelées autour des opérations start/stop. Les fonctions sont appelées avec le nom de l'interface en premier pour qu'une fonction puisse contrôler plusieurs adaptateurs.
Les valeurs de retour pour les fonctions preup()
et predown()
doivent être 0 (succès) pour indiquer que la configuration ou la dé-configuration de l'interface peut continuer. Si preup()
renvoie une valeur non nulle, la configuration de l'interface sera annulée. Si predown()
renvoie une valeur non nulle, l'interface ne pourra pas poursuivre sa dé-configuration.
Les valeurs de retour pour les fonctions postup()
et postdown()
sont ignorées car il n'y a rien à faire si elles indiquent un échec.
${IFACE} définit l'interface en cours d'activation/désactivation. ${IFVAR} est ${IFACE} convertie en nom de variable utilisable par bash.
preup() {
# Test le lien sur l'interface avant de l'activer.
# Cela ne fonctionne que sur certaines cartes réseau et nécessite
# d'avoir installé le paquet ethtool
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
# Ne pas oublier de retourner 0 en cas de succès
return 0
}
predown() {
# L'action par défaut est de tester la racine NFS et d'interdire
# la désactivation des interfaces. Noter que si vous spécifiez une
# fonction predown() vous outrepasserez cette logique.
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
# Ne pas oublier de retourner 0 en cas de succès
return 0
}
postup() {
# Cette fonction peut être utilisée par exemple,
# pour s'enregistrer au près d'un service DNS dynamique.
# Une autre possiblité pourrait d 'envoyer/recevoir un mail quand
# l'interface est activée
return 0
}
postdown() {
return 0
}
Pour plus d'informations sur l'écriture de fonctions, lire /usr/share/doc/netifrc-*/net.example.bz2.
Crochets de fonctions d'outils sans fil
Ceci ne fonctionnera pas avec WPA Supplicant - mais les variables ${ESSID} et ${ESSIDVAR} sont disponibles dans la fonction
postup()
.Deux fonctions peuvent être définies dans /etc/conf.d/net et seront appelées autour de la fonction associée. Les fonctions sont appelées avec le nom de l'interface en premier pour qu'une fonction puisse contrôler plusieurs cartes.
Les valeurs de retour pour la fonction preassociate()
doivent être 0 (succès) pour indiquer que l'activation ou désactivation de l'interface peut continuer. Si preassociate()
renvoie une valeur non nulle, la configuration de l'interface sera annulée.
La valeur de retour dela fonction postassociate()
est ignorée car il n'y a rien à faire si elle indique un échec.
${ESSID} est définie sur l'ESSID exact du point d'accès auquel le système se connecte. ${ESSIDVAR} est la variable ${ESSID} convertie en un nom de variable que bash peut utiliser.
preassociate() {
# Ici nous ajoutons les deux variable de configuration leap_user_ESSID et leap_pass_ESSID.
# Quand elles sont toutes deux configurées pour le ESSID auquel le système est connecté,
# nous éxecutons le script CISCO LEAP.
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
}
${ESSID} et ${ESSIDVAR} sont indisponibles dans les fonctions
predown()
et postdown()
.Pour plus d'informations sur l'écriture de fonctions personnalisées, lire /usr/share/doc/netifrc-*/net.example.bz2.