diff options
author | Guilherme Iscaro <iscaro@profusion.mobi> | 2016-12-13 14:50:31 -0200 |
---|---|---|
committer | Bruno Dilly <bdilly@profusion.mobi> | 2016-12-13 14:51:19 -0200 |
commit | c1518043e3b492d3088bdec69ad2c3eb97d26fac (patch) | |
tree | 957e18ba712b25d407416e7ce12efd051a7bea46 | |
parent | df9128c3e30c720503361e1930d643ff7f94d95d (diff) | |
download | efl-c1518043e3b492d3088bdec69ad2c3eb97d26fac.tar.gz |
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
-rw-r--r-- | src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c | 11 |
1 files 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 9f0665cf95..c55fb9cf7e 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); |