diff options
-rwxr-xr-x | include/technology.h | 2 | ||||
-rwxr-xr-x | src/device.c | 4 | ||||
-rw-r--r-- | src/technology.c | 20 |
3 files changed, 22 insertions, 4 deletions
diff --git a/include/technology.h b/include/technology.h index 127dea95..c7898396 100755 --- a/include/technology.h +++ b/include/technology.h @@ -95,6 +95,8 @@ const char *connman_techonology_get_path(enum connman_service_type type); void __connman_technology_notify_scan_done(const char *ifname, int val); void __connman_technology_append_interfaces(DBusMessageIter *array, enum connman_service_type type, const char *ifname); +void __connman_technology_notify_device_detected_by_device( + struct connman_device *device, const char *ifname, bool val); void __connman_technology_notify_roaming_state(const char *ifname, const char *state, const char *cur_bssid, const char *dst_bssid); #endif diff --git a/src/device.c b/src/device.c index 1e3924b9..9189f688 100755 --- a/src/device.c +++ b/src/device.c @@ -388,6 +388,10 @@ static void remove_device(struct connman_device *device) if (device->driver->remove) device->driver->remove(device); +#if defined TIZEN_EXT + __connman_technology_notify_device_detected_by_device(device, "", false); +#endif + device->driver = NULL; } diff --git a/src/technology.c b/src/technology.c index 4cc540bb..d21d790f 100644 --- a/src/technology.c +++ b/src/technology.c @@ -1715,6 +1715,19 @@ static void __connman_technology_notify_device_detected( DBG("Successfuly sent DeviceDetected signal"); } +void __connman_technology_notify_device_detected_by_device( + struct connman_device *device, const char *ifname, bool val) +{ + struct connman_technology *technology; + enum connman_service_type type; + + type = __connman_device_get_service_type(device); + + technology = technology_find(type); + if (technology) + __connman_technology_notify_device_detected(technology, ifname, val); +} + void __connman_technology_notify_roaming_state(const char *ifname, const char *state, const char *cur_bssid, const char *dst_bssid) { @@ -3002,7 +3015,9 @@ static void technology_put(struct connman_technology *technology) g_slist_delete_link(technology->driver_list, technology->driver_list); } - +#ifdef TIZEN_EXT + __connman_technology_notify_device_detected(technology, "", false); +#endif technology_list = g_slist_remove(technology_list, technology); technology_dbus_unregister(technology); @@ -3422,9 +3437,6 @@ int __connman_technology_remove_device(struct connman_device *device) #if defined TIZEN_EXT technology_save_device(device); - - const char *ifname = connman_device_get_string(device, "Interface"); - __connman_technology_notify_device_detected(technology, ifname, false); #endif if (technology->tethering) |