authorgravatar for dev@sgregoratto.meStephen Gregoratto <dev@sgregoratto.me> 2021-09-15 10:43:45+10:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2021-09-16 13:32:55+03:00
log506f24cac2f5226210f9ce505d5b93c47b7b8c87
treebc6e35426260b41ede7cc64884477e07d991058c
parentdb940a2c8131c52fb6e1f2e40af9c68d2228e656

Set the Storage socket sizes to be system defined

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 #9759

9 files changed, 9 insertions(+), 1 deletions(-)

lib/std/c/darwin.zig+1
......@@ -291,6 +291,7 @@ pub const sockaddr = extern struct {
291291 family: sa_family_t,
292292 data: [14]u8,
293293
294 pub const SS_MAXSIZE = 128;
294295 pub const storage = std.x.os.Socket.Address.Native.Storage;
295296 pub const in = extern struct {
296297 len: u8 = @sizeOf(in),
lib/std/c/dragonfly.zig+1
......@@ -465,6 +465,7 @@ pub const sockaddr = extern struct {
465465 family: u8,
466466 data: [14]u8,
467467
468 pub const SS_MAXSIZE = 128;
468469 pub const storage = std.x.os.Socket.Address.Native.Storage;
469470
470471 pub const in = extern struct {
lib/std/c/freebsd.zig+1
......@@ -323,6 +323,7 @@ pub const sockaddr = extern struct {
323323 /// actually longer; address value
324324 data: [14]u8,
325325
326 pub const SS_MAXSIZE = 128;
326327 pub const storage = std.x.os.Socket.Address.Native.Storage;
327328
328329 pub const in = extern struct {
lib/std/c/haiku.zig+1
......@@ -339,6 +339,7 @@ pub const sockaddr = extern struct {
339339 /// actually longer; address value
340340 data: [14]u8,
341341
342 pub const SS_MAXSIZE = 128;
342343 pub const storage = std.x.os.Socket.Address.Native.Storage;
343344
344345 pub const in = extern struct {
lib/std/c/netbsd.zig+1
......@@ -476,6 +476,7 @@ pub const sockaddr = extern struct {
476476 /// actually longer; address value
477477 data: [14]u8,
478478
479 pub const SS_MAXSIZE = 128;
479480 pub const storage = std.x.os.Socket.Address.Native.Storage;
480481
481482 pub const in = extern struct {
lib/std/c/openbsd.zig+1
......@@ -279,6 +279,7 @@ pub const sockaddr = extern struct {
279279 /// actually longer; address value
280280 data: [14]u8,
281281
282 pub const SS_MAXSIZE = 256;
282283 pub const storage = std.x.os.Socket.Address.Native.Storage;
283284
284285 pub const in = extern struct {
lib/std/os/linux.zig+1
......@@ -2923,6 +2923,7 @@ pub const sockaddr = extern struct {
29232923 family: sa_family_t,
29242924 data: [14]u8,
29252925
2926 pub const SS_MAXSIZE = 128;
29262927 pub const storage = std.x.os.Socket.Address.Native.Storage;
29272928
29282929 /// IPv4 socket address
lib/std/os/windows/ws2_32.zig+1
......@@ -1105,6 +1105,7 @@ pub const sockaddr = extern struct {
11051105 family: ADDRESS_FAMILY,
11061106 data: [14]u8,
11071107
1108 pub const SS_MAXSIZE = 128;
11081109 pub const storage = std.x.os.Socket.Address.Native.Storage;
11091110
11101111 /// IPv4 socket address
lib/std/x/os/socket.zig+1-1
......@@ -37,7 +37,7 @@ pub const Socket = struct {
3737
3838 /// POSIX `sockaddr.storage`. The expected size and alignment is specified in IETF RFC 2553.
3939 pub const Storage = extern struct {
40 pub const expected_size = 128;
40 pub const expected_size = os.sockaddr.SS_MAXSIZE;
4141 pub const expected_alignment = 8;
4242
4343 pub const padding_size = expected_size -