remove unnecessary support for requesting terminal title

git-svn-id: https://kippo.googlecode.com/svn/trunk@168 951d7100-d841-11de-b865-b3884708a8e2
This commit is contained in:
desaster
2010-08-19 18:19:54 +00:00
parent e0a478c3b9
commit 8f0eed20b3
5 changed files with 2 additions and 64 deletions

View File

@@ -38,7 +38,6 @@ CREATE TABLE `sessions` (
`sensor` int(4) NOT NULL, `sensor` int(4) NOT NULL,
`ip` varchar(15) NOT NULL default '', `ip` varchar(15) NOT NULL default '',
`termsize` varchar(7) default NULL, `termsize` varchar(7) default NULL,
`termtitle` varchar(255) default NULL,
`client` int(4) default NULL, `client` int(4) default NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `starttime` (`starttime`,`sensor`) KEY `starttime` (`starttime`,`sensor`)

2
doc/sql/update6.sql Normal file
View File

@@ -0,0 +1,2 @@
/* Remove an unnecessary feature */
ALTER TABLE `sessions` DROP `termtitle` ;

View File

@@ -29,8 +29,6 @@ class DBLogger(object):
self.handleInput), self.handleInput),
('^Terminal size: (?P<height>[0-9]+) (?P<width>[0-9]+)$', ('^Terminal size: (?P<height>[0-9]+) (?P<width>[0-9]+)$',
self.handleTerminalSize), self.handleTerminalSize),
('^Terminal title: (?P<title>.*)$',
self.handleTerminalTitle),
('^Remote SSH version: (?P<version>.*)$', ('^Remote SSH version: (?P<version>.*)$',
self.handleClientVersion), self.handleClientVersion),
)] )]
@@ -123,10 +121,6 @@ class DBLogger(object):
def handleTerminalSize(self, session, args): def handleTerminalSize(self, session, args):
pass pass
# args has: title
def handleTerminalTitle(self, session, args):
pass
# args has: version # args has: version
def handleClientVersion(self, session, args): def handleClientVersion(self, session, args):
pass pass

View File

@@ -146,7 +146,6 @@ class HoneyPotProtocol(recvline.HistoricRecvLine):
def connectionMade(self): def connectionMade(self):
recvline.HistoricRecvLine.connectionMade(self) recvline.HistoricRecvLine.connectionMade(self)
self.terminal.write('\x1b[21t', noLog = True) # terminal title
self.cmdstack = [HoneyPotShell(self)] self.cmdstack = [HoneyPotShell(self)]
# You are in a maze of twisty little passages, all alike # You are in a maze of twisty little passages, all alike
@@ -274,7 +273,6 @@ class LoggingServerProtocol(insults.ServerProtocol):
print 'Opening TTY log: %s' % self.ttylog_file print 'Opening TTY log: %s' % self.ttylog_file
ttylog.ttylog_open(self.ttylog_file, time.time()) ttylog.ttylog_open(self.ttylog_file, time.time())
self.ttylog_open = True self.ttylog_open = True
self.terminal_title = None
insults.ServerProtocol.connectionMade(self) insults.ServerProtocol.connectionMade(self)
def write(self, bytes, noLog = False): def write(self, bytes, noLog = False):
@@ -289,56 +287,6 @@ class LoggingServerProtocol(insults.ServerProtocol):
self.ttylog_open = False self.ttylog_open = False
insults.ServerProtocol.connectionLost(self, reason) insults.ServerProtocol.connectionLost(self, reason)
# extended from the standard to read \x1b]lXXXX\x1b\\
def dataReceived(self, data):
for ch in data:
if self.state == 'data':
if ch == '\x1b':
self.state = 'escaped'
else:
self.terminalProtocol.keystrokeReceived(ch, None)
elif self.state == 'escaped':
if ch == '[':
self.state = 'bracket-escaped'
self.escBuf = []
elif ch == 'O':
self.state = 'low-function-escaped'
elif ch == ']':
self.state = 'reverse-bracket-escaped'
else:
self.state = 'data'
self._handleShortControlSequence(ch)
elif self.state == 'bracket-escaped':
if ch == 'O':
self.state = 'low-function-escaped'
elif ch.isalpha() or ch == '~':
self._handleControlSequence(''.join(self.escBuf) + ch)
del self.escBuf
self.state = 'data'
else:
self.escBuf.append(ch)
elif self.state == 'low-function-escaped':
self._handleLowFunctionControlSequence(ch)
self.state = 'data'
elif self.state == 'reverse-bracket-escaped':
if ch == 'l':
self.titleBuf = []
self.state = 'title-escaped'
self.title_escaped = False
elif self.state == 'title-escaped':
if ch == '\x1b':
self.title_escaped = True
elif self.title_escaped and ch == '\\':
self.terminal_title = ''.join(self.titleBuf)
print 'Terminal title: %s' % (self.terminal_title,)
self.state = 'data'
del self.titleBuf
else:
self.titleBuf.append(ch)
else:
raise ValueError("Illegal state")
# insults.ServerProtocol.dataReceived(self, data)
class HoneyPotAvatar(avatar.ConchUser): class HoneyPotAvatar(avatar.ConchUser):
implements(conchinterfaces.ISession) implements(conchinterfaces.ISession)

View File

@@ -118,11 +118,6 @@ class DBLogger(dblog.DBLogger):
' WHERE `id` = %s', ' WHERE `id` = %s',
('%sx%s' % (args['width'], args['height']), session)) ('%sx%s' % (args['width'], args['height']), session))
def handleTerminalTitle(self, session, args):
self.simpleQuery('UPDATE `sessions` SET `termtitle` = %s' + \
' WHERE `id` = %s',
(args['title'], session))
@defer.inlineCallbacks @defer.inlineCallbacks
def handleClientVersion(self, session, args): def handleClientVersion(self, session, args):
r = yield self.db.runQuery( r = yield self.db.runQuery(