@@ -321,12 +321,12 @@ fn ip_properties() {
321321 check ! ( "fe80:ffff::" ) ;
322322 check ! ( "febf:ffff::" ) ;
323323 check ! ( "fec0::" , global) ;
324- check ! ( "ff01::" , multicast) ;
325- check ! ( "ff02::" , multicast) ;
326- check ! ( "ff03::" , multicast) ;
327- check ! ( "ff04::" , multicast) ;
328- check ! ( "ff05::" , multicast) ;
329- check ! ( "ff08::" , multicast) ;
324+ check ! ( "ff01::" , global | multicast) ;
325+ check ! ( "ff02::" , global | multicast) ;
326+ check ! ( "ff03::" , global | multicast) ;
327+ check ! ( "ff04::" , global | multicast) ;
328+ check ! ( "ff05::" , global | multicast) ;
329+ check ! ( "ff08::" , global | multicast) ;
330330 check ! ( "ff0e::" , global | multicast) ;
331331 check ! ( "2001:db8:85a3::8a2e:370:7334" , doc) ;
332332 check ! ( "2001:2::ac32:23ff:21" , global | benchmarking) ;
@@ -609,6 +609,60 @@ fn ipv6_properties() {
609609
610610 check ! ( "1::" , & [ 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , global | unicast_global) ;
611611
612+ check ! (
613+ "::ffff:127.0.0.1" ,
614+ & [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0xff , 0xff , 0x7f , 0 , 0 , 1 ] ,
615+ unicast_global
616+ ) ;
617+
618+ check ! (
619+ "64:ff9b:1::" ,
620+ & [ 0 , 0x64 , 0xff , 0x9b , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
621+ unicast_global
622+ ) ;
623+
624+ check ! ( "100::" , & [ 0x01 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unicast_global) ;
625+
626+ check ! ( "2001::" , & [ 0x20 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unicast_global) ;
627+
628+ check ! (
629+ "2001:1::1" ,
630+ & [ 0x20 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ] ,
631+ global | unicast_global
632+ ) ;
633+
634+ check ! (
635+ "2001:1::2" ,
636+ & [ 0x20 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 ] ,
637+ global | unicast_global
638+ ) ;
639+
640+ check ! (
641+ "2001:3::" ,
642+ & [ 0x20 , 1 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
643+ global | unicast_global
644+ ) ;
645+
646+ check ! (
647+ "2001:4:112::" ,
648+ & [ 0x20 , 1 , 0 , 4 , 1 , 0x12 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
649+ global | unicast_global
650+ ) ;
651+
652+ check ! (
653+ "2001:20::" ,
654+ & [ 0x20 , 1 , 0 , 0x20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
655+ global | unicast_global
656+ ) ;
657+
658+ check ! ( "2001:30::" , & [ 0x20 , 1 , 0 , 0x30 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unicast_global) ;
659+
660+ check ! (
661+ "2001:200::" ,
662+ & [ 0x20 , 1 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
663+ global | unicast_global
664+ ) ;
665+
612666 check ! ( "fc00::" , & [ 0xfc , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unique_local) ;
613667
614668 check ! (
@@ -666,21 +720,37 @@ fn ipv6_properties() {
666720 check ! (
667721 "ff01::" ,
668722 & [ 0xff , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
669- multicast_interface_local
723+ multicast_interface_local | global
670724 ) ;
671725
672- check ! ( "ff02::" , & [ 0xff , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_link_local) ;
726+ check ! (
727+ "ff02::" ,
728+ & [ 0xff , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
729+ multicast_link_local | global
730+ ) ;
673731
674- check ! ( "ff03::" , & [ 0xff , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_realm_local) ;
732+ check ! (
733+ "ff03::" ,
734+ & [ 0xff , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
735+ multicast_realm_local | global
736+ ) ;
675737
676- check ! ( "ff04::" , & [ 0xff , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_admin_local) ;
738+ check ! (
739+ "ff04::" ,
740+ & [ 0xff , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
741+ multicast_admin_local | global
742+ ) ;
677743
678- check ! ( "ff05::" , & [ 0xff , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , multicast_site_local) ;
744+ check ! (
745+ "ff05::" ,
746+ & [ 0xff , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
747+ multicast_site_local | global
748+ ) ;
679749
680750 check ! (
681751 "ff08::" ,
682752 & [ 0xff , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
683- multicast_organization_local
753+ multicast_organization_local | global
684754 ) ;
685755
686756 check ! (
@@ -689,6 +759,12 @@ fn ipv6_properties() {
689759 multicast_global | global
690760 ) ;
691761
762+ check ! (
763+ "2001:2::ac32:23ff:21" ,
764+ & [ 0x20 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0xac , 0x32 , 0x23 , 0xff , 0 , 0x21 ] ,
765+ unicast_global
766+ ) ;
767+
692768 check ! (
693769 "2001:db8:85a3::8a2e:370:7334" ,
694770 & [ 0x20 , 1 , 0xd , 0xb8 , 0x85 , 0xa3 , 0 , 0 , 0 , 0 , 0x8a , 0x2e , 3 , 0x70 , 0x73 , 0x34 ] ,
0 commit comments