From: Bruce Momjian Date: Thu, 19 Aug 2004 00:00:34 +0000 (+0000) Subject: Don't use get_home_path so libpq doesn't pull path.c into the library. X-Git-Tag: REL8_0_0BETA2~98 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=84f878f5cd1746899a4c209caae2ee20bd30969c;p=postgresql Don't use get_home_path so libpq doesn't pull path.c into the library. --- diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index 06c9330643..c3f2a70acf 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -1,5 +1,5 @@ @@ -136,7 +136,8 @@ PGconn *PQconnectdb(const char *conninfo); likely to fail if libpq is passed a host name that is not the name of the machine at hostaddr.) Also, host rather than hostaddr is used to identify - the connection in $HOME/.pgpass. + the connection in $HOME/.pgpass (or + %USERPROFILE%/.pgpass on Win32). Without either a host name or host address, diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 319563d92e..5e721ed2d9 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.281 2004/08/18 02:59:11 momjian Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.282 2004/08/19 00:00:34 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -3093,7 +3093,7 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username) { FILE *fp; char *pgpassfile; - char home[MAXPGPATH]; + char *home; struct stat stat_buf; #define LINELEN NAMEDATALEN*5 @@ -3111,10 +3111,13 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username) if (port == NULL) port = DEF_PGPORT_STR; - /* Look for it in the home dir */ - if (!get_home_path(home)) + /* + * Look for it in the home dir. + * We don't use get_home_path() so we don't pull path.c into our library. + */ + if (!(home = getenv(HOMEDIR))) return NULL; - + pgpassfile = malloc(strlen(home) + 1 + strlen(PGPASSFILE) + 1); if (!pgpassfile) { @@ -3122,7 +3125,11 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username) return NULL; } +#ifndef WIN32 sprintf(pgpassfile, "%s/%s", home, PGPASSFILE); +#else + sprintf(pgpassfile, "%s\\%s", home, PGPASSFILE); +#endif /* If password file cannot be opened, ignore it. */ if (stat(pgpassfile, &stat_buf) == -1)