Removed recursive calls to improve stability.

This commit is contained in:
0xNF 2012-09-24 10:42:59 -04:00
parent af910fec52
commit aaba305d79
2 changed files with 36 additions and 14 deletions

View File

@ -92,10 +92,8 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
private static final Logger logger = Logger.getLogger(KeywordSearchIngestModule.class.getName()); private static final Logger logger = Logger.getLogger(KeywordSearchIngestModule.class.getName());
public static final String MODULE_NAME = "Keyword Search"; 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 MODULE_DESCRIPTION = "Performs file indexing and periodic search using keywords and regular expressions in lists.";
public static final String PROP_SCRIPTS = MODULE_NAME + "_Scripts"; final public static String MODULE_VERSION = "1.0";
public static final String PROP_OPTIONS = MODULE_NAME + "_Options";
public static final String PROP_NSRL = MODULE_NAME + "_NSRL";
private String args; private String args;
private static KeywordSearchIngestModule instance = null; private static KeywordSearchIngestModule instance = null;
private IngestServices services; private IngestServices services;
@ -138,15 +136,15 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
private KeywordSearchIngestModule() { private KeywordSearchIngestModule() {
//set default script //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()); KeywordSearchSettings.stringExtractOptions.put(AbstractFileExtract.ExtractOptions.EXTRACT_UTF8.toString(), Boolean.TRUE.toString());
} }
if(ModuleSettings.getConfigSetting(PROP_SCRIPTS, SCRIPT.LATIN_1.name()) == null){ if(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name()) == null){
ModuleSettings.setConfigSetting(PROP_SCRIPTS, SCRIPT.LATIN_1.name(), Boolean.toString(true)); ModuleSettings.setConfigSetting(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name(), Boolean.toString(true));
KeywordSearchSettings.stringExtractScripts.add(SCRIPT.LATIN_1); 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()); 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 //use the settings files to set values
//Grabbing skipKnown //Grabbing skipKnown
if(! ModuleSettings.getConfigSettings(PROP_NSRL).isEmpty()){ if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_NSRL).isEmpty()){
try{ try{
KeywordSearchSettings.setSkipKnown(Boolean.parseBoolean(ModuleSettings.getConfigSetting(PROP_NSRL, "SkipKnown"))); KeywordSearchSettings.setSkipKnown(Boolean.parseBoolean(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_NSRL, "SkipKnown")));
} }
catch(Exception e){ catch(Exception e){
Logger.getLogger(KeywordSearchIngestModule.class.getName()).log(Level.WARNING, "Could not parse boolean value from properties file.", 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 //populating stringExtractOptions
if(! ModuleSettings.getConfigSettings(PROP_OPTIONS).isEmpty()){ if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_OPTIONS).isEmpty()){
KeywordSearchSettings.stringExtractOptions = ModuleSettings.getConfigSettings(PROP_OPTIONS); KeywordSearchSettings.stringExtractOptions = ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_OPTIONS);
} }
//populating stringExtractScripts //populating stringExtractScripts
if(! ModuleSettings.getConfigSettings(PROP_SCRIPTS).isEmpty()){ if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_SCRIPTS).isEmpty()){
try{ try{
for(Map.Entry<String,String> kvp: ModuleSettings.getConfigSettings(PROP_SCRIPTS).entrySet()){ for(Map.Entry<String,String> kvp: ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_SCRIPTS).entrySet()){
if(kvp.getKey() != null && Boolean.parseBoolean(kvp.getValue())){ if(kvp.getKey() != null && Boolean.parseBoolean(kvp.getValue())){
KeywordSearchSettings.stringExtractScripts.add(SCRIPT.valueOf(kvp.getKey())); KeywordSearchSettings.stringExtractScripts.add(SCRIPT.valueOf(kvp.getKey()));
} }

View File

@ -44,20 +44,36 @@ public class KeywordSearchSettings {
/**
*
* @return IngestModule singleton
*/
static KeywordSearchIngestModule getDefault(){ static KeywordSearchIngestModule getDefault(){
return KeywordSearchIngestModule.getDefault(); return KeywordSearchIngestModule.getDefault();
} }
/**
*
* @return IngestModule's update frequency
*/
static UpdateFrequency getUpdateFrequency(){ static UpdateFrequency getUpdateFrequency(){
return KeywordSearchIngestModule.getDefault().getUpdateFrequency(); return KeywordSearchIngestModule.getDefault().getUpdateFrequency();
} }
/**
* Sets the ingest module's update frequency.
* @param c Update frequency to set.
*/
static void setUpdateFrequency(UpdateFrequency c){ static void setUpdateFrequency(UpdateFrequency c){
KeywordSearchIngestModule.getDefault().setUpdateFrequency(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) { static void setSkipKnown(boolean skip) {
ModuleSettings.setConfigSetting(PROPERTIES_NSRL, "SkipKnown", Boolean.toString(skip)); ModuleSettings.setConfigSetting(PROPERTIES_NSRL, "SkipKnown", Boolean.toString(skip));
skipKnown = 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<StringExtract.StringExtractUnicodeTable.SCRIPT> scripts) { static void setStringExtractScripts(List<StringExtract.StringExtractUnicodeTable.SCRIPT> scripts) {
stringExtractScripts.clear(); stringExtractScripts.clear();
stringExtractScripts.addAll(scripts); 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() { static boolean getSkipKnown() {
try{ try{
if(ModuleSettings.getConfigSetting(PROPERTIES_NSRL, "SkipKnown") != null){ if(ModuleSettings.getConfigSetting(PROPERTIES_NSRL, "SkipKnown") != null){