def __init__(self, iface): self.iface = iface self.ping_timeout = config.get_parameter('ping_timeout', 4) self.is_verified = StatePublisher(False) self.has_address = False iface.ping_tester.update_event.subscribe_repeating(self._update) netlink_monitor.get_state_publisher(iface.iface, IFSTATE.ADDR).subscribe( self._has_address_cb, iface)
def __init__(self, iface): self.iface = iface self.ping_timeout = config.get_parameter("ping_timeout", 4) self.is_verified = StatePublisher(False) self.has_address = False iface.ping_tester.update_event.subscribe_repeating(self._update) netlink_monitor.get_state_publisher(iface.iface, IFSTATE.ADDR).subscribe(self._has_address_cb, iface)
class PingMonitor: def __init__(self, iface): self.iface = iface self.ping_timeout = config.get_parameter('ping_timeout', 4) self.is_verified = StatePublisher(False) self.has_address = False iface.ping_tester.update_event.subscribe_repeating(self._update) netlink_monitor.get_state_publisher(iface.iface, IFSTATE.ADDR).subscribe( self._has_address_cb, iface) def _update(self, status): #print "PingMonitor._update" if status: (bins, latency1, latency2) = status #print "PingMonitor", bins, self.restart_time - time.time() if status and bins[0]: self.restart_time = time.time() + self.ping_timeout self.is_verified.set(True) elif self.has_address and self.restart_time < time.time(): if not config.get_parameter('disable_ping_timeout'): print "PingMonitor restarting", self.iface.iface self.has_address = False self.iface.interface_upper.restart() else: print "PingMonitor restart was disabled by disable_ping_timeout", self.iface.iface self._set_timeout() def _has_address_cb(self, iface, old_state, new_state): self.is_verified.set(False) self.has_address = bool(new_state) if new_state: self._set_timeout() else: self.restart_time = 1e1000 def _set_timeout(self): self.restart_time = time.time() + self.ping_timeout
class PingMonitor: def __init__(self, iface): self.iface = iface self.ping_timeout = config.get_parameter("ping_timeout", 4) self.is_verified = StatePublisher(False) self.has_address = False iface.ping_tester.update_event.subscribe_repeating(self._update) netlink_monitor.get_state_publisher(iface.iface, IFSTATE.ADDR).subscribe(self._has_address_cb, iface) def _update(self, status): # print "PingMonitor._update" if status: (bins, latency1, latency2) = status # print "PingMonitor", bins, self.restart_time - time.time() if status and bins[0]: self.restart_time = time.time() + self.ping_timeout self.is_verified.set(True) elif self.has_address and self.restart_time < time.time(): if not config.get_parameter("disable_ping_timeout"): print "PingMonitor restarting", self.iface.iface self.has_address = False self.iface.interface_upper.restart() else: print "PingMonitor restart was disabled by disable_ping_timeout", self.iface.iface self._set_timeout() def _has_address_cb(self, iface, old_state, new_state): self.is_verified.set(False) self.has_address = bool(new_state) if new_state: self._set_timeout() else: self.restart_time = 1e1000 def _set_timeout(self): self.restart_time = time.time() + self.ping_timeout