blob 93cf1f45 (1684B) - Raw
1 #ifndef __wasi_sockets_utils_h 2 #define __wasi_sockets_utils_h 3 4 #include <netinet/in.h> 5 6 #include <wasi/descriptor_table.h> 7 8 typedef struct { 9 enum { 10 OUTPUT_SOCKADDR_NULL, 11 OUTPUT_SOCKADDR_V4, 12 OUTPUT_SOCKADDR_V6, 13 } tag; 14 union { 15 struct { 16 int dummy; 17 } null; 18 struct { 19 struct sockaddr_in *addr; 20 socklen_t *addrlen; 21 } v4; 22 struct { 23 struct sockaddr_in6 *addr; 24 socklen_t *addrlen; 25 } v6; 26 }; 27 } output_sockaddr_t; 28 29 network_borrow_network_t __wasi_sockets_utils__borrow_network(); 30 int __wasi_sockets_utils__map_error(network_error_code_t wasi_error); 31 bool __wasi_sockets_utils__parse_address( 32 network_ip_address_family_t expected_family, 33 const struct sockaddr *address, socklen_t len, 34 network_ip_socket_address_t *result, int *error); 35 bool __wasi_sockets_utils__output_addr_validate( 36 network_ip_address_family_t expected_family, struct sockaddr *addr, 37 socklen_t *addrlen, output_sockaddr_t *result); 38 void __wasi_sockets_utils__output_addr_write( 39 const network_ip_socket_address_t input, output_sockaddr_t *output); 40 int __wasi_sockets_utils__posix_family(network_ip_address_family_t wasi_family); 41 network_ip_socket_address_t 42 __wasi_sockets_utils__any_addr(network_ip_address_family_t family); 43 int __wasi_sockets_utils__tcp_bind(tcp_socket_t *socket, 44 network_ip_socket_address_t *address); 45 int __wasi_sockets_utils__udp_bind(udp_socket_t *socket, 46 network_ip_socket_address_t *address); 47 bool __wasi_sockets_utils__stream(udp_socket_t *socket, 48 network_ip_socket_address_t *remote_address, 49 udp_socket_streams_t *result, 50 network_error_code_t *error); 51 void __wasi_sockets_utils__drop_streams(udp_socket_streams_t streams); 52 53 #endif