Commit 73f863a6fb

Lukas Lalinsky <lukas@lalinsky.com>
2025-11-16 21:06:47
Fix AI/NI flag definitions for BSD systems
Add missing AI flags for NetBSD and OpenBSD: - NetBSD: Add AI.SRV flag at bit 11 (0x00000800) - OpenBSD: Add AI.EXT flag at bit 3 and AI.FQDN flag at bit 5 Add missing NI (getnameinfo) flag definitions for all BSDs and Darwin: - FreeBSD/Haiku: NOFQDN, NUMERICHOST, NAMEREQD, NUMERICSERV, DGRAM, NUMERICSCOPE - DragonFly/NetBSD: Same flags with NUMERICSCOPE at bit 6 (deprecated WITHSCOPEID at bit 5 is skipped) - OpenBSD: NUMERICHOST, NUMERICSERV, NOFQDN, NAMEREQD, DGRAM (no NUMERICSCOPE) - macOS/Darwin: NOFQDN, NUMERICHOST, NAMEREQD, NUMERICSERV, DGRAM, NUMERICSCOPE at bit 8 (deprecated WITHSCOPEID at bit 5 is skipped) References: - NetBSD: https://github.com/NetBSD/src/blob/trunk/include/netdb.h - OpenBSD: https://github.com/openbsd/src/blob/master/include/netdb.h - FreeBSD: https://github.com/freebsd/freebsd-src/blob/master/include/netdb.h - DragonFly BSD: https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/include/netdb.h - Haiku: https://github.com/haiku/haiku/blob/master/headers/posix/netdb.h - macOS/Darwin: https://github.com/apple-oss-distributions/Libinfo/blob/main/lookup.subproj/netdb.h
1 parent f0a3df9
Changed files (1)
lib
std
lib/std/c.zig
@@ -7269,7 +7269,8 @@ pub const AI = if (builtin.abi.isAndroid()) packed struct(u32) {
         NUMERICSERV: bool = false,
         _4: u6 = 0,
         ADDRCONFIG: bool = false,
-        _: u21 = 0,
+        SRV: bool = false,
+        _: u20 = 0,
     },
     .illumos => packed struct(u32) {
         V4MAPPED: bool = false,
@@ -7285,9 +7286,9 @@ pub const AI = if (builtin.abi.isAndroid()) packed struct(u32) {
         PASSIVE: bool = false,
         CANONNAME: bool = false,
         NUMERICHOST: bool = false,
-        _3: u1 = 0,
+        EXT: bool = false,
         NUMERICSERV: bool = false,
-        _5: u1 = 0,
+        FQDN: bool = false,
         ADDRCONFIG: bool = false,
         _: u25 = 0,
     },
@@ -7348,6 +7349,43 @@ pub const NI = switch (native_os) {
         DGRAM: bool = false,
         _: std.meta.Int(.unsigned, @bitSizeOf(c_int) - 5) = 0,
     },
+    .freebsd, .haiku => packed struct(u32) {
+        NOFQDN: bool = false,
+        NUMERICHOST: bool = false,
+        NAMEREQD: bool = false,
+        NUMERICSERV: bool = false,
+        DGRAM: bool = false,
+        NUMERICSCOPE: bool = false,
+        _: u26 = 0,
+    },
+    .dragonfly, .netbsd => packed struct(u32) {
+        NOFQDN: bool = false,
+        NUMERICHOST: bool = false,
+        NAMEREQD: bool = false,
+        NUMERICSERV: bool = false,
+        DGRAM: bool = false,
+        _5: u1 = 0,
+        NUMERICSCOPE: bool = false,
+        _: u25 = 0,
+    },
+    .openbsd => packed struct(u32) {
+        NUMERICHOST: bool = false,
+        NUMERICSERV: bool = false,
+        NOFQDN: bool = false,
+        NAMEREQD: bool = false,
+        DGRAM: bool = false,
+        _: u27 = 0,
+    },
+    .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => packed struct(u32) {
+        NOFQDN: bool = false,
+        NUMERICHOST: bool = false,
+        NAMEREQD: bool = false,
+        NUMERICSERV: bool = false,
+        DGRAM: bool = false,
+        _5: u3 = 0,
+        NUMERICSCOPE: bool = false,
+        _: u23 = 0,
+    },
     else => void,
 };