Re: Errors compiling hba.c in current CVS - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Errors compiling hba.c in current CVS
Date
Msg-id 200306162121.h5GLL1I13860@candle.pha.pa.us
Whole thread Raw
In response to Re: Errors compiling hba.c in current CVS  (Kurt Roeckx <Q@ping.be>)
Responses Re: Errors compiling hba.c in current CVS  (Bruno Wolff III <bruno@wolff.to>)
Re: Errors compiling hba.c in current CVS  (Kurt Roeckx <Q@ping.be>)
Re: Errors compiling hba.c in current CVS  (Bruno Wolff III <bruno@wolff.to>)
List pgsql-hackers
Does the following patch fix the problem?  It doesn't use sa_family_t
anymore.


---------------------------------------------------------------------------

Kurt Roeckx wrote:
> On Mon, Jun 16, 2003 at 02:23:31PM -0500, Bruno Wolff III wrote:
> > On Mon, Jun 16, 2003 at 11:47:58 -0500,
> >   Bruno Wolff III <bruno@wolff.to> wrote:
> > > I get the errors below when compiling on a RH 6.1 system.
> > > I used the following config paramters:
> > > ./configure --prefix=/usr/local/pgsql --enable-integer-datetimes --with-pgport=5433
> > >
> > > hba.c: In function `parse_hba':
> > > hba.c:590: structure has no member named `ss_family'
> > > hba.c:659: structure has no member named `ss_family'
> > > hba.c:691: structure has no member named `ss_family'
> > > hba.c: In function `ident_inet':
> > > hba.c:1210: structure has no member named `ss_family'
> > > hba.c: In function `authident':
> > > hba.c:1461: structure has no member named `ss_family'
> > > hba.c:1467: warning: unreachable code at beginning of switch statement
> > > make[3]: *** [hba.o] Error 1
> >
> > I looked into this a bit more and found ss_family is defined in pqcomm.h
> > which is included in auth.c which compiles and not in either hba.c or
> > ip.c which don't compile.
>
> It doesn't say it doesn't know the structure, but it says it
> doesn't know the member, which is very confusing to me.
>
> It's not making any sense at all.  The SockAddr is defined in
> the same file, and it doesn't seem to give an error on that.
> SockAddr also uses the struct sockaddr_storage.
>
> hba.c includes libpq/libpq.h, which in his turn includes
> libpq/ip.h, which finaly includes libpq/pqcomm.h, so that
> shouldn't be a problem.
>
>
> Kurt
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/include/libpq/pqcomm.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/libpq/pqcomm.h,v
retrieving revision 1.86
diff -c -c -r1.86 pqcomm.h
*** src/include/libpq/pqcomm.h    12 Jun 2003 07:36:51 -0000    1.86
--- src/include/libpq/pqcomm.h    16 Jun 2003 21:11:09 -0000
***************
*** 43,57 ****
  /*
   * Definitions used for sockaddr_storage structure paddings design.
   */
! #define    _SS_PAD1SIZE    (_SS_ALIGNSIZE - sizeof (sa_family_t))
! #define    _SS_PAD2SIZE    (_SS_MAXSIZE - (sizeof (sa_family_t) + \
                  _SS_PAD1SIZE + _SS_ALIGNSIZE))

  struct sockaddr_storage {
  #ifdef SALEN
      uint8_t    __ss_len;        /* address length */
  #endif
!     sa_family_t    ss_family;    /* address family */

      char    __ss_pad1[_SS_PAD1SIZE];
          /* 6 byte pad, this is to make implementation
--- 43,60 ----
  /*
   * Definitions used for sockaddr_storage structure paddings design.
   */
! /* Some platforms don't have sa_family_t, so we compute it ourselves */
! #define SIZEOF_SOCKADDR_FAMILY        sizeof(((struct sockaddr *)0)->sa_family)
!
! #define    _SS_PAD1SIZE    (_SS_ALIGNSIZE - SIZEOF_SOCKADDR_FAMILY)
! #define    _SS_PAD2SIZE    (_SS_MAXSIZE - (SIZEOF_SOCKADDR_FAMILY + \
                  _SS_PAD1SIZE + _SS_ALIGNSIZE))

  struct sockaddr_storage {
  #ifdef SALEN
      uint8_t    __ss_len;        /* address length */
  #endif
!     char dummy_sa_family[SIZEOF_SOCKADDR_FAMILY];

      char    __ss_pad1[_SS_PAD1SIZE];
          /* 6 byte pad, this is to make implementation

pgsql-hackers by date:

Previous
From: Kurt Roeckx
Date:
Subject: Re: Errors compiling hba.c in current CVS
Next
From: Tom Lane
Date:
Subject: Our FLOAT(p) precision does not conform to spec