Browse Source

update: clash x compatibility

v2board 2 years ago
parent
commit
01a6723e3e
1 changed files with 8 additions and 0 deletions
  1. 8 0
      app/Http/Controllers/Client/Protocols/Clash.php

+ 8 - 0
app/Http/Controllers/Client/Protocols/Clash.php

@@ -34,6 +34,7 @@ class Clash
         } else {
             $config = Yaml::parseFile($defaultConfig);
         }
+        $this->patch($config);
         $proxy = [];
         $proxies = [];
 
@@ -173,4 +174,11 @@ class Clash
     {
         return @preg_match($exp, null) !== false;
     }
+
+    private function patch(&$config)
+    {
+        // fix clash x dns mode
+        preg_match('#(ClashX)[/ ]([0-9.]*)#', $_SERVER['HTTP_USER_AGENT'], $matches);
+        if ($matches[2] < '1.96.2') $config['dns']['enhanced-mode'] = 'redir-host';
+    }
 }