bdilly pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c1518043e3b492d3088bdec69ad2c3eb97d26fac

commit c1518043e3b492d3088bdec69ad2c3eb97d26fac
Author: Guilherme Iscaro <isc...@profusion.mobi>
Date:   Tue Dec 13 14:50:31 2016 -0200

    Ecore Evas VNC: Properly shutdown server during cleanup.
    
    Summary:
    The function rfbScreenCleanup() does not close the open sockets,
    a call to rfbShutdownServer() must be done to properly close them.
    
    Reviewers: cedric, bdilly
    
    Reviewed By: bdilly
    
    Subscribers: cedric, jpeg
    
    Differential Revision: https://phab.enlightenment.org/D4459
---
 src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c 
b/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
index 9f0665c..c55fb9c 100644
--- a/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
+++ b/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
@@ -809,7 +809,7 @@ ecore_evas_vnc_server_new(Ecore_Evas *ee, int port, const 
char *addr,
                                                                
_ecore_evas_vnc_server_socket_listen_activity,
                                                                
server->vnc_screen,
                                                                NULL, NULL);
-        EINA_SAFETY_ON_NULL_GOTO(server->vnc_listen_handler, err_addr);
+        EINA_SAFETY_ON_NULL_GOTO(server->vnc_listen_handler, err_listen);
         can_listen = EINA_TRUE;
      }
 
@@ -820,12 +820,12 @@ ecore_evas_vnc_server_new(Ecore_Evas *ee, int port, const 
char *addr,
                                                                 
_ecore_evas_vnc_server_socket_listen_activity,
                                                                 
server->vnc_screen,
                                                                 NULL, NULL);
-        EINA_SAFETY_ON_NULL_GOTO(server->vnc_listen6_handler, err_listen);
+        EINA_SAFETY_ON_NULL_GOTO(server->vnc_listen6_handler, err_listen6);
         can_listen = EINA_TRUE;
      }
 
    //rfbInitServer() failed and could not setup the sockets.
-   EINA_SAFETY_ON_FALSE_GOTO(can_listen, err_addr);
+   EINA_SAFETY_ON_FALSE_GOTO(can_listen, err_listen);
 
    err = evas_engine_info_set(ee->evas, (Evas_Engine_Info *)engine);
    EINA_SAFETY_ON_FALSE_GOTO(err, err_engine);
@@ -840,8 +840,10 @@ ecore_evas_vnc_server_new(Ecore_Evas *ee, int port, const 
char *addr,
 
  err_engine:
    ecore_main_fd_handler_del(server->vnc_listen6_handler);
- err_listen:
+ err_listen6:
    ecore_main_fd_handler_del(server->vnc_listen_handler);
+ err_listen:
+   rfbShutdownServer(server->vnc_screen, TRUE);
  err_addr:
    rfbScreenCleanup(server->vnc_screen);
  err_screen:
@@ -885,6 +887,7 @@ ecore_evas_vnc_server_del(Ecore_Evas_Vnc_Server *server)
      WRN("Could not unset the region push hook callback");
    ecore_main_fd_handler_del(server->vnc_listen6_handler);
    ecore_main_fd_handler_del(server->vnc_listen_handler);
+   rfbShutdownServer(server->vnc_screen, TRUE);
    free(server->frame_buffer);
    rfbScreenCleanup(server->vnc_screen);
    free(server);

-- 


Reply via email to