Prevent service dbname from defaulting to service name, per bug report
authorBruce Momjian
Fri, 19 Dec 2003 21:50:54 +0000 (21:50 +0000)
committerBruce Momjian
Fri, 19 Dec 2003 21:50:54 +0000 (21:50 +0000)
from Michael Fuhr

src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/pg_service.conf.sample

index 46b9cf80d5f0e627df13a77f3c559d6b88a455af..ed996619cbfaf1c1ea32caf7e1a7966f54f3a7cd 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.264 2003/11/29 19:52:11 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.265 2003/12/19 21:50:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2367,7 +2367,7 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
 {
    char       *service = conninfo_getval(options, "service");
    char       *serviceFile = SYSCONFDIR "/pg_service.conf";
-   int         group_found = 0;
+   bool        group_found = false;
    int         linenr = 0,
                i;
 
@@ -2431,9 +2431,9 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
 
                if (strncmp(line + 1, service, strlen(service)) == 0 &&
                    line[strlen(service) + 1] == ']')
-                   group_found = 1;
+                   group_found = true;
                else
-                   group_found = 0;
+                   group_found = false;
            }
            else
            {
@@ -2445,7 +2445,7 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
                     */
                    char       *key,
                               *val;
-                   int         found_keyword;
+                   bool        found_keyword;
 
                    key = line;
                    val = strchr(line, '=');
@@ -2460,32 +2460,18 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
                    }
                    *val++ = '\0';
 
-                   /*
-                    * If not already set, set the database name to the
-                    * name of the service
-                    */
-                   for (i = 0; options[i].keyword; i++)
-                   {
-                       if (strcmp(options[i].keyword, "dbname") == 0)
-                       {
-                           if (options[i].val == NULL)
-                               options[i].val = strdup(service);
-                           break;
-                       }
-                   }
-
                    /*
                     * Set the parameter --- but don't override any
                     * previous explicit setting.
                     */
-                   found_keyword = 0;
+                   found_keyword = false;
                    for (i = 0; options[i].keyword; i++)
                    {
                        if (strcmp(options[i].keyword, key) == 0)
                        {
                            if (options[i].val == NULL)
                                options[i].val = strdup(val);
-                           found_keyword = 1;
+                           found_keyword = true;
                            break;
                        }
                    }
index d5d486f904a9530093c9176775248f2c4c23445a..e15d79b91ea0a9924bed4a8f55906bfc7a1268f7 100644 (file)
@@ -5,12 +5,12 @@
 # multiple services in this file.  Each starts with a service name in  
 # brackets.  Subsequent lines have connection configuration parameters of
 # the pattern  "param=value".  A sample configuration for template1 is 
-# included in this file.  If no database name is specified, it is assumed 
-# to match the service name.  Lines beginning with '#' are comments.
+# included in this file.  Lines beginning with '#' are comments.
 #
 # Copy this to your sysconf directory (typically /usr/local/pgsql/etc) and
 # rename it pg_service.conf.
 #
 #
 #[template1]
+#dbname=template1
 #user=postgres