Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e1f14d85e0 | |||
| dc65e65e20 |
+32
-8
@@ -4871,8 +4871,7 @@ DNS-over-HTTPS with IP:
|
||||
exit;
|
||||
case 'w':
|
||||
$link = htmlspecialchars($si, ENT_XML1, 'UTF-8');
|
||||
file_put_contents('/singbox/winsw3.xml', preg_replace('#~url~#', $link, file_get_contents('/singbox/winsw3.xml')));
|
||||
$n = "singbox_$uid.zip";
|
||||
$n = "singbox_$uid.zip";
|
||||
copy('/singbox/singbox.zip', $n);
|
||||
$zip = new ZipArchive();
|
||||
$zip->open($n, ZipArchive::CREATE);
|
||||
@@ -4983,6 +4982,7 @@ DNS-over-HTTPS with IP:
|
||||
$c['route']['rules'] = array_values($c['route']['rules']);
|
||||
$c['route'] = $this->addRuleSet($c['route']);
|
||||
$c['route'] = $this->addPackageRule($c['route']);
|
||||
$c['route'] = $this->addProcessRule($c['route']);
|
||||
$c['route'] = $this->createRuleSet($c['route'], $uid, $domain);
|
||||
$c['route'] = $this->clearEmptyRules($c['route']);
|
||||
break;
|
||||
@@ -5005,12 +5005,36 @@ DNS-over-HTTPS with IP:
|
||||
|
||||
public function addPackageRule($route)
|
||||
{
|
||||
$p = $this->getPacConf();
|
||||
if (!empty($t = array_filter($p['packagelist'] ?: []))) {
|
||||
$route['rules'][] = [
|
||||
'package_name' => array_keys($t),
|
||||
'outbound' => $p['app_outbound'] ? 'direct' : 'proxy',
|
||||
];
|
||||
foreach ($route['rules'] as $k => $v) {
|
||||
if (array_key_exists('package_name', $v)) {
|
||||
$p = $this->getPacConf();
|
||||
if (!empty($t = array_filter($p['packagelist'] ?: []))) {
|
||||
$route['rules'][$k] = [
|
||||
'package_name' => array_keys($t),
|
||||
'outbound' => $p['app_outbound'] ? 'direct' : 'proxy',
|
||||
];
|
||||
} else {
|
||||
unset($route['rules'][$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $route;
|
||||
}
|
||||
|
||||
public function addProcessRule($route)
|
||||
{
|
||||
foreach ($route['rules'] as $k => $v) {
|
||||
if (array_key_exists('process_name', $v)) {
|
||||
$p = $this->getPacConf();
|
||||
if (!empty($t = array_filter($p['processlist'] ?: []))) {
|
||||
$route['rules'][$k] = [
|
||||
'process_name' => array_keys($t),
|
||||
'outbound' => $p['process_outbound'] ? 'direct' : 'proxy',
|
||||
];
|
||||
} else {
|
||||
unset($route['rules'][$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $route;
|
||||
}
|
||||
|
||||
@@ -110,6 +110,16 @@
|
||||
"protocol": "dns",
|
||||
"outbound": "dns-out"
|
||||
},
|
||||
{
|
||||
"package_name": [
|
||||
],
|
||||
"outbound": "proxy"
|
||||
},
|
||||
{
|
||||
"process_name": [
|
||||
],
|
||||
"outbound": "proxy"
|
||||
},
|
||||
{
|
||||
"createruleset": [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user