IPv6 address parsing problems in 5.0rc7

I think I found a couple of little buglets with IPv6 in RouterOS 5.0rc7.

The first one is the inability to parse the following address correctly (followed by an example of same address that does parse correctly):

[admin@MikroTik] > /ping 2001:aa00::1
HOST                                    SIZE  TTL TIME  STATUS
                                                        timeout
[admin@MikroTik] > /ping 2001:aa00:0::1
HOST                                    SIZE  TTL TIME  STATUS
2001:aa00::1                            56    64  0ms   echo reply

You can reproduce this as easily as assigning a global address like the above to any interface on your RouterOS device and then trying to ping it. /tool traceroute seems to parse that fine, it’s only ping that fails.

The other one is really minor but would be nice to fix to add polish. When displaying IPv6 addresses, RouterOS seems to abbreviate using the double colon :: at the first field that is all zeros rather than the longest string of fields that are all zeros.

Example:

[admin@MikroTik] > /ipv6 route print detail
...
3 ADo  dst-address=2001:aa00::1:0:0:0:0/64

[admin@MikroTik] > /routing ospf-v3 route print
..
3 2001:aa00::1:0:0:0:0/64                     intra-area     11

This address is best displayed like:

2001:aa00:0:1::/64

(The above IPv6 addresses have been obfuscated.)