Gentoo Logo

Disclaimer : Dit document is niet juist en is niet meer onderhouden.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


5. Extra functies toevoegen

Inhoud:

5.a. Standaard functies en hun mogelijkheden

Er kunnen vier functies rondom start en stop worden aangeroepen. Deze functies worden aangeroepen met een verwijzing naar een interface naam, zo kunt u meedere adapters aansturen met één functie.

Zowel preup() als predown() geven de waarde 0 als resultaat wanneer ze hun werk goed hebben gedaan. Het instellen van de interface kan dan verder gaan. Als preup() een andere waarde dan nul als resultaat heeft, wordt het instellen van de interface gestopt. Als dit bij predown gebeurt wordt het uitschakelen van de interface gestopt.

De resultaten die postup() en postdown() geven worden genegeerd omdat met deze informatie niets kan worden gedaan.

${IFACE} is wordt ingesteld op de interface die u wilt starten. ${IFVAR} is de waarde van ${IFACE}, maar dan in een formaat dat bash kan gebruiken.

Codevoorbeeld 1.1: Voorbeelden van pre/post up/down functies

preup() {
  # Probeer eerst een verbinding te maken voor deze wordt vastgelegd.
  # Dit werkt niet voor alle adapters en heeft het pakket mii-diag nodig
  # om gebruikt te kunnen worden.
  if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # Probeer eerst een verbinding te maken voor deze wordt vastgelegd.
  # Dit werkt niet voor alle adapters en heeft het pakket ethtool nodig om
  # gebruikt te kunnen worden.
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # Vergeet niet om een 0 als resultaat door te sturen indien succesvol
  return 0
}

predown() {
  # Standaard wordt getest of de root op een NFS bestandssysteem staat en
  # mogen de interfaces niet stoppen als dat zo is. Wanneer u de functie
  # predown() instelt is deze standaard overschreven. Hier is de code, voor
  # als u die nog steeds wilt gebruiken...
  if is_net_fs /; then
    eerror "root filesystem is network mounted -- can't stop ${IFACE}"
    return 1
  fi

  # Vergeet niet om een 0 als resultaat door te sturen indien succesvol
  return 0
}

postup() {
  # Deze functie kunt u onder ander gebruiken om contact te maken met een
  # dynamic DNS service. Een ander mogelijkheid zou zijn om email te
  # verzenden/ontvangen zodra de interface is gestart.
       return 0
}

postdown() {
  # Deze functie staat hier om de handleiding compleet te houden, maar
  # we hebben er nog geen mogelijkheden bij bedacht ;-)
  return 0
}

5.b. Wireless Tools functies en hun mogelijkheden

Nota: Het onderstaande werkt niet met WPA Supplicant - maar de variabelen ${ESSID} en ${ESSIDVAR} wel beschikbaar voor postup().

De twee onderstaande functies ondersteuning de functie associate. De functies roepen een interface aan en u kunt zodoende meerdere interfaces met één functie aansturen.

De functie preassociate() geeft een 0 als resultaat wanneer alles werkt. Het instellen van de interface kan dan verder gaan. Indien preassociate() een andere waarde dan 0 als resultaat geeft, kan het instellen van de interface niet verder gaan.

Het resultaat van de functie postassociate() wordt weer genegeerd, omdat u niets hoeft te doen indien de functie niet werkt.

${ESSID} wordt ingesteld op de exacte ESSID van het access poaint waar u verbinding mee wilt maken. ${ESSIDVAR} is de variabele ${ESSID}, maar dan bruikbaar gemaakt voor bash.

Codevoorbeeld 2.1: pre/post association functions

preassociate() {
  # Het onderstaande voorbeeld voegt twee variabelen toe, leap_user_ESSID
  # en leap_pass_ESSID. Als deze zijn ingesteld voor uw ESSID, wordt het script
  # CISCO LEAP gedraaid.

  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() {
  # Deze functie staat hier om de handleiding compleet te houden, maar
  # we hebben er nog geen mogelijkheden bij bedacht ;-)
  return 0
}

Nota: ${ESSID} en ${ESSIDVAR} zijn niet te gebruiken in de functies predown() en postdown().


[ << ] [ < ] [ Home ] [ > ] [ >> ]


Print

View all

Upgedate op 30 augustus 2006

De originele versie van dit document was laatst geupdate om 1 juni 2014

Korte inhoud: Wanneer u avontuurlijk bent ingesteld, kunt u zelf functies toevoegen aan het netwerken.

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

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
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

Dimitry Bradt
Translator

Donate to support our development efforts.

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