namespace bluetooth {
namespace common {
+const std::string kGdSecurityFlag = "INIT_gd_security";
+bool InitFlags::gd_security_enabled = false;
+
const std::string kGdAclFlag = "INIT_gd_acl";
bool InitFlags::gd_acl_enabled = false;
while (flags != nullptr && *flags != nullptr) {
if (kGdCoreFlag == *flags) {
gd_core_enabled = true;
+ } else if (kGdSecurityFlag == *flags) {
+ gd_security_enabled = true;
} else if (kGdAclFlag == *flags) {
gd_acl_enabled = true;
} else if (kGdHciFlag == *flags) {
flags++;
}
- if (gd_core_enabled && !gd_acl_enabled) {
+ if (gd_core_enabled && !gd_security_enabled) {
+ gd_security_enabled = true;
+ }
+ if (gd_security_enabled && !gd_acl_enabled) {
gd_acl_enabled = true;
}
if (gd_acl_enabled && !gd_controller_enabled) {
}
LOG_INFO(
- "Flags loaded: gd_acl_enabled: %s, gd_hci_enabled: %s, gd_controller_enabled: %s, gd_core_enabled: %s",
+ "Flags loaded: gd_security_enabled: %s, gd_acl_enabled: %s, gd_hci_enabled: %s, gd_controller_enabled: %s, "
+ "gd_core_enabled: %s",
+ gd_security_enabled ? "true" : "false",
gd_acl_enabled ? "true" : "false",
gd_hci_enabled ? "true" : "false",
gd_controller_enabled ? "true" : "false",
void InitFlags::SetAll(bool value) {
gd_core_enabled = value;
gd_acl_enabled = value;
+ gd_security_enabled = value;
gd_controller_enabled = value;
gd_hci_enabled = value;
gatt_robust_caching_enabled = value;
table InitFlagsData {
title:string;
+ gd_security_enabled:bool;
gd_acl_enabled:bool;
gd_hci_enabled:bool;
gd_controller_enabled:bool;
public:
static void Load(const char** flags);
+ static bool GdSecurityEnabled() {
+ return gd_security_enabled;
+ }
+
static bool GdAclEnabled() {
return gd_acl_enabled;
}
private:
static void SetAll(bool value);
+ static bool gd_security_enabled;
static bool gd_acl_enabled;
static bool gd_hci_enabled;
static bool gd_controller_enabled;
auto title = fb_builder->CreateString("----- Init Flags -----");
common::InitFlagsDataBuilder builder(*fb_builder);
builder.add_title(title);
+ builder.add_gd_security_enabled(bluetooth::common::InitFlags::GdSecurityEnabled());
builder.add_gd_acl_enabled(bluetooth::common::InitFlags::GdAclEnabled());
builder.add_gd_hci_enabled(bluetooth::common::InitFlags::GdHciEnabled());
builder.add_gd_controller_enabled(bluetooth::common::InitFlags::GdControllerEnabled());
.clean_up = kUnusedModuleApi,
.dependencies = {kUnusedModuleDependencies}};
+bool bluetooth::shim::is_gd_security_enabled() {
+ return bluetooth::common::InitFlags::GdSecurityEnabled();
+}
+
bool bluetooth::shim::is_gd_acl_enabled() {
return bluetooth::common::InitFlags::GdAclEnabled();
}
*
* @return true if using gd shim core, false if using legacy.
*/
+bool is_gd_security_enabled();
bool is_gd_acl_enabled();
bool is_gd_hci_enabled();
bool is_gd_controller_enabled();
if (common::InitFlags::GdAclEnabled()) {
modules.add<hci::AclManager>();
}
+ if (common::InitFlags::GdSecurityEnabled()) {
+ modules.add<security::SecurityModule>();
+ }
if (common::InitFlags::GdCoreEnabled()) {
modules.add<att::AttModule>();
modules.add<hci::LeAdvertisingManager>();
modules.add<neighbor::NameDbModule>();
modules.add<neighbor::PageModule>();
modules.add<neighbor::ScanModule>();
- modules.add<security::SecurityModule>();
modules.add<storage::StorageModule>();
modules.add<shim::L2cap>();
}