[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: getaddrinfo() may legally return ai_addr = NULL (ITS#1416)
At 01:39 PM 2001-10-30, Stig@OpenLDAP.org wrote:
>On Mon, Oct 29, 2001 at 01:55:20PM +0000, peter.marschall@mayn.de wrote:
>> Full_Name: Peter Marschall
>> Version: 20.0.18
>> OS: Linux 2.4.x
>> URL: ftp://ftp.openldap.org/incoming/peter.marschall-011029.patch
>> Submission from: (NULL) (194.145.150.12)
>>
>>
>> The man page for getaddrinfo() in the GNU C library states:
>> If node is NULL, the network address in each socket struc-
>> ture is initialized according to the AI_PASSIVE flag,
>> which is set in the ai_flags member of the hints parame-
>> ter. The network address in each socket structure will be
>> left unspecified if AI_PASSIVE flag is set. This is used
>> by server applications, which intend to accept client con-
>> nections on any network address. The network address will
>> be set to the loopback interface address if the AI_PASSIVE
>> flag is not set. This is used by client applications,
>> which intend to connect to a server running on the same
>> network host.
>> So, at least for glibc, the ai_addr field of the addrinfo structure
>> may be legally NULL when the AI_PASSIVE flag is set and host is NULL.
>
>I believe this is just poor language. The draft
s/draft/RFC 2553/
>specs state that if
>AI_PASSIVE is set, the address will be set to INADDR_ANY for IPv4 and
>IN6ADDR_ANY_INIT for IPv6. I think this is what is meant by unspecified
>above. Have you found getaddrinfo() implementations that return just a
>NULL pointer? If so, which? The GNU C library code I have seen, seems
>not to return a NULL pointer, but I might have missed something.