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