gracefully fail when command fails to load

This commit is contained in:
Michel Oosterhof 2017-03-05 22:33:10 +00:00
parent 33f9d7fe70
commit c5b22cbfcd
1 changed files with 9 additions and 3 deletions

View File

@ -7,8 +7,10 @@ This module contains ...
""" """
import os import os
import sys
import time import time
import socket import socket
import traceback
from twisted.python import failure, log from twisted.python import failure, log
from twisted.internet import error from twisted.internet import error
@ -47,9 +49,13 @@ class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
self.commands = {} self.commands = {}
import cowrie.commands import cowrie.commands
for c in cowrie.commands.__all__: for c in cowrie.commands.__all__:
try:
module = __import__('cowrie.commands.%s' % (c,), module = __import__('cowrie.commands.%s' % (c,),
globals(), locals(), ['commands']) globals(), locals(), ['commands'])
self.commands.update(module.commands) self.commands.update(module.commands)
except Exception as e:
exc_type, exc_value, exc_traceback = sys.exc_info()
log.err("Failed to import command {}: {}: {}".format(c, e, ''.join(traceback.format_exception(exc_type,exc_value,exc_traceback))))
self.password_input = False self.password_input = False
self.cmdstack = [] self.cmdstack = []