net: freebsd fixes
parent
f48f6239ff
commit
e38b0d7e9f
|
@ -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`
|
||||||
|
|
|
@ -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