Gentoo Logo

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


5. Ulteriori funzionalità

Indice:

5.a. Funzioni di hook (intercettazioni) standard

Possono essere definite quattro funzioni in /etc/conf.d/net, che sono chiamate in prossimità delle operazioni di avvio/chiusura. Le funzioni sono chiamate con il nome dell'interfaccia in modo che una funzione possa controllare adattatori multipli.

I valori di ritorno per le funzioni preup e predown dovrebbero essere 0 (successo) per indicare che la configurazione o la deconfigurazione dell'interfaccia può continuare. Se preup ritorna con un valore diverso da zero, allora la configurazione dell'interfaccia viene chiusa. Se predown ritorna con un valore diverso da zero, allora all'interfaccia non viene permesso di continuare la deconfigurazione.

I valori di ritorno per le funzioni postup e postdown sono ignorati poichè non c'è niente da fare se indicano un fallimento.

${IFACE} è impostata sull'interfaccia che viene portata sù/giù (up/down). ${IFVAR} è ${IFACE} convertita al nome della variabile che bash permette.

Codice 1.1: Esempi di funzione pre/post up/down in /etc/conf.d/net

preup() {
  # Test per link sull'interfaccia prima di avviarla. Questo
  # funziona solo su alcuni adattatori di rete e richiede che il pacchetto
  # ethtool sia installato.
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # Ricordarsi di restituire 0 in caso di successo
  return 0
}

predown() {
  # L'azione predefinita nello script è eseguire un test per NFS root e non permettere
  # che in quel caso le interfacce vengano disattivate. Notare che se si specifica una funzione
  # predown() si sovrappone questa logica, mostrata in dettaglio qui di seguito, in caso
  # la si voglia usare...
  if is_net_fs /; then
    eerror "root filesystem is network mounted -- can't stop ${IFACE}"
    return 1
  fi

  # Ricordarsi di restituire 0 in caso di successo
  return 0
}

postup() {
  # Questa funzione potrebbe essere usata, per esempio, per
  # registrarsi ad un servizio dinamico DNS. Un'altra possibilità potrebbe essere
  # mandare/ricevere mail quando l'interfaccia è avviata.
       return 0
}

postdown() {
  # Questa funzione viene utilizzata perlopiù per completezza. Attualmente
  # non c'è mai stato bisogno di utilizzarla.
  return 0
}

Nota: Per maggiori informazioni su come scrivere le proprie funzioni, si prega di leggere /usr/share/doc/openrc-*/net.example.bz2.

5.b. Funzioni di hook (intercettazioni) per "Wireless Tools"

Nota: Non funziona con WPA Supplicant - ma le variabili ${ESSID} e ${ESSIDVAR} sono disponibili nella funzione postup()

Possono essere definite due funzioni /etc/conf.d/net, che sono chiamate in prossimità della funzione associata. Le funzioni sono chiamate con il nome dell'interfaccia in modo che una funzione possa controllare adattatori multipli.

I valori di ritorno per la funzione preassociate dovrebbero essere 0 (successo) per indicare che la configurazione o la deconfigurazione dell'interfaccia può continuare. Se la preassociate ritorna un valore diverso da zero, allora la configurazione dell'interfaccia viene chiusa.

Il valore di ritorno per la funzione postassociate è ignorato poichè non c'è niente da fare se indica un fallimento.

${ESSID} è impostata all'esatto ESSID dell'AP con cui si è connessi. ${ESSIDVAR} è ${ESSID} convertita al nome della variabile che bash permette.

Codice 2.1: Funzioni di associazione pre/post in /etc/conf.d/net

preassociate() {
  # Il codice seguente aggiunge due variabili di configurazione
  # leap_user_ESSID e leap_pass_ESSID. Quando sono entrambe configurate per
  # essere connesse a ESSID, viene eseguito lo script CISCO LEAP

  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() {
  # Questa funzione viene utilizzata perlopiù per completezza. Attualmente
  # non c'è mai stato bisogno di utilizzarla.

  return 0
}

Nota: ${ESSID} e ${ESSIDVAR} non sono disponibili nelle funzioni predown() e postdown()

Nota: Per maggiori informazioni su come scrivere le proprie funzioni, si prega di leggere /usr/share/doc/openrc-*/net.example.bz2.


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


Stampa

Visualizza tutto

Aggiornato il 30 ottobre 2011

Questa traduzione non è più mantenuta

Oggetto: Per gli esperti ecco le istruzioni per personalizzare l'infrastruttura di rete.

Sven Vermeulen
Autore

Roy Marples
Autore

Daniel Robbins
Autore

Chris Houser
Autore

Jerry Alexandratos
Autore

Seemant Kulleen
Sviluppo x86

Tavis Ormandy
Sviluppo Alpha

Jason Huebel
Sviluppo AMD64

Guy Martin
Sviluppo HPPA

Pieter Van den Abeele
Sviluppo PPC

Joe Kallar
Sviluppo SPARC

John P. Davis
Redazione

Pierre-Henri Jondot
Redazione

Eric Stockbridge
Redazione

Rajiv Manglani
Redazione

Jungmin Seo
Redazione

Stoyan Zhekov
Redazione

Jared Hudson
Redazione

Colin Morey
Redazione

Jorge Paulo
Redazione

Carl Anderson
Redazione

Jon Portnoy
Redazione

Zack Gilburd
Redazione

Jack Morgan
Redazione

Benny Chuang
Redazione

Erwin
Redazione

Joshua Kinard
Redazione

Tobias Scherbaum
Redazione

Xavier Neys
Redazione

Grant Goodyear
Revisione

Gerald J. Normandin Jr.
Revisione

Donnie Berkholz
Revisione

Ken Nowack
Revisione

Lars Weiler
Contributi

Marco Mascherpa
Traduzione

Stefano Rossi
Traduzione

Enrico Morelli
Traduzione

Donate to support our development efforts.

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