Manual:X86/Redes/Extensiones
Conectar con las funciones estándar
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} es el interfaz que será encendido/apagado, ${IFVAR} es ${IFACE} convertido a un nombre de variable válido según bash.
preup() {
# Comprobación del enlace de la interfaz antes de activarla.
# Esto solamente funciona con algunos interfaces de red y necesita
# que el paquete ethtool este instalado.
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "${IFACE} no tiene enlace, configuración abortada"
return 1
fi
# Recordar devolver 0 si todo fue correcto
return 0
}
predown() {
# Por defecto en el guión de inicio se comprueba si el sistema (root) está montado por NFS y en ese caso
# no permitir que las interfaces se desactiven. Tenga en cuenta que, si
# especifica una función predown() sobreescribirá está regla.
# Aquí la tiene en caso de que todavía quiera utilizarla...
if is_net_fs /; then
eerror "El sistema de archivos raiz (root) está montado desde la red -- no se puede detener ${IFACE}"
return 1
fi
# Recordar devolver 0 si todo fue correcto
return 0
}
postup() {
# Esta función podría utilizarse, por ejemplo, para
# registrarse en un servicio dinámico de DNS. Otra posibilidad
# sería enviar un correo cada vez que la interfaz se conecta.
return 0
}
postdown() {
# Esta función está aquí mayormente para redondear ...
# ún no hemos pensado en algo interesante que pueda hacer
return 0
}
Para mayor información acerca de escribir sus propias funciones, agradecemos lea /usr/share/doc/netifrc-*/net.example.bz2.
Conectar con las funciones de wireless tools
Esto no funcionará con WPA Supplicant aunque las variables ${ESSID} y ${ESSIDVAR} están disponibles en la función
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.
El valor devuelto por la función postassociate()
se ignora, ya que no hay nada que hacer si llegase a indicarse una falla.
A ${ESSID} se le asigna el ESSID exacto del PA al cual se está conectando, ya que ${ESSIDVAR} es ${ESSID}, convertido a un nombre de variable permitido por bash.
preassociate() {
# A continuación se agregan 2 variables de configuración leap_user_ESSID
# y leap_pass_ESSID. Cuando ambos estén configurados para el ESSID
# ejecutamos el guión LEAP de CISCO.
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 "Para tener soporte LEAP, haga emerge net-misc/cisco-aironet-client-utils"
return 1
fi
einfo "Esperando autenticación LEAP en \"${ESSID//\\\\//}\""
if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
ewarn "Error al conetactar con ${user}"
return 1
fi
fi
return 0
}
postassociate() {
# Esta función existe mayormente para completar ...
# no he pensado en algo interesante para hacer aquí todavía
return 0
}
Las variables ${ESSID} y ${ESSIDVAR} no están disponibles en las funciones
predown()
y postdown()
.Para mayor información acerca de cómo escribir sus propias funciones, agradecemos lea /usr/share/doc/netifrc-*/net.example.bz2.