OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python311
/
lib
/
python3.11
/
site-packages
/
pyroute2
/
ndb
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/08/2024 06:42:21 PM
rwxr-xr-x
📄
__init__.py
0 bytes
05/08/2024 06:42:21 PM
rw-r--r--
📁
__pycache__
-
05/08/2024 06:42:21 PM
rwxr-xr-x
📄
auth_manager.py
2.58 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
cli.py
2.25 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
cluster.py
1003 bytes
05/08/2024 06:42:21 PM
rw-r--r--
📄
compat.py
2.2 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
events.py
2.02 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
main.py
20.96 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
messages.py
246 bytes
05/08/2024 06:42:21 PM
rw-r--r--
📄
noipdb.py
5.03 KB
05/08/2024 06:42:21 PM
rw-r--r--
📁
objects
-
05/08/2024 06:42:21 PM
rwxr-xr-x
📄
query.py
4.75 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
report.py
11.86 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
schema.py
32.04 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
source.py
16.56 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
task_manager.py
9.58 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
transaction.py
11.05 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
transport.py
6.2 KB
05/08/2024 06:42:21 PM
rw-r--r--
📄
view.py
16.5 KB
05/08/2024 06:42:21 PM
rw-r--r--
Editing: events.py
Close
import threading import time class SyncStart(Exception): pass class SchemaFlush(Exception): pass class SchemaReadLock(Exception): pass class SchemaReadUnlock(Exception): pass class SchemaGenericRequest(object): def __init__(self, response, *argv, **kwarg): self.response = response self.argv = argv self.kwarg = kwarg class MarkFailed(Exception): pass class DBMExitException(Exception): pass class ShutdownException(Exception): pass class RescheduleException(Exception): pass class InvalidateHandlerException(Exception): pass class State(object): events = None def __init__(self, prime=None, log=None, wait_list=None): wait_list = wait_list or [] self.events = [] self.log = log self.wait_list = {x: threading.Event() for x in wait_list} if prime is not None: self.load(prime) def wait(self, state, *argv, **kwarg): return self.wait_list[state].wait(*argv, **kwarg) def load(self, prime): self.events = [] for state in prime.events: self.events.append(state) def transition(self): if len(self.events) < 2: return None return (self.events[-2][1], self.events[-1][1]) def get(self): if not self.events: return None return self.events[-1][1] def set(self, state): for key in self.wait_list: if key == state: self.wait_list[key].set() else: self.wait_list[key].clear() if self.log is not None: self.log.debug(state) if self.events and self.events[-1][1] == state: self.events.pop() self.events.append((time.time(), state)) return state def __eq__(self, other): if not self.events: return False return self.events[-1][1] == other def __ne__(self, other): if not self.events: return True return self.events[-1][1] != other