Gentoo Logo

Renuncia de responsabilidad: Este manual ha sido sustituido por una versión más reciente y no tendrá soporte de aquí en adelante.


[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


5. Agregando Funcionalidad

Contenido:

5.a. Puntos de enlace standard en las funciones

Se pueden definir cuatro funciones en /etc/conf.d/net, que pueden ser llamadas antes o después de las operaciones start/stop, de arranque/parada. Sus nombres se componen empezando con el nombre de interfaz, de manera que una función puede controlar múltiples interfaces.

Los valores de retorno de las funciones preup y predown deben ser cero (éxito) indicando que la configuración o la des-configuración de los interfaces pueden continuar. Si preup devuelve un valor no-cero, se detendrá la configuración del interfaz. Si predown devuelve un valor no-cero, no se permite que el interfaz continúe desconfigurándose.

Los valores de retorno de las funciones postup() y postdown() serán ignorados, ya que no hay nada que hacer si hay indicación de algún fallo.

${IFACE} es el interfaz que será encendido/apagado, ${IFVAR} es ${IFACE} convertido a un nombre de variable válido según bash.

Listado de Código 1.1: Ejemplo de funciones pre/post up/down

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 "No link on ${IFACE}, aborting configuration"
                return 1
        fi

        # Recordamos devolver cero 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 "root filesystem is network mounted -- can't stop ${IFACE}"
                return 1
        fi

        # Recordamos devolver cero 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 ...
        Aún no hemos pensado en algo interesante que pueda hacer ;-)
        return 0
}

Nota: Para mayor información acerca de escribir sus propias funciones, agradecemos lea /usr/share/doc/netifrc-*/net.example.bz2.

5.b. Puntos de enlace para las herramientas inalámbricas

Nota: Esto no funcionará con WPA suplicante - pero las variables ${ESSID} y ${ESSIDVAR} están disponibles en la función postup().

Se pueden definir dos funciones en /etc/conf.d/net que se ejecutan antes y después de la función asociada referida. Estas funciones se nombran antecediéndole el nombre del interfaz, de manera que la misma función puede controlar múltiples interfaces.

El valor retornado por la función preassociate() debe ser 0 (éxito) para indicar que la configuración o desconfiguración del interfaz puede continuar. Si la función preassociate() retorna un valor no-cero, se interrumpirá la configuración del interfaz.

El valor retornado 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.

Listado de Código 2.1: Funciones pre/post asociación en /etc/conf.d/net

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 al que se conectan,
        # corremos 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 "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() {
        # Esta función existe mayormente para completar ...
        # aunque no he pensado en algo interesante para hacer acá
        # todavía ;-)

        return 0
}

Nota: Las variables ${ESSID} y ${ESSIDVAR} no están disponibles en las funciones predown() y postdown().

Nota: Para mayor información acerca de cómo escribir sus propias funciones, agradecemos lea /usr/share/doc/netifrc-*/net.example.bz2.


[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 17 de diciembre, 2013

Esta traducción ha dejado de tener soporte

Sumario: Si tiene espíritu de aventura, puede agregar sus propias funciones para trabajar con redes.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desarrollador Gentoo x86

Tavis Ormandy
Desarrollador Gentoo Alpha

Jason Huebel
Desarrollador Gentoo AMD64

Guy Martin
Desarrollador Gentoo HPPA

Pieter Van den Abeele
Desarrollador Gentoo PPC

Joe Kallar
Desarrollador Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Contribuidor

José Alberto Suárez López
Traductor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.