ipv6 bug in inet:ntoa

Rik Ribbers <[email protected]> Fri, 26 Jun 2015 20:43:42 +0000
Newsgroups gmane.comp.lang.erlang.bugs
Message-ID <CAFjSvn8r+gkHKGXSSXubYeTjGm793_5+d9+vDu437OAa3gk2sg@mail.gmail.com>
Hello,

I've been playing around with ipv6 in erlang and came across at first
strange behaviour in converting string to ipv6 and back

~ --> erl
Erlang/OTP 18 [erts-7.0] [source-4d83b58] [64-bit] [smp:4:4]
[async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.0  (abort with ^G)
1>inet:parse_address("2a00:d78::147:94:198:152:68").
{ok,{10752,3448,0,327,148,408,338,104}}
2> inet:ntoa({10752,3448,0,327,148,408,338,104}).
"2A00:D78:0:147:94:198:152:68"

If you look closely you will see that there is an extra 0 introduced. This
is actually correct. In IETF RFC5952 section 4.2.2 states that a single 0
must not be shortened. This however introduces however the question is the
inet:parse_address is actually correct, however it is being friendly to its
caller...

The real issue is however that the addresses are displayed in uppercase
which is simply wrong. As RFC5952 clearly states in section 4.3. There is
even Errata on this issue that states it must be in lower case.

The RFC can be found here https://tools.ietf.org/html/rfc5952

Kind regards,
Rik Ribbers

_______________________________________________
erlang-bugs mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-bugs