From: Mateusz Poliwczak Date: Tue, 31 Jan 2023 18:38:01 +0000 (+0000) Subject: net: report IsNotFound when getnameinfo returns EAI_NONAME X-Git-Tag: go1.21rc1~1700 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=de2efc2aa1448cfcf28fec66ce0ff3f979fc2f12;p=gostls13.git net: report IsNotFound when getnameinfo returns EAI_NONAME 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 Reviewed-by: Bryan Mills Reviewed-by: Damien Neil Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- diff --git a/src/net/cgo_unix.go b/src/net/cgo_unix.go index 0cb71c7d38..d76652f054 100644 --- a/src/net/cgo_unix.go +++ b/src/net/cgo_unix.go @@ -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 {