diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs
index 7e7310965d9133f57e7098448342c0ee89a7e608..8f1a58480c09fb208aedebdbaea0db8447bfda65 100644
--- a/src/unix/newlib/mod.rs
+++ b/src/unix/newlib/mod.rs
@@ -26,18 +26,13 @@ pub type useconds_t = u32;
 
 s! {
     pub struct sockaddr {
+        pub sa_len: u8,
         pub sa_family: sa_family_t,
         pub sa_data: [::c_char; 14],
     }
 
-    pub struct sockaddr_in {
-        pub sin_family: sa_family_t,
-        pub sin_port: ::in_port_t,
-        pub sin_addr: ::in_addr,
-        pub sin_zero: [u8; 8],
-    }
-
-    pub struct sockaddr_in6 { // Unverified
+    pub struct sockaddr_in6 {
+        pub sin6_len: u8,
         pub sin6_family: sa_family_t,
         pub sin6_port: ::in_port_t,
         pub sin6_flowinfo: u32,
@@ -45,9 +40,12 @@ s! {
         pub sin6_scope_id: u32,
     }
 
-    pub struct sockaddr_storage {
-        pub ss_family: sa_family_t,
-        pub __ss_padding: [u8; 26],
+    pub struct sockaddr_in {
+        pub sin_len: u8,
+        pub sin_family: ::sa_family_t,
+        pub sin_port: ::in_port_t,
+        pub sin_addr: ::in_addr,
+        pub sin_zero: [::c_char; 8],
     }
 
     pub struct addrinfo {