def check(self): if self.check_alive_timer is not None: self.check_alive_timer.cancel() self.check_alive_timer = threading.Timer(1.0, self.check) self.check_alive_timer.daemon = True self.check_alive_timer.start() now = time.time() max_delta = 10 for stager in self.shell.stagers: for session in stager.sessions: delta = now - session.last_active #delta = datetime.timedelta(seconds=int(delta)) if session.status == core.session.Session.ALIVE: if delta > max_delta: self.shell.play_sound('TIMEOUT') session.set_dead() else: if delta < max_delta: self.shell.play_sound('RECONNECT') session.set_reconnect()
def check(self): if self.check_alive_timer is not None: self.check_alive_timer.cancel() self.check_alive_timer = threading.Timer(1.0, self.check) self.check_alive_timer.daemon = True self.check_alive_timer.start() now = time.time() max_delta = 10 for stager in self.shell.stagers: for session in stager.sessions: delta = now - session.last_active #delta = datetime.timedelta(seconds=int(delta)) if session.status == core.session.Session.ALIVE: if delta > max_delta: self.shell.play_sound('TIMEOUT') session.set_dead() else: if delta < max_delta: self.shell.play_sound('RECONNECT') session.set_reconnect() # Job repeater remove_jobs = [] for rjob in self.shell.repeatjobs: rjobval = self.shell.repeatjobs[rjob] if rjobval[0] > 0: rjobval[0] = rjobval[0] - 1 continue zombie = [ o.value for o in rjobval[6].options if o.name == "ZOMBIE" ][0] rjobval[7].dispatch(rjobval[2], rjobval[3], False, zombie) rjobval[0] = rjobval[4] if rjobval[1] == 0: continue if rjobval[1] > 2: rjobval[1] = rjobval[1] - 1 continue remove_jobs.append(rjob) if remove_jobs: tmp = dict(self.shell.repeatjobs) for r in remove_jobs: del tmp[r] self.shell.repeatjobs = tmp
def check(self): if self.check_alive_timer is not None: self.check_alive_timer.cancel() self.check_alive_timer = threading.Timer(1.0, self.check) self.check_alive_timer.daemon = True self.check_alive_timer.start() now = time.time() max_delta = 10 for stager in self.shell.stagers: for session in stager.sessions: delta = now - session.last_active #delta = datetime.timedelta(seconds=int(delta)) if session.status == core.session.Session.ALIVE: if delta > max_delta: session.set_dead() else: if delta < max_delta: session.set_reconnect()