|
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 |