| author | |
| committer | |
| log | 506f24cac2f5226210f9ce505d5b93c47b7b8c87 |
| tree | bc6e35426260b41ede7cc64884477e07d991058c |
| parent | db940a2c8131c52fb6e1f2e40af9c68d2228e656 |
Some systems (Solaris, OpenBSD, AIX) change their definitions of
sockaddr_storage to be larger than 128 bytes. This comment adds a new
constant in the `sockaddr` that defines the size for every system.
Fixes #97599 files changed, 9 insertions(+), 1 deletions(-)
lib/std/c/darwin.zig+1| ... | @@ -291,6 +291,7 @@ pub const sockaddr = extern struct { | ... | @@ -291,6 +291,7 @@ pub const sockaddr = extern struct { |
| 291 | family: sa_family_t, | 291 | family: sa_family_t, |
| 292 | data: [14]u8, | 292 | data: [14]u8, |
| 293 | 293 | ||
| 294 | pub const SS_MAXSIZE = 128; | ||
| 294 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 295 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 295 | pub const in = extern struct { | 296 | pub const in = extern struct { |
| 296 | len: u8 = @sizeOf(in), | 297 | len: u8 = @sizeOf(in), |
lib/std/c/dragonfly.zig+1| ... | @@ -465,6 +465,7 @@ pub const sockaddr = extern struct { | ... | @@ -465,6 +465,7 @@ pub const sockaddr = extern struct { |
| 465 | family: u8, | 465 | family: u8, |
| 466 | data: [14]u8, | 466 | data: [14]u8, |
| 467 | 467 | ||
| 468 | pub const SS_MAXSIZE = 128; | ||
| 468 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 469 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 469 | 470 | ||
| 470 | pub const in = extern struct { | 471 | pub const in = extern struct { |
lib/std/c/freebsd.zig+1| ... | @@ -323,6 +323,7 @@ pub const sockaddr = extern struct { | ... | @@ -323,6 +323,7 @@ pub const sockaddr = extern struct { |
| 323 | /// actually longer; address value | 323 | /// actually longer; address value |
| 324 | data: [14]u8, | 324 | data: [14]u8, |
| 325 | 325 | ||
| 326 | pub const SS_MAXSIZE = 128; | ||
| 326 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 327 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 327 | 328 | ||
| 328 | pub const in = extern struct { | 329 | pub const in = extern struct { |
lib/std/c/haiku.zig+1| ... | @@ -339,6 +339,7 @@ pub const sockaddr = extern struct { | ... | @@ -339,6 +339,7 @@ pub const sockaddr = extern struct { |
| 339 | /// actually longer; address value | 339 | /// actually longer; address value |
| 340 | data: [14]u8, | 340 | data: [14]u8, |
| 341 | 341 | ||
| 342 | pub const SS_MAXSIZE = 128; | ||
| 342 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 343 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 343 | 344 | ||
| 344 | pub const in = extern struct { | 345 | pub const in = extern struct { |
lib/std/c/netbsd.zig+1| ... | @@ -476,6 +476,7 @@ pub const sockaddr = extern struct { | ... | @@ -476,6 +476,7 @@ pub const sockaddr = extern struct { |
| 476 | /// actually longer; address value | 476 | /// actually longer; address value |
| 477 | data: [14]u8, | 477 | data: [14]u8, |
| 478 | 478 | ||
| 479 | pub const SS_MAXSIZE = 128; | ||
| 479 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 480 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 480 | 481 | ||
| 481 | pub const in = extern struct { | 482 | pub const in = extern struct { |
lib/std/c/openbsd.zig+1| ... | @@ -279,6 +279,7 @@ pub const sockaddr = extern struct { | ... | @@ -279,6 +279,7 @@ pub const sockaddr = extern struct { |
| 279 | /// actually longer; address value | 279 | /// actually longer; address value |
| 280 | data: [14]u8, | 280 | data: [14]u8, |
| 281 | 281 | ||
| 282 | pub const SS_MAXSIZE = 256; | ||
| 282 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 283 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 283 | 284 | ||
| 284 | pub const in = extern struct { | 285 | pub const in = extern struct { |
lib/std/os/linux.zig+1| ... | @@ -2923,6 +2923,7 @@ pub const sockaddr = extern struct { | ... | @@ -2923,6 +2923,7 @@ pub const sockaddr = extern struct { |
| 2923 | family: sa_family_t, | 2923 | family: sa_family_t, |
| 2924 | data: [14]u8, | 2924 | data: [14]u8, |
| 2925 | 2925 | ||
| 2926 | pub const SS_MAXSIZE = 128; | ||
| 2926 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 2927 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 2927 | 2928 | ||
| 2928 | /// IPv4 socket address | 2929 | /// IPv4 socket address |
lib/std/os/windows/ws2_32.zig+1| ... | @@ -1105,6 +1105,7 @@ pub const sockaddr = extern struct { | ... | @@ -1105,6 +1105,7 @@ pub const sockaddr = extern struct { |
| 1105 | family: ADDRESS_FAMILY, | 1105 | family: ADDRESS_FAMILY, |
| 1106 | data: [14]u8, | 1106 | data: [14]u8, |
| 1107 | 1107 | ||
| 1108 | pub const SS_MAXSIZE = 128; | ||
| 1108 | pub const storage = std.x.os.Socket.Address.Native.Storage; | 1109 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 1109 | 1110 | ||
| 1110 | /// IPv4 socket address | 1111 | /// IPv4 socket address |
lib/std/x/os/socket.zig+1-1| ... | @@ -37,7 +37,7 @@ pub const Socket = struct { | ... | @@ -37,7 +37,7 @@ pub const Socket = struct { |
| 37 | 37 | ||
| 38 | /// POSIX `sockaddr.storage`. The expected size and alignment is specified in IETF RFC 2553. | 38 | /// POSIX `sockaddr.storage`. The expected size and alignment is specified in IETF RFC 2553. |
| 39 | pub const Storage = extern struct { | 39 | pub const Storage = extern struct { |
| 40 | pub const expected_size = 128; | 40 | pub const expected_size = os.sockaddr.SS_MAXSIZE; |
| 41 | pub const expected_alignment = 8; | 41 | pub const expected_alignment = 8; |
| 42 | 42 | ||
| 43 | pub const padding_size = expected_size - | 43 | pub const padding_size = expected_size - |