世界 4 anni fa
parent
commit
59d79c9182

+ 1 - 1
app/src/main/java/io/nekohasekai/sagernet/database/ProxyEntity.kt

@@ -217,7 +217,7 @@ data class ProxyEntity(
     fun requireSS() = requireBean() as ShadowsocksBean
     fun requireSSR() = requireBean() as ShadowsocksRBean
     fun requireVMess() = requireBean() as VMessBean
-    fun requireVLESS() = requireBean() as VMessBean
+    fun requireVLESS() = requireBean() as VLESSBean
     fun requireTrojan() = requireBean() as TrojanBean
     fun requireHttp() = requireBean() as HttpBean
 

+ 19 - 6
app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt

@@ -584,11 +584,22 @@ fun buildXrayConfig(proxy: ProxyEntity): V2RayConfig {
         dns = DnsObject().apply {
             servers = mutableListOf()
 
-            servers.addAll(remoteDns.map {
-                DnsObject.StringOrServerObject().apply {
-                    valueX = it
-                }
-            })
+            if (!DataStore.enableLocalDNS) {
+                servers.addAll(remoteDns.map {
+                    DnsObject.StringOrServerObject().apply {
+                        valueX = it
+                    }
+                })
+            } else {
+                servers.add(
+                    DnsObject.StringOrServerObject().apply {
+                        valueY = DnsObject.ServerObject().apply {
+                            address = "127.0.0.1"
+                            port = DataStore.localDNSPort
+                        }
+                    }
+                )
+            }
         }
 
         log = LogObject().apply {
@@ -613,7 +624,7 @@ fun buildXrayConfig(proxy: ProxyEntity): V2RayConfig {
             InboundObject().apply {
                 tag = TAG_SOCKS
                 listen = "127.0.0.1"
-                port = DataStore.socksPort + 11
+                port = DataStore.socksPort + 10
                 protocol = "socks"
                 settings = LazyInboundConfigurationObject(
                     SocksInboundConfigurationObject().apply {
@@ -972,6 +983,8 @@ fun parseV2Ray(link: String): StandardV2RayBean {
         }
     }
 
+    Logs.d(formatObject(bean))
+
     return bean
 }
 

+ 17 - 5
app/src/main/java/io/nekohasekai/sagernet/ui/profile/StandardV2RaySettingsActivity.kt

@@ -169,11 +169,6 @@ abstract class StandardV2RaySettingsActivity : ProfileSettingsActivity<StandardV
             true
         }
 
-        val tlev = resources.getStringArray(R.array.transport_layer_encryption_value)
-        if (security.value !in tlev) {
-            security.value = tlev[0]
-        }
-        updateTle(security.value)
         security.setOnPreferenceChangeListener { _, newValue ->
             updateTle(newValue as String)
             true
@@ -190,13 +185,30 @@ abstract class StandardV2RaySettingsActivity : ProfileSettingsActivity<StandardV
                 "tcp", "kcp" -> {
                     security.setEntries(R.array.transport_layer_encryption_xray_entry)
                     security.setEntryValues(R.array.transport_layer_encryption_xray_value)
+                    security.value = DataStore.serverSecurity
+
+                    val tlev =
+                        resources.getStringArray(R.array.transport_layer_encryption_xray_value)
+                    if (security.value !in tlev) {
+                        security.value = tlev[0]
+                    }
                 }
                 else -> {
                     security.setEntries(R.array.transport_layer_encryption_entry)
                     security.setEntryValues(R.array.transport_layer_encryption_value)
+                    security.value = DataStore.serverSecurity
+
+                    val tlev =
+                        resources.getStringArray(R.array.transport_layer_encryption_value)
+                    if (security.value !in tlev) {
+                        security.value = tlev[0]
+                    }
                 }
             }
         }
+
+        updateTle(security.value)
+
         when (network) {
             "tcp" -> {
                 header.setEntries(R.array.tcp_headers_entry)