Android-cuttlefish cvd tool
|
#include "sysdeps.h"
#include "transport.h"
#include <ctype.h>
#include <errno.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <algorithm>
#include <list>
#include <memory>
#include <mutex>
#include <set>
#include <string>
#include <thread>
#include <adb/crypto/rsa_2048_key.h>
#include <adb/crypto/x509_generator.h>
#include <adb/tls/tls_connection.h>
#include <android-base/logging.h>
#include <android-base/no_destructor.h>
#include <android-base/parsenetaddress.h>
#include <android-base/stringprintf.h>
#include <android-base/strings.h>
#include <android-base/thread_annotations.h>
#include <diagnose_usb.h>
#include "adb.h"
#include "adb_auth.h"
#include "adb_io.h"
#include "adb_trace.h"
#include "adb_utils.h"
#include "fdevent/fdevent.h"
#include "sysdeps/chrono.h"
Namespaces | |
namespace | anonymous_namespace{transport.cpp} |
Macros | |
#define | TRACE_TAG TRANSPORT |
Typedefs | |
using | TlsError = TlsConnection::TlsError |
Functions | |
static void | remove_transport (atransport *transport) |
static void | transport_destroy (atransport *transport) |
TransportId | NextTransportId () |
void | send_packet (apacket *p, atransport *t) |
void | kick_transport (atransport *t, bool reset) |
void | update_transports () |
static void | fdevent_unregister_transport (atransport *t) |
static void | fdevent_register_transport (atransport *t) |
void | kick_all_transports () |
void | kick_all_tcp_tls_transports () |
void | kick_all_transports_by_auth_key (std::string_view auth_key) |
void | register_transport (atransport *transport) |
const FeatureSet & | supported_features () |
std::string | FeatureSetToString (const FeatureSet &features) |
FeatureSet | StringToFeatureSet (const std::string &features_string) |
template<class Range , class Value > | |
static bool | contains (const Range &r, const Value &v) |
bool | CanUseFeature (const FeatureSet &feature_set, const std::string &feature) |
bool | validate_transport_list (const std::list< atransport * > &list, const std::string &serial, atransport *t, int *error) |
bool | register_socket_transport (unique_fd s, std::string serial, int port, bool is_emulator, atransport::ReconnectCallback reconnect, bool use_tls, int *error) |
bool | check_header (apacket *p, atransport *t) |
Variables | |
static auto & | transport_lock = *new std::recursive_mutex() |
static auto & | pending_list = *new std::list<atransport*>() |
static auto & | transport_list = *new std::list<atransport*>() |
const char *const | kFeatureShell2 = "shell_v2" |
const char *const | kFeatureCmd = "cmd" |
const char *const | kFeatureStat2 = "stat_v2" |
const char *const | kFeatureLs2 = "ls_v2" |
const char *const | kFeatureLibusb = "libusb" |
const char *const | kFeaturePushSync = "push_sync" |
const char *const | kFeatureApex = "apex" |
const char *const | kFeatureFixedPushMkdir = "fixed_push_mkdir" |
const char *const | kFeatureAbb = "abb" |
const char *const | kFeatureFixedPushSymlinkTimestamp = "fixed_push_symlink_timestamp" |
const char *const | kFeatureAbbExec = "abb_exec" |
const char *const | kFeatureRemountShell = "remount_shell" |
const char *const | kFeatureTrackApp = "track_app" |
const char *const | kFeatureSendRecv2 = "sendrecv_v2" |
const char *const | kFeatureSendRecv2Brotli = "sendrecv_v2_brotli" |
const char *const | kFeatureSendRecv2LZ4 = "sendrecv_v2_lz4" |
const char *const | kFeatureSendRecv2Zstd = "sendrecv_v2_zstd" |
const char *const | kFeatureSendRecv2DryRunSend = "sendrecv_v2_dry_run_send" |
const char *const | kFeatureDelayedAck = "delayed_ack" |
const char *const | kFeatureOpenscreenMdns = "openscreen_mdns" |
const char *const | kFeatureDeviceTrackerProtoFormat = "devicetracker_proto_format" |
const char *const | kFeatureDevRaw = "devraw" |
const char *const | kFeatureAppInfo = "app_info" |
const char *const | kFeatureServerStatus = "server_status" |
const char *const | kFeatureTrackMdns = "track_mdns" |
#define TRACE_TAG TRANSPORT |
using TlsError = TlsConnection::TlsError |
bool CanUseFeature | ( | const FeatureSet & | feature_set, |
const std::string & | feature | ||
) |
bool check_header | ( | apacket * | p, |
atransport * | t | ||
) |
|
static |
|
static |
|
static |
std::string FeatureSetToString | ( | const FeatureSet & | features | ) |
void kick_all_tcp_tls_transports | ( | ) |
void kick_all_transports | ( | ) |
void kick_all_transports_by_auth_key | ( | std::string_view | auth_key | ) |
void kick_transport | ( | atransport * | t, |
bool | reset | ||
) |
TransportId NextTransportId | ( | ) |
bool register_socket_transport | ( | unique_fd | s, |
std::string | serial, | ||
int | port, | ||
bool | is_emulator, | ||
atransport::ReconnectCallback | reconnect, | ||
bool | use_tls, | ||
int * | error | ||
) |
void register_transport | ( | atransport * | transport | ) |
|
static |
void send_packet | ( | apacket * | p, |
atransport * | t | ||
) |
FeatureSet StringToFeatureSet | ( | const std::string & | features_string | ) |
const FeatureSet & supported_features | ( | ) |
|
static |
void update_transports | ( | ) |
bool validate_transport_list | ( | const std::list< atransport * > & | list, |
const std::string & | serial, | ||
atransport * | t, | ||
int * | error | ||
) |
const char* const kFeatureAbb = "abb" |
const char* const kFeatureAbbExec = "abb_exec" |
const char* const kFeatureApex = "apex" |
const char* const kFeatureAppInfo = "app_info" |
const char* const kFeatureCmd = "cmd" |
const char* const kFeatureDelayedAck = "delayed_ack" |
const char* const kFeatureDeviceTrackerProtoFormat = "devicetracker_proto_format" |
const char* const kFeatureDevRaw = "devraw" |
const char* const kFeatureFixedPushMkdir = "fixed_push_mkdir" |
const char* const kFeatureFixedPushSymlinkTimestamp = "fixed_push_symlink_timestamp" |
const char* const kFeatureLibusb = "libusb" |
const char* const kFeatureLs2 = "ls_v2" |
const char* const kFeatureOpenscreenMdns = "openscreen_mdns" |
const char* const kFeaturePushSync = "push_sync" |
const char* const kFeatureRemountShell = "remount_shell" |
const char* const kFeatureSendRecv2 = "sendrecv_v2" |
const char* const kFeatureSendRecv2Brotli = "sendrecv_v2_brotli" |
const char* const kFeatureSendRecv2DryRunSend = "sendrecv_v2_dry_run_send" |
const char* const kFeatureSendRecv2LZ4 = "sendrecv_v2_lz4" |
const char* const kFeatureSendRecv2Zstd = "sendrecv_v2_zstd" |
const char* const kFeatureServerStatus = "server_status" |
const char* const kFeatureShell2 = "shell_v2" |
const char* const kFeatureStat2 = "stat_v2" |
const char* const kFeatureTrackApp = "track_app" |
const char* const kFeatureTrackMdns = "track_mdns" |
|
static |
|
static |
|
static |