Skip to content

Commit 777190e

Browse files
committed
Added setting option for Outbound domain pre-resolve method
#4679
1 parent 3357247 commit 777190e

File tree

16 files changed

+98
-3
lines changed

16 files changed

+98
-3
lines changed

V2rayNG/app/src/main/java/com/v2ray/ang/AppConfig.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ object AppConfig {
5656
const val PREF_DNS_HOSTS = "pref_dns_hosts"
5757
const val PREF_DELAY_TEST_URL = "pref_delay_test_url"
5858
const val PREF_LOGLEVEL = "pref_core_loglevel"
59+
const val PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD = "pref_outbound_domain_resolve_method"
5960
const val PREF_MODE = "pref_mode"
6061
const val PREF_IS_BOOTED = "pref_is_booted"
6162
const val PREF_CHECK_UPDATE_PRE_RELEASE = "pref_check_update_pre_release"

V2rayNG/app/src/main/java/com/v2ray/ang/fmt/FmtBase.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.v2ray.ang.AppConfig
44
import com.v2ray.ang.dto.NetworkType
55
import com.v2ray.ang.dto.ProfileItem
66
import com.v2ray.ang.extension.isNotNullEmpty
7+
import com.v2ray.ang.handler.MmkvManager
78
import com.v2ray.ang.util.HttpUtil
89
import com.v2ray.ang.util.Utils
910
import java.net.URI
@@ -151,7 +152,19 @@ open class FmtBase {
151152
}
152153

153154
fun getServerAddress(profileItem: ProfileItem): String {
154-
return HttpUtil.toIdnDomain(profileItem.server.orEmpty())
155-
}
155+
if (Utils.isPureIpAddress(profileItem.server.orEmpty())) {
156+
return profileItem.server.orEmpty()
157+
}
156158

159+
val domain = HttpUtil.toIdnDomain(profileItem.server.orEmpty())
160+
if (MmkvManager.decodeSettingsString(AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD, "1") != "2") {
161+
return domain
162+
}
163+
//Resolve and replace domain
164+
val resolvedIps = HttpUtil.resolveHostToIP(domain, MmkvManager.decodeSettingsBool(AppConfig.PREF_PREFER_IPV6))
165+
if (resolvedIps.isNullOrEmpty()) {
166+
return domain
167+
}
168+
return resolvedIps.first()
169+
}
157170
}

V2rayNG/app/src/main/java/com/v2ray/ang/handler/V2rayConfigManager.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,10 @@ object V2rayConfigManager {
131131
v2rayConfig.policy = null
132132
}
133133

134-
resolveOutboundDomainsToHosts(v2rayConfig)
134+
//Resolve and add to DNS Hosts
135+
if (MmkvManager.decodeSettingsString(AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD, "1") == "1") {
136+
resolveOutboundDomainsToHosts(v2rayConfig)
137+
}
135138

136139
result.status = true
137140
result.content = JsonUtil.toJsonPretty(v2rayConfig) ?: ""

V2rayNG/app/src/main/java/com/v2ray/ang/ui/SettingsActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ class SettingsActivity : BaseActivity() {
257257
AppConfig.PREF_LANGUAGE,
258258
AppConfig.PREF_UI_MODE_NIGHT,
259259
AppConfig.PREF_LOGLEVEL,
260+
AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD,
260261
AppConfig.PREF_MODE
261262
).forEach { key ->
262263
if (MmkvManager.decodeSettingsString(key) != null) {

V2rayNG/app/src/main/java/com/v2ray/ang/viewmodel/SettingsViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class SettingsViewModel(application: Application) : AndroidViewModel(application
4949
AppConfig.PREF_LOCAL_DNS_PORT,
5050
AppConfig.PREF_SOCKS_PORT,
5151
AppConfig.PREF_LOGLEVEL,
52+
AppConfig.PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD,
5253
AppConfig.PREF_LANGUAGE,
5354
AppConfig.PREF_UI_MODE_NIGHT,
5455
AppConfig.PREF_ROUTING_DOMAIN_STRATEGY,

V2rayNG/app/src/main/res/values-ar/strings.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@
241241
<string name="title_pref_auto_update_interval">فاصل التحديث التلقائي (بالدقائق، الحد الأدنى للقيمة 15)</string>
242242

243243
<string name="title_core_loglevel">مستوى السجل</string>
244+
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
244245
<string name="title_mode">الوضع</string>
245246
<string name="title_mode_help">انقر هنا للحصول على مزيد من المساعدة</string>
246247
<string name="title_language">اللغة</string>
@@ -357,4 +358,10 @@
357358
<item>Not Bypass</item>
358359
</string-array>
359360

361+
<string-array name="outbound_domain_resolve_method">
362+
<item>Do not resolve</item>
363+
<item>Resolve and add to DNS Hosts</item>
364+
<item>Resolve and replace domain</item>
365+
</string-array>
366+
360367
</resources>

V2rayNG/app/src/main/res/values-bn/strings.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@
241241
<string name="title_pref_auto_update_interval">অটো আপডেট ইন্টারভ্যাল (মিনিট, সর্বনিম্ন মান ১৫)</string>
242242

243243
<string name="title_core_loglevel">লগ স্তর</string>
244+
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
244245
<string name="title_mode">মোড</string>
245246
<string name="title_mode_help">আরো সাহায্যের জন্য ক্লিক করুন</string>
246247
<string name="title_language">ভাষা</string>
@@ -362,4 +363,10 @@
362363
<item>Not Bypass</item>
363364
</string-array>
364365

366+
<string-array name="outbound_domain_resolve_method">
367+
<item>Do not resolve</item>
368+
<item>Resolve and add to DNS Hosts</item>
369+
<item>Resolve and replace domain</item>
370+
</string-array>
371+
365372
</resources>

V2rayNG/app/src/main/res/values-bqi-rIR/strings.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@
241241
<string name="title_pref_auto_update_interval">فاسله ورۊ کردن خوتکار (اقلن وا 15 دؽقه بۊ)</string>
242242

243243
<string name="title_core_loglevel">سئت داسووا</string>
244+
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
244245
<string name="title_mode">هالت</string>
245246
<string name="title_mode_help">سی دووسمندیا وو هیاری بیشتر، ری ای هؽل بزݩ</string>
246247
<string name="title_language">زۉݩ</string>
@@ -372,4 +373,10 @@
372373
<item>دور زیڌه نبۊ</item>
373374
</string-array>
374375

376+
<string-array name="outbound_domain_resolve_method">
377+
<item>Do not resolve</item>
378+
<item>Resolve and add to DNS Hosts</item>
379+
<item>Resolve and replace domain</item>
380+
</string-array>
381+
375382
</resources>

V2rayNG/app/src/main/res/values-fa/strings.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@
238238
<string name="summary_pref_auto_update_subscription">اشتراک های خود را به طور خودکار با فاصله زمانی در پس زمینه به روز کنید. بسته به دستگاه، این ویژگی ممکن است همیشه کار نکند.</string>
239239
<string name="title_pref_auto_update_interval">فاصله به‌ روزرسانی خودکار ( حداقل مقدار ، 15 دقیقه )</string>
240240
<string name="title_core_loglevel">سطح گزارشات</string>
241+
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
241242
<string name="title_mode">حالت</string>
242243
<string name="title_mode_help">برای اطلاعات و راهنمایی بیشتر، روی این متن کلیک کنید</string>
243244
<string name="title_language">زبان</string>
@@ -371,4 +372,10 @@
371372
<item>دور زده نشود</item>
372373
</string-array>
373374

375+
<string-array name="outbound_domain_resolve_method">
376+
<item>Do not resolve</item>
377+
<item>Resolve and add to DNS Hosts</item>
378+
<item>Resolve and replace domain</item>
379+
</string-array>
380+
374381
</resources>

V2rayNG/app/src/main/res/values-ru/strings.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@
240240
<string name="title_pref_auto_update_interval">Интервал автообновления (минут, не менее 15)</string>
241241

242242
<string name="title_core_loglevel">Подробность ведения журнала</string>
243+
<string name="title_outbound_domain_resolve_method">Outbound domain pre-resolve method</string>
243244
<string name="title_mode">Режим</string>
244245
<string name="title_mode_help">Нажмите для получения дополнительной информации</string>
245246
<string name="title_language">Язык</string>
@@ -371,4 +372,10 @@
371372
<item>Не пропускает</item>
372373
</string-array>
373374

375+
<string-array name="outbound_domain_resolve_method">
376+
<item>Do not resolve</item>
377+
<item>Resolve and add to DNS Hosts</item>
378+
<item>Resolve and replace domain</item>
379+
</string-array>
380+
374381
</resources>

0 commit comments

Comments
 (0)