From ebd61ac03ff50ab69cdb8fc6330f5dca4551ce92 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 13 Nov 2000 23:37:54 +0000 Subject: [PATCH] Remove -k unix socketpath option from client side, allow hostname with leading slash to behave as a unix socket path. --- doc/src/sgml/libpq.sgml | 8 ++--- doc/src/sgml/ref/createdb.sgml | 14 +------- doc/src/sgml/ref/createlang.sgml | 14 +------- doc/src/sgml/ref/createuser.sgml | 14 +------- doc/src/sgml/ref/dropdb.sgml | 14 +------- doc/src/sgml/ref/droplang.sgml | 14 +------- doc/src/sgml/ref/dropuser.sgml | 14 +------- doc/src/sgml/ref/pg_dump.sgml | 18 +--------- doc/src/sgml/ref/pg_dumpall.sgml | 19 ++--------- doc/src/sgml/ref/psql-ref.sgml | 15 +-------- doc/src/sgml/ref/vacuumdb.sgml | 14 +------- src/backend/postmaster/postmaster.c | 6 ++-- src/bin/pg_dump/pg_backup.h | 4 +-- src/bin/pg_dump/pg_backup_archiver.c | 5 ++- src/bin/pg_dump/pg_backup_archiver.h | 1 - src/bin/pg_dump/pg_backup_db.c | 10 ------ src/bin/pg_dump/pg_dump.c | 13 ++------ src/bin/pg_dump/pg_restore.c | 9 ++--- src/bin/psql/command.c | 5 +-- src/bin/psql/common.c | 4 +-- src/bin/psql/help.c | 12 +------ src/bin/psql/prompt.c | 7 +--- src/bin/psql/startup.c | 13 ++------ src/bin/scripts/createdb | 12 +------ src/bin/scripts/createlang.sh | 12 +------ src/bin/scripts/createuser | 12 +------ src/bin/scripts/dropdb | 12 +------ src/bin/scripts/droplang | 12 +------ src/bin/scripts/dropuser | 12 +------ src/bin/scripts/vacuumdb | 12 +------ src/interfaces/libpq/fe-connect.c | 49 +++++++++++++++++++++++----- src/interfaces/libpq/libpq-int.h | 6 ++-- 32 files changed, 82 insertions(+), 304 deletions(-) diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index d9b96b8620..c742df415d 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -1,5 +1,5 @@ @@ -1844,9 +1844,9 @@ Without a host name, libpq will connect using a local Unix domain socket. -PGPORT sets the default port or local Unix domain socket -file extension for communicating with the Postgres -backend. +PGPORT and PGUNIXSOCKET set the default +port or local Unix domain socket file extension for communicating with +the Postgres backend. diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml index d5199e307a..5bcb543938 100644 --- a/doc/src/sgml/ref/createdb.sgml +++ b/doc/src/sgml/ref/createdb.sgml @@ -1,5 +1,5 @@ @@ -56,18 +56,6 @@ Postgres documentation - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - -U, --username username diff --git a/doc/src/sgml/ref/createlang.sgml b/doc/src/sgml/ref/createlang.sgml index 0258646ad7..87d27442e9 100644 --- a/doc/src/sgml/ref/createlang.sgml +++ b/doc/src/sgml/ref/createlang.sgml @@ -1,5 +1,5 @@ @@ -101,18 +101,6 @@ Postgres documentation - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - -U, --username username diff --git a/doc/src/sgml/ref/createuser.sgml b/doc/src/sgml/ref/createuser.sgml index 9845fcba1e..9c7a3a2624 100644 --- a/doc/src/sgml/ref/createuser.sgml +++ b/doc/src/sgml/ref/createuser.sgml @@ -1,5 +1,5 @@ @@ -55,18 +55,6 @@ Postgres documentation - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - -e, --echo diff --git a/doc/src/sgml/ref/dropdb.sgml b/doc/src/sgml/ref/dropdb.sgml index c265c016e9..1eb4c4f46f 100644 --- a/doc/src/sgml/ref/dropdb.sgml +++ b/doc/src/sgml/ref/dropdb.sgml @@ -1,5 +1,5 @@ @@ -55,18 +55,6 @@ Postgres documentation - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - -U, --username username diff --git a/doc/src/sgml/ref/droplang.sgml b/doc/src/sgml/ref/droplang.sgml index 5d75a89fde..2346a0d32d 100644 --- a/doc/src/sgml/ref/droplang.sgml +++ b/doc/src/sgml/ref/droplang.sgml @@ -1,5 +1,5 @@ @@ -101,18 +101,6 @@ Postgres documentation - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - -U, --username username diff --git a/doc/src/sgml/ref/dropuser.sgml b/doc/src/sgml/ref/dropuser.sgml index a2b1e537e5..7f8f7899e5 100644 --- a/doc/src/sgml/ref/dropuser.sgml +++ b/doc/src/sgml/ref/dropuser.sgml @@ -1,5 +1,5 @@ @@ -55,18 +55,6 @@ Postgres documentation - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - -e, --echo diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml index b0ad3e49cf..4406ea94f0 100644 --- a/doc/src/sgml/ref/pg_dump.sgml +++ b/doc/src/sgml/ref/pg_dump.sgml @@ -1,5 +1,5 @@ @@ -25,7 +25,6 @@ Postgres documentation pg_dump [ dbname ] pg_dump [ -h host ] - [ -k path ] [ -p port ] [ -t table ] [ -a ] [ -c ] [ -d ] [ -D ] [ -i ] [ -n ] [ -N ] @@ -206,21 +205,6 @@ pg_dump [ -h host ] - - -k path - - - Specifies the local Unix domain socket file path - on which the postmaster - is listening for connections. - Without this option, the socket path name defaults to - the value of the PGUNIXSOCKET environment - variable (if set), otherwise it is constructed - from the port number. - - - - -p port diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml index 1d78b9008c..f6999059d1 100644 --- a/doc/src/sgml/ref/pg_dumpall.sgml +++ b/doc/src/sgml/ref/pg_dumpall.sgml @@ -1,5 +1,5 @@ @@ -23,7 +23,7 @@ Postgres documentation 1999-07-20 -pg_dumpall [ -h host ] [ -k path ] [ -p port ] [ -a ] [ -d ] [ -D ] [ -O ] [ -s ] [ -u ] [ -v ] [ -x ] [ --accounts-only ] +pg_dumpall [ -h host ] [ -p port ] [ -a ] [ -d ] [ -D ] [ -O ] [ -s ] [ -u ] [ -v ] [ -x ] [ --accounts-only ] @@ -149,21 +149,6 @@ pg_dumpall [ -h host ] [ -k - - -k path - - - Specifies the local Unix domain socket file path - on which the postmaster - is listening for connections. - Without this option, the socket path name defaults to - the value of the PGUNIXSOCKET environment - variable (if set), otherwise it is constructed - from the port number. - - - - -p port diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index ca8d14f6de..1780fcfcc8 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ @@ -1329,19 +1329,6 @@ Access permissions for database "test" - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - - -H, --html diff --git a/doc/src/sgml/ref/vacuumdb.sgml b/doc/src/sgml/ref/vacuumdb.sgml index 7a701f216d..28151190a7 100644 --- a/doc/src/sgml/ref/vacuumdb.sgml +++ b/doc/src/sgml/ref/vacuumdb.sgml @@ -1,5 +1,5 @@ @@ -136,18 +136,6 @@ Postgres documentation - - -k, --unixsocket path - - - Specifies the Unix-domain socket on which the - postmaster is running. - Without this option, the socket is created in /tmp - based on the port number. - - - - -U username --username username diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index c6b645b15b..b9d4973013 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.183 2000/11/13 15:18:11 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.184 2000/11/13 23:37:52 momjian Exp $ * * NOTES * @@ -1334,8 +1334,8 @@ get_host_port(void) { char msg[1024]; snprintf(msg, sizeof(msg), - "FATAL: get_host_port: gethostbyname(%s) failed: %s\n", - HostName, hstrerror(h_errno)); + "FATAL: get_host_port: gethostbyname(%s) failed\n", + HostName); fputs(msg, stderr); pqdebug("%s", msg); exit(1); diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h index ffe071a665..8fceb26c8e 100644 --- a/src/bin/pg_dump/pg_backup.h +++ b/src/bin/pg_dump/pg_backup.h @@ -99,9 +99,8 @@ typedef struct _restoreOptions { int useDB; char *dbname; - char *pghost; char *pgport; - char *pgunixsocket; + char *pghost; int ignoreVersion; int requirePassword; @@ -123,7 +122,6 @@ PGconn* ConnectDatabase(Archive *AH, const char* dbname, const char* pghost, const char* pgport, - const char* pgunixsocket, const int reqPwd, const int ignoreVersion); diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 085a2eb329..d8a969b41e 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -131,9 +131,8 @@ void RestoreArchive(Archive* AHX, RestoreOptions *ropt) if (AH->version < K_VERS_1_3) die_horribly(AH, "Direct database connections are not supported in pre-1.3 archives"); - ConnectDatabase(AHX, ropt->dbname, ropt->pghost, ropt->pgport, - ropt->pgunixsocket, ropt->requirePassword, - ropt->ignoreVersion); + ConnectDatabase(AHX, ropt->dbname, ropt->pghost, ropt->pgport, + ropt->requirePassword, ropt->ignoreVersion); /* * If no superuser was specified then see if the current user will do... diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h index a938f5e339..2c7291e6c6 100644 --- a/src/bin/pg_dump/pg_backup_archiver.h +++ b/src/bin/pg_dump/pg_backup_archiver.h @@ -187,7 +187,6 @@ typedef struct _archiveHandle { char *archdbname; /* DB name *read* from archive */ char *pghost; char *pgport; - char *pgunixsocket; PGconn *connection; PGconn *blobConnection; /* Connection for BLOB xref */ int txActive; /* Flag set if TX active on connection */ diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c index 082edd5824..72189eb29f 100644 --- a/src/bin/pg_dump/pg_backup_db.c +++ b/src/bin/pg_dump/pg_backup_db.c @@ -273,7 +273,6 @@ PGconn* ConnectDatabase(Archive *AHX, const char* dbname, const char* pghost, const char* pgport, - const char* pgunixsocket, const int reqPwd, const int ignoreVersion) { @@ -308,15 +307,6 @@ PGconn* ConnectDatabase(Archive *AHX, else AH->pgport = NULL; - if (pgunixsocket != NULL) - { - AH->pgport = strdup(pgunixsocket); - sprintf(tmp_string, "unixsocket=%s ", AH->pgunixsocket); - strcat(connect_string, tmp_string); - } - else - AH->pgunixsocket = NULL; - sprintf(tmp_string, "dbname=%s ", AH->dbname); strcat(connect_string, tmp_string); diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 738425a3eb..a7c1ca9e8a 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -22,7 +22,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.178 2000/11/13 15:18:13 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.179 2000/11/13 23:37:52 momjian Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -200,7 +200,6 @@ help(const char *progname) " -F, --format {c|f|p} output file format (custom, files, plain text)\n" " -h, --host server host name\n" " -i, --ignore-version proceed when database version != pg_dump version\n" - " -k, --unixsocket server Unix-domain socket name\n" " -n, --no-quotes suppress most quotes around identifiers\n" " -N, --quotes enable most quotes around identifiers\n" " -o, --oids dump object ids (oids)\n" @@ -227,7 +226,6 @@ help(const char *progname) " -F {c|f|p} output file format (custom, files, plain text)\n" " -h server host name\n" " -i proceed when database version != pg_dump version\n" - " -k server Unix-domain socket name\n" " -n suppress most quotes around identifiers\n" " -N enable most quotes around identifiers\n" " -o dump object ids (oids)\n" @@ -631,7 +629,6 @@ main(int argc, char **argv) const char *dbname = NULL; const char *pghost = NULL; const char *pgport = NULL; - const char *pgunixsocket = NULL; char *tablename = NULL; bool oids = false; TableInfo *tblinfo; @@ -661,7 +658,6 @@ main(int argc, char **argv) {"attribute-inserts", no_argument, NULL, 'D'}, {"host", required_argument, NULL, 'h'}, {"ignore-version", no_argument, NULL, 'i'}, - {"unixsocket", required_argument, NULL, 'k'}, {"no-reconnect", no_argument, NULL, 'R'}, {"no-quotes", no_argument, NULL, 'n'}, {"quotes", no_argument, NULL, 'N'}, @@ -756,10 +752,6 @@ main(int argc, char **argv) ignore_version = true; break; - case 'k': /* server Unix-domain socket */ - pgunixsocket = optarg; - break; - case 'n': /* Do not force double-quotes on * identifiers */ force_quotes = false; @@ -956,8 +948,7 @@ main(int argc, char **argv) dbname = argv[optind]; /* Open the database using the Archiver, so it knows about it. Errors mean death */ - g_conn = ConnectDatabase(g_fout, dbname, pghost, pgport, pgunixsocket, - use_password, ignore_version); + g_conn = ConnectDatabase(g_fout, dbname, pghost, pgport, use_password, ignore_version); /* * Start serializable transaction to dump consistent data diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index cafb7e9df6..458482ed51 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -101,7 +101,6 @@ struct option cmdopts[] = { { "ignore-version", 0, NULL, 'i'}, { "index", 2, NULL, 'I'}, { "list", 0, NULL, 'l'}, - { "unixsocket", 1, NULL, 'k' }, { "no-acl", 0, NULL, 'x' }, { "no-owner", 0, NULL, 'O'}, { "no-reconnect", 0, NULL, 'R' }, @@ -133,9 +132,9 @@ int main(int argc, char **argv) progname = *argv; #ifdef HAVE_GETOPT_LONG - while ((c = getopt_long(argc, argv, "acCd:f:F:h:i:k:lNoOp:P:rRsS:t:T:uU:vx", cmdopts, NULL)) != EOF) + while ((c = getopt_long(argc, argv, "acCd:f:F:h:i:lNoOp:P:rRsS:t:T:uU:vx", cmdopts, NULL)) != EOF) #else - while ((c = getopt(argc, argv, "acCd:f:F:h:i:k:lNoOp:P:rRsS:t:T:uU:vx")) != -1) + while ((c = getopt(argc, argv, "acCd:f:F:h:i:lNoOp:P:rRsS:t:T:uU:vx")) != -1) #endif { switch (c) @@ -171,10 +170,6 @@ int main(int argc, char **argv) case 'i': opts->ignoreVersion = 1; break; - case 'k': - if (strlen(optarg) != 0) - opts->pgunixsocket = strdup(optarg); - break; case 'N': opts->origOrder = 1; break; diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index 65c05a4ac9..0d3a1f3a89 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.37 2000/11/13 15:18:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.38 2000/11/13 23:37:53 momjian Exp $ */ #include "postgres.h" #include "command.h" @@ -1202,7 +1202,6 @@ do_connect(const char *new_dbname, const char *new_user) SetVariable(pset.vars, "USER", NULL); SetVariable(pset.vars, "HOST", NULL); SetVariable(pset.vars, "PORT", NULL); - SetVariable(pset.vars, "UNIXSOCKET", NULL); SetVariable(pset.vars, "ENCODING", NULL); /* If dbname is "" then use old name, else new one (even if NULL) */ @@ -1232,7 +1231,6 @@ do_connect(const char *new_dbname, const char *new_user) do { need_pass = false; - /* FIXME use PQconnectdb to support passing the Unix socket */ pset.db = PQsetdbLogin(PQhost(oldconn), PQport(oldconn), NULL, NULL, dbparam, userparam, pwparam); @@ -1309,7 +1307,6 @@ do_connect(const char *new_dbname, const char *new_user) SetVariable(pset.vars, "USER", PQuser(pset.db)); SetVariable(pset.vars, "HOST", PQhost(pset.db)); SetVariable(pset.vars, "PORT", PQport(pset.db)); - SetVariable(pset.vars, "UNIXSOCKET", PQunixsocket(pset.db)); SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding)); pset.issuper = test_superuser(PQuser(pset.db)); diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index da0542df59..658854fc08 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.24 2000/11/13 15:18:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.25 2000/11/13 23:37:53 momjian Exp $ */ #include "postgres.h" #include "common.h" @@ -329,7 +329,6 @@ PSQLexec(const char *query) SetVariable(pset.vars, "DBNAME", NULL); SetVariable(pset.vars, "HOST", NULL); SetVariable(pset.vars, "PORT", NULL); - SetVariable(pset.vars, "UNIXSOCKET", NULL); SetVariable(pset.vars, "USER", NULL); SetVariable(pset.vars, "ENCODING", NULL); return NULL; @@ -509,7 +508,6 @@ SendQuery(const char *query) SetVariable(pset.vars, "DBNAME", NULL); SetVariable(pset.vars, "HOST", NULL); SetVariable(pset.vars, "PORT", NULL); - SetVariable(pset.vars, "UNIXSOCKET", NULL); SetVariable(pset.vars, "USER", NULL); SetVariable(pset.vars, "ENCODING", NULL); return false; diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c index b9ee9caa67..21bcdcafa7 100644 --- a/src/bin/psql/help.c +++ b/src/bin/psql/help.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.33 2000/11/13 15:18:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.34 2000/11/13 23:37:53 momjian Exp $ */ #include "postgres.h" #include "help.h" @@ -103,16 +103,6 @@ usage(void) puts(")"); puts(" -H HTML table output mode (-P format=html)"); - - /* Display default Unix-domain socket */ - env = getenv("PGUNIXSOCKET"); - printf(" -k Specify Unix domain socket name (default: "); - if (env) - fputs(env, stdout); - else - fputs("computed from the port", stdout); - puts(")"); - puts(" -l List available databases, then exit"); puts(" -n Disable readline"); puts(" -o Send query output to filename (or |pipe)"); diff --git a/src/bin/psql/prompt.c b/src/bin/psql/prompt.c index d29bc12ddb..4788c2ce12 100644 --- a/src/bin/psql/prompt.c +++ b/src/bin/psql/prompt.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.14 2000/11/13 15:18:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.15 2000/11/13 23:37:53 momjian Exp $ */ #include "postgres.h" #include "prompt.h" @@ -190,11 +190,6 @@ get_prompt(promptStatus_t status) if (pset.db && PQport(pset.db)) strncpy(buf, PQport(pset.db), MAX_PROMPT_SIZE); break; - /* DB server Unix-domain socket */ - case '<': - if (pset.db && PQunixsocket(pset.db)) - strncpy(buf, PQunixsocket(pset.db), MAX_PROMPT_SIZE); - break; /* DB server user name */ case 'n': if (pset.db) diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index 9b0e60f0a3..46e476a2ae 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.38 2000/11/13 15:18:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.39 2000/11/13 23:37:53 momjian Exp $ */ #include "postgres.h" @@ -65,7 +65,6 @@ struct adhoc_opts char *dbname; char *host; char *port; - char *unixsocket; char *username; enum _actions action; char *action_string; @@ -162,7 +161,6 @@ main(int argc, char *argv[]) do { need_pass = false; - /* FIXME use PQconnectdb to allow setting the unix socket */ pset.db = PQsetdbLogin(options.host, options.port, NULL, NULL, options.action == ACT_LIST_DB ? "template1" : options.dbname, username, password); @@ -208,7 +206,6 @@ main(int argc, char *argv[]) SetVariable(pset.vars, "USER", PQuser(pset.db)); SetVariable(pset.vars, "HOST", PQhost(pset.db)); SetVariable(pset.vars, "PORT", PQport(pset.db)); - SetVariable(pset.vars, "UNIXSOCKET", PQunixsocket(pset.db)); SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding)); #ifndef WIN32 @@ -323,7 +320,6 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) {"field-separator", required_argument, NULL, 'F'}, {"host", required_argument, NULL, 'h'}, {"html", no_argument, NULL, 'H'}, - {"unixsocket", required_argument, NULL, 'k'}, {"list", no_argument, NULL, 'l'}, {"no-readline", no_argument, NULL, 'n'}, {"output", required_argument, NULL, 'o'}, @@ -357,14 +353,14 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) memset(options, 0, sizeof *options); #ifdef HAVE_GETOPT_LONG - while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:lh:Hk:no:p:P:qRsStT:uU:v:VWxX?", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWxX?", long_options, &optindex)) != -1) #else /* not HAVE_GETOPT_LONG */ /* * Be sure to leave the '-' in here, so we can catch accidental long * options. */ - while ((c = getopt(argc, argv, "aAc:d:eEf:F:lh:Hk:no:p:P:qRsStT:uU:v:VWxX?-")) != -1) + while ((c = getopt(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWxX?-")) != -1) #endif /* not HAVE_GETOPT_LONG */ { switch (c) @@ -410,9 +406,6 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) case 'l': options->action = ACT_LIST_DB; break; - case 'k': - options->unixsocket = optarg; - break; case 'n': options->no_readline = true; break; diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb index 213913ba89..e506af5885 100644 --- a/src/bin/scripts/createdb +++ b/src/bin/scripts/createdb @@ -11,7 +11,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.10 2000/11/13 15:18:14 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.11 2000/11/13 23:37:53 momjian Exp $ # #------------------------------------------------------------------------- @@ -50,15 +50,6 @@ do --port=*) PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'` ;; - --unixsocket|-k) - PSQLOPT="$PSQLOPT -k $2" - shift;; - -k*) - PSQLOPT="$PSQLOPT $1" - ;; - --unixsocket=*) - PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'` - ;; --username|-U) PSQLOPT="$PSQLOPT -U $2" shift;; @@ -123,7 +114,6 @@ if [ "$usage" ]; then echo " -E, --encoding=ENCODING Multibyte encoding for the database" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" - echo " -k, --unixsocket=PATH Database server Unix-domain socket name" echo " -U, --username=USERNAME Username to connect as" echo " -W, --password Prompt for password" echo " -e, --echo Show the query being sent to the backend" diff --git a/src/bin/scripts/createlang.sh b/src/bin/scripts/createlang.sh index c22dcba652..3fc0a1b02f 100644 --- a/src/bin/scripts/createlang.sh +++ b/src/bin/scripts/createlang.sh @@ -8,7 +8,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.18 2000/11/13 15:18:14 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.19 2000/11/13 23:37:53 momjian Exp $ # #------------------------------------------------------------------------- @@ -65,15 +65,6 @@ do --port=*) PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'` ;; - --unixsocket|-k) - PSQLOPT="$PSQLOPT -k $2" - shift;; - -k*) - PSQLOPT="$PSQLOPT $1" - ;; - --unixsocket=*) - PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'` - ;; --username|-U) PSQLOPT="$PSQLOPT -U $2" shift;; @@ -135,7 +126,6 @@ if [ "$usage" ]; then echo "Options:" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" - echo " -k, --unixsocket=PATH Database server Unix-domain socket name" echo " -U, --username=USERNAME Username to connect as" echo " -W, --password Prompt for password" echo " -d, --dbname=DBNAME Database to install language in" diff --git a/src/bin/scripts/createuser b/src/bin/scripts/createuser index 198e4b81cf..e3859eb2a7 100644 --- a/src/bin/scripts/createuser +++ b/src/bin/scripts/createuser @@ -8,7 +8,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.13 2000/11/13 15:18:14 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.14 2000/11/13 23:37:53 momjian Exp $ # # Note - this should NOT be setuid. # @@ -63,15 +63,6 @@ do --port=*) PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'` ;; - --unixsocket|-k) - PSQLOPT="$PSQLOPT -k $2" - shift;; - -k*) - PSQLOPT="$PSQLOPT $1" - ;; - --unixsocket=*) - PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'` - ;; # Note: These two specify the user to connect as (like in psql), # not the user you're creating. --username|-U) @@ -144,7 +135,6 @@ if [ "$usage" ]; then echo " -P, --pwprompt Assign a password to new user" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" - echo " -k, --unixsocket=PATH Database server Unix-domain socket name" echo " -U, --username=USERNAME Username to connect as (not the one to create)" echo " -W, --password Prompt for password to connect" echo " -e, --echo Show the query being sent to the backend" diff --git a/src/bin/scripts/dropdb b/src/bin/scripts/dropdb index 586b62ac7f..35bb08a71a 100644 --- a/src/bin/scripts/dropdb +++ b/src/bin/scripts/dropdb @@ -10,7 +10,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.8 2000/11/13 15:18:14 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.9 2000/11/13 23:37:53 momjian Exp $ # #------------------------------------------------------------------------- @@ -59,15 +59,6 @@ do --port=*) PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'` ;; - --unixsocket|-k) - PSQLOPT="$PSQLOPT -k $2" - shift;; - -k*) - PSQLOPT="$PSQLOPT $1" - ;; - --unixsocket=*) - PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'` - ;; --username|-U) PSQLOPT="$PSQLOPT -U $2" shift;; @@ -112,7 +103,6 @@ if [ "$usage" ]; then echo "Options:" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" - echo " -k, --unixsocket=PATH Database server Unix-domain socket name" echo " -U, --username=USERNAME Username to connect as" echo " -W, --password Prompt for password" echo " -i, --interactive Prompt before deleting anything" diff --git a/src/bin/scripts/droplang b/src/bin/scripts/droplang index 46856e4241..023ae4fc99 100644 --- a/src/bin/scripts/droplang +++ b/src/bin/scripts/droplang @@ -8,7 +8,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.9 2000/11/13 15:18:14 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.10 2000/11/13 23:37:53 momjian Exp $ # #------------------------------------------------------------------------- @@ -65,15 +65,6 @@ do --port=*) PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'` ;; - --unixsocket|-k) - PSQLOPT="$PSQLOPT -k $2" - shift;; - -k*) - PSQLOPT="$PSQLOPT $1" - ;; - --unixsocket=*) - PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'` - ;; --username|-U) PSQLOPT="$PSQLOPT -U $2" shift;; @@ -122,7 +113,6 @@ if [ "$usage" ]; then echo "Options:" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" - echo " -k, --unixsocket=PATH Database server Unix-domain socket name" echo " -U, --username=USERNAME Username to connect as" echo " -W, --password Prompt for password" echo " -d, --dbname=DBNAME Database to remove language from" diff --git a/src/bin/scripts/dropuser b/src/bin/scripts/dropuser index 4aa858124b..e7be5dc867 100644 --- a/src/bin/scripts/dropuser +++ b/src/bin/scripts/dropuser @@ -8,7 +8,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.8 2000/11/13 15:18:14 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.9 2000/11/13 23:37:53 momjian Exp $ # # Note - this should NOT be setuid. # @@ -59,15 +59,6 @@ do --port=*) PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'` ;; - --unixsocket|-k) - PSQLOPT="$PSQLOPT -k $2" - shift;; - -k*) - PSQLOPT="$PSQLOPT $1" - ;; - --unixsocket=*) - PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'` - ;; # Note: These two specify the user to connect as (like in psql), # not the user you're dropping. --username|-U) @@ -114,7 +105,6 @@ if [ "$usage" ]; then echo "Options:" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" - echo " -k, --unixsocket=PATH Database server Unix-domain socket name" echo " -U, --username=USERNAME Username to connect as (not the one to drop)" echo " -W, --password Prompt for password to connect" echo " -i, --interactive Prompt before deleting anything" diff --git a/src/bin/scripts/vacuumdb b/src/bin/scripts/vacuumdb index fb1db8bfe6..0981f31e72 100644 --- a/src/bin/scripts/vacuumdb +++ b/src/bin/scripts/vacuumdb @@ -11,7 +11,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.11 2000/11/13 15:18:14 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.12 2000/11/13 23:37:53 momjian Exp $ # #------------------------------------------------------------------------- @@ -52,15 +52,6 @@ do --port=*) PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'` ;; - --unixsocket|-k) - PSQLOPT="$PSQLOPT -k $2" - shift;; - -k*) - PSQLOPT="$PSQLOPT $1" - ;; - --unixsocket=*) - PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'` - ;; --username|-U) PSQLOPT="$PSQLOPT -U $2" shift;; @@ -130,7 +121,6 @@ if [ "$usage" ]; then echo "Options:" echo " -h, --host=HOSTNAME Database server host" echo " -p, --port=PORT Database server port" - echo " -k, --unixsocket=PATH Database server Unix-domain socket name" echo " -U, --username=USERNAME Username to connect as" echo " -W, --password Prompt for password" echo " -d, --dbname=DBNAME Database to vacuum" diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index b0447285d4..9c720c12a1 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.145 2000/11/13 15:18:15 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.146 2000/11/13 23:37:53 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -331,6 +331,25 @@ PQconnectStart(const char *conninfo) */ PQconninfoFree(connOptions); + /* ---------- + * Allow unix socket specification in the host name + * ---------- + */ + if (conn->pghost && conn->pghost[0] == '/') + { + if (conn->pgunixsocket) + free(conn->pgunixsocket); + conn->pgunixsocket = conn->pghost; + conn->pghost = NULL; + } + if (conn->pghostaddr && conn->pghostaddr[0] == '/') + { + if (conn->pgunixsocket) + free(conn->pgunixsocket); + conn->pgunixsocket = conn->pghostaddr; + conn->pghostaddr = NULL; + } + /* ---------- * Connect to the database * ---------- @@ -443,13 +462,25 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions, else conn->pgport = strdup(pgport); -#if FIX_ME - /* we need to modify the function to accept a unix socket path */ - if (pgunixsocket) - conn->pgunixsocket = strdup(pgunixsocket); - else if ((tmp = getenv("PGUNIXSOCKET")) != NULL) - conn->pgunixsocket = strdup(tmp); -#endif + /* ---------- + * We don't allow unix socket path as a function parameter. + * This allows unix socket specification in the host name. + * ---------- + */ + if (conn->pghost && conn->pghost[0] == '/') + { + if (conn->pgunixsocket) + free(conn->pgunixsocket); + conn->pgunixsocket = conn->pghost; + conn->pghost = NULL; + } + if (conn->pghostaddr && conn->pghostaddr[0] == '/') + { + if (conn->pgunixsocket) + free(conn->pgunixsocket); + conn->pgunixsocket = conn->pghostaddr; + conn->pghostaddr = NULL; + } if (pgtty == NULL) { @@ -778,7 +809,7 @@ connectDBStart(PGconn *conn) { printfPQExpBuffer(&conn->errorMessage, "connectDBStart() -- " - "invalid host address: %s\n", conn->pghostaddr); + "invalid host address: %s\n", conn->pghostaddr); goto connect_errReturn; } diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index a7c6acb952..5c1cb86ffe 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -12,7 +12,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: libpq-int.h,v 1.28 2000/11/13 15:18:15 momjian Exp $ + * $Id: libpq-int.h,v 1.29 2000/11/13 23:37:54 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -203,8 +203,8 @@ struct pg_conn * numbers-and-dots notation. Takes * precedence over above. */ char *pgport; /* the server's communication port */ - char *pgunixsocket; /* the Unix-domain socket that the server is listening on; - * if NULL, uses a default constructed from pgport */ + char *pgunixsocket; /* the Unix-domain socket that the server is listening on; + * if NULL, uses a default constructed from pgport */ char *pgtty; /* tty on which the backend messages is * displayed (NOT ACTUALLY USED???) */ char *pgoptions; /* options to start the backend with */