@@ -305,12 +305,12 @@ fn ip_properties() {
305
305
check ! ( "fe80:ffff::" ) ;
306
306
check ! ( "febf:ffff::" ) ;
307
307
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) ;
314
314
check ! ( "ff0e::" , global | multicast) ;
315
315
check ! ( "2001:db8:85a3::8a2e:370:7334" , doc) ;
316
316
check ! ( "102:304:506:708:90a:b0c:d0e:f10" , global) ;
@@ -593,6 +593,60 @@ fn ipv6_properties() {
593
593
594
594
check ! ( "1::" , & [ 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , global | unicast_global) ;
595
595
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
+
596
650
check ! ( "fc00::" , & [ 0xfc , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unique_local) ;
597
651
598
652
check ! (
@@ -650,21 +704,37 @@ fn ipv6_properties() {
650
704
check ! (
651
705
"ff01::" ,
652
706
& [ 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
654
708
) ;
655
709
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
+ ) ;
657
715
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
+ ) ;
659
721
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
+ ) ;
661
727
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
+ ) ;
663
733
664
734
check ! (
665
735
"ff08::" ,
666
736
& [ 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
668
738
) ;
669
739
670
740
check ! (
@@ -673,6 +743,12 @@ fn ipv6_properties() {
673
743
multicast_global | global
674
744
) ;
675
745
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
+
676
752
check ! (
677
753
"2001:db8:85a3::8a2e:370:7334" ,
678
754
& [ 0x20 , 1 , 0xd , 0xb8 , 0x85 , 0xa3 , 0 , 0 , 0 , 0 , 0x8a , 0x2e , 3 , 0x70 , 0x73 , 0x34 ] ,
0 commit comments