Gentoo Logo

Visszavonások : Ez a dokumentum már nem érvényes, ezért nincs többé karbantartva.


[ << ] [ < ] [ Kezdőlap ] [ > ] [ >> ]


5. Funkcionális bővítés

Tartalom:

5.a. Alapvető függvénykampók

Definiálható négy függvény melyek a start/stop műveletek előtt és után hajtódnak végre. A függvény megkapja az eszköz nevét, így egy függvény akár több eszközt is kezelhet.

A preup() és a predown() függvényeknek 0 (sikeres végrehajtás) értéket kell visszaadniuk, így jelezve, hogy a hálózati eszköz beállítási folyamata folytatódhat. Ha a preup() nem nulla értéket ad vissza, akkor az eszköz beállítása megszakad. Ha a predown() ad vissza nem nulla értéket, akkor az eszköz leállítása nem folytatódhat.

A postup() és a postdown() függvények visszatérési értékei nincsenek vizsgálva, mivel nincs teendő ha hibát jeleznek.

Az ${IFACE} változó tartalmazza azt az eszközt amelyet be vagy ki fogunk kapcsolni. Az ${IFVAR} az ${IFACE} értékét tartalmazza a bash által kezelhető formában.

Kódlista 1.1: példák a pre/post up/down függvényekre

preup() {
  # Kapcsolat vizsgálata az eszközön a beállítást megelőzően. Ez 
  # csak néhány kártyán működik és fel kell hozzá telepíteni az ethtool
  # csomagot.
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "Nincs kapcsolat ezen az eszközön: ${IFACE}, a beállítás nem folytatható"
    return 1
  fi

  # Ne felejtsünk el nullával visszatérni siker esetén
  return 0
}

predown() {
  # A szkriptben eredetileg egy ellenőrzés található, hogy abban az 
  # esetben ha a root partíció NFS-en található, megakadályozza a hálókártyák 
  # leállítását. Vigyázat! Ha módosítod a predown() függyvényt, ezt az 
  # ellenőrzést iktatod ki. Ha még ezek után is érdekel, tessék:
  if is_net_fs /; then
    eerror "A root fájlrendszer hálózaton van -- ${IFACE} nem állítható le"
    return 1
  fi

  # Ne felejtsünk el nullával visszatérni siker esetén
  return 0
}

postup() {
  # Ezt a függvényt több célra is használhatod. Dinamikus DNS 
  # szolgáltatást vehetsz igénybe vagy az interfész aktiválódása után 
  # leveleket küldhetsz/fogadhatsz.
       return 0
}

postdown() {
  # Ez a függvény csak a teljesség kedvéért van itt... Nem tudok 
  # egy furmányos dolgot sem még amit ezzel lehetne csinálni. ;-)
  return 0
}

5.b. A Vezetéknélküli Hálózat Segédprogramjaihoz tartozó függvénykampók

Megjegyzés: Ez nem működik WPA Supplicant-tal - de az ${ESSID} és az ${ESSIDVAR} változók rendelkezésre állnak a postup() függvényben.

Definiálható két függvény melyek az adott függvény végrehajtása előtt és után fognak végrehajtódni. A függvény megkapja az eszköz nevét, így egy függvény akár több eszközt is kezelhet.

A preassociate() függvényeknek 0 (sikeres végrehajtás) értéket kell visszaadniuk, így jelezve, hogy a hálózati eszköz beállítási vagy leállítási folyamata folytatódhat. Ha a preassociate() nem nulla értéket ad vissza, akkor az eszköz beállítása megszakad.

A postassociate() függvény visszatérési értéke nincs vizsgálva, mivel nincs teendő ha hibát jelez.

Az ${ESSID} annak az AP-nek a pontos ESSID-jét tartalmazza amelyhez csatlakozol. Az ${ESSIDVAR} az ${ESSID} értékét tartalmazza a bash által kezelhető formában.

Kódlista 2.1: pre/post association függvények

preassociate() {
  # A következő sorok két változót a leap_user_ESSID-et és a 
  # leap_pass_ESSID-et hozzák létre. Miután mindkettő be lett állítva arra 
  # az ESSID-ra amelyhez csatlakozni fogunk, elindítjuk a CISCIO LEAP 
  # szkriptet

  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 "A LEAP használatához, telepítsd a net-misc/cisco-aironet-client-utils csomagot"
      return 1
    fi
    einfo "Várakozás LEAP hitelesításre, ESSID: \"${ESSID//\\\\//}\""
    if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
      ewarn "${user} azonosítása sikertelen"
      return 1
    fi
  fi

  return 0
}

postassociate() {
  # Ez a függvény csak a teljesség kedvéért van itt... Nem tudok 
  # egy furmányos dolgot sem még amit ezzel lehetne csinálni. ;-)

  return 0
}

Megjegyzés: Az ${ESSID} és az ${ESSIDVAR} változók nem érhetőek el a predown() és a postdown() függvényekben.


[ << ] [ < ] [ Kezdőlap ] [ > ] [ >> ]


Nyomtatás

View all

Frissítve 2007. május 7.

Ezen dokumentum eredeti változatának utolsó frissítési dátuma 2013. december 18.

Összefoglaló: Ha érzel magadban némi kalandvágyat, saját funkciókat is hozzáadhatsz a hálózatkezelésedhez.

Sven Vermeulen
Szerző

Grant Goodyear
Szerző

Roy Marples
Szerző

Daniel Robbins
Szerző

Chris Houser
Szerző

Jerry Alexandratos
Szerző

Seemant Kulleen
Gentoo x86 fejlesztő

Tavis Ormandy
Gentoo Alpha fejlesztő

Jason Huebel
Gentoo AMD64 fejlesztő

Guy Martin
Gentoo HPPA fejlesztő

Pieter Van den Abeele
Gentoo PPC fejlesztő

Joe Kallar
Gentoo SPARC fejlesztő

John P. Davis
Szerkesztő

Pierre-Henri Jondot
Szerkesztő

Eric Stockbridge
Szerkesztő

Rajiv Manglani
Szerkesztő

Jungmin Seo
Szerkesztő

Stoyan Zhekov
Szerkesztő

Jared Hudson
Szerkesztő

Colin Morey
Szerkesztő

Jorge Paulo
Szerkesztő

Carl Anderson
Szerkesztő

Jon Portnoy
Szerkesztő

Zack Gilburd
Szerkesztő

Jack Morgan
Szerkesztő

Benny Chuang
Szerkesztő

Erwin
Szerkesztő

Joshua Kinard
Szerkesztő

Tobias Scherbaum
Szerkesztő

Xavier Neys
Szerkesztő

Joshua Saddler
Szerkesztő

Gerald J. Normandin Jr.
Elbíráló

Donnie Berkholz
Elbíráló

Ken Nowack
Elbíráló

Lars Weiler
Közreműködő

Konkoly Katalin
Fordító

Sipos Tibor
Fordító

Nyitrai István
Fordító

Lukács Árpád
Fordító

Lónyai Gergely
Fordító, lektor

Donate to support our development efforts.

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