mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-06-28 03:49:51 +00:00
Merge branch 'beta'
This commit is contained in:
commit
7a75a67701
19 changed files with 155 additions and 93 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -5,9 +5,11 @@
|
|||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.build/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
.swiftpm/
|
||||
migrate_working_dir/
|
||||
|
||||
# Env
|
||||
|
|
|
@ -2,27 +2,27 @@ C/C++ Structured Logu
|
|||
s
|
||||
q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ßÎ á×2 ÏÎ á×2r
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint „¹<EFBFBD>ã×2 <20>¹<EFBFBD>ã×2r
|
||||
p
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json àÎ á×2Ï ÒÎ á×2w
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json „¹<EFBFBD>ã×2Ï ‚¹<E2809A>ã×2w
|
||||
u
|
||||
s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json àÎ á×2Ú ØÎ á×2d
|
||||
s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json „¹<EFBFBD>ã×2Ú ƒ¹<C692>ã×2d
|
||||
b
|
||||
`/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja àÎ á×2”Ä »Î á×2h
|
||||
`/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja „¹<EFBFBD>ã×2”Ä ÷¸<C3B7>ã×2h
|
||||
f
|
||||
d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja.txt àÎ á×2m
|
||||
d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja.txt „¹<EFBFBD>ã×2m
|
||||
k
|
||||
i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt àÎ á×2
P ØÎ á×2n
|
||||
i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt „¹<EFBFBD>ã×2
P „¹<E2809E>ã×2n
|
||||
l
|
||||
j/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json àÎ á×2r
|
||||
j/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json „¹<EFBFBD>ã×2r
|
||||
p
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json.bin àÎ á×2 x
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json.bin „¹<EFBFBD>ã×2 x
|
||||
v
|
||||
t/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt àÎ á×2
|
||||
¾ ØÎ á×2k
|
||||
t/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt „¹<EFBFBD>ã×2
|
||||
¾ „¹<EFBFBD>ã×2k
|
||||
i
|
||||
g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json àÎ á×2
( ØÎ á×2p
|
||||
g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json „¹<EFBFBD>ã×2
( „¹<E2809E>ã×2p
|
||||
n
|
||||
l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt àÎ á×2
c ØÎ á×2T
|
||||
l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt „¹<EFBFBD>ã×2
c „¹<E2809E>ã×2T
|
||||
R
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt àÎ á×2
¤ Ø„é×Ñ2
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt „¹<EFBFBD>ã×2
¤ Ø„é×Ñ2
|
|
@ -2,27 +2,27 @@ C/C++ Structured Logw
|
|||
u
|
||||
s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ÍÑ á×2 ËÑ á×2t
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ¼»<EFBFBD>ã×2 º»<C2BA>ã×2t
|
||||
r
|
||||
p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json ÍÑ á×2Ó ÌÑ á×2y
|
||||
p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json ¼»<EFBFBD>ã×2Ó »»<C2BB>ã×2y
|
||||
w
|
||||
u/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json ÍÑ á×2Þ ÌÑ á×2f
|
||||
u/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json ¼»<EFBFBD>ã×2Þ »»<C2BB>ã×2f
|
||||
d
|
||||
b/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja ÍÑ á×2 Ä ÁÑ á×2j
|
||||
b/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja ¼»<EFBFBD>ã×2 Ä ±»<C2B1>ã×2j
|
||||
h
|
||||
f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja.txt ÍÑ á×2o
|
||||
f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja.txt ¼»<EFBFBD>ã×2o
|
||||
m
|
||||
k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt ÍÑ á×2
P ÍÑ á×2p
|
||||
k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt ¼»<EFBFBD>ã×2
P ¼»<C2BC>ã×2p
|
||||
n
|
||||
l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json ÍÑ á×2t
|
||||
l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json ¼»<EFBFBD>ã×2t
|
||||
r
|
||||
p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json.bin ÍÑ á×2 z
|
||||
p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json.bin ¼»<EFBFBD>ã×2 z
|
||||
x
|
||||
v/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt ÍÑ á×2
|
||||
È ÍÑ á×2m
|
||||
v/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt ¼»<EFBFBD>ã×2
|
||||
È »»<EFBFBD>ã×2m
|
||||
k
|
||||
i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json ÍÑ á×2
( ÍÑ á×2r
|
||||
i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json ¼»<EFBFBD>ã×2
( »»<C2BB>ã×2r
|
||||
p
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt ÍÑ á×2
e ÍÑ á×2T
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt ¼»<EFBFBD>ã×2
e ¼»<C2BC>ã×2T
|
||||
R
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ÍÑ á×2
¤ Ø„é×Ñ2
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ¼»<EFBFBD>ã×2
¤ Ø„é×Ñ2
|
|
@ -2,27 +2,27 @@ C/C++ Structured Logo
|
|||
m
|
||||
k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ÒÔ á×2 ÐÔ á×2l
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ñ½<EFBFBD>ã×2 ï½<C3AF>ã×2l
|
||||
j
|
||||
h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json ÒÔ á×2Ã ÑÔ á×2q
|
||||
h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json ñ½<EFBFBD>ã×2Ã ï½<C3AF>ã×2q
|
||||
o
|
||||
m/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json ÒÔ á×2Î ÒÔ á×2^
|
||||
m/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json ñ½<EFBFBD>ã×2Î ð½<C3B0>ã×2^
|
||||
\
|
||||
Z/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja ÒÔ á×2ðà ÄÔ á×2b
|
||||
Z/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja ñ½<EFBFBD>ã×2ðà å½<C3A5>ã×2b
|
||||
`
|
||||
^/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja.txt ÒÔ á×2g
|
||||
^/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja.txt ñ½<EFBFBD>ã×2g
|
||||
e
|
||||
c/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt ÒÔ á×2
P ÒÔ á×2h
|
||||
c/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt ñ½<EFBFBD>ã×2
P ð½<C3B0>ã×2h
|
||||
f
|
||||
d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json ÒÔ á×2l
|
||||
d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json ñ½<EFBFBD>ã×2l
|
||||
j
|
||||
h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json.bin ÒÔ á×2 r
|
||||
h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json.bin ñ½<EFBFBD>ã×2 r
|
||||
p
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt ÒÔ á×2
|
||||
ÒÔ á×2e
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt ñ½<EFBFBD>ã×2
|
||||
ð½<EFBFBD>ã×2e
|
||||
c
|
||||
a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json ÒÔ á×2
( ÒÔ á×2j
|
||||
a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json ñ½<EFBFBD>ã×2
( ð½<C3B0>ã×2j
|
||||
h
|
||||
f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt ÒÔ á×2
] ÒÔ á×2T
|
||||
f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt ñ½<EFBFBD>ã×2
] ð½<C3B0>ã×2T
|
||||
R
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ÒÔ á×2
¤ Ø„é×Ñ2
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ñ½<EFBFBD>ã×2
¤ Ø„é×Ñ2
|
|
@ -2,27 +2,27 @@ C/C++ Structured Logr
|
|||
p
|
||||
n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/additional_project_files.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ツラ<EFBFBD>瞹2 ソラ<EFBDBF>瞹2o
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ŸÀ<EFBFBD>ã×2 <20>À<EFBFBD>ã×2o
|
||||
m
|
||||
k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build.json ツラ<EFBFBD>瞹2ノ タラ<EFBE80>瞹2t
|
||||
k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build.json ŸÀ<EFBFBD>ã×2É žÀ<C5BE>ã×2t
|
||||
r
|
||||
p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build_mini.json ツラ<EFBFBD>瞹2ヤ チラ<EFBE81>瞹2a
|
||||
p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build_mini.json ŸÀ<EFBFBD>ã×2Ô ŸÀ<C5B8>ã×2a
|
||||
_
|
||||
]/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja ツラ<EFBFBD>瞹2て オラ<EFBDB5>瞹2e
|
||||
]/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja ŸÀ<EFBFBD>ã×2‚Ä ”À<E2809D>ã×2e
|
||||
c
|
||||
a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja.txt ツラ<EFBFBD>瞹2j
|
||||
a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja.txt ŸÀ<EFBFBD>ã×2j
|
||||
h
|
||||
f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build_file_index.txt ツラ<EFBFBD>瞹2
P チラ<EFBE81>瞹2k
|
||||
f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build_file_index.txt ŸÀ<EFBFBD>ã×2
P ŸÀ<C5B8>ã×2k
|
||||
i
|
||||
g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json ツラ<EFBFBD>瞹2o
|
||||
g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json ŸÀ<EFBFBD>ã×2o
|
||||
m
|
||||
k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json.bin ツラ<EFBFBD>瞹2 u
|
||||
k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json.bin ŸÀ<EFBFBD>ã×2 u
|
||||
s
|
||||
q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/metadata_generation_command.txt ツラ<EFBFBD>瞹2
|
||||
ッ チラ<EFBE81>瞹2h
|
||||
q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/metadata_generation_command.txt ŸÀ<EFBFBD>ã×2
|
||||
¯ ŸÀ<C5B8>ã×2h
|
||||
f
|
||||
d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/prefab_config.json ツラ<EFBFBD>瞹2
( チラ<EFBE81>瞹2m
|
||||
d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/prefab_config.json ŸÀ<EFBFBD>ã×2
( ŸÀ<C5B8>ã×2m
|
||||
k
|
||||
i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/symbol_folder_index.txt ツラ<EFBFBD>瞹2
` チラ<EFBE81>瞹2T
|
||||
i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/symbol_folder_index.txt ŸÀ<EFBFBD>ã×2
` ŸÀ<C5B8>ã×2T
|
||||
R
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ツラ<EFBFBD>瞹2
、 リ<>ラム2
|
||||
P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt À<EFBFBD>ã×2
¤ Ø„é×Ñ2
|
|
@ -1,6 +1,6 @@
|
|||
class Regexps {
|
||||
static final wildcardDomain = RegExp(r'^(\*\.)?([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$');
|
||||
static final domain = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$');
|
||||
static final domain = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,10}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,10})$');
|
||||
static final ipv4Address = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$');
|
||||
static final ipv6Address = RegExp(r'(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))');
|
||||
static final subroute = RegExp(r'^\/\b([A-Za-z0-9_\-~/]*)[^\/|\.|\:]$');
|
||||
|
|
|
@ -803,5 +803,8 @@
|
|||
"myOtherApps": "My other apps",
|
||||
"myOtherAppsDescription": "Check my other apps, make a donation, contact support, and more",
|
||||
"topToBottom": "From top to bottom",
|
||||
"bottomToTop": "From bottom to top"
|
||||
"bottomToTop": "From bottom to top",
|
||||
"upstreamTimeout": "Upstream timeout",
|
||||
"upstreamTimeoutHelper": "Specifies the number of seconds to wait for a response from the upstream server",
|
||||
"fieldCannotBeEmpty": "This field cannot be empty"
|
||||
}
|
|
@ -803,5 +803,8 @@
|
|||
"myOtherApps": "Mis otras apps",
|
||||
"myOtherAppsDescription": "Comprueba mis otras apps, hacer una donación, contactar al soporte, y más",
|
||||
"topToBottom": "Desde arriba hacia abajo",
|
||||
"bottomToTop": "Desde abajo hacia arriba"
|
||||
"bottomToTop": "Desde abajo hacia arriba",
|
||||
"upstreamTimeout": "Tiempo de espera del upstream",
|
||||
"upstreamTimeoutHelper": "Especifica el número de segundos que se debe esperar para recibir una respuesta del servidor upstream",
|
||||
"fieldCannotBeEmpty": "El campo no puede estar vacío"
|
||||
}
|
|
@ -26,6 +26,7 @@ class DnsInfo {
|
|||
int? ratelimitSubnetLenIpv4;
|
||||
int? ratelimitSubnetLenIpv6;
|
||||
List<String>? ratelimitWhitelist;
|
||||
int? upstreamTimeout;
|
||||
|
||||
DnsInfo({
|
||||
required this.upstreamDns,
|
||||
|
@ -55,6 +56,7 @@ class DnsInfo {
|
|||
required this.ratelimitSubnetLenIpv4,
|
||||
required this.ratelimitSubnetLenIpv6,
|
||||
required this.ratelimitWhitelist,
|
||||
required this.upstreamTimeout,
|
||||
});
|
||||
|
||||
factory DnsInfo.fromJson(Map<String, dynamic> json) => DnsInfo(
|
||||
|
@ -85,6 +87,7 @@ class DnsInfo {
|
|||
ratelimitSubnetLenIpv4: json["ratelimit_subnet_len_ipv4"],
|
||||
ratelimitSubnetLenIpv6: json["ratelimit_subnet_len_ipv6"],
|
||||
ratelimitWhitelist: json["ratelimit_whitelist"] != null ? List<String>.from(json["ratelimit_whitelist"].map((x) => x)) : [],
|
||||
upstreamTimeout: json["upstream_timeout"],
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
|
@ -115,5 +118,6 @@ class DnsInfo {
|
|||
"ratelimit_subnet_len_ipv4": ratelimitSubnetLenIpv4,
|
||||
"ratelimit_subnet_len_ipv6": ratelimitSubnetLenIpv6,
|
||||
"ratelimit_whitelist": ratelimitWhitelist != null ? List<String>.from(ratelimitWhitelist!.map((x) => x)) : null,
|
||||
"upstream_timeout": upstreamTimeout,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -114,10 +114,12 @@ class _ClientsModalState extends State<ClientsModal> {
|
|||
}
|
||||
|
||||
void searchAddedClient(_ClientLog client) {
|
||||
final notIps = client.ids?.where((e) => isIpAddress(e) == false).toList();
|
||||
if (notIps == null || notIps.isEmpty) return;
|
||||
logsProvider.setSearchText('"${notIps[0]}"');
|
||||
final ips = client.ids?.where((e) => isIpAddress(e) == true).toList();
|
||||
if (ips == null || ips.isEmpty) return;
|
||||
logsProvider.setSearchText(ips[0]);
|
||||
logsProvider.filterLogs();
|
||||
Navigator.of(context).pop();
|
||||
Navigator.pop(context);
|
||||
}
|
||||
|
||||
if (widget.dialog == true) {
|
||||
|
@ -302,7 +304,7 @@ class _ClientsModalState extends State<ClientsModal> {
|
|||
subtitle: _selectedList == 0 ? _filteredClients[index].name : _filteredClients[index].ids?.join(", "),
|
||||
checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip),
|
||||
isAddedClient: _selectedList == 1,
|
||||
onSearchAddedClient: () => searchAddedClient(_filteredClients[index]),
|
||||
onSearchAddedClient: _filteredClients[index].ids != null && _filteredClients[index].ids!.where((e) => isIpAddress(e) == true).isNotEmpty ? () => searchAddedClient(_filteredClients[index]) : null,
|
||||
onChanged: (isSelected) {
|
||||
if (isSelected == true) {
|
||||
logsProvider.setSelectedClients([
|
||||
|
@ -376,7 +378,7 @@ class _ListItem extends StatelessWidget {
|
|||
final bool checkboxActive;
|
||||
final void Function(bool) onChanged;
|
||||
final bool isAddedClient;
|
||||
final void Function() onSearchAddedClient;
|
||||
final void Function()? onSearchAddedClient;
|
||||
|
||||
const _ListItem({
|
||||
required this.title,
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// ignore_for_file: use_build_context_synchronously
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -30,6 +28,9 @@ class _UpstreamDnsScreenState extends State<UpstreamDnsScreen> {
|
|||
|
||||
bool validValues = false;
|
||||
|
||||
final upstreamTimeoutController = TextEditingController();
|
||||
String? upstreamTimeoutError = null;
|
||||
|
||||
checkValidValues() {
|
||||
if (
|
||||
dnsServers.isNotEmpty &&
|
||||
|
@ -61,6 +62,7 @@ class _UpstreamDnsScreenState extends State<UpstreamDnsScreen> {
|
|||
}
|
||||
}
|
||||
upstreamMode = dnsProvider.dnsInfo!.upstreamMode ?? "";
|
||||
upstreamTimeoutController.text = dnsProvider.dnsInfo!.upstreamTimeout != null ? dnsProvider.dnsInfo!.upstreamTimeout.toString() : "";
|
||||
validValues = true;
|
||||
super.initState();
|
||||
}
|
||||
|
@ -72,6 +74,23 @@ class _UpstreamDnsScreenState extends State<UpstreamDnsScreen> {
|
|||
|
||||
final width = MediaQuery.of(context).size.width;
|
||||
|
||||
void validateTimeout(String value) {
|
||||
if (value != '' && int.tryParse(value) != null && int.parse(value) > 0) {
|
||||
setState(() {
|
||||
upstreamTimeoutError = null;
|
||||
validValues = true;
|
||||
});
|
||||
}
|
||||
else {
|
||||
setState(() {
|
||||
upstreamTimeoutError = value == ''
|
||||
? AppLocalizations.of(context)!.fieldCannotBeEmpty
|
||||
: AppLocalizations.of(context)!.invalidValue;
|
||||
validValues = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void openAddCommentModal() {
|
||||
if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) {
|
||||
showDialog(
|
||||
|
@ -146,11 +165,13 @@ class _UpstreamDnsScreenState extends State<UpstreamDnsScreen> {
|
|||
|
||||
final result = await dnsProvider.saveUpstreamDnsConfig({
|
||||
"upstream_dns": dnsServers.map((e) => e['controller'] != null ? e['controller'].text : e['comment']).toList(),
|
||||
"upstream_mode": upstreamMode
|
||||
"upstream_mode": upstreamMode,
|
||||
"upstream_timeout": int.tryParse(upstreamTimeoutController.text)
|
||||
});
|
||||
|
||||
processModal.close();
|
||||
|
||||
if (!context.mounted) return;
|
||||
if (result.successful == true) {
|
||||
showSnackbar(
|
||||
appConfigProvider: appConfigProvider,
|
||||
|
@ -312,6 +333,27 @@ class _UpstreamDnsScreenState extends State<UpstreamDnsScreen> {
|
|||
subtitle: AppLocalizations.of(context)!.fastestIpAddressDescription,
|
||||
onChanged: (value) => setState(() => upstreamMode = value),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SectionLabel(label: AppLocalizations.of(context)!.others),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: TextFormField(
|
||||
controller: upstreamTimeoutController,
|
||||
onChanged: validateTimeout,
|
||||
decoration: InputDecoration(
|
||||
prefixIcon: const Icon(Icons.timer_rounded),
|
||||
border: const OutlineInputBorder(
|
||||
borderRadius: BorderRadius.all(
|
||||
Radius.circular(10)
|
||||
)
|
||||
),
|
||||
labelText: AppLocalizations.of(context)!.upstreamTimeout,
|
||||
helperText: AppLocalizations.of(context)!.upstreamTimeoutHelper,
|
||||
helperMaxLines: 2,
|
||||
errorText: upstreamTimeoutError
|
||||
)
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
@ -6,33 +6,34 @@ PODS:
|
|||
- FlutterMacOS (1.0.0)
|
||||
- package_info_plus (0.0.1):
|
||||
- FlutterMacOS
|
||||
- screen_retriever (0.0.1):
|
||||
- screen_retriever_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- Sentry/HybridSDK (8.36.0)
|
||||
- sentry_flutter (8.9.0):
|
||||
- Sentry/HybridSDK (8.44.0)
|
||||
- sentry_flutter (8.13.2):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- Sentry/HybridSDK (= 8.36.0)
|
||||
- Sentry/HybridSDK (= 8.44.0)
|
||||
- shared_preferences_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- sqflite (0.0.3):
|
||||
- sqflite_darwin (0.0.4):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- "sqlite3 (3.46.1+1)":
|
||||
- "sqlite3/common (= 3.46.1+1)"
|
||||
- "sqlite3/common (3.46.1+1)"
|
||||
- "sqlite3/dbstatvtab (3.46.1+1)":
|
||||
- sqlite3 (3.49.1):
|
||||
- sqlite3/common (= 3.49.1)
|
||||
- sqlite3/common (3.49.1)
|
||||
- sqlite3/dbstatvtab (3.49.1):
|
||||
- sqlite3/common
|
||||
- "sqlite3/fts5 (3.46.1+1)":
|
||||
- sqlite3/fts5 (3.49.1):
|
||||
- sqlite3/common
|
||||
- "sqlite3/perf-threadsafe (3.46.1+1)":
|
||||
- sqlite3/perf-threadsafe (3.49.1):
|
||||
- sqlite3/common
|
||||
- "sqlite3/rtree (3.46.1+1)":
|
||||
- sqlite3/rtree (3.49.1):
|
||||
- sqlite3/common
|
||||
- sqlite3_flutter_libs (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- "sqlite3 (~> 3.46.0+1)"
|
||||
- sqlite3 (~> 3.49.1)
|
||||
- sqlite3/dbstatvtab
|
||||
- sqlite3/fts5
|
||||
- sqlite3/perf-threadsafe
|
||||
|
@ -47,11 +48,11 @@ DEPENDENCIES:
|
|||
- dynamic_color (from `Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos`)
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
|
||||
- screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`)
|
||||
- screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`)
|
||||
- sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`)
|
||||
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
|
||||
- sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`)
|
||||
- sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`)
|
||||
- sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`)
|
||||
- sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin`)
|
||||
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||
- window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`)
|
||||
|
||||
|
@ -69,33 +70,33 @@ EXTERNAL SOURCES:
|
|||
:path: Flutter/ephemeral
|
||||
package_info_plus:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos
|
||||
screen_retriever:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos
|
||||
screen_retriever_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos
|
||||
sentry_flutter:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos
|
||||
shared_preferences_foundation:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
|
||||
sqflite:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin
|
||||
sqflite_darwin:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin
|
||||
sqlite3_flutter_libs:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin
|
||||
url_launcher_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||
window_manager:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720
|
||||
device_info_plus: 1b14eed9bf95428983aed283a8d51cce3d8c4215
|
||||
dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f
|
||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||
package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c
|
||||
screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38
|
||||
Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57
|
||||
sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe
|
||||
package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b
|
||||
screen_retriever_macos: 776e0fa5d42c6163d2bf772d22478df4b302b161
|
||||
Sentry: 0f9bc9adfc0b960e7f3bb5ec67e9a3d8193f3bdb
|
||||
sentry_flutter: 64a43fb39ab4c7f67d8a4cad52b49e22439e58b7
|
||||
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
|
||||
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
|
||||
sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb
|
||||
sqlite3_flutter_libs: 5ca46c1a04eddfbeeb5b16566164aa7ad1616e7b
|
||||
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
|
||||
sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983
|
||||
sqlite3_flutter_libs: cc304edcb8e1d8c595d1b08c7aeb46a47691d9db
|
||||
url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
|
||||
window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
enableGPUValidationMode = "1"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
|
|
|
@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate {
|
|||
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
version: 2.20.1+148
|
||||
version: 2.20.2+149
|
||||
|
||||
environment:
|
||||
sdk: '>=2.18.1 <3.0.0'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue