in hosts file lookups, honor first canonical name regardless of family
authorRich Felker <dalias@aerifal.cx>
Thu, 6 Aug 2020 01:35:00 +0000 (21:35 -0400)
committerRich Felker <dalias@aerifal.cx>
Thu, 6 Aug 2020 01:35:00 +0000 (21:35 -0400)
prior to this change, the canonical name came from the first hosts
file line matching the requested family, so the canonical name for a
given hostname could differ depending on whether it was requested with
AF_UNSPEC or a particular family (AF_INET or AF_INET6). now, the
canonical name is deterministically the first one to appear with the
requested name as an alias.

src/network/lookup_name.c

index 0462484..aa558c1 100644 (file)
@@ -80,7 +80,7 @@ static int name_from_hosts(struct address buf[static MAXADDRS], char canon[stati
                        continue;
                default:
                        badfam = EAI_NONAME;
-                       continue;
+                       break;
                }
 
                if (have_canon) continue;