Thread: 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; /* effectiveuser id */ gid_t cr_gid; /* effective group id */ short cr_ngroups; /* number of groups */ gid_t cr_groups[NGROUPS]; /* groups */ }; Thoughts? Cheers, Patrick
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
> 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, Pennsylvania19026
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
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
> 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
> 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, Pennsylvania19026
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
> 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