extern struct sockaddr [src]

Fields

family: sa_family_t
data: [14]u8

Members

Source

pub const sockaddr = extern struct { family: sa_family_t, data: [14]u8, pub const SS_MAXSIZE = 128; pub const storage = extern struct { family: sa_family_t align(8), padding: [SS_MAXSIZE - @sizeOf(sa_family_t)]u8 = undefined, comptime { assert(@sizeOf(storage) == SS_MAXSIZE); assert(@alignOf(storage) == 8); } }; /// IPv4 socket address pub const in = extern struct { family: sa_family_t = AF.INET, port: in_port_t, addr: u32, zero: [8]u8 = [8]u8{ 0, 0, 0, 0, 0, 0, 0, 0 }, }; /// IPv6 socket address pub const in6 = extern struct { family: sa_family_t = AF.INET6, port: in_port_t, flowinfo: u32, addr: [16]u8, scope_id: u32, }; /// UNIX domain socket address pub const un = extern struct { family: sa_family_t = AF.UNIX, path: [108]u8, }; /// Packet socket address pub const ll = extern struct { family: sa_family_t = AF.PACKET, protocol: u16, ifindex: i32, hatype: u16, pkttype: u8, halen: u8, addr: [8]u8, }; /// Netlink socket address pub const nl = extern struct { family: sa_family_t = AF.NETLINK, __pad1: c_ushort = 0, /// port ID pid: u32, /// multicast groups mask groups: u32, }; pub const xdp = extern struct { family: u16 = AF.XDP, flags: u16, ifindex: u32, queue_id: u32, shared_umem_fd: u32, }; /// Address structure for vSockets pub const vm = extern struct { family: sa_family_t = AF.VSOCK, reserved1: u16 = 0, port: u32, cid: u32, flags: u8, /// The total size of this structure should be exactly the same as that of struct sockaddr. zero: [3]u8 = [_]u8{0} ** 3, comptime { std.debug.assert(@sizeOf(vm) == @sizeOf(sockaddr)); } }; }