(0002796)
shware_systems (reporter)
2015-08-25 07:31
|
I concur; it appears that the intent of the 16 was to indicate all 16 bytes of the mapped sin6_addr are significant, and that only storing the 4 bytes of the V4 address in that location, as a way to save 12 bytes of allocation, was not to be done by conforming implementations. If the intent was the 16 be an arbitrary value indicating the address was a mapped form and not a regular IP6 address that was reported I'd think that would have been mentioned in the Application Usage section. |
(0002845)
Don Cragun (manager)
2015-09-24 16:06
edited on: 2015-09-24 16:07
|
Change:
If the AI_V4MAPPED flag is specified along with an ai_family of AF_INET6
then getaddrinfo() shall return IPv4-mapped IPv6 addresses on finding no
matching IPv6 addresses (ai_addrlen shall be 16). The AI_V4MAPPED flag
shall be ignored unless ai_family equals AF_INET6. If the AI_ALL flag is
used with the AI_V4MAPPED flag, then getaddrinfo() shall return all
matching IPv6 and IPv4 addresses. The AI_ALL flag without the
AI_V4MAPPED flag is ignored.
on P925, L31183-31187 to (keeping the IP6 shading):
By default, with an ai_family of AF_INET6, getaddrinfo() shall
return only IPv6 addresses. If the AI_V4MAPPED flag is specified along with
an ai_family of AF_INET6, then getaddrinfo() shall return
IPv4-mapped IPv6 addresses on finding no matching IPv6 addresses. The
AI_V4MAPPED flag shall be ignored unless ai_family equals
AF_INET6. If the AI_ALL flag is used with the AI_V4MAPPED flag, then
getaddrinfo() shall return all matching IPv6 and IPv4 addresses. The
AI_ALL flag without the AI_V4MAPPED flag shall be ignored.
|