[mrtg-developers] Re: URGENT !!! INET6-1.28 and Socket6-0.12

Lorenzo Colitti lorenzo at colitti.com
Tue Aug 5 11:05:32 MEST 2003

Rafael Martinez Torres wrote:
> Lorenzo:
> Did you check  MRTG with the new Socket6 and INET6 ?

Hi Rafael,

I did a quick test and it seemed to work, but I tested only on one 
system, so I'm not sure. Unfortunately I didn't have time to do more 
extensive tests, but it did work at least once, so it's better than 
INET6 1.27. :)

> Maybe you were rigth by warning me in order not to apply getipnodeby*() ,
> but at least , as a user of Socket6, we provide the programmer with a
> optional "deprecated" API.

If you want to implement the deprecated API in Socket6, of course that 
is your choice (and the Socket6 maintainer's, unless you want to fork 

But as IPv6 support in Perl is still young and there are no legacy 
programs to support, perhaps it would be a good idea not to support the 
deprecated API at all, so all Perl programs must use the new API.

In this way:

1. you don't have to contact the Socket6 maintainer or fork Socket6
2. INET6 can keep on using Socket6 0.11
3. INET6 doesn't have to call a deprecated API that might be
    removed in future Socket6 versions.

I think this would be better, but as you are the maintainer of INET6, 
the choice is yours.

> The purpose for INET6 is to cover only AF_INET6 connections. I know you
> can get an "abstract IP protocol" class by using "getaddrinfo", but
> then, if you used your INET6 in such a way:
> [...]
> I think it is better to leave control to the caller, i.e, if you want IPv4
> , use INET, and if you want IPv6, to use INET...

I think this is due to historical reasons. The first INET6 was in 
reality the Kame version of IO::Socket::INET with IPv6 support. Masahito 
ported it to Debian, but as he replaced the stock IO::Socket::INET with 
his version, it caused package conflicts. So he renamed it to INET6. So 
the original code was protocol-independent.

I think it is a good idea for INET6 to be protocol-independent  as it is 
now. In this way, when IPv6 support is available, all that programmers 
need to do is use INET6 and everything will just work according to the 
DNS records. This might even allow INET6 to become the "default" INET 
module for future versions of Perl.

If you are worried about failures for UDP applications, where the socket 
is not connected immediately, you could perhaps add support for a syntax 
such as INET6::new(AF=>AF_INET6).

But again, as you are the maintainer, it's your choice.

> After all, MRTG seems to run with Socket6-0.12 and INET6-1.28 ...The
> latter is at www.cpan.org available. Former is not still. trying to keep
> contact with mantainer....

If you can't contact the maintainer, perhaps you can change INET6 so it 
uses the non-deprecated API? Then it would work with Socket6 0.11, right?


Unsubscribe mailto:mrtg-developers-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:mrtg-developers-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/mrtg-developers

More information about the mrtg-developers mailing list