/
usr
/
lib
/
python2.6
/
site-packages
/
supervisor
/
medusa
/
/usr/lib/python2.6/site-packages/supervisor/medusa
mkdir
upload
Name
Size
Mode
Actions
auth_handler.py
4739
0644
edit
dl
rm
auth_handler.pyc
4513
0644
edit
dl
rm
auth_handler.pyo
4513
0644
edit
dl
rm
chat_server.py
4535
0644
edit
dl
rm
chat_server.pyc
6427
0644
edit
dl
rm
chat_server.pyo
6427
0644
edit
dl
rm
counter.py
1440
0644
edit
dl
rm
counter.pyc
2039
0644
edit
dl
rm
counter.pyo
2039
0644
edit
dl
rm
default_handler.py
6331
0644
edit
dl
rm
default_handler.pyc
5034
0644
edit
dl
rm
default_handler.pyo
5034
0644
edit
dl
rm
event_loop.py
2981
0644
edit
dl
rm
event_loop.pyc
3513
0644
edit
dl
rm
event_loop.pyo
3513
0644
edit
dl
rm
filesys.py
11206
0644
edit
dl
rm
filesys.pyc
13598
0644
edit
dl
rm
filesys.pyo
13598
0644
edit
dl
rm
ftp_server.py
40552
0644
edit
dl
rm
ftp_server.pyc
34727
0644
edit
dl
rm
ftp_server.pyo
34727
0644
edit
dl
rm
http_date.py
3415
0644
edit
dl
rm
http_date.pyc
3468
0644
edit
dl
rm
http_date.pyo
3468
0644
edit
dl
rm
http_server.py
25217
0644
edit
dl
rm
http_server.pyc
21468
0644
edit
dl
rm
http_server.pyo
21468
0644
edit
dl
rm
logger.py
8000
0644
edit
dl
rm
logger.pyc
10990
0644
edit
dl
rm
logger.pyo
10990
0644
edit
dl
rm
medusa_gif.py
2772
0644
edit
dl
rm
medusa_gif.pyc
1156
0644
edit
dl
rm
medusa_gif.pyo
1156
0644
edit
dl
rm
monitor.py
11054
0644
edit
dl
rm
monitor.pyc
12285
0644
edit
dl
rm
monitor.pyo
12285
0644
edit
dl
rm
monitor_client.py
3273
0644
edit
dl
rm
monitor_client.pyc
5390
0644
edit
dl
rm
monitor_client.pyo
5390
0644
edit
dl
rm
monitor_client_win32.py
1334
0644
edit
dl
rm
monitor_client_win32.pyc
2094
0644
edit
dl
rm
monitor_client_win32.pyo
2094
0644
edit
dl
rm
m_syslog.py
7351
0644
edit
dl
rm
m_syslog.pyc
4006
0644
edit
dl
rm
m_syslog.pyo
4006
0644
edit
dl
rm
producers.py
9439
0644
edit
dl
rm
producers.pyc
11634
0644
edit
dl
rm
producers.pyo
11634
0644
edit
dl
rm
put_handler.py
3324
0644
edit
dl
rm
put_handler.pyc
3511
0644
edit
dl
rm
put_handler.pyo
3511
0644
edit
dl
rm
redirecting_handler.py
1403
0644
edit
dl
rm
redirecting_handler.pyc
2159
0644
edit
dl
rm
redirecting_handler.pyo
2159
0644
edit
dl
rm
resolver.py
15559
0644
edit
dl
rm
resolver.pyc
12401
0644
edit
dl
rm
resolver.pyo
12401
0644
edit
dl
rm
rpc_client.py
9675
0644
edit
dl
rm
rpc_client.pyc
10346
0644
edit
dl
rm
rpc_client.pyo
10346
0644
edit
dl
rm
rpc_server.py
9953
0644
edit
dl
rm
rpc_server.pyc
9536
0644
edit
dl
rm
rpc_server.pyo
9536
0644
edit
dl
rm
script_handler.py
6554
0644
edit
dl
rm
script_handler.pyc
6651
0644
edit
dl
rm
script_handler.pyo
6651
0644
edit
dl
rm
setup.py
496
0644
edit
dl
rm
setup.pyc
729
0644
edit
dl
rm
setup.pyo
729
0644
edit
dl
rm
status_handler.py
9352
0644
edit
dl
rm
status_handler.pyc
9672
0644
edit
dl
rm
status_handler.pyo
9672
0644
edit
dl
rm
unix_user_handler.py
2312
0644
edit
dl
rm
unix_user_handler.pyc
2361
0644
edit
dl
rm
unix_user_handler.pyo
2361
0644
edit
dl
rm
virtual_handler.py
1724
0644
edit
dl
rm
virtual_handler.pyc
3164
0644
edit
dl
rm
virtual_handler.pyo
3164
0644
edit
dl
rm
xmlrpc_handler.py
2944
0644
edit
dl
rm
xmlrpc_handler.pyc
3784
0644
edit
dl
rm
xmlrpc_handler.pyo
3784
0644
edit
dl
rm
__init__.py
128
0644
edit
dl
rm
__init__.pyc
277
0644
edit
dl
rm
__init__.pyo
277
0644
edit
dl
rm
Edit:
/usr/lib/python2.6/site-packages/supervisor/medusa/monitor_client.py
(3273B)
# -*- Mode: Python -*- # monitor client, unix version. import asyncore import asynchat import socket import string import sys import os import md5 class stdin_channel (asyncore.file_dispatcher): def handle_read (self): data = self.recv(512) if not data: print '\nclosed.' self.sock_channel.close() try: self.close() except: pass data = string.replace(data, '\n', '\r\n') self.sock_channel.push (data) def writable (self): return 0 def log (self, *ignore): pass class monitor_client (asynchat.async_chat): def __init__ (self, password, addr=('',8023), socket_type=socket.AF_INET): asynchat.async_chat.__init__ (self) self.create_socket (socket_type, socket.SOCK_STREAM) self.terminator = '\r\n' self.connect (addr) self.sent_auth = 0 self.timestamp = '' self.password = password def collect_incoming_data (self, data): if not self.sent_auth: self.timestamp = self.timestamp + data else: sys.stdout.write (data) sys.stdout.flush() def found_terminator (self): if not self.sent_auth: self.push (hex_digest (self.timestamp + self.password) + '\r\n') self.sent_auth = 1 else: print def handle_close (self): # close all the channels, which will make the standard main # loop exit. map (lambda x: x.close(), asyncore.socket_map.values()) def log (self, *ignore): pass class encrypted_monitor_client (monitor_client): "Wrap push() and recv() with a stream cipher" def init_cipher (self, cipher, key): self.outgoing = cipher.new (key) self.incoming = cipher.new (key) def push (self, data): # push the encrypted data instead return monitor_client.push (self, self.outgoing.encrypt (data)) def recv (self, block_size): data = monitor_client.recv (self, block_size) if data: return self.incoming.decrypt (data) else: return data def hex_digest (s): m = md5.md5() m.update (s) return string.join ( map (lambda x: hex (ord (x))[2:], map (None, m.digest())), '', ) if __name__ == '__main__': if len(sys.argv) == 1: print 'Usage: %s host port' % sys.argv[0] sys.exit(0) if ('-e' in sys.argv): encrypt = 1 sys.argv.remove ('-e') else: encrypt = 0 sys.stderr.write ('Enter Password: ') sys.stderr.flush() try: os.system ('stty -echo') p = raw_input() print finally: os.system ('stty echo') stdin = stdin_channel (0) if len(sys.argv) > 1: if encrypt: client = encrypted_monitor_client (p, (sys.argv[1], string.atoi (sys.argv[2]))) import sapphire client.init_cipher (sapphire, p) else: client = monitor_client (p, (sys.argv[1], string.atoi (sys.argv[2]))) else: # default to local host, 'standard' port client = monitor_client (p) stdin.sock_channel = client asyncore.loop()
Save
cmd:
run