Re: [PATCH] Pull general SASL framework out of SCRAM

Jacob Champion <pchampion@vmware.com>

From: Jacob Champion <pchampion@vmware.com>
To: "michael@paquier.xyz" <michael@paquier.xyz>, "m.kulagin@postgrespro.ru" <m.kulagin@postgrespro.ru>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2021-07-13T22:41:01Z
Lists: pgsql-hackers
On Tue, 2021-07-13 at 19:31 +0900, Michael Paquier wrote:
> On Tue, Jul 13, 2021 at 12:41:27PM +0300, Mikhail Kulagin wrote:
> > I got an error while building one of the extensions.
> > /home/mkulagin/pg-install/postgresql-master/include/internal/libpq-int.h:44:10: fatal error: fe-auth-sasl.h: No such file or directory
> >                   #include "fe-auth-sasl.h"
> >                   ^~~~~~~~~~~~~~~~            
> 
> Right.  I overlooked the fact that libpq-int.h is installed.

Thanks for catching that Mikhail.

> > I think the new fe-auth-sasl.h file should be installed too.
> > Correction proposal in the attached file (but I'm not sure that fix
> > of Install.pm is correct). 
> 
> That looks correct to me.  I'll check that tomorrow.

Looks right to me too. I'm currently rebuilding my Windows dev
environment so I haven't been able to double-check that piece of it.

Just to make sure -- do we want to export the fe-auth-sasl.h header as
opposed to forward-declaring the pg_fe_sasl_mech struct? Is the use
case for libpq-int.h just "here, have at the internals, and if you
break it then it's on you"?

--Jacob

Commits

  1. Install properly fe-auth-sasl.h

  2. Add more sanity checks in SASL exchanges

  3. Refactor SASL code with a generic interface for its mechanisms