From: Heikki Linnakangas Date: Wed, 13 Apr 2011 19:20:31 +0000 (+0300) Subject: On HP/UX, the structs used by ioctl(SIOCGLIFCONF) are named differently X-Git-Tag: REL9_1_BETA1~102 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=40e64017f3a4f1f7547dcbc62c2dcf80511ff842;p=postgresql On HP/UX, the structs used by ioctl(SIOCGLIFCONF) are named differently than on other platforms, and only IPv6 addresses are returned. Because of those two issues, fall back to ioctl(SIOCGIFCONF) on HP/UX, so that it at least compiles and finds IPv4 addresses. This function is currently only used for interpreting samehost/samenet in pg_hba.conf, which isn't that critical. --- diff --git a/src/backend/libpq/ip.c b/src/backend/libpq/ip.c index 1897b959c8..cc6c2abac6 100644 --- a/src/backend/libpq/ip.c +++ b/src/backend/libpq/ip.c @@ -638,9 +638,15 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data) /* * SIOCGIFCONF does not return IPv6 addresses on Solaris * and HP/UX. So we prefer SIOCGLIFCONF if it's available. + * + * On HP/UX, however, it *only* returns IPv6 addresses, + * and the structs are named slightly differently too. + * We'd have to do another call with SIOCGIFCONF to get the + * IPv4 addresses as well. We don't currently bother, just + * fall back to SIOCGIFCONF on HP/UX. */ -#if defined(SIOCGLIFCONF) +#if defined(SIOCGLIFCONF) && !defined(__hpux) /* * Enumerate the system's network interface addresses and call the callback