Re: pgsql: Implement channel binding tls-server-end-point for SCRAM - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: pgsql: Implement channel binding tls-server-end-point for SCRAM
Date
Msg-id CAB7nPqTqFTfC7gjWNmKi1FgMATqJx9YcZ8QRVKT8CGLeuFoM-g@mail.gmail.com
Whole thread Raw
In response to Re: pgsql: Implement channel binding tls-server-end-point for SCRAM  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: pgsql: Implement channel binding tls-server-end-point for SCRAM
List pgsql-hackers
On Sat, Jan 6, 2018 at 2:56 AM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> Peter Eisentraut wrote:
>> On 1/5/18 09:28, Michael Paquier wrote:
>> > In order to do things cleanly, we should make this TAP test
>> > conditional on the version of OpenSSL.
>>
>> How about looking into pg_config.h, like in the attached patch?

+# Determine whether build supports tls-server-end-point.
+open my $pg_config_h, '<', '../../include/pg_config.h' or die "$!";
+my $supports_tls_server_end_point = (grep {/^#define
HAVE_X509_GET_SIGNATURE_NID 1/} <$pg_config_h>);
+close $pg_config_h;

Good idea as a whole, but I don't think this is the right approach. As
we include $(bindir) in PATH when running the prove command, why not
getting the include path from "pg_config --includedir"?

> I suppose if this starts to spread, we'll come up with a better approach
> ... maybe generating a Perl file with variables that can be slurped more
> ellegantly, or something like that.  (We mentioned the need for
> config-based test selection re. patches for new SSL implementations.)

One case I have in mind where this would be nice to have is
020_pg_receivewal.pl to have tests depending on if PG is built with
zlib or not. So we definitely want something more. At least I do. I
agree that the most elegant approach would be to generate pg_config.h
from this variable set, and not feed on parsing pg_config.h directly.
Or we could just live with an API in TestLib.pm which is able to get
the wanted information as Peter is doing but for a wanted variable
from pg_config. I could use that for my test case with HAVE_LIBZ as
well.
--
Michael


pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: pgsql: pg_upgrade: simplify code layout in a few places
Next
From: Michael Paquier
Date:
Subject: Re: [HACKERS] Timeline ID in backup_label file