about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstd/sys/hermit/net.rs20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libstd/sys/hermit/net.rs b/src/libstd/sys/hermit/net.rs
index 8f96f8622c6..a02f1131329 100644
--- a/src/libstd/sys/hermit/net.rs
+++ b/src/libstd/sys/hermit/net.rs
@@ -149,7 +149,15 @@ impl TcpStream {
                 port,
             ),
             Ipv6(ref addr) => SocketAddr::new(
-                IpAddr::V6(Ipv6Addr::new(addr.0)),
+                IpAddr::V6(Ipv6Addr::new(
+                    ((addr.0[0] as u16) << 8) | addr.0[1] as u16,
+                    ((addr.0[2] as u16) << 8) | addr.0[3] as u16,
+                    ((addr.0[4] as u16) << 8) | addr.0[5] as u16,
+                    ((addr.0[6] as u16) << 8) | addr.0[7] as u16,
+                    ((addr.0[8] as u16) << 8) | addr.0[9] as u16,
+                    ((addr.0[10] as u16) << 8) | addr.0[11] as u16,
+                    ((addr.0[12] as u16) << 8) | addr.0[13] as u16,
+                    ((addr.0[14] as u16) << 8) | addr.0[15] as u16)),
                 port,
             ),
             _ => {
@@ -232,7 +240,15 @@ impl TcpListener {
                 port,
             ),
             Ipv6(ref addr) => SocketAddr::new(
-                IpAddr::V6(Ipv6Addr::new(addr.0)),
+                IpAddr::V6(Ipv6Addr::new(
+                    ((addr.0[0] as u16) << 8) | addr.0[1] as u16,
+                    ((addr.0[2] as u16) << 8) | addr.0[3] as u16,
+                    ((addr.0[4] as u16) << 8) | addr.0[5] as u16,
+                    ((addr.0[6] as u16) << 8) | addr.0[7] as u16,
+                    ((addr.0[8] as u16) << 8) | addr.0[9] as u16,
+                    ((addr.0[10] as u16) << 8) | addr.0[11] as u16,
+                    ((addr.0[12] as u16) << 8) | addr.0[13] as u16,
+                    ((addr.0[14] as u16) << 8) | addr.0[15] as u16)),
                 port,
             ),
             _ => {