]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Wed, 28 Jun 2023 04:28:05 +0000 (06:28 +0200)
committerRoland Häder <roland@mxchange.org>
Wed, 28 Jun 2023 04:28:05 +0000 (06:28 +0200)
- only mark instances having obfuscated block entries when at least one cannot
  be deobfuscated

fba/commands.py
fba/helpers/blacklist.py
fba/utils.py

index e313243721deba0177d41e4b0d94cbb9925b48de..a915596cf9c1833fd80696cbf9b8f99859ef48b2 100644 (file)
@@ -295,8 +295,7 @@ def fetch_blocks(args: argparse.Namespace) -> int:
                 logger.debug("blocked='%s' is a fake domain - SKIPPED", block["blocked"])
                 continue
             elif block["blocked"].find("*") >= 0:
-                logger.debug("blocker='%s' uses obfuscated domains, marking ...", blocker)
-                instances.set_has_obfuscation(blocker, True)
+                logger.debug("blocker='%s' uses obfuscated domains", blocker)
 
                 # Some friendica servers also obscure domains without hash
                 row = instances.deobfuscate("*", block["blocked"], block["hash"] if "hash" in block else None)
@@ -304,14 +303,14 @@ def fetch_blocks(args: argparse.Namespace) -> int:
                 logger.debug("row[]='%s'", type(row))
                 if row is None:
                     logger.warning("Cannot deobfuscate blocked='%s',blocker='%s',software='%s' - SKIPPED!", block["blocked"], blocker, software)
+                    instances.set_has_obfuscation(blocker, True)
                     continue
 
                 block["blocked"] = row[0]
                 origin           = row[1]
                 nodeinfo_url     = row[2]
             elif block["blocked"].find("?") >= 0:
-                logger.debug("blocker='%s' uses obfuscated domains, marking ...", blocker)
-                instances.set_has_obfuscation(blocker, True)
+                logger.debug("blocker='%s' uses obfuscated domains", blocker)
 
                 # Some obscure them with question marks, not sure if that's dependent on version or not
                 row = instances.deobfuscate("?", block["blocked"], block["hash"] if "hash" in block else None)
@@ -319,6 +318,7 @@ def fetch_blocks(args: argparse.Namespace) -> int:
                 logger.debug("row[]='%s'", type(row))
                 if row is None:
                     logger.warning("Cannot deobfuscate blocked='%s',blocker='%s',software='%s' - SKIPPED!", block["blocked"], blocker, software)
+                    instances.set_has_obfuscation(blocker, True)
                     continue
 
                 block["blocked"] = row[0]
index 06c066f6c7710389f7378ab9aed7a6069a12e31e..02c7b803fb245c5869992f3ca4af105ce47f4b8d 100644 (file)
@@ -39,8 +39,6 @@ blacklist = [
     "misskeytest.chn.moe",
     # block flooder
     "everyoneattack.com",
-    # responds with very long reply
-    "grossard.fr",
 ]
 
 def is_blacklisted(domain: str) -> bool:
index c8d6eeae5557f3233d9711b99da5228bd1672237..c91bba488849c5dcb26cfb2083cdbdc0e66cf7a3 100644 (file)
@@ -190,8 +190,7 @@ def deobfuscate_domain(domain: str, blocker: str, domain_hash: str = None) -> st
         raise ValueError(f"Parameter domain_hash[]='{type(domain_hash)}' is not of type 'str'")
 
     if domain.find("*") >= 0:
-        logger.debug("blocker='%s' uses obfuscated domains, marking ...", blocker)
-        instances.set_has_obfuscation(blocker, True)
+        logger.debug("blocker='%s' uses obfuscated domains", blocker)
 
         # Obscured domain name with no hash
         row = instances.deobfuscate("*", domain, domain_hash)
@@ -200,9 +199,11 @@ def deobfuscate_domain(domain: str, blocker: str, domain_hash: str = None) -> st
         if row is not None:
             logger.debug("domain='%s' de-obscured to '%s'", domain, row[0])
             domain = row[0]
+        else:
+            logger.debug("blocker='%s' has domain that cannot be deobfuscated.", blocker)
+            instances.set_has_obfuscation(blocker, True)
     elif domain.find("?") >= 0:
-        logger.debug("blocker='%s' uses obfuscated domains, marking ...", blocker)
-        instances.set_has_obfuscation(blocker, True)
+        logger.debug("blocker='%s' uses obfuscated domains", blocker)
 
         # Obscured domain name with no hash
         row = instances.deobfuscate("?", domain, domain_hash)
@@ -211,6 +212,9 @@ def deobfuscate_domain(domain: str, blocker: str, domain_hash: str = None) -> st
         if row is not None:
             logger.debug("domain='%s' de-obscured to '%s'", domain, row[0])
             domain = row[0]
+        else:
+            logger.debug("blocker='%s' has domain that cannot be deobfuscated.", blocker)
+            instances.set_has_obfuscation(blocker, True)
     else:
         logger.debug("domain='%s' is not obfuscated", domain)