Thread: [PATCH] Connect to database using UNIX domain sockets
Dear pgadmin hackers, Enclosed is a small, nonintrusive patch that allows one to connect to a database using the UNIX domain socket under Linux and BSD (a must for secure, password-less operation). One simply leaves the "hostname" field blank when filling in the database connection form. Since this patch leverages the clever fallback mechanism already built into libpq, I see no reason why it would break anything under Windows. Thanks for your work on pgadmin. Regards, Dom ------------ --- pgadmin3-1.0.2/src/db/pgConn.cpp.ORIG 2005-04-13 12:49:43.000000000 +0200 +++ pgadmin3-1.0.2/src/db/pgConn.cpp 2005-04-13 14:38:50.000000000 +0200 @@ -44,6 +48,8 @@ wxLogInfo(wxT("Creating pgConn object")); wxString msg, hostip; + hostip.Empty(); + conv = &wxConvLibc; needColQuoting = false; @@ -54,6 +60,7 @@ majorVersion=0; noticeArg=0; + if (! server.IsEmpty()) {#ifdef __WXMSW__ struct in_addr ipaddr;#else @@ -78,13 +85,14 @@ } else hostip = server; + } resolvedIP = TRUE; wxLogInfo(wxT("Server name: %s (resolved to: %s)"), server.c_str(), hostip.c_str()); //Create the connection string wxString connstr; - if (!server.IsEmpty()) { + if (!hostip.IsEmpty()) { connstr.Append(wxT(" hostaddr=")); connstr.Append(hostip); } -- Dominique QUATRAVAUX Ingénieur senior 01 44 42 00 08 IDEALX
Hi Dom, This patch could knock off a todo item with a little tweaking - interested in enhancing it a little? Basically, the host parameter in the connection string can also be set to a path to the socket - if it starts with a / it'sassumed that it is a path rather than a hostname. http://www.postgresql.org/docs/8.0/interactive/libpq.html#LIBPQ-CONNECT It'd be great to see an updated patch :-) Regards, Dave > -----Original Message----- > From: pgadmin-support-owner@postgresql.org > [mailto:pgadmin-support-owner@postgresql.org] On Behalf Of > Dominique Quatravaux > Sent: 13 April 2005 17:02 > To: pgadmin-support@postgresql.org > Subject: [pgadmin-support] [PATCH] Connect to database using > UNIX domain sockets > > Dear pgadmin hackers, > > Enclosed is a small, nonintrusive patch that allows one to connect to > a database using the UNIX domain socket under Linux and BSD (a must > for secure, password-less operation). One simply leaves the "hostname" > field blank when filling in the database connection form. > > Since this patch leverages the clever fallback mechanism already built > into libpq, I see no reason why it would break anything under Windows. > > Thanks for your work on pgadmin. Regards, Dom > > ------------ > > --- pgadmin3-1.0.2/src/db/pgConn.cpp.ORIG 2005-04-13 > 12:49:43.000000000 +0200 > +++ pgadmin3-1.0.2/src/db/pgConn.cpp 2005-04-13 > 14:38:50.000000000 +0200 > @@ -44,6 +48,8 @@ > wxLogInfo(wxT("Creating pgConn object")); > wxString msg, hostip; > > + hostip.Empty(); > + > conv = &wxConvLibc; > needColQuoting = false; > > @@ -54,6 +60,7 @@ > majorVersion=0; > noticeArg=0; > > + if (! server.IsEmpty()) { > #ifdef __WXMSW__ > struct in_addr ipaddr; > #else > @@ -78,13 +85,14 @@ > } > else > hostip = server; > + } > > resolvedIP = TRUE; > wxLogInfo(wxT("Server name: %s (resolved to: %s)"), > server.c_str(), hostip.c_str()); > > // Create the connection string > wxString connstr; > - if (!server.IsEmpty()) { > + if (!hostip.IsEmpty()) { > connstr.Append(wxT(" hostaddr=")); > connstr.Append(hostip); > } > > > -- > Dominique QUATRAVAUX Ingénieur senior > 01 44 42 00 08 IDEALX > > > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq >
Thanks Dom, I've committed a patch for complete UDS support based on your work. Regards, Dave. > -----Original Message----- > From: pgadmin-support-owner@postgresql.org > [mailto:pgadmin-support-owner@postgresql.org] On Behalf Of > Dominique Quatravaux > Sent: 13 April 2005 17:02 > To: pgadmin-support@postgresql.org > Subject: [pgadmin-support] [PATCH] Connect to database using > UNIX domain sockets > > Dear pgadmin hackers, > > Enclosed is a small, nonintrusive patch that allows one to connect to > a database using the UNIX domain socket under Linux and BSD (a must > for secure, password-less operation). One simply leaves the "hostname" > field blank when filling in the database connection form. > > Since this patch leverages the clever fallback mechanism already built > into libpq, I see no reason why it would break anything under Windows. > > Thanks for your work on pgadmin. Regards, Dom > > ------------ > > --- pgadmin3-1.0.2/src/db/pgConn.cpp.ORIG 2005-04-13 > 12:49:43.000000000 +0200 > +++ pgadmin3-1.0.2/src/db/pgConn.cpp 2005-04-13 > 14:38:50.000000000 +0200 > @@ -44,6 +48,8 @@ > wxLogInfo(wxT("Creating pgConn object")); > wxString msg, hostip; > > + hostip.Empty(); > + > conv = &wxConvLibc; > needColQuoting = false; > > @@ -54,6 +60,7 @@ > majorVersion=0; > noticeArg=0; > > + if (! server.IsEmpty()) { > #ifdef __WXMSW__ > struct in_addr ipaddr; > #else > @@ -78,13 +85,14 @@ > } > else > hostip = server; > + } > > resolvedIP = TRUE; > wxLogInfo(wxT("Server name: %s (resolved to: %s)"), > server.c_str(), hostip.c_str()); > > // Create the connection string > wxString connstr; > - if (!server.IsEmpty()) { > + if (!hostip.IsEmpty()) { > connstr.Append(wxT(" hostaddr=")); > connstr.Append(hostip); > } > > > -- > Dominique QUATRAVAUX Ingénieur senior > 01 44 42 00 08 IDEALX > > > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq >