From 8f78b4c7947e84062fc01e79939b159014dbe6d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Wei=C3=9F?= Date: Thu, 20 Oct 2011 13:05:30 +0200 Subject: Don't cache StructFile entries Re-parse the contents of a StructFile each time they are requested, instead of caching them. This makes sure that any group membership changes are taken into account when tags are parsed. --- src/lib/Server/Plugin.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/lib/Server/Plugin.py b/src/lib/Server/Plugin.py index 1a6399d48..c09a37ed8 100644 --- a/src/lib/Server/Plugin.py +++ b/src/lib/Server/Plugin.py @@ -612,7 +612,6 @@ class StructFile(XMLFileBacked): def __init__(self, name): XMLFileBacked.__init__(self, name) - self.matches = {} def _match(self, item, metadata): """ recursive helper for Match() """ @@ -646,13 +645,10 @@ class StructFile(XMLFileBacked): def Match(self, metadata): """Return matching fragments of independent.""" - if metadata.hostname not in self.matches: - rv = [] - for child in self.entries: - rv.extend(self._match(child, metadata)) - logger.debug("File %s got %d match(es)" % (self.name, len(rv))) - self.matches[metadata.hostname] = rv - return self.matches[metadata.hostname] + rv = [] + for child in self.entries: + rv.extend(self._match(child, metadata)) + return rv class INode: -- cgit v1.2.3-1-g7c22