diff --git a/wifi/hotspot.py b/wifi/hotspot.py index e6aba22b..c291c5bd 100755 --- a/wifi/hotspot.py +++ b/wifi/hotspot.py @@ -22,20 +22,14 @@ class Server: Il écoutera sur le pipe nommé `socket'.""" # syslog openlog("hotspot.py", LOG_PERROR | LOG_PID) - syslog(LOG_INFO | LOG_LOCAL4, "Demarrage du demon hotspot") # Initialisation de la socket - self._socket_name = socket self._dontclean = False - os.mkfifo(socket, 0600) - self.socket = file(socket, "a+") - - def __del__(self): try: - self.socket.close() + os.unlink(socket) except: pass - if not self._dontclean: - os.unlink(self._socket_name) + os.mkfifo(socket, 0600) + self.socket = file(socket, "a+") def execute(self,cmd): """Exécute une commande. @@ -119,6 +113,7 @@ class Server: def start(self): """Boucle principale""" + syslog(LOG_INFO | LOG_LOCAL4, "Demarrage du demon hotspot") s = self.socket.fileno() while True: # On attend du monde sur la socket @@ -134,5 +129,16 @@ class Server: if __name__ == "__main__": s = Server("/tmp/hotspot.socket") s.daemonize() - s.start() + while True: + try: + s.start() + except: + import traceback + from cStringIO import StringIO + s = StringIO() + sys.stderr = s + traceback.print_exc() + sys.stderr = sys.__stderr__ + syslog(LOG_CRIT | LOG_LOCAL4, "Erreur importante :\n%s" % s.getvalue()) + time.sleep(60) # Pour ne pas flooder...