Обсуждение: [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
>