Re: AIX 4.3 getaddrinfo busted - Mailing list pgsql-hackers

From Andrew Chernow
Subject Re: AIX 4.3 getaddrinfo busted
Date
Msg-id 4979D469.6060608@esilo.com
Whole thread Raw
In response to Re: AIX 4.3 getaddrinfo busted  (Bruce Momjian <bruce@momjian.us>)
Responses Re: AIX 4.3 getaddrinfo busted  (Bruce Momjian <bruce@momjian.us>)
Re: AIX 4.3 getaddrinfo busted  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Bruce Momjian wrote:
> Andrew Chernow wrote:
>> AIX 4.3 was released in late 1999, so I thought it was worth mentioning. 
>>   I only have AIX 4.3 and 6.1, so I have no idea how AIX 5 handles this. 
>>   AIX 6.1 works fine.
>>
>> Anyways, the service argument to getaddrinfo is busted on AIX 4.3, thus 
>>   src/backend/libpq/ip.c pg_getaddrinfo_all() is busted on this 
>> platform.  It fails with EAI_NODATA "Host not found".   If this argument 
>> is left NULL, everything works.
>>
>> I can supply a patch to fix this.  My suggestion would be to always 
>> supply a NULL service to getaddrinfo.  After a successful call, set the 
>> port if it was provided ... htons((unsigned short)atoi(servname)).  This 
>> approach avoids a configure check.
> 
> Why would we risk breaking other platforms to avoid an AIX bug?  At best
> we can put a code comment in that section of the code.
> 

IMO, there is no risk.  getaddrinfo allows a NULL second argument on 
every platform I have worked with.  I can't see this breaking anything.  Our internal libraries do it this way for this
exactreason, and it 
 
works on a large number of platforms.

But, it can be done so that it only affects AIX machines.  There is 
already a #ifdef _AIX block in this function so we can handle all AIX 
versions as I have suggested and let everyone else run the same old code.

#ifdef _AIX
getaddrinfo(hostname, NULL /* servname */, ....);
// manually set the port
#else
getaddrinfo(hostname, servname, ....); /* same code as now */
#endif

-- 
Andrew Chernow
eSilo, LLC
every bit counts
http://www.esilo.com/


pgsql-hackers by date:

Previous
From: Christopher Browne
Date:
Subject: Re: AIX 4.3 getaddrinfo busted
Next
From: Zdenek Kotala
Date:
Subject: Re: [PATCH] reloptions - RELOPT_KIND_ALL