Fix the invalid created event handling codes.
[platform/framework/web/livebox-viewer.git] / src / client.c
index 232d785..25d0395 100644 (file)
@@ -1463,17 +1463,12 @@ static struct packet *master_created(pid_t pid, int handle, const struct packet
 
 out:
        if (ret == 0 && old_state == DELETE) {
-               int delete_event_sent = 0;
-               int cnt;
-
-               DbgPrint("Take place unexpected case\n");
-               cnt = common->refcnt;
-               while (cnt > 0) {
-                       l = dlist_nth(common->livebox_list, 0);
-                       handler = dlist_data(l);
+               struct dlist *n;
 
+               DbgPrint("Take place an unexpected case [%d]\n", common->refcnt);
+               dlist_foreach_safe(common->livebox_list, l, n, handler) {
                        if (handler->cbs.created.cb) {
-                               if (delete_event_sent == 0) {
+                               if (!handler->common->request.deleted) {
                                        if (lb_send_delete(handler, common->delete_type, handler->cbs.created.cb, handler->cbs.created.data) < 0) {
                                                /*!
                                                 * \note
@@ -1481,9 +1476,7 @@ out:
                                                 * Callback will be called in any cases
                                                 */
                                        }
-
-                                       delete_event_sent = 1;
-                               } else {
+                               } else if (handler->state != DELETE) {
                                        handler->cbs.created.cb(handler, LB_STATUS_ERROR_CANCEL, handler->cbs.created.data);
                                        lb_unref(handler, 1);
                                }
@@ -1491,8 +1484,6 @@ out:
                                lb_invoke_event_handler(handler, LB_EVENT_DELETED);
                                lb_unref(handler, 1);
                        }
-
-                       cnt--;
                }
 
                /*!