Re: Practical impediment to supporting multiple SSL libraries - Mailing list pgsql-hackers

From Dave Page
Subject Re: Practical impediment to supporting multiple SSL libraries
Date
Msg-id E7F85A1B5FF8D44C8A1AF6885BC9A0E4011C9C75@ratbert.vale-housing.co.uk
Whole thread Raw
In response to Practical impediment to supporting multiple SSL libraries  (Martijn van Oosterhout <kleptog@svana.org>)
Responses Re: Practical impediment to supporting multiple SSL libraries  (Martijn van Oosterhout <kleptog@svana.org>)
List pgsql-hackers

> -----Original Message-----
> From: Martijn van Oosterhout [mailto:kleptog@svana.org]
> Sent: 13 April 2006 07:58
> To: Dave Page
> Cc: pgsql-hackers@postgresql.org; Hiroshi Inoue
> Subject: Re: [HACKERS] Practical impediment to supporting
> multiple SSL libraries
>
> On Wed, Apr 12, 2006 at 05:25:47PM +0100, Dave Page wrote:
> > The driver implements all versions of the wire protocol
> itself, but if
> > libpq is available at runtime (it will dynamically load it on
> > platforms that support it) it can use it for connection setup so
> > features like SSL can be provided easily. I'm still not overly
> > familiar with how it works yet, but I'm sure Hiroshi (CC'd) can
> > provide further details if you need them.
>
> Right, so what you're basically doing is setting up the
> connection via libpq then grabbing the SSL pointer and using
> that to continue communicating. If it's not SSL you use
> PQsocket get the socket and continue from there.

Yup.
> Unorthodox usage, but it should work.

Well, we had a pure custom implementation of the protocol, had a pure
libpq based version and after much discussion decided that the best
version of all was the hybrid as it allowed us to hijack features like
SSL, Kerberos, pgpass et al, yet not be constrained by the limitations
of libpq, or copy query results about so much.

Regards, Dave


pgsql-hackers by date:

Previous
From: "Dave Page"
Date:
Subject: Re: Get explain output of postgresql in Tables
Next
From: "Qingqing Zhou"
Date:
Subject: Possible race in UnlockBuffers() and UnpinBuffer()