Hi Samuel/Marcel, I have already sent is a list of patches which implements rfkill block/unblock and also does some code refactoring and cleanup. here is the summary of each patch.
Patch 1: Merges __connman_device_[enable/disable]_persistently with __connman_device_[enable/disable]. This patch also simplifies device enable/disable logic. connman_device_enable() saves the state of the device before calling driver->enable(). it does not change technology state or offlinemode state. The driver on successfully enabling the device calls connman_device_set_powered(), which changes technology state and offlinemode status.same for connman_device_disable. Patch 2: EnableTechnology API , traversed the entire device tree enabling device nodes belonging to the requested technology. This patch, traverses the device_list in the technology and enables each device. Patch3: same as patch2, but for DisableTechnology API. Patch4: set/unset offlinemode used to traverse the whole element tree.Instead traverse technology_list and enable/disable all technologies. Also removed device->offlinemode. The property reflected current profile's offlinemode states which can be checked with __connman_profile_get_offlinemode. Patch5: This patch removes the rfkill cache from technology.c. There is no way we can map rfkill IDs to connman_device struct, so there is no need to maintain a rfkill cache. We use the rfkill events to register/unregister platform switches. The state of the system is decided by offlinemode property. Added 2 new functions __connman_rfkill_block_id and __connman_rfkill_block_technology. Patch6: Remove device_table Hash table. devices are available via technology->device_list. Thanks, Alok. _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman