| 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 | 291 | family: sa_family_t, |
| 292 | 292 | data: [14]u8, |
| 293 | 293 | |
| 294 | pub const SS_MAXSIZE = 128; | |
| 294 | 295 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 295 | 296 | pub const in = extern struct { |
| 296 | 297 | len: u8 = @sizeOf(in), |
lib/std/c/dragonfly.zig+1| ... | ... | @@ -465,6 +465,7 @@ pub const sockaddr = extern struct { |
| 465 | 465 | family: u8, |
| 466 | 466 | data: [14]u8, |
| 467 | 467 | |
| 468 | pub const SS_MAXSIZE = 128; | |
| 468 | 469 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 469 | 470 | |
| 470 | 471 | pub const in = extern struct { |
lib/std/c/freebsd.zig+1| ... | ... | @@ -323,6 +323,7 @@ pub const sockaddr = extern struct { |
| 323 | 323 | /// actually longer; address value |
| 324 | 324 | data: [14]u8, |
| 325 | 325 | |
| 326 | pub const SS_MAXSIZE = 128; | |
| 326 | 327 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 327 | 328 | |
| 328 | 329 | pub const in = extern struct { |
lib/std/c/haiku.zig+1| ... | ... | @@ -339,6 +339,7 @@ pub const sockaddr = extern struct { |
| 339 | 339 | /// actually longer; address value |
| 340 | 340 | data: [14]u8, |
| 341 | 341 | |
| 342 | pub const SS_MAXSIZE = 128; | |
| 342 | 343 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 343 | 344 | |
| 344 | 345 | pub const in = extern struct { |
lib/std/c/netbsd.zig+1| ... | ... | @@ -476,6 +476,7 @@ pub const sockaddr = extern struct { |
| 476 | 476 | /// actually longer; address value |
| 477 | 477 | data: [14]u8, |
| 478 | 478 | |
| 479 | pub const SS_MAXSIZE = 128; | |
| 479 | 480 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 480 | 481 | |
| 481 | 482 | pub const in = extern struct { |
lib/std/c/openbsd.zig+1| ... | ... | @@ -279,6 +279,7 @@ pub const sockaddr = extern struct { |
| 279 | 279 | /// actually longer; address value |
| 280 | 280 | data: [14]u8, |
| 281 | 281 | |
| 282 | pub const SS_MAXSIZE = 256; | |
| 282 | 283 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 283 | 284 | |
| 284 | 285 | pub const in = extern struct { |
lib/std/os/linux.zig+1| ... | ... | @@ -2923,6 +2923,7 @@ pub const sockaddr = extern struct { |
| 2923 | 2923 | family: sa_family_t, |
| 2924 | 2924 | data: [14]u8, |
| 2925 | 2925 | |
| 2926 | pub const SS_MAXSIZE = 128; | |
| 2926 | 2927 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 2927 | 2928 | |
| 2928 | 2929 | /// IPv4 socket address |
lib/std/os/windows/ws2_32.zig+1| ... | ... | @@ -1105,6 +1105,7 @@ pub const sockaddr = extern struct { |
| 1105 | 1105 | family: ADDRESS_FAMILY, |
| 1106 | 1106 | data: [14]u8, |
| 1107 | 1107 | |
| 1108 | pub const SS_MAXSIZE = 128; | |
| 1108 | 1109 | pub const storage = std.x.os.Socket.Address.Native.Storage; |
| 1109 | 1110 | |
| 1110 | 1111 | /// IPv4 socket address |
lib/std/x/os/socket.zig+1-1| ... | ... | @@ -37,7 +37,7 @@ pub const Socket = struct { |
| 37 | 37 | |
| 38 | 38 | /// POSIX `sockaddr.storage`. The expected size and alignment is specified in IETF RFC 2553. |
| 39 | 39 | pub const Storage = extern struct { |
| 40 | pub const expected_size = 128; | |
| 40 | pub const expected_size = os.sockaddr.SS_MAXSIZE; | |
| 41 | 41 | pub const expected_alignment = 8; |
| 42 | 42 | |
| 43 | 43 | pub const padding_size = expected_size - |