[erlang-bugs] ipv6 bug in inet:ntoa

Rik Ribbers rik.ribbers@REDACTED
Fri Jun 26 22:43:42 CEST 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20150626/6b11ddce/attachment.htm>


More information about the erlang-bugs mailing list