@@ -305,12 +305,12 @@ fn ip_properties() {
305305 check ! ( "fe80:ffff::" ) ;
306306 check ! ( "febf:ffff::" ) ;
307307 check ! ( "fec0::" , global) ;
308- check ! ( "ff01::" , multicast) ;
309- check ! ( "ff02::" , multicast) ;
310- check ! ( "ff03::" , multicast) ;
311- check ! ( "ff04::" , multicast) ;
312- check ! ( "ff05::" , multicast) ;
313- check ! ( "ff08::" , multicast) ;
308+ check ! ( "ff01::" , global | multicast) ;
309+ check ! ( "ff02::" , global | multicast) ;
310+ check ! ( "ff03::" , global | multicast) ;
311+ check ! ( "ff04::" , global | multicast) ;
312+ check ! ( "ff05::" , global | multicast) ;
313+ check ! ( "ff08::" , global | multicast) ;
314314 check ! ( "ff0e::" , global | multicast) ;
315315 check ! ( "2001:db8:85a3::8a2e:370:7334" , doc) ;
316316 check ! ( "102:304:506:708:90a:b0c:d0e:f10" , global) ;
@@ -593,6 +593,60 @@ fn ipv6_properties() {
593593
594594 check ! ( "1::" , & [ 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , global | unicast_global) ;
595595
596+ check ! (
597+ "::ffff:127.0.0.1" ,
598+ & [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0xff , 0xff , 0x7f , 0 , 0 , 1 ] ,
599+ unicast_global
600+ ) ;
601+
602+ check ! (
603+ "64:ff9b:1::" ,
604+ & [ 0 , 0x64 , 0xff , 0x9b , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
605+ unicast_global
606+ ) ;
607+
608+ check ! ( "100::" , & [ 0x01 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unicast_global) ;
609+
610+ check ! ( "2001::" , & [ 0x20 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unicast_global) ;
611+
612+ check ! (
613+ "2001:1::1" ,
614+ & [ 0x20 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ] ,
615+ global | unicast_global
616+ ) ;
617+
618+ check ! (
619+ "2001:1::2" ,
620+ & [ 0x20 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 ] ,
621+ global | unicast_global
622+ ) ;
623+
624+ check ! (
625+ "2001:3::" ,
626+ & [ 0x20 , 1 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
627+ global | unicast_global
628+ ) ;
629+
630+ check ! (
631+ "2001:4:112::" ,
632+ & [ 0x20 , 1 , 0 , 4 , 1 , 0x12 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
633+ global | unicast_global
634+ ) ;
635+
636+ check ! (
637+ "2001:20::" ,
638+ & [ 0x20 , 1 , 0 , 0x20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
639+ global | unicast_global
640+ ) ;
641+
642+ check ! ( "2001:30::" , & [ 0x20 , 1 , 0 , 0x30 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unicast_global) ;
643+
644+ check ! (
645+ "2001:200::" ,
646+ & [ 0x20 , 1 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
647+ global | unicast_global
648+ ) ;
649+
596650 check ! ( "fc00::" , & [ 0xfc , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unique_local) ;
597651
598652 check ! (
@@ -650,21 +704,37 @@ fn ipv6_properties() {
650704 check ! (
651705 "ff01::" ,
652706 & [ 0xff , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
653- multicast_interface_local
707+ multicast_interface_local | global
654708 ) ;
655709
656- check ! ( "ff02::" , & [ 0xff , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_link_local) ;
710+ check ! (
711+ "ff02::" ,
712+ & [ 0xff , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
713+ multicast_link_local | global
714+ ) ;
657715
658- check ! ( "ff03::" , & [ 0xff , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_realm_local) ;
716+ check ! (
717+ "ff03::" ,
718+ & [ 0xff , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
719+ multicast_realm_local | global
720+ ) ;
659721
660- check ! ( "ff04::" , & [ 0xff , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_admin_local) ;
722+ check ! (
723+ "ff04::" ,
724+ & [ 0xff , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
725+ multicast_admin_local | global
726+ ) ;
661727
662- check ! ( "ff05::" , & [ 0xff , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_site_local) ;
728+ check ! (
729+ "ff05::" ,
730+ & [ 0xff , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
731+ multicast_site_local | global
732+ ) ;
663733
664734 check ! (
665735 "ff08::" ,
666736 & [ 0xff , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
667- multicast_organization_local
737+ multicast_organization_local | global
668738 ) ;
669739
670740 check ! (
@@ -673,6 +743,12 @@ fn ipv6_properties() {
673743 multicast_global | global
674744 ) ;
675745
746+ check ! (
747+ "2001:2::ac32:23ff:21" ,
748+ & [ 0x20 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0xac , 0x32 , 0x23 , 0xff , 0 , 0x21 ] ,
749+ unicast_global
750+ ) ;
751+
676752 check ! (
677753 "2001:db8:85a3::8a2e:370:7334" ,
678754 & [ 0x20 , 1 , 0xd , 0xb8 , 0x85 , 0xa3 , 0 , 0 , 0 , 0 , 0x8a , 0x2e , 3 , 0x70 , 0x73 , 0x34 ] ,
0 commit comments