diff options
author | Bruno Randolf <br1@einfach.org> | 2019-01-05 18:34:13 +0000 |
---|---|---|
committer | Bruno Randolf <br1@einfach.org> | 2019-01-05 18:36:39 +0000 |
commit | 30436c84b2c35982c41c33a7adfb0307884f5ee9 (patch) | |
tree | 540f790b12ca77bac7099d0885148e11fcb54ab4 /src/Init.cpp | |
parent | Improved handling of connection counts dealing with latent disconnects on sta... (diff) | |
download | gobbledegook-30436c84b2c35982c41c33a7adfb0307884f5ee9.tar.gz gobbledegook-30436c84b2c35982c41c33a7adfb0307884f5ee9.tar.bz2 gobbledegook-30436c84b2c35982c41c33a7adfb0307884f5ee9.zip |
Add setting of discoverable mode
This is necessary for the advertisements to be in "LE General
Discoverable Mode" which makes them visible (especially to other Linux
boxes).
Signed-off-by: Bruno Randolf <br1@einfach.org>
Diffstat (limited to 'src/Init.cpp')
-rw-r--r-- | src/Init.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Init.cpp b/src/Init.cpp index 915209f..c3784df 100644 --- a/src/Init.cpp +++ b/src/Init.cpp @@ -695,11 +695,12 @@ void configureAdapter() bool scFlag = info.currentSettings.isSet(HciAdapter::EHciSecureConnections) == TheServer->getEnableSecureConnection(); bool bnFlag = info.currentSettings.isSet(HciAdapter::EHciBondable) == TheServer->getEnableBondable(); bool cnFlag = info.currentSettings.isSet(HciAdapter::EHciConnectable) == TheServer->getEnableConnectable(); + bool diFlag = info.currentSettings.isSet(HciAdapter::EHciDiscoverable) == TheServer->getEnableDiscoverable(); bool adFlag = info.currentSettings.isSet(HciAdapter::EHciAdvertising) == TheServer->getEnableAdvertising(); bool anFlag = (advertisingName.length() == 0 || advertisingName == info.name) && (advertisingShortName.length() == 0 || advertisingShortName == info.shortName); // If everything is setup already, we're done - if (!pwFlag || !leFlag || !brFlag || !scFlag || !bnFlag || !cnFlag || !adFlag || !anFlag) + if (!pwFlag || !leFlag || !brFlag || !scFlag || !bnFlag || !cnFlag || !diFlag || !adFlag || !anFlag) { // We need it off to start with if (pwFlag) @@ -745,6 +746,13 @@ void configureAdapter() if (!mgmt.setConnectable(TheServer->getEnableConnectable())) { setRetry(); return; } } + // Change the Discoverable state? + if (!diFlag) + { + Logger::debug(SSTR << (TheServer->getEnableDiscoverable() ? "Enabling":"Disabling") << " Discoverable"); + if (!mgmt.setDiscoverable(TheServer->getEnableDiscoverable() ? 1 : 0, 0)) { setRetry(); return; } + } + // Change the Advertising state? if (!adFlag) { @@ -1196,4 +1204,4 @@ void runServerThread() uninit(); } -}; // namespace ggk
\ No newline at end of file +}; // namespace ggk |