]> Cypherpunks repositories - gostls13.git/commitdiff
net: report IsNotFound when getnameinfo returns EAI_NONAME
authorMateusz Poliwczak <mpoliwczak34@gmail.com>
Tue, 31 Jan 2023 18:38:01 +0000 (18:38 +0000)
committerGopher Robot <gobot@golang.org>
Tue, 31 Jan 2023 20:21:00 +0000 (20:21 +0000)
Fixes #57548

Change-Id: I4092624b1e906fbcd520f43aa4bc71c144dea3b6
GitHub-Last-Rev: ab048359473978ee245188710b6d6e12d50fb0ab
GitHub-Pull-Request: golang/go#57549
Reviewed-on: https://go-review.googlesource.com/c/go/+/460255
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/net/cgo_unix.go

index 0cb71c7d385e575e13b8976fdd00e5b6ed42f061..d76652f0545a88357a9c8348a1928ba6d9521fe2 100644 (file)
@@ -260,17 +260,21 @@ func cgoLookupAddrPTR(addr string, sa *_C_struct_sockaddr, salen _C_socklen_t) (
                }
        }
        if gerrno != 0 {
+               isErrorNoSuchHost := false
                isTemporary := false
                switch gerrno {
                case _C_EAI_SYSTEM:
                        if err == nil { // see golang.org/issue/6232
                                err = syscall.EMFILE
                        }
+               case _C_EAI_NONAME:
+                       err = errNoSuchHost
+                       isErrorNoSuchHost = true
                default:
                        err = addrinfoErrno(gerrno)
                        isTemporary = addrinfoErrno(gerrno).Temporary()
                }
-               return nil, &DNSError{Err: err.Error(), Name: addr, IsTemporary: isTemporary}
+               return nil, &DNSError{Err: err.Error(), Name: addr, IsTemporary: isTemporary, IsNotFound: isErrorNoSuchHost}
        }
        for i := 0; i < len(b); i++ {
                if b[i] == 0 {