1*bbecb9d1SAndroid Build Coastguard Worker /* 2*bbecb9d1SAndroid Build Coastguard Worker * Copyright 2021 Google LLC 3*bbecb9d1SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT 4*bbecb9d1SAndroid Build Coastguard Worker */ 5*bbecb9d1SAndroid Build Coastguard Worker 6*bbecb9d1SAndroid Build Coastguard Worker #ifndef PROXY_SOCKET_H 7*bbecb9d1SAndroid Build Coastguard Worker #define PROXY_SOCKET_H 8*bbecb9d1SAndroid Build Coastguard Worker 9*bbecb9d1SAndroid Build Coastguard Worker #include "proxy_common.h" 10*bbecb9d1SAndroid Build Coastguard Worker 11*bbecb9d1SAndroid Build Coastguard Worker struct proxy_socket { 12*bbecb9d1SAndroid Build Coastguard Worker int fd; 13*bbecb9d1SAndroid Build Coastguard Worker }; 14*bbecb9d1SAndroid Build Coastguard Worker 15*bbecb9d1SAndroid Build Coastguard Worker bool 16*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_pair(int out_fds[static 2]); 17*bbecb9d1SAndroid Build Coastguard Worker 18*bbecb9d1SAndroid Build Coastguard Worker bool 19*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_is_seqpacket(int fd); 20*bbecb9d1SAndroid Build Coastguard Worker 21*bbecb9d1SAndroid Build Coastguard Worker void 22*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_init(struct proxy_socket *socket, int fd); 23*bbecb9d1SAndroid Build Coastguard Worker 24*bbecb9d1SAndroid Build Coastguard Worker void 25*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_fini(struct proxy_socket *socket); 26*bbecb9d1SAndroid Build Coastguard Worker 27*bbecb9d1SAndroid Build Coastguard Worker bool 28*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_is_connected(const struct proxy_socket *socket); 29*bbecb9d1SAndroid Build Coastguard Worker 30*bbecb9d1SAndroid Build Coastguard Worker bool 31*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_receive_reply(struct proxy_socket *socket, void *data, size_t size); 32*bbecb9d1SAndroid Build Coastguard Worker 33*bbecb9d1SAndroid Build Coastguard Worker bool 34*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_receive_reply_with_fds(struct proxy_socket *socket, 35*bbecb9d1SAndroid Build Coastguard Worker void *data, 36*bbecb9d1SAndroid Build Coastguard Worker size_t size, 37*bbecb9d1SAndroid Build Coastguard Worker int *fds, 38*bbecb9d1SAndroid Build Coastguard Worker int max_fd_count, 39*bbecb9d1SAndroid Build Coastguard Worker int *out_fd_count); 40*bbecb9d1SAndroid Build Coastguard Worker 41*bbecb9d1SAndroid Build Coastguard Worker bool 42*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_send_request(struct proxy_socket *socket, const void *data, size_t size); 43*bbecb9d1SAndroid Build Coastguard Worker 44*bbecb9d1SAndroid Build Coastguard Worker bool 45*bbecb9d1SAndroid Build Coastguard Worker proxy_socket_send_request_with_fds(struct proxy_socket *socket, 46*bbecb9d1SAndroid Build Coastguard Worker const void *data, 47*bbecb9d1SAndroid Build Coastguard Worker size_t size, 48*bbecb9d1SAndroid Build Coastguard Worker const int *fds, 49*bbecb9d1SAndroid Build Coastguard Worker int fd_count); 50*bbecb9d1SAndroid Build Coastguard Worker 51*bbecb9d1SAndroid Build Coastguard Worker #endif /* PROXY_SOCKET_H */ 52