fix server
This commit is contained in:
parent
472a2b6233
commit
a3ee28dc45
2 changed files with 20 additions and 10 deletions
11
local.py
11
local.py
|
@ -116,7 +116,8 @@ class LocalHandler(object):
|
||||||
header_length = 5 + addr_len + 2
|
header_length = 5 + addr_len + 2
|
||||||
else:
|
else:
|
||||||
# TODO check addrtype in (1, 3, 4)
|
# TODO check addrtype in (1, 3, 4)
|
||||||
raise
|
# raise Exception('addrtype wrong')
|
||||||
|
raise something
|
||||||
remote_port = struct.unpack('>H', remote_port)[0]
|
remote_port = struct.unpack('>H', remote_port)[0]
|
||||||
logging.info('connecting %s:%d' % (remote_addr, remote_port))
|
logging.info('connecting %s:%d' % (remote_addr, remote_port))
|
||||||
self.conn.write('\x05\x00\x00\x01\x00\x00\x00\x00\x10\x10')
|
self.conn.write('\x05\x00\x00\x01\x00\x00\x00\x00\x10\x10')
|
||||||
|
@ -177,7 +178,9 @@ if __name__ == '__main__':
|
||||||
if '-6' in sys.argv[1:]:
|
if '-6' in sys.argv[1:]:
|
||||||
argv.remove('-6')
|
argv.remove('-6')
|
||||||
|
|
||||||
optlist, args = getopt.getopt(argv, 's:p:k:l:')
|
level = logging.INFO
|
||||||
|
|
||||||
|
optlist, args = getopt.getopt(argv, 's:p:k:l:v')
|
||||||
for key, value in optlist:
|
for key, value in optlist:
|
||||||
if key == '-p':
|
if key == '-p':
|
||||||
REMOTE_PORT = int(value)
|
REMOTE_PORT = int(value)
|
||||||
|
@ -187,8 +190,10 @@ if __name__ == '__main__':
|
||||||
PORT = int(value)
|
PORT = int(value)
|
||||||
elif key == '-s':
|
elif key == '-s':
|
||||||
SERVER = value
|
SERVER = value
|
||||||
|
elif key == '-v':
|
||||||
|
level = logging.NOTSET
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)-8s %(message)s',
|
logging.basicConfig(level=level, format='%(asctime)s %(levelname)1.1s %(message)s',
|
||||||
datefmt='%Y-%m-%d %H:%M:%S', filemode='a+')
|
datefmt='%Y-%m-%d %H:%M:%S', filemode='a+')
|
||||||
|
|
||||||
encrypt_table = ''.join(get_table(KEY))
|
encrypt_table = ''.join(get_table(KEY))
|
||||||
|
|
19
server.py
19
server.py
|
@ -65,8 +65,9 @@ class RemoteHandler(object):
|
||||||
conn.connect(local_handler.remote_addr_pair)
|
conn.connect(local_handler.remote_addr_pair)
|
||||||
|
|
||||||
def on_connect(self, s):
|
def on_connect(self, s):
|
||||||
|
logging.debug('on_connnect')
|
||||||
for piece in self.local_handler.cached_pieces:
|
for piece in self.local_handler.cached_pieces:
|
||||||
self.conn.write(decrypt(piece))
|
self.conn.write(piece)
|
||||||
# TODO write cached pieces
|
# TODO write cached pieces
|
||||||
self.local_handler.stage = 5
|
self.local_handler.stage = 5
|
||||||
|
|
||||||
|
@ -84,8 +85,8 @@ class RemoteHandler(object):
|
||||||
|
|
||||||
class LocalHandler(object):
|
class LocalHandler(object):
|
||||||
def on_data(self, s, data):
|
def on_data(self, s, data):
|
||||||
|
data = decrypt(data)
|
||||||
if self.stage == 5:
|
if self.stage == 5:
|
||||||
data = decrypt(data)
|
|
||||||
self.remote_handler.conn.write(data)
|
self.remote_handler.conn.write(data)
|
||||||
return
|
return
|
||||||
if self.stage == 0:
|
if self.stage == 0:
|
||||||
|
@ -107,7 +108,8 @@ class LocalHandler(object):
|
||||||
header_length = 2 + addr_len + 2
|
header_length = 2 + addr_len + 2
|
||||||
else:
|
else:
|
||||||
# TODO check addrtype in (1, 3, 4)
|
# TODO check addrtype in (1, 3, 4)
|
||||||
raise
|
# raise 'addrtype wrong'
|
||||||
|
raise something
|
||||||
remote_port = struct.unpack('>H', remote_port)[0]
|
remote_port = struct.unpack('>H', remote_port)[0]
|
||||||
self.remote_addr_pair = (remote_addr, remote_port)
|
self.remote_addr_pair = (remote_addr, remote_port)
|
||||||
logging.info('connecting %s:%d' % self.remote_addr_pair)
|
logging.info('connecting %s:%d' % self.remote_addr_pair)
|
||||||
|
@ -121,8 +123,7 @@ class LocalHandler(object):
|
||||||
self.stage = 4
|
self.stage = 4
|
||||||
return
|
return
|
||||||
except:
|
except:
|
||||||
import traceback
|
logging.exception('')
|
||||||
traceback.print_exc()
|
|
||||||
|
|
||||||
if self.stage == 4:
|
if self.stage == 4:
|
||||||
self.cached_pieces.append(data)
|
self.cached_pieces.append(data)
|
||||||
|
@ -166,14 +167,18 @@ if __name__ == '__main__':
|
||||||
if '-6' in sys.argv[1:]:
|
if '-6' in sys.argv[1:]:
|
||||||
argv.remove('-6')
|
argv.remove('-6')
|
||||||
|
|
||||||
optlist, args = getopt.getopt(argv, 'p:k:')
|
level = logging.INFO
|
||||||
|
|
||||||
|
optlist, args = getopt.getopt(argv, 'p:k:v')
|
||||||
for key, value in optlist:
|
for key, value in optlist:
|
||||||
if key == '-p':
|
if key == '-p':
|
||||||
PORT = int(value)
|
PORT = int(value)
|
||||||
elif key == '-k':
|
elif key == '-k':
|
||||||
KEY = value
|
KEY = value
|
||||||
|
elif key == '-v':
|
||||||
|
level = logging.NOTSET
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)-8s %(message)s',
|
logging.basicConfig(level=level, format='%(asctime)s %(levelname)1.1s %(message)s',
|
||||||
datefmt='%Y-%m-%d %H:%M:%S', filemode='a+')
|
datefmt='%Y-%m-%d %H:%M:%S', filemode='a+')
|
||||||
|
|
||||||
encrypt_table = ''.join(get_table(KEY))
|
encrypt_table = ''.join(get_table(KEY))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue