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?
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 1Now, 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
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 typeNow, 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 typeNow, 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 1The 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
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