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 sys
import time
import socket
import traceback
from twisted.python import failure, log
from twisted.internet import error
@ -47,9 +49,13 @@ class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin):
self.commands = {}
import cowrie.commands
for c in cowrie.commands.__all__:
module = __import__('cowrie.commands.%s' % (c,),
globals(), locals(), ['commands'])
self.commands.update(module.commands)
try:
module = __import__('cowrie.commands.%s' % (c,),
globals(), locals(), ['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.cmdstack = []