mirror of
https://github.com/2dust/v2rayNG.git
synced 2025-06-28 12:19:52 +00:00
Added setting option for Outbound domain pre-resolve method
https://github.com/2dust/v2rayNG/issues/4679
This commit is contained in:
parent
33572477fc
commit
777190e861
16 changed files with 98 additions and 3 deletions
|
@ -56,6 +56,7 @@ object AppConfig {
|
|||
const val PREF_DNS_HOSTS = "pref_dns_hosts"
|
||||
const val PREF_DELAY_TEST_URL = "pref_delay_test_url"
|
||||
const val PREF_LOGLEVEL = "pref_core_loglevel"
|
||||
const val PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD = "pref_outbound_domain_resolve_method"
|
||||
const val PREF_MODE = "pref_mode"
|
||||
const val PREF_IS_BOOTED = "pref_is_booted"
|
||||
const val PREF_CHECK_UPDATE_PRE_RELEASE = "pref_check_update_pre_release"
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.v2ray.ang.AppConfig
|
|||
import com.v2ray.ang.dto.NetworkType
|
||||
import com.v2ray.ang.dto.ProfileItem
|
||||
import com.v2ray.ang.extension.isNotNullEmpty
|
||||
import com.v2ray.ang.handler.MmkvManager
|
||||
import com.v2ray.ang.util.HttpUtil
|
||||
import com.v2ray.ang.util.Utils
|
||||
import java.net.URI
|
||||
|
@ -151,7 +152,19 @@ open class FmtBase {
|
|||
}
|
||||
|
||||
fun getServerAddress(profileItem: ProfileItem): String {
|
||||
return HttpUtil.toIdnDomain(profileItem.server.orEmpty())
|
||||
}
|
||||
if (Utils.isPureIpAddress(profileItem.server.orEmpty())) {
|
||||
return profileItem.server.orEmpty()
|
||||
}
|
||||
|
||||
val domain = HttpUtil.toIdnDomain(profileItem.server.orEmpty())
|
||||
if (MmkvManager.decodeSettingsString(AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD, "1") != "2") {
|
||||
return domain
|
||||
}
|
||||
//Resolve and replace domain
|
||||
val resolvedIps = HttpUtil.resolveHostToIP(domain, MmkvManager.decodeSettingsBool(AppConfig.PREF_PREFER_IPV6))
|
||||
if (resolvedIps.isNullOrEmpty()) {
|
||||
return domain
|
||||
}
|
||||
return resolvedIps.first()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,7 +131,10 @@ object V2rayConfigManager {
|
|||
v2rayConfig.policy = null
|
||||
}
|
||||
|
||||
resolveOutboundDomainsToHosts(v2rayConfig)
|
||||
//Resolve and add to DNS Hosts
|
||||
if (MmkvManager.decodeSettingsString(AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD, "1") == "1") {
|
||||
resolveOutboundDomainsToHosts(v2rayConfig)
|
||||
}
|
||||
|
||||
result.status = true
|
||||
result.content = JsonUtil.toJsonPretty(v2rayConfig) ?: ""
|
||||
|
|
|
@ -257,6 +257,7 @@ class SettingsActivity : BaseActivity() {
|
|||
AppConfig.PREF_LANGUAGE,
|
||||
AppConfig.PREF_UI_MODE_NIGHT,
|
||||
AppConfig.PREF_LOGLEVEL,
|
||||
AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD,
|
||||
AppConfig.PREF_MODE
|
||||
).forEach { key ->
|
||||
if (MmkvManager.decodeSettingsString(key) != null) {
|
||||
|
|
|
@ -49,6 +49,7 @@ class SettingsViewModel(application: Application) : AndroidViewModel(application
|
|||
AppConfig.PREF_LOCAL_DNS_PORT,
|
||||
AppConfig.PREF_SOCKS_PORT,
|
||||
AppConfig.PREF_LOGLEVEL,
|
||||
AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD,
|
||||
AppConfig.PREF_LANGUAGE,
|
||||
AppConfig.PREF_UI_MODE_NIGHT,
|
||||
AppConfig.PREF_ROUTING_DOMAIN_STRATEGY,
|
||||
|
|
|
@ -241,6 +241,7 @@
|
|||
<string name="title_pref_auto_update_interval">فاصل التحديث التلقائي (بالدقائق، الحد الأدنى للقيمة 15)</string>
|
||||
|
||||
<string name="title_core_loglevel">مستوى السجل</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
|
||||
<string name="title_mode">الوضع</string>
|
||||
<string name="title_mode_help">انقر هنا للحصول على مزيد من المساعدة</string>
|
||||
<string name="title_language">اللغة</string>
|
||||
|
@ -357,4 +358,10 @@
|
|||
<item>Not Bypass</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>Do not resolve</item>
|
||||
<item>Resolve and add to DNS Hosts</item>
|
||||
<item>Resolve and replace domain</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -241,6 +241,7 @@
|
|||
<string name="title_pref_auto_update_interval">অটো আপডেট ইন্টারভ্যাল (মিনিট, সর্বনিম্ন মান ১৫)</string>
|
||||
|
||||
<string name="title_core_loglevel">লগ স্তর</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
|
||||
<string name="title_mode">মোড</string>
|
||||
<string name="title_mode_help">আরো সাহায্যের জন্য ক্লিক করুন</string>
|
||||
<string name="title_language">ভাষা</string>
|
||||
|
@ -362,4 +363,10 @@
|
|||
<item>Not Bypass</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>Do not resolve</item>
|
||||
<item>Resolve and add to DNS Hosts</item>
|
||||
<item>Resolve and replace domain</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
|
@ -241,6 +241,7 @@
|
|||
<string name="title_pref_auto_update_interval">فاسله ورۊ کردن خوتکار (اقلن وا 15 دؽقه بۊ)</string>
|
||||
|
||||
<string name="title_core_loglevel">سئت داسووا</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
|
||||
<string name="title_mode">هالت</string>
|
||||
<string name="title_mode_help">سی دووسمندیا وو هیاری بیشتر، ری ای هؽل بزݩ</string>
|
||||
<string name="title_language">زۉݩ</string>
|
||||
|
@ -372,4 +373,10 @@
|
|||
<item>دور زیڌه نبۊ</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>Do not resolve</item>
|
||||
<item>Resolve and add to DNS Hosts</item>
|
||||
<item>Resolve and replace domain</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -238,6 +238,7 @@
|
|||
<string name="summary_pref_auto_update_subscription">اشتراک های خود را به طور خودکار با فاصله زمانی در پس زمینه به روز کنید. بسته به دستگاه، این ویژگی ممکن است همیشه کار نکند.</string>
|
||||
<string name="title_pref_auto_update_interval">فاصله به روزرسانی خودکار ( حداقل مقدار ، 15 دقیقه )</string>
|
||||
<string name="title_core_loglevel">سطح گزارشات</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
|
||||
<string name="title_mode">حالت</string>
|
||||
<string name="title_mode_help">برای اطلاعات و راهنمایی بیشتر، روی این متن کلیک کنید</string>
|
||||
<string name="title_language">زبان</string>
|
||||
|
@ -371,4 +372,10 @@
|
|||
<item>دور زده نشود</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>Do not resolve</item>
|
||||
<item>Resolve and add to DNS Hosts</item>
|
||||
<item>Resolve and replace domain</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -240,6 +240,7 @@
|
|||
<string name="title_pref_auto_update_interval">Интервал автообновления (минут, не менее 15)</string>
|
||||
|
||||
<string name="title_core_loglevel">Подробность ведения журнала</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
|
||||
<string name="title_mode">Режим</string>
|
||||
<string name="title_mode_help">Нажмите для получения дополнительной информации</string>
|
||||
<string name="title_language">Язык</string>
|
||||
|
@ -371,4 +372,10 @@
|
|||
<item>Не пропускает</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>Do not resolve</item>
|
||||
<item>Resolve and add to DNS Hosts</item>
|
||||
<item>Resolve and replace domain</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -241,6 +241,7 @@
|
|||
<string name="title_pref_auto_update_interval">Thời gian cập nhật tự động (Phút, giá trị tối thiểu là 15)</string>
|
||||
|
||||
<string name="title_core_loglevel">Cấp độ nhật ký</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
|
||||
<string name="title_mode">Chế độ kết nối</string>
|
||||
<string name="title_mode_help">Nhấn vào đây nếu bạn cần trợ giúp!</string>
|
||||
<string name="title_language">Ngôn ngữ</string>
|
||||
|
@ -359,4 +360,10 @@
|
|||
<item>Not Bypass</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>Do not resolve</item>
|
||||
<item>Resolve and add to DNS Hosts</item>
|
||||
<item>Resolve and replace domain</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -238,6 +238,7 @@
|
|||
<string name="title_pref_auto_update_interval">自动更新间隔(分钟,最小值 15)</string>
|
||||
|
||||
<string name="title_core_loglevel">日志级别</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound 域名预解析方式</string>
|
||||
<string name="title_mode">模式</string>
|
||||
<string name="title_mode_help">点此查看更多帮助</string>
|
||||
<string name="title_language">语言</string>
|
||||
|
@ -363,4 +364,10 @@
|
|||
<item>不绕过</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>不解析</item>
|
||||
<item>解析后添加至 DNS Hosts</item>
|
||||
<item>解析后替换原域名</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -239,6 +239,7 @@
|
|||
<string name="title_pref_auto_update_interval">自動更新間隔(分鐘,最小值 15)</string>
|
||||
|
||||
<string name="title_core_loglevel">記錄層級</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound 網域預解析方式</string>
|
||||
<string name="title_mode">模式</string>
|
||||
<string name="title_mode_help">輕觸以檢視說明</string>
|
||||
<string name="title_language">語言</string>
|
||||
|
@ -363,5 +364,10 @@
|
|||
<item>不繞過</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>不解析</item>
|
||||
<item>解析後加入 DNS Hosts</item>
|
||||
<item>解析後替換原網域名稱</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -202,4 +202,10 @@
|
|||
<item>192.168.100.x</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method_value" translatable="false">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
|
@ -242,6 +242,7 @@
|
|||
<string name="title_pref_auto_update_interval">Auto Update Interval (Minutes, Min value 15)</string>
|
||||
|
||||
<string name="title_core_loglevel">Log Level</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
|
||||
<string name="title_mode">Mode</string>
|
||||
<string name="title_mode_help">Click me for more help</string>
|
||||
<string name="title_language">Language</string>
|
||||
|
@ -373,4 +374,10 @@
|
|||
<item>Not Bypass</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="outbound_domain_resolve_method">
|
||||
<item>Do not resolve</item>
|
||||
<item>Resolve and add to DNS Hosts</item>
|
||||
<item>Resolve and replace domain</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -222,6 +222,14 @@
|
|||
android:summary="%s"
|
||||
android:title="@string/title_core_loglevel" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="1"
|
||||
android:entries="@array/outbound_domain_resolve_method"
|
||||
android:entryValues="@array/outbound_domain_resolve_method_value"
|
||||
android:key="pref_outbound_domain_resolve_method"
|
||||
android:summary="%s"
|
||||
android:title="@string/title_outbound_domain_resolve_method" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/title_advanced">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue