[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Exim and IPv6 Help



Jun-ichiro itojun Hagino wrote:
> >Or, here is what I get when I try to run the JDK1.4beta in IPv6 mode on NetBSD-current:
> >  Jul 13 18:35:20  /netbsd: pid 5470 (java), uid 0: obsolete pre-RFC2553 sockaddr_in6 rejected
> >  Jul 13 18:35:21  /netbsd: pid 5470 (java), uid 0: obsolete pre-RFC2553 sockaddr_in6 rejected
> 	the binary was compiled with obsoleted IPv6 API (RFC2133) and is
> 	not compatible with NetBSD linux emulation code.

This maybe needs some explanation why it's not compatible. Hopefully
following is correct - this is from what Itojun told me previously,
please correct me if I understood it wrong, please:

The difference between RFC2133 and RFC2553 sockaddr_in6 is that
the RFC2553 (newer) one adds 'scope id'. This is to distinguish
link-local addresses. It's not possible to map the address without
scope id to something with scope id reliably. The IPv6 stack
integrated to NetBSD (KAME, which is in OpenBSD as well AFAIK) refuses
these obsoleted addresses for this reason.

Since several Linux distros (including SuSe) shipped with the
obsolete IPv6 API, I've added explicit check for this condition
and made the code syslog the reason why this was rejected. Even
if I'd not return error in compat/linux immediatelly, the sockaddr would
be rejected further down the netinet6 stack.

According to what Itojun told me, it's not appropriate for the compat/linux
code to translate the provided obsolete sockaddr to real thing - the
scope id can't be magically added by kernel. This is something we can
discuss, but I basically agree with Itojun that fabricating scope id
is not a good idea.

All in all, your problem is not really fixable in Linux compat
code. It's just common Linux mess - they shipped experimental code in
official releases again :( Unless you can find some JDK1.4 binary compiled
on more relecent Linux with RFC2553 API, you are stuck with Linux
I'm afraid :(

BTW, does Linux IPv6 stack provide any backward compatibility
for pre-RFC2553 addresses, or the JDK1.4 binary fails on modern
Linux kernels as well?

Jaromir
-- 
Jaromir Dolecek <jdolecek@NetBSD.org>      http://www.ics.muni.cz/~dolecek/
NetBSD - just plain best OS! -=*=- Got spare MCA cards or docs? Hand me them!