Explorar o código

Fix resolver "unexpected no IPs" error

Rod Hynes hai 2 meses
pai
achega
3a7af94dbe
Modificáronse 1 ficheiros con 5 adicións e 2 borrados
  1. 5 2
      psiphon/common/resolver/resolver.go

+ 5 - 2
psiphon/common/resolver/resolver.go

@@ -1036,8 +1036,11 @@ func (r *Resolver) ResolveIP(
 	conns.CloseAll()
 	conns.CloseAll()
 	waitGroup.Wait()
 	waitGroup.Wait()
 
 
-	// When there's no answer, return the last error.
-	if result == nil {
+	// When there's no answer, or when there's only an empty IPv6 answer,
+	// return the last error.
+	if result == nil ||
+		(result.questionType == resolverQuestionTypeAAAA && len(result.IPs) == 0) {
+
 		err := lastErr.Load()
 		err := lastErr.Load()
 		if err == nil {
 		if err == nil {
 			err = context.Cause(resolveCtx)
 			err = context.Cause(resolveCtx)