Re: pg_hba.conf additional comment re local line - Mailing list pgsql-patches

From Andrew Dunstan
Subject Re: pg_hba.conf additional comment re local line
Date
Msg-id 4151F0E8.2080002@dunslane.net
Whole thread Raw
In response to pg_hba.conf additional comment re local line  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: pg_hba.conf additional comment re local line  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-patches
The original of this seems to have gotten lost in the ether somewhere.
It might turn up some day ...

andrew

Tom Lane wrote:

>Andrew Dunstan <andrew@dunslane.net> writes:
>
>
>>The attached tiny patch will possibly help to avoid some confusion by
>>Windows users about the "local" line in pg_hba.conf (and thus help
>>reduce queries to us ;-) ).
>>
>>
>
>I was wondering if we could teach initdb to remove that line altogether
>in Windows installations.
>
>
>
>

I think this does what Tom and Peter suggested. I don't have a Windows
box to test it on, though.

cheers

andrew


Index: src/backend/libpq/pg_hba.conf.sample
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/backend/libpq/pg_hba.conf.sample,v
retrieving revision 1.53
diff -c -w -r1.53 pg_hba.conf.sample
*** src/backend/libpq/pg_hba.conf.sample    26 Aug 2004 16:50:05 -0000    1.53
--- src/backend/libpq/pg_hba.conf.sample    22 Sep 2004 14:17:41 -0000
***************
*** 60,67 ****

  # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

! local   all         all                               @authmethod@
! # IPv4-style local connections:
  host    all         all         127.0.0.1/32          @authmethod@
! # IPv6-style local connections:
  host    all         all         ::1/128               @authmethod@
--- 60,68 ----

  # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

! @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 local connections:
  host    all         all         ::1/128               @authmethod@
Index: src/bin/initdb/initdb.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/initdb/initdb.c,v
retrieving revision 1.54
diff -c -w -r1.54 initdb.c
*** src/bin/initdb/initdb.c    2 Sep 2004 17:58:41 -0000    1.54
--- src/bin/initdb/initdb.c    22 Sep 2004 14:17:42 -0000
***************
*** 147,152 ****
--- 147,153 ----
  static void *xmalloc(size_t size);
  static char *xstrdup(const char *s);
  static char **replace_token(char **lines, char *token, char *replacement);
+ static char **filter_lines_with_token(char **lines, char *token);
  static char **readfile(char *path);
  static void writefile(char *path, char **lines);
  static int    mkdir_p(char *path, mode_t omode);
***************
*** 311,316 ****
--- 312,348 ----
  }

  /*
+  * make a copy of lines without any that contain the token
+  * a sort of poor man's grep -v
+  *
+  */
+
+ 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;
+ }
+
+ /*
   * get the lines from a text file
   */
  static char **
***************
*** 1093,1098 ****
--- 1125,1136 ----

      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",


pgsql-patches by date:

Previous
From: Alvaro Herrera
Date:
Subject: ALTER TABLE .. OWNER TO and sequences
Next
From: Dominic Mitchell
Date:
Subject: libpq SSL documentation