summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2015-10-03 12:40:54 +0000
committerhrs <hrs@FreeBSD.org>2015-10-03 12:40:54 +0000
commita14f7a3926a1385132a88aa2368edb79e97e438e (patch)
tree528307d082b0d08cccd4ace37b33529328ff2efd /lib
parentdefd45464bac7e51a09de4af316f8b54538081bf (diff)
downloadFreeBSD-src-a14f7a3926a1385132a88aa2368edb79e97e438e.zip
FreeBSD-src-a14f7a3926a1385132a88aa2368edb79e97e438e.tar.gz
- Move PF_LOCAL at the end of the array. PF_INET{,6} is used more often.
- Add SOCKTYPE_ANY to PF_LOCAL. - Apply AI_CANONNAME to only AF_INET{,6}. It is not meaningful for the other AFs.
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/net/getaddrinfo.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index 8b47aef..95c588b 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -168,12 +168,6 @@ struct explore {
};
static const struct explore explore[] = {
- { PF_LOCAL, SOCK_DGRAM, ANY,
- AF_ANY | PROTOCOL_ANY },
- { PF_LOCAL, SOCK_STREAM, ANY,
- AF_ANY | PROTOCOL_ANY },
- { PF_LOCAL, SOCK_SEQPACKET, ANY,
- AF_ANY | PROTOCOL_ANY },
#ifdef INET6
{ PF_INET6, SOCK_DGRAM, IPPROTO_UDP,
AF_ANY | SOCKTYPE_ANY | PROTOCOL_ANY },
@@ -200,6 +194,12 @@ static const struct explore explore[] = {
AF_ANY | SOCKTYPE_ANY },
{ PF_INET, SOCK_RAW, ANY,
AF_ANY | PROTOCOL_ANY },
+ { PF_LOCAL, SOCK_DGRAM, ANY,
+ AF_ANY | SOCKTYPE_ANY | PROTOCOL_ANY },
+ { PF_LOCAL, SOCK_STREAM, ANY,
+ AF_ANY | SOCKTYPE_ANY | PROTOCOL_ANY },
+ { PF_LOCAL, SOCK_SEQPACKET, ANY,
+ AF_ANY | SOCKTYPE_ANY | PROTOCOL_ANY },
{ -1, 0, 0, 0 },
};
@@ -1245,7 +1245,9 @@ explore_numeric(const struct addrinfo *pai, const char *hostname,
if (pai->ai_family == afd->a_af) {
GET_AI(ai, afd, p);
GET_PORT(ai, servname);
- if ((pai->ai_flags & AI_CANONNAME)) {
+ if ((pai->ai_family == AF_INET ||
+ pai->ai_family == AF_INET6) &&
+ (pai->ai_flags & AI_CANONNAME)) {
/*
* Set the numeric address itself as the canonical
* name, based on a clarification in RFC3493.
OpenPOWER on IntegriCloud