OSDN Git Service

Let LinkSecurityInterface know LL role
authorHansong Zhang <hsz@google.com>
Wed, 28 Oct 2020 21:13:02 +0000 (14:13 -0700)
committerHansong Zhang <hsz@google.com>
Thu, 29 Oct 2020 00:58:18 +0000 (17:58 -0700)
Tag: #gd-refactor
Bug: 141555841
Test: cert/run --host
Change-Id: I2b34d10c89aeae77fce1f3dd5bbbe2daf06be56d

gd/l2cap/classic/internal/link.cc
gd/l2cap/classic/internal/link.h
gd/l2cap/classic/internal/link_manager.cc
gd/l2cap/classic/link_security_interface.h

index c1e329c..f66aae2 100644 (file)
@@ -369,7 +369,7 @@ void Link::OnFlushOccurred() {
   LOG_INFO("UNIMPLEMENTED %s", __func__);
 }
 void Link::OnRoleDiscoveryComplete(hci::Role current_role) {
-  LOG_INFO("UNIMPLEMENTED %s current_role:%s", __func__, hci::RoleText(current_role).c_str());
+  role_ = current_role;
 }
 void Link::OnReadLinkPolicySettingsComplete(uint16_t link_policy_settings) {
   LOG_INFO("UNIMPLEMENTED %s link_policy_settings:0x%x", __func__, link_policy_settings);
index 96e8656..5b59fdc 100644 (file)
@@ -187,6 +187,10 @@ class Link : public l2cap::internal::ILink, public hci::acl_manager::ConnectionM
     return acl_handle_;
   }
 
+  hci::Role GetRole() const {
+    return role_;
+  }
+
  private:
   friend class DumpsysHelper;
   void connect_to_pending_dynamic_channels();
@@ -206,6 +210,7 @@ class Link : public l2cap::internal::ILink, public hci::acl_manager::ConnectionM
   ClassicSignallingManager signalling_manager_;
   uint16_t acl_handle_;
   Mtu remote_connectionless_mtu_ = kMinimumClassicMtu;
+  hci::Role role_ = hci::Role::CENTRAL;
   bool remote_extended_feature_received_ = false;
   bool remote_supports_ertm_ = false;
   bool remote_supports_fcs_ = false;
index 53589f1..5f0bda9 100644 (file)
@@ -203,6 +203,10 @@ class LinkSecurityInterfaceImpl : public LinkSecurityInterface {
     return acl_handle_;
   }
 
+  hci::Role GetRole() override {
+    return link_manager_->GetLink(remote_)->GetRole();
+  }
+
   os::Handler* handler_;
   LinkManager* link_manager_;
   hci::Address remote_;
index 2ff9213..3301fbd 100644 (file)
@@ -81,6 +81,10 @@ class LinkSecurityInterface {
   virtual void EnsureEncrypted() = 0;
 
   virtual uint16_t GetAclHandle() = 0;
+
+  virtual hci::Role GetRole() {
+    return hci::Role::CENTRAL;
+  }
 };
 
 class LinkSecurityInterfaceListener {