summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinclude/technology.h2
-rwxr-xr-xsrc/device.c4
-rw-r--r--src/technology.c20
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)