Re: ipv6 build error?

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: ipv6 build error?
Дата
Msg-id 200301090115.h091FlB20510@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: ipv6 build error?  ("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>)
Ответы Re: ipv6 build error?  ("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>)
Список pgsql-hackers
OK, Christopher, how should we deal with this?  I don't think defining
_KERNEL is a good idea.  The only thing I can think of, if only s6_addr
is standard, is to change:
dst->in.sin_addr.s_addr = src->in6.sin6_addr.s6_addr32[3];

into taking the last 4 array elements of s6_addr and doing a shift of
24/16/8 to get an unsigned int32 value.

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

Christopher Kings-Lynne wrote:
> Hi Bruce,
> 
> I seem to have this:
> 
> struct in6_addr {
>         union {
>                 u_int8_t   __u6_addr8[16];
>                 u_int16_t  __u6_addr16[8];
>                 u_int32_t  __u6_addr32[4];
>         } __u6_addr;                    /* 128-bit IP6 address */
> };
> 
> #define s6_addr   __u6_addr.__u6_addr8
> #ifdef _KERNEL  /*XXX nonstandard*/
> #define s6_addr8  __u6_addr.__u6_addr8
> #define s6_addr16 __u6_addr.__u6_addr16
> #define s6_addr32 __u6_addr.__u6_addr32
> #endif
> 
> #define INET6_ADDRSTRLEN        46
> 
> I've attached the full header file.
> 
> ifconfig shows IPv6 addresses on the network interfaces, so I assume I have
> ipv6 built.  It is a 4.4-stable box with GENERIC kernel.  I just rebuilt
> from very latest CVS and it still failed.
> 
> Chris
> 
> 
> > -----Original Message-----
> > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> > Sent: Tuesday, 7 January 2003 12:01 AM
> > To: Christopher Kings-Lynne
> > Cc: Hackers
> > Subject: Re: [HACKERS] ipv6 build error?
> >
> >
> >
> > Interesting.
> >
> > I see in BSD/OS /usr/include/netinet6/in6.h:
> >
> >     struct in6_addr {
> >         union {
> >             u_int8_t   __u6_addr8[16];
> >             u_int16_t  __u6_addr16[8];
> >             u_int32_t  __u6_addr32[4];
> >         } __u6_addr;            /* 128-bit IP6 address */
> >     };
> >
> >     #define s6_addr   __u6_addr.__u6_addr8
> >     #define s6_addr8  __u6_addr.__u6_addr8
> >     #define s6_addr16 __u6_addr.__u6_addr16
> >     #define s6_addr32 __u6_addr.__u6_addr32
> >
> > and of course the line in ip.c that is causing the problem is:
> >
> >     dst->in.sin_addr.s_addr = src->in6.sin6_addr.s6_addr32[3];
> >
> > Do you see anything like that?  Are you using the newest CVS?  (I did
> > make some CVS adjustments for Tom about 10 hours ago.)
> >
> > We did pull out IPv6 that was part of an SSL patch in the past because
> > we didn't support IPv6 anyway.  This patch does fully support IPv6 so we
> > are going to have to adjust things so configure and the code properly
> > detect and deal with all the IPv6 implementations out there.
> >
> > ------------------------------------------------------------------
> > ---------
> >
> > Christopher Kings-Lynne wrote:
> > > On FreeBSD/Alpha:
> > >
> > > gmake[3]: Entering directory
> > `/home/chriskl/pgsql-head/src/backend/libpq'
> > > gcc -pipe -O -g -Wall -Wmissing-prototypes
> > -Wmissing-declarations -I../../..
> > > /src/include   -c -o be-fsstubs.o be-fsstubs.c -MMD
> > > gcc -pipe -O -g -Wall -Wmissing-prototypes
> > -Wmissing-declarations -I../../..
> > > /src/include   -c -o be-secure.o be-secure.c -MMD
> > > gcc -pipe -O -g -Wall -Wmissing-prototypes
> > -Wmissing-declarations -I../../..
> > > /src/include   -c -o auth.o auth.c -MMD
> > > gcc -pipe -O -g -Wall -Wmissing-prototypes
> > -Wmissing-declarations -I../../..
> > > /src/include   -c -o crypt.o crypt.c -MMD
> > > gcc -pipe -O -g -Wall -Wmissing-prototypes
> > -Wmissing-declarations -I../../..
> > > /src/include   -c -o hba.o hba.c -MMD
> > > gcc -pipe -O -g -Wall -Wmissing-prototypes
> > -Wmissing-declarations -I../../..
> > > /src/include   -c -o ip.o ip.c -MMD
> > > ip.c: In function `convSockAddr6to4':
> > > ip.c:368: structure has no member named `s6_addr32'
> > > gmake[3]: *** [ip.o] Error 1
> > > gmake[3]: Leaving directory `/home/chriskl/pgsql-head/src/backend/libpq'
> > > gmake[2]: *** [libpq-recursive] Error 2
> > > gmake[2]: Leaving directory `/home/chriskl/pgsql-head/src/backend'
> > > gmake[1]: *** [install] Error 2
> > > gmake[1]: Leaving directory `/home/chriskl/pgsql-head/src'
> > > gmake: *** [install] Error 2
> > >
> > > I seem to remember seeing this before when we had some ipv6 code that we
> > > decided to remove in the end...
> > >
> > > Chris
> > >
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 6: Have you searched our list archives?
> > >
> > > http://archives.postgresql.org
> > >
> >
> > --
> >   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
> >

[ Attachment, skipping... ]

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

--  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,
Pennsylvania19073
 


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tatsuo Ishii
Дата:
Сообщение: Re: UTF-8 encoding question regarding PhpPgAdmin
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Question about bit.h and bit.c