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:[EMAIL PROTECTED]]
> > 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
> > [EMAIL PROTECTED] | (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 [EMAIL PROTECTED]
--
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
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
http://archives.postgresql.org