Merge "Pass the os handle to the tls connection." into rvc-dev

This commit is contained in:
Joshua Duong 2020-03-26 06:12:28 +00:00 committed by Android (Google) Code Review
commit c69f30ea15
3 changed files with 14 additions and 3 deletions

View file

@ -141,7 +141,12 @@ bool PairingClientImpl::StartConnection() {
cert_.size(), priv_key_.data(), priv_key_.size()));
CHECK(connection_);
if (!pairing_connection_start(connection_.get(), fd.release(), OnPairingResult, this)) {
#ifdef _WIN32
int osh = cast_handle_to_int(adb_get_os_handle(fd.release()));
#else
int osh = adb_get_os_handle(fd.release());
#endif
if (!pairing_connection_start(connection_.get(), osh, OnPairingResult, this)) {
LOG(ERROR) << "PairingClient failed to start the PairingConnection";
state_ = State::Stopped;
return false;

View file

@ -278,13 +278,13 @@ bool PairingConnectionCtx::Start(int fd, ResultCallback cb, void* opaque) {
if (fd < 0) {
return false;
}
fd_.reset(fd);
State expected = State::Ready;
if (!state_.compare_exchange_strong(expected, State::ExchangingMsgs)) {
return false;
}
fd_.reset(fd);
cb_ = cb;
opaque_ = opaque;

View file

@ -497,12 +497,18 @@ bool FdConnection::DoTlsHandshake(RSA* key, std::string* auth_key) {
auto x509 = GenerateX509Certificate(evp_pkey.get());
auto x509_str = X509ToPEMString(x509.get());
auto evp_str = Key::ToPEMString(evp_pkey.get());
#ifdef _WIN32
int osh = cast_handle_to_int(adb_get_os_handle(fd_));
#else
int osh = adb_get_os_handle(fd_);
#endif
#if ADB_HOST
tls_ = TlsConnection::Create(TlsConnection::Role::Client,
#else
tls_ = TlsConnection::Create(TlsConnection::Role::Server,
#endif
x509_str, evp_str, fd_);
x509_str, evp_str, osh);
CHECK(tls_);
#if ADB_HOST
// TLS 1.3 gives the client no message if the server rejected the