| /* |
| * Copyright 2021 Google LLC |
| * SPDX-License-Identifier: MIT |
| */ |
| |
| #ifndef PROXY_SOCKET_H |
| #define PROXY_SOCKET_H |
| |
| #include "proxy_common.h" |
| |
| struct proxy_socket { |
| int fd; |
| }; |
| |
| bool |
| proxy_socket_pair(int out_fds[static 2]); |
| |
| bool |
| proxy_socket_is_seqpacket(int fd); |
| |
| void |
| proxy_socket_init(struct proxy_socket *socket, int fd); |
| |
| void |
| proxy_socket_fini(struct proxy_socket *socket); |
| |
| bool |
| proxy_socket_is_connected(const struct proxy_socket *socket); |
| |
| bool |
| proxy_socket_receive_reply(struct proxy_socket *socket, void *data, size_t size); |
| |
| bool |
| proxy_socket_receive_reply_with_fds(struct proxy_socket *socket, |
| void *data, |
| size_t size, |
| int *fds, |
| int max_fd_count, |
| int *out_fd_count); |
| |
| bool |
| proxy_socket_send_request(struct proxy_socket *socket, const void *data, size_t size); |
| |
| bool |
| proxy_socket_send_request_with_fds(struct proxy_socket *socket, |
| const void *data, |
| size_t size, |
| const int *fds, |
| int fd_count); |
| |
| #endif /* PROXY_SOCKET_H */ |