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.
This commit is contained in:
Heikki Linnakangas 2011-04-13 22:20:31 +03:00
parent 54685b1c2b
commit 40e64017f3
1 changed files with 7 additions and 1 deletions

View File

@ -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