aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2011-04-13 22:20:31 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2011-04-13 22:25:27 +0300
commit40e64017f3a4f1f7547dcbc62c2dcf80511ff842 (patch)
tree96618fbfa422bc11b59e7c811bfc09da46a52ece
parent54685b1c2b356b4b9c0938f6b8dcc52e173c0400 (diff)
downloadpostgresql-40e64017f3a4f1f7547dcbc62c2dcf80511ff842.tar.gz
postgresql-40e64017f3a4f1f7547dcbc62c2dcf80511ff842.zip
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.
-rw-r--r--src/backend/libpq/ip.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/libpq/ip.c b/src/backend/libpq/ip.c
index 1897b959c81..cc6c2abac68 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