fix return value of gethostnbyname[2]_r on result not found
authorRich Felker <dalias@aerifal.cx>
Mon, 19 Sep 2022 23:02:40 +0000 (19:02 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 19 Sep 2022 23:02:40 +0000 (19:02 -0400)
these functions are horribly underspecified, inconsistent between
historical systems, and should never have been included. however, the
signatures we have match the glibc ones, and the glibc behavior is to
treat NxDomain and NODATA results as a success condition, not an
ENOENT error.

src/network/gethostbyname2_r.c

index fc89487..f012ec2 100644 (file)
@@ -22,7 +22,7 @@ int gethostbyname2_r(const char *name, int af,
        if (cnt<0) switch (cnt) {
        case EAI_NONAME:
                *err = HOST_NOT_FOUND;
-               return ENOENT;
+               return 0;
        case EAI_AGAIN:
                *err = TRY_AGAIN;
                return EAGAIN;