Chromium Code Reviews
Descriptionflimflam: add support for multiple profiles
Add a stack of profiles and support for per-user profiles (stored in the
cryptohome). This also adds support for operation without a profile so
no persistent state is recorded (meant mostly for testing).
Changes include:
o add PushProfile, PopProfile, and PopAnyProfile D-bus directives to
the Manager interface
o on object load (Service, Device, etc.) walk the stack of profiles
until an entry is found for the object (replace direct storage
load/store of objects by calls to the profile code)
o object save always write to the active profile which is the top of
stack; if there is no active profile do nothing
o have Service objects track the active profile where state was last saved;
this is used when pop'ing a profile to invalidate in-memory state for
the service (e.g. security credentials)
o include Services in a Profile's properties only if it is the active
profile
o more correctly implement the notion that OfflineMode is accessible only
in the Default profile (e.g. don't return it in a Profile's properties,
disallow setting the property directly)
o drop setting the ActiveProfile property; it does not make sense with the
new model (use Push/Pop instead)
o drop reading in all global profiles are startup; the old connman model
does not make a lot of sense for us
o change the storage layer to better support multiple profiles:
- add a connman_storage_ident structure for file names which may include
a user name; per-user storage is placed in a subdirectory of the user's
home directory so creating files will fail unless the directory exists
- revamp storage <object>_load/save methods so the storage_open/close
work is done in the storage layer; this consolidates this logic in the
storage code and better assures consistent error returns to the profile
code so it can decide when to stop walking the profile stack on load
- stop passing the profile name to the crypto routines; this was not
being used; if we want to enable/disable crypto based on the profile
this looks to be better done one layer up
BUG=chromium-os:12948
TEST=manual:using test scripts; automated tests TBA
Committed: http://chrome-svn/viewvc/chromeos?view=rev&revision=99c34cc
Patch Set 1 #
Total comments: 8
Patch Set 2 : respond to njw comments #Patch Set 3 : fix possible race in profile changed handling #Patch Set 4 : construct hidden ssid set from all profiles #Patch Set 5 : fix dbus method spec for PopProfile #Patch Set 6 : fix cleanup path and change services_changed to fix potential race #Patch Set 7 : add --push option for restart after crash #Patch Set 8 : many fixups #Patch Set 9 : rebase #
Total comments: 28
Patch Set 10 : response to ers comments #Patch Set 11 : rebase #Patch Set 12 : more ers comments #
Messages
Total messages: 17 (0 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||