summaryrefslogtreecommitdiff
path: root/profile.h
diff options
context:
space:
mode:
authorPaul Stewart <pstew@chromium.org>2011-11-11 07:47:29 -0800
committerGerrit <chrome-bot@google.com>2011-11-15 12:28:55 -0800
commita41e38d57e4fa37bd2c8de6447890b4e1951acb7 (patch)
tree2006be898d0a9ff050f5086070fd7db2345e73e8 /profile.h
parent184c54e6091b21fc2a8ba40d8957ca6c84c37d6e (diff)
downloadshill-a41e38d57e4fa37bd2c8de6447890b4e1951acb7.tar.gz
shill: wifi: Load hidden services from storage
When a device or profile comes into existence, the device will search the profile for hidden services and instantiate services if they do not exist. These services will not be visible in the RPC service list until they either appear in scan or are actively being connected. Side effects: * Manager now loads the devices with profile data. * Manager now respects the "powered" attribute loaded by devices from the profile to determine whether or not to call Start() on them. * Key files can be searched for groups with a certain key. This will be useful when we start supporting GUIDs. * On service registration go backward (from top of stack downward) through the list of profiles searching for configuration instead of forwards. * Move the update of the "Services" property of the manager to a more centralized spot in SortServices. This way, when the service order changes (or anything else that affects the service list) this RPC property will update. * Hidden services are not scanned for if they are in the ephemeral profile -- it means that whatever profile was supporting them does not exist anymore. * WiFi services have the unenviable task of also decoding storage identifiers in order to glean the address, mode and security parameters. BUG=chromium-os:22073,chromium-os:22074 TEST=New unit tests, Manual on real hardware. Note: I could not connect to a hidden network, but this is because we're not setting the ApScan parameter on wpa_supplicant so on connect it is just doing broadcast scans. However if I seed the profile with with a record containing a hidden SSID, shill will force a scan for the hidden network, which will allow it to connect. Change-Id: I97a5b5f6db7c6e6d2aabf212c5c2984ce7f4daaa Reviewed-on: https://gerrit.chromium.org/gerrit/11558 Reviewed-by: mukesh agrawal <quiche@chromium.org> Commit-Ready: Paul Stewart <pstew@chromium.org> Tested-by: Paul Stewart <pstew@chromium.org>
Diffstat (limited to 'profile.h')
-rw-r--r--profile.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/profile.h b/profile.h
index 6d56ef3b..269f429c 100644
--- a/profile.h
+++ b/profile.h
@@ -84,7 +84,12 @@ class Profile : public base::RefCounted<Profile> {
// Ask |service| if it can configure itself from the profile. If it can,
// change the service to point at this profile, ask |service| to perform
// the configuration and return true. If not, return false.
- bool ConfigureService(const ServiceRefPtr &service);
+ virtual bool ConfigureService(const ServiceRefPtr &service);
+
+ // Allow the device to configure itself from this profile. Returns
+ // true if the device succeeded in finding its configuration. If not,
+ // return false.
+ virtual bool ConfigureDevice(const DeviceRefPtr &device);
// Return whether |service| can configure itself from the profile.
bool ContainsService(const ServiceConstRefPtr &service);