Gentoo Logo

Aviso : Este manual foi substituído por uma versão mais nova e não é mais mantido.


[ << ] [ < ] [ Início ] [ > ] [ >> ]


5. Adicionando funcionalidade

Conteúdo:

5.a. Ganchos de função padrão

Quatro funções podem ser definidas que serão chamadas em torno das operações start/stop. As funções são chamadas com o nome da interface primeiro para que uma função possa controlar múltiplos adaptadores.

Os valores de retorno para as funções preup() e predown devem ser 0 (sucesso) para indicar que a configuração ou desconfiguração da interface pode continuar. Se preup() retornar um valor não-nulo, então a configuração de interface será abortada. Se o predown() retornar um valor não-nulo, então a interface não poderá continuar a desconfiguração.

Os valores de retorno para as funções postup() e postdown são ignorados, já que não há nada a fazer se eles indicarem falhas.

${IFACE} é configurado para a interface ser levantada/abaixada. ${IFVAR} é ${IFACE} convertido para um nome de variável permitido pelo bash

Listagem de código 1.1: exemplos de função pre/post up/down

preup() {
  # Testar link na interface antes de levantá-la. Isto
  # só funciona com alguns adaptadores de rede e precisa de que o pacote
  # mii-diag esteja instalado.
  if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  Testar link na interface antes de levantá-la. Isto
  # só funciona com alguns adaptadores de rede e precisa de que o pacote
  # ethtool esteja instalado.
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # Lembre-se de retornar 0 em caso de sucesso
  return 0
}

predown() {
  # O padrão no script é testar por raiz de NFS e proibir
  # abaixar interfaces no caso. Note que se você especificar uma
  # função predown() você irá sobrepor a lógica. Aqui está, em
  # caso que você ainda queira...
  if is_net_fs /; then
    eerror "sistema de arquivos raiz está montado em rede -- ${IFACE} não pode ser parada"
    return 1
  fi

  # Lembre-se de retornar 0 em caso de sucesso
  return 0
}

postup() {
  # Esta função pode ser usada, por exemplo, para registrar com
  # um serviço de DNS dinâmico. Outra possibilidade seria
  # enviar/receber correio uma vez que a interface for configurada.
  return 0
}

postdown() {
  # Esta função está aqui para ser completo... Não
  # pensei de nada interessante para fazer com ela ainda ;-)
  return 0
}

5.b. Ganchos de função para ferramentas wireless

Nota: Isto não irá funcionar com WPA suplicante - mas as variáveis ${ESSID} e ${ESSIDVAR} estão disponíveis na função postup().

Duas funções podem ser definidas que irão ser chamadas em torno da função associada. As funções são chamadas com o nome da interface primeiro para que uma função possa controlar múltiplos adaptadores.

Os valores de retorno para uma função preassociate() devem ser 0 (sucesso) para indicar que a configuração ou desconfiguração da interface pode continuar. Se preassociate() retornar um valor não-nulo, então a configuração de interface será abortada.

O valor de retorno para a função postassociate() é ignorado já que não há nada a fazer se indicar falha.

${ESSID} é configurado como o ESSID exato do AP a que você está se conectando. ${ESSIDVAR} é ${ESSID} convertido para um nome de variável permitido pelo bash

Listagem de código 2.1: funções pre/post association

preassociate() {
  # Abaixo são adicionadas duas variáveis de configuração leap_user_ESSID
  # e leap_pass_ESSID. Quando as duas são configuradas para o ESSID
  # sendo conectado, então nós rodamos o 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 "Para suporte a LEAP support, por favor faça emerge net-misc/cisco-aironet-client-utils"
      return 1
    fi
    einfo "Esperando autenticação de LEAP em \"${ESSID//\\\\//}\""
    if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
      ewarn "Login falhou para ${user}"
      return 1
    fi
  fi

  return 0
}

postassociate() {
  # Esta função está aqui para ser completo... Não
  # pensei de nada interessante para fazer com ela ainda ;-)

  return 0
}

Nota: ${ESSID} e ${ESSIDVAR} não estão disponíveis nas funções predown() e postdown().


[ << ] [ < ] [ Início ] [ > ] [ >> ]


Imprimir

View all

Atualizado 22 de dezembro de 2005

Esta tradução não é mais mantida

Resumo: Se você estiver sentindo-se aventureiro, você pode adicionar suas próprias funções ao sistema de rede.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desenvolvedor do Gentoo x86

Tavis Ormandy
Desenvolvedor do Gentoo Alpha

Jason Huebel
Desenvolvedor do Gentoo AMD64

Guy Martin
Desenvolvedor do Gentoo HPPA

Pieter Van den Abeele
Desenvolvedor do Gentoo PPC

Joe Kallar
Desenvolvedor do Gentoo SPARC

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
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Colaborador

Enderson Maia
Tradutor Responsável

Marcelo Góes
Tradutor

Eduardo Magalhães
Tradutor

Marcelo Azambuja
Tradutor

Marcos Vinicius Buzo
Tradutor

Donate to support our development efforts.

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