I inserted the following into pgstat.c:
if (bind(pgStatSock, addr->ai_addr, addr->ai_addrlen) < 0) {
/* what type of socket are we trying to bind? */ fprintf(stderr, "Address family is %d\n", addr->ai_addr->sa_family);
... }
This returns a value of 26, which on Solaris is AF_INET6. But the machine I'm using (a V880 running 2.8) has no IPv6 address on any of its interfaces. And addr->ai_addr->sa_data is empty, so it's no surprise why bind() is failing.
I'm not sure why Solaris is giving getaddrinfo_all an IPv6 address, though.
-derek
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend