Add support for multiple long engines.

NOTE: .cfg changed!


git-svn-id: https://kippo.googlecode.com/svn/trunk@173 951d7100-d841-11de-b865-b3884708a8e2
This commit is contained in:
desaster
2010-10-23 12:32:49 +00:00
parent 4af62a5baf
commit b4a2e04d99
3 changed files with 10 additions and 10 deletions

View File

@@ -14,8 +14,7 @@ password = 123456
;out_addr = 0.0.0.0 ;out_addr = 0.0.0.0
;sensor_name=myhostname ;sensor_name=myhostname
;[database] ;[database_mysql]
;engine = mysql
;host = localhost ;host = localhost
;database = kippo ;database = kippo
;username = kippo ;username = kippo

View File

@@ -366,12 +366,13 @@ class HoneyPotSSHFactory(factory.SSHFactory):
def __init__(self): def __init__(self):
cfg = config() cfg = config()
if cfg.has_option('database', 'engine'): for engine in [x[9:] for x in cfg.sections() \
engine = cfg.get('database', 'engine') if x.startswith('database_')]:
self.dblogger = __import__( print 'Loading dblog engine: %s' % (engine,)
dblogger = __import__(
'kippo.dblog.%s' % (engine,), 'kippo.dblog.%s' % (engine,),
globals(), locals(), ['dblog']).DBLogger(cfg) globals(), locals(), ['dblog']).DBLogger(cfg)
log.startLoggingWithObserver(self.dblogger.emit, setStdout=False) log.startLoggingWithObserver(dblogger.emit, setStdout=False)
def buildProtocol(self, addr): def buildProtocol(self, addr):
# FIXME: try to mimic something real 100% # FIXME: try to mimic something real 100%

View File

@@ -33,10 +33,10 @@ class ReconnectingConnectionPool(adbapi.ConnectionPool):
class DBLogger(dblog.DBLogger): class DBLogger(dblog.DBLogger):
def start(self, cfg): def start(self, cfg):
self.db = ReconnectingConnectionPool('MySQLdb', self.db = ReconnectingConnectionPool('MySQLdb',
host = cfg.get('database', 'host'), host = cfg.get('database_mysql', 'host'),
db = cfg.get('database', 'database'), db = cfg.get('database_mysql', 'database'),
user = cfg.get('database', 'username'), user = cfg.get('database_mysql', 'username'),
passwd = cfg.get('database', 'password'), passwd = cfg.get('database_mysql', 'password'),
cp_min = 1, cp_min = 1,
cp_max = 1) cp_max = 1)