- Only define HAVE_UNIX_SOCKETS when we HAVE_STRUCT_SOCKADDR_UN, instead of listing OSs that don't have it. I also reverse the check for QNX, BEOS and WIN32. Not sure if it's still needed though. - Define struct sockaddr_storage when it doesn't exist, and changed SockAddr to use that. - Also define a getnameinfo when getaddrinfo isn't found. - Rewrote ClientAuthentication() ipv6 support to use getnameinfo(). - Rewrote parse_hba() ipv6 support to use getaddrinfo(). - parse_hba() now also support address/length (cidr) masks. - Added ipv6 support in ident_inet(). - Fixed getaddrinfo_unix(): - Check the right varible for the return value of calloc() - Make sure we free what we allocated in case of errors. - Removed SockAddr_ntop(), SockAddr_pton() and convSockAddr6to4(). - Fixed mask in pg_hba.conf.sample. - Added address/mask example. - Allowed to listen to more than 1 inet socket. - virtual_host now supports more than 1 address, seperated by a space. - Used IS_AF_UNIX instead of isAF_INETx. - Only try to listen to ipv6 when there is actually an ipv6 address set up. - Only listen for ipv6 addresses on an AF_INET6 socket, if possible. - Added ipv6 support in pgstat_init(). - Fixed getaddrinfo: - Return proper values for ai_socktype and ai_protocol - Work when there is no hints. - Fail if inet_aton() failed. - BackendFork() now uses getnameinfo(). - connectFailureMessage() now uses getnameinfo(). - Removed all obsolete EAI_* constants. - Make connectDBStart go thru all the addresses returned by getaddrinfo2() until it finds one that works. - Only use TCP_NODELAY when it's defined. - Fixed ident_inet() to be rfc compliant by sending \r\n instead of \n. Removed (already commited): - Rewrite getaddrinfo2() to always have the same parameters. - Rewrite StreamServerPort() to use the new getaddrinfo2(). - Rewrite connectDBStart() to use the new getaddrinfo2(). - Fixed getaddrinfo: - bind to INADDR_ANY if no node is specified (AI_PASSIVE) - connect to INADDR_LOOPBACK if no node is specified (!AI_PASSIVE)