Przeglądaj źródła

Fix WaitForNetworkConnectivity additional condition

additionalConditionChecker was not included in the initial, pre-wait loop check,
causing that condition to be skipped. Impacted IsInproxyCompatibleNetworkType
in inproxyWaitForNetworkConnectivity.
Rod Hynes 1 rok temu
rodzic
commit
d0cb905faa
1 zmienionych plików z 3 dodań i 2 usunięć
  1. 3 2
      psiphon/net.go

+ 3 - 2
psiphon/net.go

@@ -303,7 +303,8 @@ func WaitForNetworkConnectivity(
 	connectivityChecker NetworkConnectivityChecker,
 	additionalConditionChecker func() bool) bool {
 
-	if connectivityChecker == nil || connectivityChecker.HasNetworkConnectivity() == 1 {
+	if (connectivityChecker == nil || connectivityChecker.HasNetworkConnectivity() == 1) &&
+		(additionalConditionChecker == nil || additionalConditionChecker()) {
 		return true
 	}
 
@@ -313,7 +314,7 @@ func WaitForNetworkConnectivity(
 	defer ticker.Stop()
 
 	for {
-		if connectivityChecker.HasNetworkConnectivity() == 1 &&
+		if (connectivityChecker == nil || connectivityChecker.HasNetworkConnectivity() == 1) &&
 			(additionalConditionChecker == nil || additionalConditionChecker()) {
 			return true
 		}