Handbook:X86/Networking/Extending/fr
Crochets de fonctions de base
Four functions can be defined in /etc/conf.d/net:
preup()
, called before an interface is brought up;predown()
, called before an interface is brought down;postup()
, called after an interface is brought up; andpostdown()
, called after an interface is brought down.
Each of these these functions is called with the interface name, available within each function via the IFACE variable, so that one function can control multiple interfaces.
The return values for the preup()
and predown()
functions should be:
- 0 to indicate success, and that configuration or de-configuration of the interface can continue.
- A non-zero value otherwise.
If preup()
returns a non-zero value, interface configuration will be aborted. If predown()
returns a non-zero value, the interface will not be allowed to continue de-configuration.
Return values for the postup()
and postdown()
functions are ignored since there's nothing to do if they indicate failure.
${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()
.Two functions can be defined in /etc/conf.d/net:
preassociate()
, called before association.postassociate()
, called after association.
Each of these these functions is called with the interface name, available within each function via the IFACE variable, so that one function can control multiple interfaces.
The return values for the preassociate() function should be:
- 0 to indicate success, and to continue configuration.
- A non-zero value otherwise.
If preassociate()
returns a non-zero value, interface configuration will be aborted.
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.