aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/net/address_darwin.c.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/vlib/net/address_darwin.c.v')
-rw-r--r--v_windows/v/vlib/net/address_darwin.c.v74
1 files changed, 74 insertions, 0 deletions
diff --git a/v_windows/v/vlib/net/address_darwin.c.v b/v_windows/v/vlib/net/address_darwin.c.v
new file mode 100644
index 0000000..041ccf2
--- /dev/null
+++ b/v_windows/v/vlib/net/address_darwin.c.v
@@ -0,0 +1,74 @@
+module net
+
+const max_unix_path = 104
+
+struct C.addrinfo {
+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
+}
+
+struct C.sockaddr_in6 {
+mut:
+ // 1 + 1 + 2 + 4 + 16 + 4 = 28;
+ sin6_len byte // 1
+ sin6_family byte // 1
+ sin6_port u16 // 2
+ sin6_flowinfo u32 // 4
+ sin6_addr [16]byte // 16
+ sin6_scope_id u32 // 4
+}
+
+struct C.sockaddr_in {
+mut:
+ sin_len byte
+ sin_family byte
+ sin_port u16
+ sin_addr u32
+ sin_zero [8]char
+}
+
+struct C.sockaddr_un {
+mut:
+ sun_len byte
+ sun_family byte
+ sun_path [max_unix_path]char
+}
+
+[_pack: '1']
+struct Ip6 {
+ port u16
+ flow_info u32
+ addr [16]byte
+ scope_id u32
+}
+
+[_pack: '1']
+struct Ip {
+ port u16
+ addr [4]byte
+ // 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
+ sin_pad [8]byte
+}
+
+struct Unix {
+ path [max_unix_path]char
+}
+
+[_pack: '1']
+struct Addr {
+pub:
+ len u8
+ f u8
+ addr AddrData
+}