Lança um programa quando qualquer conexão sem fio aparece usando o netcfg

5

Eu escrevi um programa que se conecta de forma transparente a portais cativos. Como tal, eu gostaria de executar isso sempre que qualquer conexão sem fio surgir usando netcfg . É possível fazer isso por conexão no arquivo de configuração usando POST_UP , mas isso exigiria adicioná-lo a cada conexão que existe atualmente e qualquer conexão que possa ser criada no futuro, o que não é viável na minha situação. Eu também não desejo pesquisar conexões de rede como um daemon. Não vejo nenhuma informação sobre isso em man netcfg-profiles .

Como devo abordar isso? O netcfg tem alguma configuração embutida que permita que um POST_UP se aplique a múltiplas conexões?

É aceitável que também se aplique a todas as conexões (inclusive com fio), mas, se possível, eu gostaria de evitá-lo.

    
por Chris Down 17.01.2013 / 08:22

1 resposta

1

Comandos {PRE, POST} _ {UP, DOWN} específicos da interface podem ser definidos em /etc/network.d/interfaces/$DEVICE, em que $ DEVICE é o nome do dispositivo de rede. Portanto, embora você precise de um gancho por interface (que é, na verdade, o que você indica que deseja), você não precisa de um por conexão.

Por exemplo, minha pasta de interfaces tem os seguintes arquivos:

/etc/network.d/interfaces/_functions:

notify() {
dev="$1"
state="$2"
/usr/local/sbin/xuserrun /usr/local/sbin/network_notification "$dev" "$state"
return 0
}

/etc/network.d/interfaces/ {wlan0, eth0} (ambos com o mesmo conteúdo):

source /etc/network.d/interfaces/_functions
POST_UP="notify ${INTERFACE} up"
PRE_DOWN="notify ${INTERFACE} down"

Isso executa um script para enviar uma notificação pop-up informando quando uma conexão foi feita / perdida. Observe que esses ganchos são executados como usuário root. O comando xuserrun está disponível no github e determina o nome de usuário atual do X e alterna para esse usuário antes de executar o comando subsequente.

    
por 21.01.2013 / 08:48

Tags