Prevent service dbname from defaulting to service name, per bug report

from Michael Fuhr
This commit is contained in:
Bruce Momjian 2003-12-19 21:50:54 +00:00
parent cb95ec2f7a
commit 580cae7567
2 changed files with 9 additions and 23 deletions

View 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;
}
}

View 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