net: freebsd fixes
parent
f48f6239ff
commit
e38b0d7e9f
|
@ -1,5 +1,6 @@
|
|||
## [Version 0.3](https://github.com/vlang/v/projects/5)
|
||||
- [ ] [make `-autofree` the default](https://github.com/vlang/v/issues/6989)
|
||||
- [x] [gc option]
|
||||
- [ ] [coroutines](https://github.com/vlang/v/issues/561)
|
||||
- [x] channels
|
||||
- [x] lock{}
|
||||
|
@ -12,7 +13,9 @@
|
|||
- [x] fix `byte.str()`
|
||||
- [x] maps with non-string keys
|
||||
- [x] iOS/Android support
|
||||
- [ ] parallel parser (and maybe checker/gen?)
|
||||
- [ ] parallel parser
|
||||
- [ ] parallel checker
|
||||
- [ ] parallel cgen
|
||||
- [ ] `recover()` from panics
|
||||
- [x] IO streams
|
||||
- [x] struct embedding
|
||||
|
@ -23,7 +26,7 @@
|
|||
- [x] short generics syntax (`foo(5)` instead of `foo<int>(5)`)
|
||||
- [ ] fix all remaining generics issues
|
||||
- [ ] merge v.c and v_win.c
|
||||
- [ ] more advanced errors, not just `error('message')`
|
||||
- [x] more advanced errors, not just `error('message')`
|
||||
- [ ] VLS for autocomplete, refactoring, go to definition etc
|
||||
- [ ] Recursive structs via optionals: `struct Node { next ?Node }`
|
||||
- [ ] Remove `foo = 0` for `&Foo`
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
module net
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
const max_unix_path = 108
|
||||
|
||||
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_in {
|
||||
sin_family u16
|
||||
sin_port u16
|
||||
sin_addr u32
|
||||
}
|
||||
|
||||
struct C.sockaddr_in6 {
|
||||
sin6_family u16
|
||||
sin6_port u16
|
||||
sin6_addr [4]u32
|
||||
}
|
||||
|
||||
struct C.sockaddr_un {
|
||||
sun_family u16
|
||||
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]byte
|
||||
}
|
||||
|
||||
[_pack: '1']
|
||||
struct Addr {
|
||||
pub:
|
||||
f u16
|
||||
addr AddrData
|
||||
}
|
Loading…
Reference in New Issue