diff --git a/src/backend/libpq/ip.c b/src/backend/libpq/ip.c index 33f0832b930..ee3605db599 100644 --- a/src/backend/libpq/ip.c +++ b/src/backend/libpq/ip.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/ip.c,v 1.23.2.2 2004/11/08 01:54:58 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/ip.c,v 1.23.2.3 2006/10/19 17:26:51 tgl Exp $ * * This file and the IPV6 implementation were initially provided by * Nigel Kukard , Linux Based Systems Design @@ -77,6 +77,15 @@ getaddrinfo_all(const char *hostname, const char *servname, return getaddrinfo_unix(servname, hintp, result); #endif +#ifdef _AIX + /* + * It seems AIX's getaddrinfo doesn't reliably zero sin_port when servname + * is NULL, so force the issue. + */ + if (servname == NULL) + servname = "0"; +#endif + /* NULL has special meaning to getaddrinfo */ return getaddrinfo((!hostname || hostname[0] == '\0') ? NULL : hostname, servname, hintp, result);