fix: url test issues, avoid multiple test, and change outbound on test

This commit is contained in:
hiddify-com
2024-08-02 08:39:05 +02:00
parent f9664c2e65
commit 0e5d45fda5
3 changed files with 16 additions and 35 deletions

View File

@@ -40,20 +40,16 @@ class IpInfoNotifier extends _$IpInfoNotifier with AppLogger {
// );
if (!_forceCheck && !serviceRunning) {
throw const ServiceNotRunning();
} else if ((_idle && !_forceCheck) ||
(!_forceCheck && serviceRunning && !autoCheck)) {
} else if ((_idle && !_forceCheck) || (!_forceCheck && serviceRunning && !autoCheck)) {
throw const UnknownIp();
}
_forceCheck = false;
final info = await ref
.watch(proxyRepositoryProvider)
.getCurrentIpInfo(cancelToken)
.getOrElse(
final info = await ref.watch(proxyRepositoryProvider).getCurrentIpInfo(cancelToken).getOrElse(
(err) {
loggy.warning("error getting proxy ip info", err, StackTrace.current);
// throw err; //hiddify: remove exception to be logged
throw const UnknownIp();
throw err; //hiddify: remove exception to be logged
//throw const UnknownIp();
},
).run();
@@ -93,11 +89,7 @@ class ActiveProxyNotifier extends _$ActiveProxyNotifier with AppLogger {
throw const ServiceNotRunning();
}
yield* ref
.watch(proxyRepositoryProvider)
.watchActiveProxies()
.map((event) => event.getOrElse((l) => throw l))
.map((event) => event.firstOrNull!.items.first);
yield* ref.watch(proxyRepositoryProvider).watchActiveProxies().map((event) => event.getOrElse((l) => throw l)).map((event) => event.firstOrNull!.items.first);
}
final _urlTestThrottler = Throttler(const Duration(seconds: 2));
@@ -106,17 +98,9 @@ class ActiveProxyNotifier extends _$ActiveProxyNotifier with AppLogger {
var groupTag = groupTag_;
_urlTestThrottler(
() async {
loggy.debug("testing group: [$groupTag]");
if (!["auto", "select"].contains(groupTag)) {
loggy.warning("only proxy group can do url test");
groupTag = "select";
}
if (state case AsyncData()) {
await ref.read(hapticServiceProvider.notifier).lightImpact();
await ref
.read(proxyRepositoryProvider)
.urlTest(groupTag)
.getOrElse((err) {
await ref.read(proxyRepositoryProvider).urlTest(groupTag).getOrElse((err) {
loggy.warning("error testing group", err);
throw err;
}).run();