|
Android-cuttlefish cvd tool
|
#include <fcntl.h>#include <linux/vm_sockets.h>#include <signal.h>#include <unistd.h>#include <chrono>#include <memory>#include <optional>#include "absl/log/check.h"#include "absl/log/log.h"#include "gflags/gflags.h"#include "cuttlefish/common/libs/fs/shared_fd.h"#include "cuttlefish/common/libs/utils/socket2socket_proxy.h"#include "cuttlefish/host/commands/kernel_log_monitor/kernel_log_server.h"#include "cuttlefish/host/commands/kernel_log_monitor/utils.h"#include "cuttlefish/host/commands/socket_vsock_proxy/client.h"#include "cuttlefish/host/commands/socket_vsock_proxy/server.h"#include "cuttlefish/host/libs/config/config_instance_derived.h"#include "cuttlefish/host/libs/config/cuttlefish_config.h"#include "cuttlefish/host/libs/config/logging.h"#include "cuttlefish/result/result.h"
Namespaces | |
| namespace | cuttlefish |
| namespace | cuttlefish::socket_proxy |
| namespace | cuttlefish::socket_proxy::anonymous_namespace{socket_vsock_proxy.cpp} |
Functions | |
| constexpr std::chrono::milliseconds | TCP_SERVER_RETRIES_DELAY (1250) |
| constexpr std::chrono::seconds | TCP_CLIENT_TIMEOUT (1) |
| DEFINE_string (label, "socket_vsock_proxy", "Label which is used only for logging. " "Log messages will look like [label] message") | |
| DEFINE_string (server_type, "", "The type of server to host, `vsock` or `tcp`.") | |
| DEFINE_string (client_type, "", "The type of server to host, `vsock` or `tcp`.") | |
| DEFINE_int32 (server_tcp_port, 0, "Server TCP port") | |
| DEFINE_string (client_tcp_host, "localhost", "Client TCP host (default localhost)") | |
| DEFINE_int32 (client_tcp_port, 0, "Client TCP port") | |
| DEFINE_int32 (server_vsock_port, 0, "vsock port") | |
| DEFINE_int32 (server_vsock_id, 0, "Vsock cid which server listens to") | |
| DEFINE_int32 (client_vsock_id, 0, "Vsock cid to initiate connections to") | |
| DEFINE_int32 (client_vsock_port, 0, "Vsock port to initiate connections to") | |
| DEFINE_int32 (server_fd, -1, "A file descriptor. If set the passed file descriptor will be used as " "the server and the corresponding port flag will be ignored") | |
| DEFINE_int32 (events_fd, -1, "A file descriptor. If set it will listen for the events " "to start / stop proxying. This option can be used only " "if start_event_id is provided (stop_event_id is optional)") | |
| DEFINE_int32 (start_event_id, -1, "Kernel event id (cuttlefish::monitor::Event from " "kernel_log_server.h) that we will listen to start proxy") | |
| DEFINE_int32 (stop_event_id, -1, "Kernel event id (cuttlefish::monitor::Event from " "kernel_log_server.h) that we will listen to stop proxy") | |
| DEFINE_bool (restore, false, "Wait on the restore_adbd_pipe instead of the initial start event") | |
| DEFINE_bool (vhost_user_vsock, false, "A flag to user vhost_user_vsock") | |
| static bool | cuttlefish::socket_proxy::anonymous_namespace{socket_vsock_proxy.cpp}::use_vhost_vsock () |
| static std::unique_ptr< Server > | cuttlefish::socket_proxy::anonymous_namespace{socket_vsock_proxy.cpp}::BuildServer () |
| static std::unique_ptr< Client > | cuttlefish::socket_proxy::anonymous_namespace{socket_vsock_proxy.cpp}::BuildClient () |
| static Result< std::unique_ptr< ProxyServer > > | cuttlefish::socket_proxy::anonymous_namespace{socket_vsock_proxy.cpp}::StartProxyAsync (Server &server, Client &client) |
| static Result< void > | cuttlefish::socket_proxy::anonymous_namespace{socket_vsock_proxy.cpp}::ListenEventsAndProxy (int events_fd, const monitor::Event start, const monitor::Event stop, Server &server, Client &client) |
| Result< void > | cuttlefish::socket_proxy::anonymous_namespace{socket_vsock_proxy.cpp}::Main () |
| int | main (int argc, char *argv[]) |
Variables | |
| constexpr int | TCP_SERVER_START_RETRIES_COUNT = 10 |
| constexpr char | TRANSPORT_TCP [] = "tcp" |
| constexpr char | TRANSPORT_VSOCK [] = "vsock" |
| DEFINE_bool | ( | restore | , |
| false | , | ||
| "Wait on the restore_adbd_pipe instead of the initial start event" | |||
| ) |
| DEFINE_bool | ( | vhost_user_vsock | , |
| false | , | ||
| "A flag to user vhost_user_vsock" | |||
| ) |
| DEFINE_int32 | ( | client_tcp_port | , |
| 0 | , | ||
| "Client TCP port" | |||
| ) |
| DEFINE_int32 | ( | client_vsock_id | , |
| 0 | , | ||
| "Vsock cid to initiate connections to" | |||
| ) |
| DEFINE_int32 | ( | client_vsock_port | , |
| 0 | , | ||
| "Vsock port to initiate connections to" | |||
| ) |
| DEFINE_int32 | ( | events_fd | , |
| - | 1, | ||
| "A file descriptor. If set it will listen for the events " "to start / stop proxying. This option can be used only " "if start_event_id is provided (stop_event_id is optional)" | |||
| ) |
| DEFINE_int32 | ( | server_fd | , |
| - | 1, | ||
| "A file descriptor. If set the passed file descriptor will be used as " "the server and the corresponding port flag will be ignored" | |||
| ) |
| DEFINE_int32 | ( | server_tcp_port | , |
| 0 | , | ||
| "Server TCP port" | |||
| ) |
| DEFINE_int32 | ( | server_vsock_id | , |
| 0 | , | ||
| "Vsock cid which server listens to" | |||
| ) |
| DEFINE_int32 | ( | server_vsock_port | , |
| 0 | , | ||
| "vsock port" | |||
| ) |
| DEFINE_int32 | ( | start_event_id | , |
| - | 1, | ||
| "Kernel event id (cuttlefish::monitor::Event from " "kernel_log_server.h) that we will listen to start proxy" | |||
| ) |
| DEFINE_int32 | ( | stop_event_id | , |
| - | 1, | ||
| "Kernel event id (cuttlefish::monitor::Event from " "kernel_log_server.h) that we will listen to stop proxy" | |||
| ) |
| DEFINE_string | ( | client_tcp_host | , |
| "localhost" | , | ||
| "Client TCP host (default localhost)" | |||
| ) |
| DEFINE_string | ( | client_type | , |
| "" | , | ||
| "The type of server to | host, | ||
| `vsock` or `tcp`." | |||
| ) |
| DEFINE_string | ( | label | , |
| "socket_vsock_proxy" | , | ||
| "Label which is used only for logging. " "Log messages will look like message" | [label] | ||
| ) |
| DEFINE_string | ( | server_type | , |
| "" | , | ||
| "The type of server to | host, | ||
| `vsock` or `tcp`." | |||
| ) |
| int main | ( | int | argc, |
| char * | argv[] | ||
| ) |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |