Come posso fare in modo che Empathy riprova a connettersi quando ha un problema di rete


9

Ho aggiunto Empathy all'elenco delle applicazioni che si aprono per impostazione predefinita ed è configurato per connettersi automaticamente a MSN quando avviato, ma quando accedo al mio laptop la connessione wifi impiega alcuni secondi per essere pronta. Prima che la rete sia attiva, Empathy è già stata avviata, ha tentato di accedere a MSN e non è riuscita e dopo non riesco più a collegarmi.

Questo sembra essere un bug in Empathy, ma come posso ottenere una correzione per esso, o se non è possibile, come posso ritardare il suo avvio fino a quando la rete è attiva?

Risposte:


6

Apparentemente si tratta di un bug noto in Empathy, quindi ho deciso di avviare Empathy da uno script che controlla se la rete è attiva (connettendosi a http://www.google.com , il vero battito del cuore di Internet :) Se la rete non funziona, dormirà per 5 secondi e riproverà, fino a quando non tenterà 30 volte

Questo è lo script (chiamato waitfornet.py )

#!/usr/bin/python

from urllib2 import urlopen, URLError
from subprocess import Popen
from time import sleep
from sys import argv

MAX_TRIES = 30
DELAY = 5

if len (argv) < 2:
    print ('Check for network connectivity and run a command once the net is up')
    print ('Tries up to %d times waiting %d seconds between each try' % (MAX_TRIES, DELAY))
    print ('\nUSAGE: python waitfornet.py <command to run>')
else:
    while True:
        MAX_TRIES -= 1
        if MAX_TRIES < 0:
            raise ValueError ('Reached the max iteration count and the net is still down')

        try:
            data = urlopen('http://www.google.com')
        except URLError:
            # if there's a problem connecting to google, that must mean
            # that the net is still down, so sleep 5 seconds and try again
            print ('Internet is down... retrying...')
            sleep (DELAY)
            continue

        # if you got here it means that the urlopen succeded
        pid = Popen([argv[1], ' '.join(argv[1:])]).pid
        break

ed è così che lo avvio dal menu "Applicazioni di avvio":

~/scripts/waitfornet.py empathy

2

Sembra che Empathy potrebbe aver bisogno di una patch per fare questo tipo di cose internamente. Ma dovresti essere in grado di stimolare Empathy a fare la cosa giusta disconnettendoti dalla tua rete e riconnettendoti.

Apparentemente ho avuto bug con Empathy che rifiutava la connessione a un gruppo di reti in varie occasioni. Ma dovrebbe dare un conto alla rovescia "Riproverà tra X secondi".

Ma ciò richiederà codice e, se lo si desidera, è necessario effettuare una segnalazione di bug.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.