diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-06-11 19:00:15 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-06-11 19:00:15 +0000 |
commit | db16e7734918c63589fe607be94699449a618b5a (patch) | |
tree | 0a3ec548f16e9bd9f19c9e802535b9de9766011f /src | |
parent | d94582f4f8a06e08c8b054d332174165de6e40a6 (diff) | |
download | postgresql-db16e7734918c63589fe607be94699449a618b5a.tar.gz postgresql-db16e7734918c63589fe607be94699449a618b5a.zip |
Remove our inadequate kluge that tried to get AIX's various broken versions
of getaddrinfo() to work. Instead, recommend updating the OS to get a working
version of getaddrinfo. Per recent discussions.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/libpq/ip.c | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/src/backend/libpq/ip.c b/src/backend/libpq/ip.c index 80880b38070..90ec119d79d 100644 --- a/src/backend/libpq/ip.c +++ b/src/backend/libpq/ip.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/libpq/ip.c,v 1.46 2009/06/11 14:48:58 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/libpq/ip.c,v 1.47 2009/06/11 19:00:15 tgl Exp $ * * This file and the IPV6 implementation were initially provided by * Nigel Kukard <nkukard@lbsd.net>, Linux Based Systems Design @@ -74,45 +74,9 @@ pg_getaddrinfo_all(const char *hostname, const char *servname, return getaddrinfo_unix(servname, hintp, result); #endif -#ifndef _AIX /* NULL has special meaning to getaddrinfo(). */ rc = getaddrinfo((!hostname || hostname[0] == '\0') ? NULL : hostname, servname, hintp, result); -#else /* _AIX */ - - /* - * Various versions of AIX have various bugs in getaddrinfo()'s handling - * of the servname parameter, including failing entirely if it's not NULL - * and failing to zero sin_port when it is NULL :-(. Avoid these by - * always passing NULL and handling the port number for ourselves. - */ - rc = getaddrinfo((!hostname || hostname[0] == '\0') ? NULL : hostname, - NULL, hintp, result); - - if (rc == 0) - { - struct addrinfo *addr; - unsigned short port = 0; - - if (servname && *servname) - port = atoi(servname); - - for (addr = *result; addr; addr = addr->ai_next) - { - switch (addr->ai_family) - { - case AF_INET: - ((struct sockaddr_in *) addr->ai_addr)->sin_port = htons(port); - break; -#ifdef HAVE_IPV6 - case AF_INET6: - ((struct sockaddr_in6 *) addr->ai_addr)->sin6_port = htons(port); - break; -#endif - } - } - } -#endif /* _AIX */ return rc; } |