Re: [HACKERS] DefaultHost

From: Goran Thyni <goran(at)bildbasen(dot)se>
To: E(dot)Mergl(at)bawue(dot)de
Cc: maillist(at)candle(dot)pha(dot)pa(dot)us, pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] DefaultHost
Date: 1998-01-10 15:24:52
Message-ID: 19980110152452.6095.qmail@guevara.bildbasen.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


OK, here comes a patch, DBD::Pg (and possibly other 3rd party clients)
can connect to unix sockets.
Patch is against current source tree.

Background:
libpq set some policy for client, which it should not
IMHO. It prevent some 3rd party clients to connect with
unix domain sockets etc.

regards,
--
---------------------------------------------
Göran Thyni, sysadm, JMS Bildbasen, Kiruna

------------------------- snip ---------------------------------

diff -cr pg-sup/pgsql/src/interfaces/libpq/fe-connect.c pgsql-hack/src/interfaces/libpq/fe-connect.c
*** pg-sup/pgsql/src/interfaces/libpq/fe-connect.c Fri Dec 5 17:33:44 1997
--- pgsql-hack/src/interfaces/libpq/fe-connect.c Sat Jan 10 16:09:37 1998
***************
*** 150,156 ****
PGconn *conn;
PQconninfoOption *option;
char errorMessage[ERROR_MSG_LENGTH];
!
/* ----------
* Allocate memory for the conn structure
* ----------
--- 150,156 ----
PGconn *conn;
PQconninfoOption *option;
char errorMessage[ERROR_MSG_LENGTH];
! char* tmp;
/* ----------
* Allocate memory for the conn structure
* ----------
***************
*** 177,213 ****
}

/* ----------
- * Check that we have all connection parameters
- * ----------
- */
- for (option = PQconninfoOptions; option->keyword != NULL; option++)
- {
- if (option->val != NULL)
- continue; /* Value was in conninfo */
-
- /* ----------
- * No value was found for this option. Return an error.
- * ----------
- */
- conn->status = CONNECTION_BAD;
- sprintf(conn->errorMessage,
- "ERROR: PQconnectdb(): Cannot determine a value for option '%s'.\n",
- option->keyword);
- strcat(conn->errorMessage,
- "Option not specified in conninfo string");
- if (option->environ)
- {
- strcat(conn->errorMessage,
- ", environment variable ");
- strcat(conn->errorMessage, option->environ);
- strcat(conn->errorMessage, "\nnot set");
- }
- strcat(conn->errorMessage, " and no compiled in default value.\n");
- conninfo_free();
- return conn;
- }
-
- /* ----------
* Setup the conn structure
* ----------
*/
--- 177,182 ----
***************
*** 218,231 ****
conn->port = NULL;
conn->notifyList = DLNewList();

! conn->pghost = strdup(conninfo_getval("host"));
! conn->pgport = strdup(conninfo_getval("port"));
! conn->pgtty = strdup(conninfo_getval("tty"));
! conn->pgoptions = strdup(conninfo_getval("options"));
! conn->pguser = strdup(conninfo_getval("user"));
! conn->pgpass = strdup(conninfo_getval("password"));
! conn->pgauth = strdup(conninfo_getval("authtype"));
! conn->dbName = strdup(conninfo_getval("dbname"));

/* ----------
* Free the connection info - all is in conn now
--- 187,208 ----
conn->port = NULL;
conn->notifyList = DLNewList();

! tmp = conninfo_getval("host");
! conn->pghost = tmp ? strdup(tmp) : NULL;
! tmp = conninfo_getval("port");
! conn->pgport = tmp ? strdup(tmp) : NULL;
! tmp = conninfo_getval("tty");
! conn->pgtty = tmp ? strdup(tmp) : NULL;
! tmp = conninfo_getval("options");
! conn->pgoptions = tmp ? strdup(tmp) : NULL;
! tmp = conninfo_getval("user");
! conn->pguser = tmp ? strdup(tmp) : NULL;
! tmp = conninfo_getval("password");
! conn->pgpass = tmp ? strdup(tmp) : NULL;
! tmp = conninfo_getval("authtype");
! conn->pgauth = tmp ? strdup(tmp) : NULL;
! tmp = conninfo_getval("dbname");
! conn->dbName = tmp ? strdup(tmp) : NULL;

/* ----------
* Free the connection info - all is in conn now

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas G. Lockhart 1998-01-10 16:34:25 Re: [HACKERS] grant broken
Previous Message Goran Thyni 1998-01-10 14:50:18 Re: [HACKERS] DefaultHost