mirror of https://github.com/jumpserver/jumpserver
Merge branch 'dev' of github.com:jumpserver/jumpserver into TermLogRecorder
commit
860c7f1508
12
connect.py
12
connect.py
|
@ -303,6 +303,7 @@ class SshTty(Tty):
|
||||||
data = ''
|
data = ''
|
||||||
input_str = ''
|
input_str = ''
|
||||||
input_mode = False
|
input_mode = False
|
||||||
|
vim_end_flag = False
|
||||||
try:
|
try:
|
||||||
tty.setraw(sys.stdin.fileno())
|
tty.setraw(sys.stdin.fileno())
|
||||||
tty.setcbreak(sys.stdin.fileno())
|
tty.setcbreak(sys.stdin.fileno())
|
||||||
|
@ -363,12 +364,13 @@ class SshTty(Tty):
|
||||||
if input_str != x:
|
if input_str != x:
|
||||||
data += input_str
|
data += input_str
|
||||||
if self.vim_flag:
|
if self.vim_flag:
|
||||||
match = self.ps1_pattern.search(self.vim_data)
|
match = re.compile(r'\x1b\[\?1049', re.X).findall(self.vim_data)
|
||||||
if match:
|
if match:
|
||||||
self.vim_flag = False
|
if vim_end_flag or len(match) == 2:
|
||||||
data = self.deal_command(data)[0:200]
|
self.vim_flag = False
|
||||||
if len(data) > 0:
|
vim_end_flag = False
|
||||||
TtyLog(log=log, datetime=datetime.datetime.now(), cmd=data).save()
|
else:
|
||||||
|
vim_end_flag = True
|
||||||
else:
|
else:
|
||||||
data = self.deal_command(data)[0:200]
|
data = self.deal_command(data)[0:200]
|
||||||
if len(data) > 0:
|
if len(data) > 0:
|
||||||
|
|
|
@ -374,13 +374,13 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler):
|
||||||
match = self.term.ps1_pattern.search(self.term.vim_data)
|
match = self.term.ps1_pattern.search(self.term.vim_data)
|
||||||
if match:
|
if match:
|
||||||
self.term.vim_flag = False
|
self.term.vim_flag = False
|
||||||
data = self.term.deal_command(self.term.data)[0:200]
|
result = self.term.deal_command(self.term.data)[0:200]
|
||||||
if len(data) > 0:
|
if len(result) > 0:
|
||||||
TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=data).save()
|
TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=result).save()
|
||||||
else:
|
else:
|
||||||
data = self.term.deal_command(self.term.data)[0:200]
|
result = self.term.deal_command(self.term.data)[0:200]
|
||||||
if len(data) > 0:
|
if len(result) > 0:
|
||||||
TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=data).save()
|
TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=result).save()
|
||||||
self.term.vim_data = ''
|
self.term.vim_data = ''
|
||||||
self.term.data = ''
|
self.term.data = ''
|
||||||
self.term.input_mode = False
|
self.term.input_mode = False
|
||||||
|
|
Loading…
Reference in New Issue