I am confused why you didn't like the following patch I posted, which
pulls the family data type length right out of the structure, rather than
having to configure it for every OS that doesn't have sa_family_t?

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

deststar wrote:
> Jason Tishler wrote:
> > On Sun, Jun 15, 2003 at 04:54:21PM +0100, deststar wrote:
> > 
> >>On cygwin sa_family_t was undeclared, adding the following line:
> >>typedef unsigned short sa_family_t;
> >>to both:
> >>src/port/getaddrinfo.c
> >>src/include/libpq/pqcomm.h
> > 
> > 
> > Isn't the attached or fixing Cygwin itself a better approach?
> > 
> > 
> Yes it does seem better, attached is a proposed patch to cygwin.h & 
> configure.in (incase cygwin gets it in future)
> Have tested with make installcheck & it works fine.
> If you see no problems I will sumit to patches
> thanks,

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (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
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to