gcc -O2 -pipe -g -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../src/include   -c -o hba.o hba.c
hba.c: In function `ident_unix':
hba.c:923: sizeof applied to an incomplete type
hba.c:960: dereferencing pointer to incomplete type
hba.c:965: dereferencing pointer to incomplete type
gmake: *** [hba.o] Error 1


Now, the problem is sizeof(Cred), typedef struct cmsgcred Cred, and I don't
have a cmsgcred anywhere! The closest is my sys/ucred.h which defines a
struct ucred {
        u_short cr_ref;                 /* reference count */
        uid_t   cr_uid;                 /* effective user id */
        gid_t   cr_gid;                 /* effective group id */
        short   cr_ngroups;             /* number of groups */
        gid_t   cr_groups[NGROUPS];     /* groups */
};

Thoughts?

Cheers,

Patrick

Fri, 7 Sep 2001 13:55:50 +0100
Patrick Welche <prlw1@newn.cam.ac.uk>
backend hba.c prob
Patrick Welche <prlw1@newn.cam.ac.uk> writes:
> hba.c: In function `ident_unix':
> hba.c:923: sizeof applied to an incomplete type

> Now, the problem is sizeof(Cred), typedef struct cmsgcred Cred, and I don't
> have a cmsgcred anywhere!

That's new code and we expected some portability issues with it :-(

What platform are you on exactly?  What changes are needed to make the
code work there, and how might we #ifdef or autoconfigure a test for it?

			regards, tom lane

Fri, 07 Sep 2001 10:14:27 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: backend hba.c prob 
> gcc -O2 -pipe -g -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../src/include   -c -o hba.o hba.c
> hba.c: In function `ident_unix':
> hba.c:923: sizeof applied to an incomplete type
> hba.c:960: dereferencing pointer to incomplete type
> hba.c:965: dereferencing pointer to incomplete type
> gmake: *** [hba.o] Error 1
> 
> 
> Now, the problem is sizeof(Cred), typedef struct cmsgcred Cred, and I don't
> have a cmsgcred anywhere! The closest is my sys/ucred.h which defines a
> struct ucred {
>         u_short cr_ref;                 /* reference count */
>         uid_t   cr_uid;                 /* effective user id */
>         gid_t   cr_gid;                 /* effective group id */
>         short   cr_ngroups;             /* number of groups */
>         gid_t   cr_groups[NGROUPS];     /* groups */
> };
> 
> Thoughts?

Actually, yes.

The code currently runs on FreeBSD and BSD/OS.  Right now, it tests for
BSD/OS and if it fails, assume it is FreeBSD.  That is what the #ifndef
fc_uid is for.  Now, I assume you are on a *BSD which is not one of
those.  Do you have a struct fcred?  I will browse your OS headers as
soon as I know your OS.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Fri, 7 Sep 2001 10:37:28 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: backend hba.c prob
On Fri, 7 Sep 2001, Bruce Momjian wrote:

> > gcc -O2 -pipe -g -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../src/include   -c -o hba.o hba.c
> > hba.c: In function `ident_unix':
> > hba.c:923: sizeof applied to an incomplete type
> > hba.c:960: dereferencing pointer to incomplete type
> > hba.c:965: dereferencing pointer to incomplete type
> > gmake: *** [hba.o] Error 1

> The code currently runs on FreeBSD and BSD/OS.  Right now, it tests for
> BSD/OS and if it fails, assume it is FreeBSD.  That is what the #ifndef
> fc_uid is for.  Now, I assume you are on a *BSD which is not one of
> those.  Do you have a struct fcred?  I will browse your OS headers as
> soon as I know your OS.

Yeah,  i'm seeing the same problem on OpenBSD-current (and 2.9).  No Cred
anywhere!

This:

	root@mizer:/usr/src$ egrep -r "fcred" *

turned up nothing interesting either.

Thoughts?

- Brandon


----------------------------------------------------------------------------
 b. palmer,  bpalmer@crimelabs.net            pgp:crimelabs.net/bpalmer.pgp5


Fri, 7 Sep 2001 11:18:41 -0400 (EDT)
bpalmer <bpalmer@crimelabs.net>
Re: backend hba.c prob
On Fri, Sep 07, 2001 at 10:14:27AM -0400, Tom Lane wrote:
> Patrick Welche <prlw1@newn.cam.ac.uk> writes:
> > hba.c: In function `ident_unix':
> > hba.c:923: sizeof applied to an incomplete type
> 
> > Now, the problem is sizeof(Cred), typedef struct cmsgcred Cred, and I don't
> > have a cmsgcred anywhere!
> 
> That's new code and we expected some portability issues with it :-(
> 
> What platform are you on exactly?

NetBSD-1.5X/i386 Remeber me? :)

> What changes are needed to make the
> code work there, and how might we #ifdef or autoconfigure a test for it?

I need to look at it some more for that..

Cheers,

Patrick

Fri, 7 Sep 2001 17:21:26 +0100
Patrick Welche <prlw1@newn.cam.ac.uk>
Re: backend hba.c prob
> On Fri, Sep 07, 2001 at 10:14:27AM -0400, Tom Lane wrote:
> > Patrick Welche <prlw1@newn.cam.ac.uk> writes:
> > > hba.c: In function `ident_unix':
> > > hba.c:923: sizeof applied to an incomplete type
> > 
> > > Now, the problem is sizeof(Cred), typedef struct cmsgcred Cred, and I don't
> > > have a cmsgcred anywhere!
> > 
> > That's new code and we expected some portability issues with it :-(
> > 
> > What platform are you on exactly?
> 
> NetBSD-1.5X/i386 Remeber me? :)
> 
> > What changes are needed to make the
> > code work there, and how might we #ifdef or autoconfigure a test for it?
> 
> I need to look at it some more for that..

OK, I have modified the CVS CREDS code to work on FreeBSD and BSD/OS,
and hopefully NetBSD.  I talked to Jason at Linuxworld and I think this
code should work.  Please test the CVS version and let me know.  OpenBSD
doesn't support creds as far as I can tell.

To test, define 'ident sameuser' for 'local' in pg_hba.conf and restart
postmaster.  Then connect as local user.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Fri, 7 Sep 2001 16:05:58 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: backend hba.c prob
> On Fri, 7 Sep 2001, Bruce Momjian wrote:
> 
> > > gcc -O2 -pipe -g -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../src/include   -c -o hba.o hba.c
> > > hba.c: In function `ident_unix':
> > > hba.c:923: sizeof applied to an incomplete type
> > > hba.c:960: dereferencing pointer to incomplete type
> > > hba.c:965: dereferencing pointer to incomplete type
> > > gmake: *** [hba.o] Error 1
> 
> > The code currently runs on FreeBSD and BSD/OS.  Right now, it tests for
> > BSD/OS and if it fails, assume it is FreeBSD.  That is what the #ifndef
> > fc_uid is for.  Now, I assume you are on a *BSD which is not one of
> > those.  Do you have a struct fcred?  I will browse your OS headers as
> > soon as I know your OS.
> 
> Yeah,  i'm seeing the same problem on OpenBSD-current (and 2.9).  No Cred
> anywhere!
> 
> This:
> 
> 	root@mizer:/usr/src$ egrep -r "fcred" *
> 
> turned up nothing interesting either.

OK, CVS should compile on OpenBSD now. However, there is no SCM_CREDS
capability on OpenBSD that I can see so 'ident' will not work on 'local'
in pg_hba.conf.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Fri, 7 Sep 2001 16:06:46 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: backend hba.c prob
On Fri, Sep 07, 2001 at 04:05:58PM -0400, Bruce Momjian wrote:
... 
> OK, I have modified the CVS CREDS code to work on FreeBSD and BSD/OS,
> and hopefully NetBSD.  I talked to Jason at Linuxworld and I think this
> code should work.  Please test the CVS version and let me know.  OpenBSD
> doesn't support creds as far as I can tell.
> 
> To test, define 'ident sameuser' for 'local' in pg_hba.conf and restart
> postmaster.  Then connect as local user.

All tested OK under NetBSD :)

Cheers,

Patrick

Wed, 12 Sep 2001 13:29:27 +0100
Patrick Welche <prlw1@newn.cam.ac.uk>
Re: backend hba.c prob
> On Fri, Sep 07, 2001 at 04:05:58PM -0400, Bruce Momjian wrote:
> ... 
> > OK, I have modified the CVS CREDS code to work on FreeBSD and BSD/OS,
> > and hopefully NetBSD.  I talked to Jason at Linuxworld and I think this
> > code should work.  Please test the CVS version and let me know.  OpenBSD
> > doesn't support creds as far as I can tell.
> > 
> > To test, define 'ident sameuser' for 'local' in pg_hba.conf and restart
> > postmaster.  Then connect as local user.
> 
> All tested OK under NetBSD :)

Really?  Looks like I hit it right the first time.  The NetBSD method is
very similar to the BSD/OS version.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Wed, 12 Sep 2001 10:32:50 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: backend hba.c prob