Windows needs WSAStartup() before getaddrinfo() will work. Andrew Dunstan

This commit is contained in:
Tom Lane 2005-08-27 18:44:03 +00:00
parent 5a7d36973a
commit 9e56c5a4cf
1 changed files with 10 additions and 2 deletions

View File

@ -42,7 +42,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* Portions taken from FreeBSD. * Portions taken from FreeBSD.
* *
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.96 2005/08/25 02:22:59 tgl Exp $ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.97 2005/08/27 18:44:03 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -1221,6 +1221,13 @@ setup_config(void)
{ {
struct addrinfo *gai_result; struct addrinfo *gai_result;
struct addrinfo hints; 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() */ /* for best results, this code should match parse_hba() */
hints.ai_flags = AI_NUMERICHOST; hints.ai_flags = AI_NUMERICHOST;
@ -1232,7 +1239,8 @@ setup_config(void)
hints.ai_addr = NULL; hints.ai_addr = NULL;
hints.ai_next = NULL; hints.ai_next = NULL;
if (getaddrinfo("::1", NULL, &hints, &gai_result) != 0) if (err != 0 ||
getaddrinfo("::1", NULL, &hints, &gai_result) != 0)
conflines = replace_token(conflines, conflines = replace_token(conflines,
"host all all ::1", "host all all ::1",
"#host all all ::1"); "#host all all ::1");