mirror of https://github.com/huashengdun/webssh
Refactored handler.py
parent
a82565bf2d
commit
4b27da5f38
|
@ -275,10 +275,10 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler):
|
|||
|
||||
if self.ssh_client._system_host_keys.lookup(key) is None:
|
||||
if self.ssh_client._host_keys.lookup(key) is None:
|
||||
raise ValueError(
|
||||
'Connection to {}:{} is not allowed.'.format(
|
||||
hostname, port)
|
||||
)
|
||||
raise tornado.web.HTTPError(
|
||||
403, 'Connection to {}:{} is not allowed.'.format(
|
||||
hostname, port)
|
||||
)
|
||||
|
||||
def get_args(self):
|
||||
hostname = self.get_hostname()
|
||||
|
@ -309,15 +309,9 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler):
|
|||
|
||||
return result if result else 'utf-8'
|
||||
|
||||
def ssh_connect(self):
|
||||
def ssh_connect(self, args):
|
||||
ssh = self.ssh_client
|
||||
|
||||
try:
|
||||
args = self.get_args()
|
||||
except InvalidValueError as exc:
|
||||
raise tornado.web.HTTPError(400, str(exc))
|
||||
|
||||
dst_addr = (args[0], args[1])
|
||||
dst_addr = args[:2]
|
||||
logging.info('Connecting to {}:{}'.format(*dst_addr))
|
||||
|
||||
try:
|
||||
|
@ -337,9 +331,9 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler):
|
|||
worker.encoding = self.get_default_encoding(ssh)
|
||||
return worker
|
||||
|
||||
def ssh_connect_wrapped(self, future):
|
||||
def ssh_connect_wrapped(self, future, args):
|
||||
try:
|
||||
worker = self.ssh_connect()
|
||||
worker = self.ssh_connect(args)
|
||||
except Exception as exc:
|
||||
logging.error(traceback.format_exc())
|
||||
future.set_exception(exc)
|
||||
|
@ -378,9 +372,16 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler):
|
|||
|
||||
self.check_origin()
|
||||
|
||||
try:
|
||||
args = self.get_args()
|
||||
except InvalidValueError as exc:
|
||||
raise tornado.web.HTTPError(400, str(exc))
|
||||
|
||||
future = Future()
|
||||
t = threading.Thread(target=self.ssh_connect_wrapped, args=(future,))
|
||||
t.setDaemon(True)
|
||||
t = threading.Thread(
|
||||
target=self.ssh_connect_wrapped, args=(future, args)
|
||||
)
|
||||
t.daemon = True
|
||||
t.start()
|
||||
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue