zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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