mirror of
https://github.com/aljazceru/cowrie.git
synced 2026-02-23 07:14:24 +01:00
only load pickle on startup for speed improvement
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user