net: freebsd fixes

pull/10894/head
Alexander Medvednikov 2021-07-21 14:29:38 +03:00
parent f48f6239ff
commit e38b0d7e9f
2 changed files with 71 additions and 2 deletions

View File

@ -1,5 +1,6 @@
## [Version 0.3](https://github.com/vlang/v/projects/5) ## [Version 0.3](https://github.com/vlang/v/projects/5)
- [ ] [make `-autofree` the default](https://github.com/vlang/v/issues/6989) - [ ] [make `-autofree` the default](https://github.com/vlang/v/issues/6989)
- [x] [gc option]
- [ ] [coroutines](https://github.com/vlang/v/issues/561) - [ ] [coroutines](https://github.com/vlang/v/issues/561)
- [x] channels - [x] channels
- [x] lock{} - [x] lock{}
@ -12,7 +13,9 @@
- [x] fix `byte.str()` - [x] fix `byte.str()`
- [x] maps with non-string keys - [x] maps with non-string keys
- [x] iOS/Android support - [x] iOS/Android support
- [ ] parallel parser (and maybe checker/gen?) - [ ] parallel parser
- [ ] parallel checker
- [ ] parallel cgen
- [ ] `recover()` from panics - [ ] `recover()` from panics
- [x] IO streams - [x] IO streams
- [x] struct embedding - [x] struct embedding
@ -23,7 +26,7 @@
- [x] short generics syntax (`foo(5)` instead of `foo<int>(5)`) - [x] short generics syntax (`foo(5)` instead of `foo<int>(5)`)
- [ ] fix all remaining generics issues - [ ] fix all remaining generics issues
- [ ] merge v.c and v_win.c - [ ] 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 - [ ] VLS for autocomplete, refactoring, go to definition etc
- [ ] Recursive structs via optionals: `struct Node { next ?Node }` - [ ] Recursive structs via optionals: `struct Node { next ?Node }`
- [ ] Remove `foo = 0` for `&Foo` - [ ] Remove `foo = 0` for `&Foo`

View File

@ -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
}