File tree Expand file tree Collapse file tree 16 files changed +98
-3
lines changed Expand file tree Collapse file tree 16 files changed +98
-3
lines changed Original file line number Diff line number Diff line change @@ -56,6 +56,7 @@ object AppConfig {
56
56
const val PREF_DNS_HOSTS = " pref_dns_hosts"
57
57
const val PREF_DELAY_TEST_URL = " pref_delay_test_url"
58
58
const val PREF_LOGLEVEL = " pref_core_loglevel"
59
+ const val PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD = " pref_outbound_domain_resolve_method"
59
60
const val PREF_MODE = " pref_mode"
60
61
const val PREF_IS_BOOTED = " pref_is_booted"
61
62
const val PREF_CHECK_UPDATE_PRE_RELEASE = " pref_check_update_pre_release"
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import com.v2ray.ang.AppConfig
4
4
import com.v2ray.ang.dto.NetworkType
5
5
import com.v2ray.ang.dto.ProfileItem
6
6
import com.v2ray.ang.extension.isNotNullEmpty
7
+ import com.v2ray.ang.handler.MmkvManager
7
8
import com.v2ray.ang.util.HttpUtil
8
9
import com.v2ray.ang.util.Utils
9
10
import java.net.URI
@@ -151,7 +152,19 @@ open class FmtBase {
151
152
}
152
153
153
154
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
+ }
156
158
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
+ }
157
170
}
Original file line number Diff line number Diff line change @@ -131,7 +131,10 @@ object V2rayConfigManager {
131
131
v2rayConfig.policy = null
132
132
}
133
133
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
+ }
135
138
136
139
result.status = true
137
140
result.content = JsonUtil .toJsonPretty(v2rayConfig) ? : " "
Original file line number Diff line number Diff line change @@ -257,6 +257,7 @@ class SettingsActivity : BaseActivity() {
257
257
AppConfig .PREF_LANGUAGE ,
258
258
AppConfig .PREF_UI_MODE_NIGHT ,
259
259
AppConfig .PREF_LOGLEVEL ,
260
+ AppConfig .PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD ,
260
261
AppConfig .PREF_MODE
261
262
).forEach { key ->
262
263
if (MmkvManager .decodeSettingsString(key) != null ) {
Original file line number Diff line number Diff line change @@ -49,6 +49,7 @@ class SettingsViewModel(application: Application) : AndroidViewModel(application
49
49
AppConfig .PREF_LOCAL_DNS_PORT ,
50
50
AppConfig .PREF_SOCKS_PORT ,
51
51
AppConfig .PREF_LOGLEVEL ,
52
+ AppConfig .PREF_OUTBOUND_DOMAIN_RESOLVE_METHOD ,
52
53
AppConfig .PREF_LANGUAGE ,
53
54
AppConfig .PREF_UI_MODE_NIGHT ,
54
55
AppConfig .PREF_ROUTING_DOMAIN_STRATEGY ,
Original file line number Diff line number Diff line change 241
241
<string name =" title_pref_auto_update_interval" >فاصل التحديث التلقائي (بالدقائق، الحد الأدنى للقيمة 15)</string >
242
242
243
243
<string name =" title_core_loglevel" >مستوى السجل</string >
244
+ <string name =" title_outbound_domain_resolve_method" >Outbound domain pre-resolve method</string >
244
245
<string name =" title_mode" >الوضع</string >
245
246
<string name =" title_mode_help" >انقر هنا للحصول على مزيد من المساعدة</string >
246
247
<string name =" title_language" >اللغة</string >
357
358
<item >Not Bypass</item >
358
359
</string-array >
359
360
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
+
360
367
</resources >
Original file line number Diff line number Diff line change 241
241
<string name =" title_pref_auto_update_interval" >অটো আপডেট ইন্টারভ্যাল (মিনিট, সর্বনিম্ন মান ১৫)</string >
242
242
243
243
<string name =" title_core_loglevel" >লগ স্তর</string >
244
+ <string name =" title_outbound_domain_resolve_method" >Outbound domain pre-resolve method</string >
244
245
<string name =" title_mode" >মোড</string >
245
246
<string name =" title_mode_help" >আরো সাহায্যের জন্য ক্লিক করুন</string >
246
247
<string name =" title_language" >ভাষা</string >
362
363
<item >Not Bypass</item >
363
364
</string-array >
364
365
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
+
365
372
</resources >
Original file line number Diff line number Diff line change 241
241
<string name =" title_pref_auto_update_interval" >فاسله ورۊ کردن خوتکار (اقلن وا 15 دؽقه بۊ)</string >
242
242
243
243
<string name =" title_core_loglevel" >سئت داسووا</string >
244
+ <string name =" title_outbound_domain_resolve_method" >Outbound domain pre-resolve method</string >
244
245
<string name =" title_mode" >هالت</string >
245
246
<string name =" title_mode_help" >سی دووسمندیا وو هیاری بیشتر، ری ای هؽل بزݩ</string >
246
247
<string name =" title_language" >زۉݩ</string >
372
373
<item >دور زیڌه نبۊ</item >
373
374
</string-array >
374
375
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
+
375
382
</resources >
Original file line number Diff line number Diff line change 238
238
<string name =" summary_pref_auto_update_subscription" >اشتراک های خود را به طور خودکار با فاصله زمانی در پس زمینه به روز کنید. بسته به دستگاه، این ویژگی ممکن است همیشه کار نکند.</string >
239
239
<string name =" title_pref_auto_update_interval" >فاصله به روزرسانی خودکار ( حداقل مقدار ، 15 دقیقه )</string >
240
240
<string name =" title_core_loglevel" >سطح گزارشات</string >
241
+ <string name =" title_outbound_domain_resolve_method" >Outbound domain pre-resolve method</string >
241
242
<string name =" title_mode" >حالت</string >
242
243
<string name =" title_mode_help" >برای اطلاعات و راهنمایی بیشتر، روی این متن کلیک کنید</string >
243
244
<string name =" title_language" >زبان</string >
371
372
<item >دور زده نشود</item >
372
373
</string-array >
373
374
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
+
374
381
</resources >
Original file line number Diff line number Diff line change 240
240
<string name =" title_pref_auto_update_interval" >Интервал автообновления (минут, не менее 15)</string >
241
241
242
242
<string name =" title_core_loglevel" >Подробность ведения журнала</string >
243
+ <string name =" title_outbound_domain_resolve_method" >Outbound domain pre-resolve method</string >
243
244
<string name =" title_mode" >Режим</string >
244
245
<string name =" title_mode_help" >Нажмите для получения дополнительной информации</string >
245
246
<string name =" title_language" >Язык</string >
371
372
<item >Не пропускает</item >
372
373
</string-array >
373
374
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
+
374
381
</resources >
You can’t perform that action at this time.
0 commit comments