2022-01-06 10:48:30 +01:00
|
|
|
module net
|
|
|
|
|
|
|
|
const max_unix_path = 108
|
|
|
|
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct C.addrinfo {
|
2022-01-06 10:48:30 +01:00
|
|
|
mut:
|
|
|
|
ai_family int
|
|
|
|
ai_socktype int
|
|
|
|
ai_flags int
|
|
|
|
ai_protocol int
|
|
|
|
ai_addrlen int
|
|
|
|
ai_addr voidptr
|
|
|
|
ai_canonname voidptr
|
|
|
|
ai_next voidptr
|
|
|
|
}
|
|
|
|
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct C.sockaddr_in {
|
2022-02-18 10:23:45 +01:00
|
|
|
mut:
|
2022-01-06 10:48:30 +01:00
|
|
|
sin_family u16
|
|
|
|
sin_port u16
|
|
|
|
sin_addr u32
|
|
|
|
}
|
|
|
|
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct C.sockaddr_in6 {
|
2022-02-18 10:23:45 +01:00
|
|
|
mut:
|
2022-01-06 10:48:30 +01:00
|
|
|
sin6_family u16
|
|
|
|
sin6_port u16
|
|
|
|
sin6_addr [4]u32
|
|
|
|
}
|
|
|
|
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct C.sockaddr_un {
|
2022-02-18 10:23:45 +01:00
|
|
|
mut:
|
2022-01-06 10:48:30 +01:00
|
|
|
sun_family u16
|
|
|
|
sun_path [max_unix_path]char
|
|
|
|
}
|
|
|
|
|
|
|
|
[_pack: '1']
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct Ip6 {
|
2022-01-06 10:48:30 +01:00
|
|
|
port u16
|
|
|
|
flow_info u32
|
2022-04-15 14:55:39 +02:00
|
|
|
addr [16]u8
|
2022-01-06 10:48:30 +01:00
|
|
|
scope_id u32
|
|
|
|
}
|
|
|
|
|
|
|
|
[_pack: '1']
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct Ip {
|
2022-01-06 10:48:30 +01:00
|
|
|
port u16
|
2022-04-15 14:55:39 +02:00
|
|
|
addr [4]u8
|
2022-01-06 10:48:30 +01:00
|
|
|
// Pad to size so that socket functions
|
|
|
|
// dont complain to us (see in.h and bind())
|
|
|
|
// TODO(emily): I would really like to use
|
|
|
|
// some constant calculations here
|
|
|
|
// so that this doesnt have to be hardcoded
|
2022-04-15 14:55:39 +02:00
|
|
|
sin_pad [8]u8
|
2022-01-06 10:48:30 +01:00
|
|
|
}
|
|
|
|
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct Unix {
|
2022-04-15 17:25:45 +02:00
|
|
|
path [max_unix_path]u8
|
2022-01-06 10:48:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
[_pack: '1']
|
2022-06-19 16:42:22 +02:00
|
|
|
pub struct Addr {
|
2022-01-06 10:48:30 +01:00
|
|
|
pub:
|
|
|
|
f u16
|
|
|
|
addr AddrData
|
|
|
|
}
|