From: DengYingAn <[email protected]>

With wireless on booting, APs list is gone after turnning off and on. Back 
ported from upstream with commit id 57536b8359c5c99f015cd97c597e2de82ce9144f
---
 src/connman.h |    2 ++
 src/device.c  |    2 ++
 src/element.c |   22 ++++++++++++++++++++++
 3 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/src/connman.h b/src/connman.h
index f5b03c8..e24ba2a 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -198,6 +198,8 @@ int __connman_element_disable_technology(enum 
connman_service_type type);
 
 gboolean __connman_element_device_isfiltered(const char *devname);
 
+void __connman_element_set_driver(struct connman_element *element);
+
 #include <connman/ipconfig.h>
 
 int __connman_ipconfig_init(void);
diff --git a/src/device.c b/src/device.c
index 22cf300..4ea24d1 100644
--- a/src/device.c
+++ b/src/device.c
@@ -597,6 +597,8 @@ static void probe_driver(struct connman_element *element, 
gpointer user_data)
 
        element->device->driver = driver;
 
+       __connman_element_set_driver(element);
+
        setup_device(element->device);
 }
 
diff --git a/src/element.c b/src/element.c
index 759d3e4..54b636d 100644
--- a/src/element.c
+++ b/src/element.c
@@ -1320,6 +1320,28 @@ void connman_element_set_error(struct connman_element 
*element,
        __connman_service_indicate_error(service, convert_error(error));
 }
 
+void __connman_element_set_driver(struct connman_element *element)
+{
+       GSList *list;
+
+       DBG("element %p name %s driver %p", element, element->name,
+                                               element->driver);
+
+       if (element->driver)
+               return;
+
+       for (list = driver_list; list; list = list->next) {
+               struct connman_driver *driver = list->data;
+
+               if (match_driver(element, driver) == FALSE)
+                       continue;
+
+               element->driver = driver;
+
+               break;
+       }
+}
+
 int __connman_element_init(const char *device, const char *nodevice)
 {
        struct connman_element *element;
-- 
1.7.2.2

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to