Gentoo Logo

[ << ] [ < ] [ Etusivu ] [ > ] [ >> ]


5. Lisätoimintojen tekeminen

Sisällysluettelo:

5.a. 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.

5.b. 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 2.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.


[ << ] [ < ] [ Etusivu ] [ > ] [ >> ]


Tulostettava muoto

Näytä kaikki

Tämä sivu on viimeksi päivitetty 14. toukokuuta 2010

Tätä käännöstä ei enää ylläpidetä

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

Sven Vermeulen
Tekijä

Joshua Saddler
Tekijä

Daniel Robbins
Tekijä

Chris Houser
Tekijä

Jerry Alexandratos
Tekijä

Seemant Kulleen
Gentoon x86-kehittäjä

Tavis Ormandy
Gentoon alpha-kehittäjä

Aron Griffis
Gentoon alpha-kehittäjä

Brad House
Gentoon AMD64-kehittäjä

Guy Martin
Gentoon HPPA-kehittäjä

Pieter Van den Abeele
Gentoon PPC-kehittäjä

Joe Kallar
Gentoon SPARC-kehittäjä

Shyam Mani
Toimittaja

John P. Davis
Toimittaja

Pierre-Henri Jondot
Toimittaja

Eric Stockbridge
Toimittaja

Rajiv Manglani
Toimittaja

Jungmin Seo
Toimittaja

Stoyan Zhekov
Toimittaja

Jared Hudson
Toimittaja

Colin Morey
Toimittaja

Jorge Paulo
Toimittaja

Carl Anderson
Toimittaja

Jon Portnoy
Toimittaja

Zack Gilburd
Toimittaja

Jack Morgan
Toimittaja

Benny Chuang
Toimittaja

Erwin
Toimittaja

Joshua Kinard
Toimittaja

Xavier Neys
Toimittaja

Grant Goodyear
Katselmoija

Gerald J. Normandin Jr.
Katselmoija

Donnie Berkholz
Katselmoija

Ken Nowack
Katselmoija

Lars Weiler
Kirjoittaja

Flammie Pirinen
Vastuullinen kääntäjä

Jouni Hätinen
Käännöksen laatutarkistaja

Donate to support our development efforts.

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