Gentoo Logo

1.  Normaalit funktiokoukut

On olemassa neljä funktiota, jotka kutsutaan start- ja stop-operaatioissa. Nämä funktiot nimetään rajapinnan nimen mukaan siten, että yksi funktio voi käyttää monia laitteita.

Paluuarvot preup- ja predown-funktioille on 0 (onnistumisissa), jotta laitteen asettaminen tai asetusten poisto voi jatkua. Jos preup on jotain muuta, rajapinnan asetukset perutaan. Jos predown on jotain muuta, rajapinnan asetusten poistoa ei jatketa.

Paluuarvot postup- ja postdown-funktioille ohitetaan, sillä niille ei voi tehdä mitään enää vaikka ne ilmoittaisivat virheestä.

${IFACE} on rajapinta jota käynnistetään
${IFVAR} on ${IFACE} bashin muuttujana.

Koodilistaus 1.1: Pre/post up/down -funktioita /etc/conf.d/netissä

preup() {
    # Testataan linkin rajapintaa ennen nostamista.
    # Tämä toimii vain joillain laitteilla ja vaatii ethtoolin asennettuna
    
    if ethtool ${IFACE} | grep -q 'Link detected: no'; then
        ewarn "No link on ${IFACE}, aborting configuration"
        return 1
    fi

    # Muista return 0 onnistuttua
    return 0
}

predown() {
    # oletuksena skripti testaa NFS-juuren ja kieltää verkkorajapinnan
    # tiputuksen tapauksittain. Jos predown() määritellään itse, oletusarvo
    # häipyy, joten tässä on sama funktio jos kuitenkin se halutaan.
    if is_net_fs /; then
        eerror "root filesystem is network mounted -- can't stop ${IFACE}"
        return 1
    fi

    # Muista return 0 onnistuttua
    return 0
}

postup() {
    # Tätä voisi käyttää vaikka dyndns-palvelun kanssa. Toinen
    # vaihtoehto on vaikkapa postin toimitus kun rajapinta on ylhäällä
    
       return 0
}

postdown() {
    # Tämä funktio on täällä kai symmetrian vuoksi, kehittäjä itse
    # ei ainakaan keksi mitään hyötykäyttöä ;-)
    return 0
}

Huomaa: Täysiä esimerkkejä löytyy tiedostosta /etc/conf.d/net.example.

1.  Langattomien työkalujen funktiokoukut

Huomaa: Nämä eivät toimi WPA Supplicantin kanssa, mutta ${ESSID}- ja ${ESSIDVAR}-muuttujat ovat käytössä postupissa.

On olemassa kaksi funktiota, jotka voi määritellä tänne. Funktioiden nimet ovat rajapinnan nimet siten, että yksi funktio sopii monelle laitteelle.

Palautusarvojen pitää olla 0 (onnistumiselle), jotta asetusten teko tai purku voi jatkua. Jos preassociate palauttaa jotain muuta, rajapinnan asetukset perutaan.

Postassociaten paluuarvo ohitetaan, sillä sille ei voi tehdä mitään vaikka siinä olisikin virhe.

${ESSID} on yhdistettävän AP:n ESSID
${ESSIDVAR} on ${ESSID} bash-muuttujana.

Koodilistaus 1.1: pre/post association -funktioita

preassociate() {
    # Allaoleva lisää muuttujat leap_user_ESSID ja leap_pass_ESSID.
    # kun ne on asetettu yhdistettyyn ESSID:hen voidaan ajaa CISCOn LEAP-skripti
    

    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() {
    # Tämä funktio on täällä vain symmetrian takia ;-)
    return 0
}

Huomaa: ${ESSID} ja ${ESSIDVAR} eivät ole mukana predown- ja postdown-funktioissa.

Huomaa: Täysiä esimerkkejä löytyy tiedostosta /etc/conf.d/net.example.

Viimeksi päivitetty 14. toukokuuta 2010

Tämän tekstin alkukielinen versio on uudempi kuin käännös, se on viimeksi päivitetty 30. lokakuuta 2011

Tiivistelmä: Tässä kappaleessa kerrotaan miten tehokäyttäjä voi lisätä omia erikoistoimintojaan verkkoasetuksiinsa.

Donate to support our development efforts.

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