]> git.ipfire.org Git - thirdparty/suricata-update.git/commitdiff
allow re-enabling disabled sources
authorShivani Bhardwaj <shivanib134@gmail.com>
Mon, 24 Aug 2020 08:30:25 +0000 (14:00 +0530)
committerShivani Bhardwaj <shivanib134@gmail.com>
Thu, 3 Sep 2020 15:51:33 +0000 (21:21 +0530)
Closes redmine ticket 3843.

suricata/update/commands/enablesource.py
suricata/update/sources.py

index 45a859878d37371c276201d273960fa3e857df24..53bb68a3c7150c35f66ce1f0adab7cd81bb58513 100644 (file)
@@ -62,7 +62,7 @@ def enable_source():
 
     source_index = sources.load_source_index(config)
 
-    if not name in source_index.get_sources():
+    if not name in source_index.get_sources() and not name in sources.get_sources_from_dir():
         logger.error("Unknown source: %s", name)
         return 1
 
index 1cef09b5a3b97e0301f6bb33557ee4fe50931b7a..651a4d60d8125a701e5d1681425773a22bd074c7 100644 (file)
@@ -44,6 +44,14 @@ def get_source_directory():
 def get_index_filename():
     return os.path.join(config.get_cache_dir(), SOURCE_INDEX_FILENAME)
 
+def get_sources_from_dir():
+    """Return names of all files existing in the sources dir"""
+    source_dir = get_source_directory()
+    source_names = []
+    (_, _, fnames) = next(os.walk(source_dir))
+    source_names = [".".join(fname.split('.')[:-1]) for fname in fnames]
+    return source_names
+
 def get_enabled_source_filename(name):
     return os.path.join(get_source_directory(), "%s.yaml" % (
         safe_filename(name)))