Linux server2.hpierson.com 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
Apache
: 162.0.216.123 | : 216.73.216.54
28 Domain
?7.4.33
yvffpqmy
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
lib /
python2.7 /
site-packages /
supervisor /
[ HOME SHELL ]
Name
Size
Permission
Action
?;
medusa
[ DIR ]
drwxr-xr-x
?;
scripts
[ DIR ]
drwxr-xr-x
?;
skel
[ DIR ]
drwxr-xr-x
?;
tests
[ DIR ]
drwxr-xr-x
?;
ui
[ DIR ]
drwxr-xr-x
childutils.py
2.38
KB
-rw-r--r--
childutils.pyc
4.26
KB
-rw-r--r--
childutils.pyo
4.26
KB
-rw-r--r--
confecho.py
154
B
-rw-r--r--
confecho.pyc
485
B
-rw-r--r--
confecho.pyo
485
B
-rw-r--r--
datatypes.py
12.89
KB
-rw-r--r--
datatypes.pyc
17.6
KB
-rw-r--r--
datatypes.pyo
17.55
KB
-rw-r--r--
dispatchers.py
17.5
KB
-rw-r--r--
dispatchers.pyc
15.7
KB
-rw-r--r--
dispatchers.pyo
15.7
KB
-rw-r--r--
events.py
6.58
KB
-rw-r--r--
events.pyc
13
KB
-rw-r--r--
events.pyo
13
KB
-rw-r--r--
http.py
30.28
KB
-rw-r--r--
http.pyc
26.31
KB
-rw-r--r--
http.pyo
26.31
KB
-rw-r--r--
http_client.py
5.95
KB
-rw-r--r--
http_client.pyc
8.42
KB
-rw-r--r--
http_client.pyo
8.42
KB
-rw-r--r--
loggers.py
10.28
KB
-rw-r--r--
loggers.pyc
15.04
KB
-rw-r--r--
loggers.pyo
14.95
KB
-rw-r--r--
options.py
82.66
KB
-rw-r--r--
options.pyc
69.29
KB
-rw-r--r--
options.pyo
69.29
KB
-rw-r--r--
pidproxy.py
1.84
KB
-rw-r--r--
pidproxy.pyc
2.92
KB
-rw-r--r--
pidproxy.pyo
2.92
KB
-rw-r--r--
poller.py
6.54
KB
-rw-r--r--
poller.pyc
10.18
KB
-rw-r--r--
poller.pyo
10.18
KB
-rw-r--r--
process.py
35.4
KB
-rw-r--r--
process.pyc
28.68
KB
-rw-r--r--
process.pyo
28.68
KB
-rw-r--r--
rpcinterface.py
34.71
KB
-rw-r--r--
rpcinterface.pyc
29.7
KB
-rw-r--r--
rpcinterface.pyo
29.7
KB
-rw-r--r--
socket_manager.py
3.04
KB
-rw-r--r--
socket_manager.pyc
5.35
KB
-rw-r--r--
socket_manager.pyo
5.35
KB
-rw-r--r--
states.py
1.62
KB
-rw-r--r--
states.pyc
2.23
KB
-rw-r--r--
states.pyo
2.23
KB
-rw-r--r--
supervisorctl.py
47.77
KB
-rw-r--r--
supervisorctl.pyc
43.63
KB
-rw-r--r--
supervisorctl.pyo
43.63
KB
-rw-r--r--
supervisord.py
14.04
KB
-rw-r--r--
supervisord.pyc
12.43
KB
-rw-r--r--
supervisord.pyo
12.32
KB
-rw-r--r--
version.txt
5
B
-rw-r--r--
web.py
22.99
KB
-rw-r--r--
web.pyc
18.87
KB
-rw-r--r--
web.pyo
18.87
KB
-rw-r--r--
xmlrpc.py
21.63
KB
-rw-r--r--
xmlrpc.pyc
20.9
KB
-rw-r--r--
xmlrpc.pyo
20.9
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : poller.py
import select import errno class BasePoller: def __init__(self, options): self.options = options self.initialize() def initialize(self): pass def register_readable(self, fd): raise NotImplementedError def register_writable(self, fd): raise NotImplementedError def unregister_readable(self, fd): raise NotImplementedError def unregister_writable(self, fd): raise NotImplementedError def poll(self, timeout): raise NotImplementedError def before_daemonize(self): pass def after_daemonize(self): pass def close(self): pass class SelectPoller(BasePoller): def initialize(self): self._select = select self._init_fdsets() def register_readable(self, fd): self.readables.add(fd) def register_writable(self, fd): self.writables.add(fd) def unregister_readable(self, fd): self.readables.discard(fd) def unregister_writable(self, fd): self.writables.discard(fd) def unregister_all(self): self._init_fdsets() def poll(self, timeout): try: r, w, x = self._select.select( self.readables, self.writables, [], timeout ) except select.error, err: if err.args[0] == errno.EINTR: self.options.logger.blather('EINTR encountered in poll') return [], [] if err.args[0] == errno.EBADF: self.options.logger.blather('EBADF encountered in poll') self.unregister_all() return [], [] raise return r, w def _init_fdsets(self): self.readables = set() self.writables = set() class PollPoller(BasePoller): def initialize(self): self._poller = select.poll() self.READ = select.POLLIN | select.POLLPRI | select.POLLHUP self.WRITE = select.POLLOUT self.readables = set() self.writables = set() def register_readable(self, fd): self._poller.register(fd, self.READ) self.readables.add(fd) def register_writable(self, fd): self._poller.register(fd, self.WRITE) self.writables.add(fd) def unregister_readable(self, fd): self.readables.discard(fd) self._poller.unregister(fd) if fd in self.writables: self._poller.register(fd, self.WRITE) def unregister_writable(self, fd): self.writables.discard(fd) self._poller.unregister(fd) if fd in self.readables: self._poller.register(fd, self.READ) def poll(self, timeout): fds = self._poll_fds(timeout) readables, writables = [], [] for fd, eventmask in fds: if self._ignore_invalid(fd, eventmask): continue if eventmask & self.READ: readables.append(fd) if eventmask & self.WRITE: writables.append(fd) return readables, writables def _poll_fds(self, timeout): try: return self._poller.poll(timeout * 1000) except select.error, err: if err.args[0] == errno.EINTR: self.options.logger.blather('EINTR encountered in poll') return [] raise def _ignore_invalid(self, fd, eventmask): if eventmask & select.POLLNVAL: # POLLNVAL means `fd` value is invalid, not open. # When a process quits it's `fd`s are closed so there # is no more reason to keep this `fd` registered # If the process restarts it's `fd`s are registered again self._poller.unregister(fd) self.readables.discard(fd) self.writables.discard(fd) return True return False class KQueuePoller(BasePoller): ''' Wrapper for select.kqueue()/kevent() ''' max_events = 1000 def initialize(self): self._kqueue = select.kqueue() self.readables = set() self.writables = set() def register_readable(self, fd): self.readables.add(fd) kevent = select.kevent(fd, filter=select.KQ_FILTER_READ, flags=select.KQ_EV_ADD) self._kqueue_control(fd, kevent) def register_writable(self, fd): self.writables.add(fd) kevent = select.kevent(fd, filter=select.KQ_FILTER_WRITE, flags=select.KQ_EV_ADD) self._kqueue_control(fd, kevent) def unregister_readable(self, fd): kevent = select.kevent(fd, filter=select.KQ_FILTER_READ, flags=select.KQ_EV_DELETE) self.readables.discard(fd) self._kqueue_control(fd, kevent) def unregister_writable(self, fd): kevent = select.kevent(fd, filter=select.KQ_FILTER_WRITE, flags=select.KQ_EV_DELETE) self.writables.discard(fd) self._kqueue_control(fd, kevent) def _kqueue_control(self, fd, kevent): try: self._kqueue.control([kevent], 0) except OSError, error: if error.errno == errno.EBADF: self.options.logger.blather('EBADF encountered in kqueue. ' 'Invalid file descriptor %s' % fd) else: raise def poll(self, timeout): readables, writables = [], [] try: kevents = self._kqueue.control(None, self.max_events, timeout) except OSError, error: if error.errno == errno.EINTR: self.options.logger.blather('EINTR encountered in poll') return readables, writables raise for kevent in kevents: if kevent.filter == select.KQ_FILTER_READ: readables.append(kevent.ident) if kevent.filter == select.KQ_FILTER_WRITE: writables.append(kevent.ident) return readables, writables def before_daemonize(self): self.close() def after_daemonize(self): self._kqueue = select.kqueue() for fd in self.readables: self.register_readable(fd) for fd in self.writables: self.register_writable(fd) def close(self): self._kqueue.close() self._kqueue = None def implements_poll(): return hasattr(select, 'poll') def implements_kqueue(): return hasattr(select, 'kqueue') if implements_kqueue(): Poller = KQueuePoller elif implements_poll(): Poller = PollPoller else: Poller = SelectPoller
Close