From aaba305d79cf79447bf9a43eaabe99023fadfb46 Mon Sep 17 00:00:00 2001 From: 0xNF Date: Mon, 24 Sep 2012 10:42:59 -0400 Subject: [PATCH] Removed recursive calls to improve stability. --- .../KeywordSearchIngestModule.java | 26 +++++++++---------- .../keywordsearch/KeywordSearchSettings.java | 24 +++++++++++++++++ 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java index 18a7a49ed8..2ab9e8b297 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java @@ -92,10 +92,8 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile private static final Logger logger = Logger.getLogger(KeywordSearchIngestModule.class.getName()); public static final String MODULE_NAME = "Keyword Search"; - public static final String MODULE_DESCRIPTION = "Performs file indexing and periodic search using keywords and regular expressions in lists."; final public static String MODULE_VERSION = "1.0"; - public static final String PROP_SCRIPTS = MODULE_NAME + "_Scripts"; - public static final String PROP_OPTIONS = MODULE_NAME + "_Options"; - public static final String PROP_NSRL = MODULE_NAME + "_NSRL"; + public static final String MODULE_DESCRIPTION = "Performs file indexing and periodic search using keywords and regular expressions in lists."; + final public static String MODULE_VERSION = "1.0"; private String args; private static KeywordSearchIngestModule instance = null; private IngestServices services; @@ -138,15 +136,15 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile private KeywordSearchIngestModule() { //set default script - if(ModuleSettings.getConfigSetting(PROP_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF8.toString()) == null){ + if(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF8.toString()) == null){ KeywordSearchSettings.stringExtractOptions.put(AbstractFileExtract.ExtractOptions.EXTRACT_UTF8.toString(), Boolean.TRUE.toString()); } - if(ModuleSettings.getConfigSetting(PROP_SCRIPTS, SCRIPT.LATIN_1.name()) == null){ - ModuleSettings.setConfigSetting(PROP_SCRIPTS, SCRIPT.LATIN_1.name(), Boolean.toString(true)); + if(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name()) == null){ + ModuleSettings.setConfigSetting(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name(), Boolean.toString(true)); KeywordSearchSettings.stringExtractScripts.add(SCRIPT.LATIN_1); } - if(ModuleSettings.getConfigSetting(PROP_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF16.toString()) == null){ + if(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF16.toString()) == null){ KeywordSearchSettings.stringExtractOptions.put(AbstractFileExtract.ExtractOptions.EXTRACT_UTF16.toString(), Boolean.TRUE.toString()); } @@ -374,9 +372,9 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile //use the settings files to set values //Grabbing skipKnown - if(! ModuleSettings.getConfigSettings(PROP_NSRL).isEmpty()){ + if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_NSRL).isEmpty()){ try{ - KeywordSearchSettings.setSkipKnown(Boolean.parseBoolean(ModuleSettings.getConfigSetting(PROP_NSRL, "SkipKnown"))); + KeywordSearchSettings.setSkipKnown(Boolean.parseBoolean(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_NSRL, "SkipKnown"))); } catch(Exception e){ Logger.getLogger(KeywordSearchIngestModule.class.getName()).log(Level.WARNING, "Could not parse boolean value from properties file.", e); @@ -385,14 +383,14 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile //populating stringExtractOptions - if(! ModuleSettings.getConfigSettings(PROP_OPTIONS).isEmpty()){ - KeywordSearchSettings.stringExtractOptions = ModuleSettings.getConfigSettings(PROP_OPTIONS); + if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_OPTIONS).isEmpty()){ + KeywordSearchSettings.stringExtractOptions = ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_OPTIONS); } //populating stringExtractScripts - if(! ModuleSettings.getConfigSettings(PROP_SCRIPTS).isEmpty()){ + if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_SCRIPTS).isEmpty()){ try{ - for(Map.Entry kvp: ModuleSettings.getConfigSettings(PROP_SCRIPTS).entrySet()){ + for(Map.Entry kvp: ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_SCRIPTS).entrySet()){ if(kvp.getKey() != null && Boolean.parseBoolean(kvp.getValue())){ KeywordSearchSettings.stringExtractScripts.add(SCRIPT.valueOf(kvp.getKey())); } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java index f3b86c21da..ae6fd87948 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchSettings.java @@ -44,20 +44,36 @@ public class KeywordSearchSettings { + /** + * + * @return IngestModule singleton + */ static KeywordSearchIngestModule getDefault(){ return KeywordSearchIngestModule.getDefault(); } + /** + * + * @return IngestModule's update frequency + */ static UpdateFrequency getUpdateFrequency(){ return KeywordSearchIngestModule.getDefault().getUpdateFrequency(); } + /** + * Sets the ingest module's update frequency. + * @param c Update frequency to set. + */ static void setUpdateFrequency(UpdateFrequency c){ KeywordSearchIngestModule.getDefault().setUpdateFrequency(c); } + /** + * Sets whether or not to skip adding known good files to the search during index. + * @param skip + */ static void setSkipKnown(boolean skip) { ModuleSettings.setConfigSetting(PROPERTIES_NSRL, "SkipKnown", Boolean.toString(skip)); skipKnown = skip; @@ -65,6 +81,10 @@ public class KeywordSearchSettings { + /** + * Sets what scripts to extract during ingest + * @param scripts List of scripts to extract + */ static void setStringExtractScripts(List scripts) { stringExtractScripts.clear(); stringExtractScripts.addAll(scripts); @@ -125,6 +145,10 @@ public class KeywordSearchSettings { } } + /** + * Gets the setting for whether or not this ingest is skipping adding known good files to the index. + * @return skip setting + */ static boolean getSkipKnown() { try{ if(ModuleSettings.getConfigSetting(PROPERTIES_NSRL, "SkipKnown") != null){