only load pickle on startup for speed improvement

This commit is contained in:
Michel Oosterhof
2016-05-06 12:06:04 +04:00
parent 878a78ad4d
commit f80b226962
2 changed files with 12 additions and 8 deletions

View File

@@ -32,6 +32,10 @@ This module contains ...
from zope.interface import implementer
import sys
import gc
import pickle
import twisted
from twisted.conch import interfaces as conchinterfaces
from twisted.python import log
@@ -39,9 +43,8 @@ from twisted.python import log
from cowrie.core import protocol
from cowrie.core import server
from cowrie.core import avatar
from cowrie.core import fs
import sys
import gc
@implementer(twisted.cred.portal.IRealm)
class HoneyPotRealm(object):
@@ -52,6 +55,8 @@ class HoneyPotRealm(object):
self.cfg = cfg
# self.servers = {}
# load the pickle file system here, so servers can copy it later
self.pckl = pickle.load(file(cfg.get('honeypot', 'filesystem_file'), 'rb'))
def requestAvatar(self, avatarId, mind, *interfaces):
"""
@@ -70,7 +75,7 @@ class HoneyPotRealm(object):
# log.msg( "Refer: %s" % repr( gc.get_referrers(self.servers[i])))
if conchinterfaces.IConchUser in interfaces:
serv = server.CowrieServer(self.cfg)
serv = server.CowrieServer(self)
user = avatar.CowrieUser(avatarId, serv)
return interfaces[0], user, user.logout
else:

View File

@@ -30,7 +30,7 @@
This module contains ...
"""
import pickle
import copy
import twisted.python.log as log
@@ -46,10 +46,9 @@ class CowrieServer(object):
This class represents a 'virtual server' that can be shared between
multiple Cowrie connections
"""
def __init__(self, cfg):
self.cfg = cfg
def __init__(self, realm):
self.cfg = realm.cfg
self.avatars = []
self.hostname = self.cfg.get('honeypot', 'hostname')
pckl = pickle.load(file(cfg.get('honeypot', 'filesystem_file'), 'rb'))
self.fs = fs.HoneyPotFilesystem(pckl,self.cfg)
self.fs = fs.HoneyPotFilesystem(copy.deepcopy(realm.pckl),self.cfg)