Re: Vista/IPv6
От | Andrew Dunstan |
---|---|
Тема | Re: Vista/IPv6 |
Дата | |
Msg-id | 461CF98E.9050903@dunslane.net обсуждение исходный текст |
Ответ на | Re: Vista/IPv6 (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: Vista/IPv6
|
Список | pgsql-hackers |
Peter Eisentraut wrote: > Am Mittwoch, 11. April 2007 16:46 schrieb Magnus Hagander: > >> Point being - if you build on a ipv6 enabled machine, will that binary then >> work at all on a non-ipv6 machine? Consider binaries distributed by the >> installer... Might as well think up the proper fix before we just band-aid >> it for the regression tests.. >> > > The check is done by initdb (not on the build machine) and it checks if > getaddrinfo("::1", ...) works. If that doesn't work then you don't have IPv6 > for all practical purposes. So everything seems to be set up all right. > > There is a configure time and a runtime check. The code is below - note the first #ifdef. cheers andrew #ifdef HAVE_IPV6 /* * Probe to see if there is really any platform support for IPv6, and * comment out the relevant pg_hba line ifnot. This avoids runtime * warnings if getaddrinfo doesn't actually cope with IPv6. Particularly * useful on Windows, where executables built on a machine with IPv6 may * have to run on a machine without. */ { struct addrinfo *gai_result; struct addrinfo hints; int err = 0; #ifdef WIN32 /* need to call WSAStartup before calling getaddrinfo */ WSADATA wsaData; err = WSAStartup(MAKEWORD(2, 2), &wsaData); #endif /* for best results, this code should match parse_hba() */ hints.ai_flags = AI_NUMERICHOST; hints.ai_family= PF_UNSPEC; hints.ai_socktype = 0; hints.ai_protocol = 0; hints.ai_addrlen = 0; hints.ai_canonname= NULL; hints.ai_addr = NULL; hints.ai_next = NULL; if (err != 0 || getaddrinfo("::1", NULL, &hints, &gai_result) != 0) conflines = replace_token(conflines, "host all all ::1", "#host all all ::1"); } #else /* !HAVE_IPV6 */ /* If we didn't compile IPV6 support at all, always comment it out */ conflines = replace_token(conflines, "host all all ::1", "#host all all ::1"); #endif /* HAVE_IPV6 */
В списке pgsql-hackers по дате отправления: