diff options
| author | Stepan Koltsov <stepan.koltsov@gmail.com> | 2013-08-09 13:53:28 +0400 |
|---|---|---|
| committer | Stepan Koltsov <stepan.koltsov@gmail.com> | 2013-08-09 13:53:28 +0400 |
| commit | ae81151ad63e2db7ec893f90a4e99592cabb6b30 (patch) | |
| tree | 6e6dda0e32385e2d75a7f1d4d7961dcb69ea1da2 /src/libstd/rt | |
| parent | 094e4260f8b0a1d1cddf235373d2588cefd167b9 (diff) | |
| download | rust-ae81151ad63e2db7ec893f90a4e99592cabb6b30.tar.gz rust-ae81151ad63e2db7ec893f90a4e99592cabb6b30.zip | |
Fix Ipv6Addr to_str for ::1:x.x.x.x addresses
Reported by luqmana@
Diffstat (limited to 'src/libstd/rt')
| -rw-r--r-- | src/libstd/rt/io/net/ip.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libstd/rt/io/net/ip.rs b/src/libstd/rt/io/net/ip.rs index 81269d197d5..77176088801 100644 --- a/src/libstd/rt/io/net/ip.rs +++ b/src/libstd/rt/io/net/ip.rs @@ -43,7 +43,7 @@ impl ToStr for IpAddr { } // Ipv4-Mapped address - Ipv6Addr(0, 0, 0, 0, 0, 1, g, h) => { + Ipv6Addr(0, 0, 0, 0, 0, 0xFFFF, g, h) => { let a = fmt!("%04x", g as uint); let b = FromStrRadix::from_str_radix(a.slice(2, 4), 16).unwrap(); let a = FromStrRadix::from_str_radix(a.slice(0, 2), 16).unwrap(); @@ -437,4 +437,11 @@ mod test { // port out of range assert_eq!(None, FromStr::from_str::<SocketAddr>("127.0.0.1:123456")); } + + #[test] + fn ipv6_addr_to_str() { + let a1 = Ipv6Addr(0, 0, 0, 0, 0, 0xffff, 0xc000, 0x280); + assert!(a1.to_str() == ~"::ffff:192.0.2.128" || a1.to_str() == ~"::FFFF:192.0.2.128"); + } + } |
