diff options
author | Bruce Momjian | 2004-10-06 09:01:18 +0000 |
---|---|---|
committer | Bruce Momjian | 2004-10-06 09:01:18 +0000 |
commit | c93872d891239b13b3c0c985e3f69bfa5a3cd8a3 (patch) | |
tree | 4f62d8e98fdc26640e606715ec6fd56c40ec222f | |
parent | 513e89b44b86abcd5dce44f51f424fbaa2e0126e (diff) |
Remove pg_hba.conf 'local' line for Win32 because it doesn't support unix domain
connections.
Andrew Dunstan
-rw-r--r-- | src/backend/libpq/pg_hba.conf.sample | 7 | ||||
-rw-r--r-- | src/bin/initdb/initdb.c | 39 |
2 files changed, 42 insertions, 4 deletions
diff --git a/src/backend/libpq/pg_hba.conf.sample b/src/backend/libpq/pg_hba.conf.sample index b0d1895590f..d3213d94587 100644 --- a/src/backend/libpq/pg_hba.conf.sample +++ b/src/backend/libpq/pg_hba.conf.sample @@ -60,8 +60,9 @@ # TYPE DATABASE USER CIDR-ADDRESS METHOD -local all all @authmethod@ -# IPv4-style local connections: +@remove-line-for-win32@# "local" is for Unix domain socket connections only +@remove-line-for-win32@local all all @authmethod@ +# IPv4 local connections: host all all 127.0.0.1/32 @authmethod@ -# IPv6-style local connections: +# IPv6 local connections: host all all ::1/128 @authmethod@ diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 704ce36d8f3..ab61221b1f9 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -39,7 +39,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * Portions taken from FreeBSD. * - * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.54 2004/09/02 17:58:41 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.55 2004/10/06 09:01:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -147,6 +147,9 @@ char backend_exec[MAXPGPATH]; static void *xmalloc(size_t size); static char *xstrdup(const char *s); static char **replace_token(char **lines, char *token, char *replacement); +#ifdef WIN32 +static char **filter_lines_with_token(char **lines, char *token); +#endif static char **readfile(char *path); static void writefile(char *path, char **lines); static int mkdir_p(char *path, mode_t omode); @@ -311,6 +314,34 @@ replace_token(char **lines, char *token, char *replacement) } /* + * make a copy of lines without any that contain the token + * a sort of poor man's grep -v + * + */ +#ifdef WIN32 +static char ** +filter_lines_with_token(char **lines, char *token) +{ + int numlines = 1; + int i, src, dst; + char **result; + + for (i = 0; lines[i]; i++) + numlines++; + + result = (char **) xmalloc(numlines * sizeof(char *)); + + for (src = 0, dst = 0; src < numlines; src++) + { + if (lines[src] == NULL || strstr(lines[src], token) == NULL) + result[dst++] = lines[src]; + } + + return result; +} +#endif + +/* * get the lines from a text file */ static char ** @@ -1093,6 +1124,12 @@ setup_config(void) conflines = readfile(hba_file); +#ifdef WIN32 + conflines = filter_lines_with_token(conflines,"@remove-line-for-win32@"); +#else + conflines = replace_token(conflines,"@remove-line-for-win32@",""); +#endif + #ifndef HAVE_IPV6 conflines = replace_token(conflines, "host all all ::1", |