FD should be closed when disconnecting 33/81933/1
authorLi Zhang <li2012.zhang@samsung.com>
Fri, 29 Jul 2016 09:11:58 +0000 (17:11 +0800)
committerLi Zhang <li2012.zhang@samsung.com>
Fri, 29 Jul 2016 09:16:01 +0000 (17:16 +0800)
Change-Id: I97fdff6f8d9d9203a1ae510cd3dea82bcc0143cc

ism/modules/panelagent/ecoresocket/ecore_socket_panel_agent_module.cpp

index b211ccd84e9b4ad3ea65cb5792b6150d21983a40..4585fa44d42086265b987002d4df96024d8b8c34 100644 (file)
@@ -1504,6 +1504,7 @@ private:
             if (fd_handler == _agent->_read_handler_list [i]) {
                 if (!_agent->filter_event(fd)) {
                     std::cerr << "_panel_agent->filter_event () is failed!!!\n";
+                    ::close (fd);
                     ecore_main_fd_handler_del(fd_handler);
 
                     ISF_SAVE_LOG("_panel_agent->filter_event (fd=%d) is failed!!!\n", fd);
@@ -1515,6 +1516,7 @@ private:
 
         std::cerr << "panel_agent_handler () has received exception event!!!\n";
         _agent->filter_exception_event(fd);
+        ::close (fd);
         ecore_main_fd_handler_del(fd_handler);
 
         ISF_SAVE_LOG("Received exception event (fd=%d)!!!\n", fd);
@@ -3326,6 +3328,7 @@ private:
 
         for (IterPos = _read_handler_list.begin (); IterPos != _read_handler_list.end (); ++IterPos,++i) {
             if (ecore_main_fd_handler_fd_get (_read_handler_list[i]) == client.get_id()) {
+                ::close (client.get_id ());
                 ecore_main_fd_handler_del (_read_handler_list[i]);
                 _read_handler_list.erase (IterPos);
                 break;