From: Junkyeong, Kim Date: Tue, 28 Sep 2021 10:27:34 +0000 (+0900) Subject: Get init data from e-tizen-data config file X-Git-Tag: submit/tizen/20211105.013223~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F07%2F264707%2F7;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-rdp.git Get init data from e-tizen-data config file Change-Id: I2b9e3cabdde6474466051cd2ed8912f882a805d3 Signed-off-by: Junkyeong, Kim --- diff --git a/src/Makefile.am b/src/Makefile.am index c674d32..5bbd890 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,7 +7,8 @@ pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH pkg_LTLIBRARIES = module.la module_la_SOURCES = \ e_mod_main.c \ - e_mod_rdp.c + e_mod_rdp.c \ + e_mod_rdp_conf.c module_la_LIBADD = module_la_CFLAGS = @ENLIGHTENMENT_CFLAGS@ diff --git a/src/e_mod_main.h b/src/e_mod_main.h index 7919e2b..a9090b7 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -3,6 +3,26 @@ #include "e.h" +typedef struct _E_Rdp_Conf_Edd E_Rdp_Conf_Edd; +typedef struct _E_Rdp_Config_Data E_Rdp_Config_Data; + +struct _E_Rdp_Config_Data +{ + E_Config_DD *conf_edd; + E_Rdp_Conf_Edd *conf; +}; + +struct _E_Rdp_Conf_Edd +{ + char *bind_address; + char *rdp_key; + char *server_cert; + char *server_key; + int port; + int no_clients_resize; + int force_no_compression; +}; + /*** E Module ***/ EAPI extern E_Module_Api e_modapi; @@ -10,4 +30,8 @@ EAPI void* e_modapi_init (E_Module *m); EAPI int e_modapi_shutdown (E_Module *m); EAPI int e_modapi_save (E_Module *m); +/* Config */ +Eina_Bool e_rdp_conf_init(E_Rdp_Config_Data *config); +void e_rdp_conf_deinit(E_Rdp_Config_Data *config); + #endif//__E_MOD_MAIN_H__ diff --git a/src/e_mod_rdp.c b/src/e_mod_rdp.c index 051be70..de060ec 100644 --- a/src/e_mod_rdp.c +++ b/src/e_mod_rdp.c @@ -31,6 +31,7 @@ #include #include +#include "e_mod_main.h" #include "e_mod_rdp.h" #define E_RDP_WIDTH 1280 @@ -46,27 +47,16 @@ enum peer_item_flags RDP_PEER_OUTPUT_ENABLED = (1 << 1), }; -typedef struct _E_Rdp_Config E_Rdp_Config; typedef struct _E_Rdp_Output E_Rdp_Output; typedef struct _E_Rdp_Backend E_Rdp_Backend; typedef struct _E_Rdp_Peer_Context E_Rdp_Peer_Context; typedef struct _E_Rdp_Peer_Item E_Rdp_Peer_Item; typedef struct _E_Rdp_Peer_Context E_Rdp_Peer_Context; +static E_Rdp_Config_Data *g_rdp_config; static E_Rdp_Backend *g_rdp_backend; static unsigned int refresh_raw_frame_id; -struct _E_Rdp_Config -{ - char *bind_address; - char *rdp_key; - char *server_cert; - char *server_key; - int port; - int no_clients_resize; - int force_no_compression; -}; - struct _E_Rdp_Output { E_Output *primary_output; @@ -1294,7 +1284,7 @@ e_rdp_backend_destroy(void) Eina_Bool -e_rdp_backend_create(E_Rdp_Config *config) +e_rdp_backend_create(E_Rdp_Conf_Edd *config) { E_Rdp_Backend *b; @@ -1356,9 +1346,8 @@ e_rdp_backend_create(E_Rdp_Config *config) Eina_Bool e_mod_rdp_init(void) { - E_Rdp_Config config = {NULL, NULL, "/opt/rdp/tls.crt", "/opt/rdp/tls.key", 3389, 0, 0}; int major, minor, revision; - //TODO : get the tls cert and key name from e-tizen-data + Eina_Bool ret = EINA_FALSE; EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl->wl.disp, EINA_FALSE); @@ -1375,11 +1364,34 @@ e_mod_rdp_init(void) } INF("freerdp version : %d.%d.%d", major, minor, revision); - return e_rdp_backend_create(&config); + + /* Init config */ + g_rdp_config = E_NEW(E_Rdp_Config_Data, 1); + EINA_SAFETY_ON_NULL_RETURN_VAL(g_rdp_config, EINA_FALSE); + + ret = e_rdp_conf_init(g_rdp_config); + EINA_SAFETY_ON_FALSE_GOTO(ret, conf_err); + + ret = e_rdp_backend_create(g_rdp_config->conf); + EINA_SAFETY_ON_FALSE_GOTO(ret, create_err); + + return ret; + +create_err: + e_rdp_conf_deinit(g_rdp_config); +conf_err: + E_FREE(g_rdp_config); + + return ret; } void e_mod_rdp_deinit(void) { e_rdp_backend_destroy(); + if (g_rdp_config) + { + e_rdp_conf_deinit(g_rdp_config); + E_FREE(g_rdp_config); + } } diff --git a/src/e_mod_rdp_conf.c b/src/e_mod_rdp_conf.c new file mode 100644 index 0000000..fece659 --- /dev/null +++ b/src/e_mod_rdp_conf.c @@ -0,0 +1,77 @@ +#define E_COMP_WL +#include "e_mod_main.h" +#include "e_mod_rdp.h" + +Eina_Bool +_e_rdp_conf_value_check(E_Rdp_Config_Data *config) +{ + if (!config) + { + ERR("no gconf file"); + return EINA_FALSE; + } + + if (!config->conf) + { + ERR("no conf file"); + return EINA_FALSE; + } + + DBG("bindaddress:%s, rdp_key:%s, server_cert:%s, server_key:%s, port:%d, noresize:%d, nocompress:%d", + config->conf->bind_address?:"no_bind_address", config->conf->rdp_key?:"no_rdp_key", + config->conf->server_cert?:"no_server_cert", config->conf->server_key?:"no_server_key", + config->conf->port, config->conf->no_clients_resize, config->conf->force_no_compression); + + return EINA_TRUE; +} + +Eina_Bool +e_rdp_conf_init(E_Rdp_Config_Data *config) +{ + Eina_Bool ret = EINA_FALSE; + + config->conf_edd = E_CONFIG_DD_NEW("Rdp_Config", E_Rdp_Conf_Edd); + EINA_SAFETY_ON_NULL_RETURN_VAL(config->conf_edd, EINA_FALSE); + +#undef T +#undef D +#define T E_Rdp_Conf_Edd +#define D config->conf_edd + E_CONFIG_VAL(D, T, bind_address, STR); + E_CONFIG_VAL(D, T, rdp_key, STR); + E_CONFIG_VAL(D, T, server_cert, STR); + E_CONFIG_VAL(D, T, server_key, STR); + E_CONFIG_VAL(D, T, port, INT); + E_CONFIG_VAL(D, T, no_clients_resize, INT); + E_CONFIG_VAL(D, T, force_no_compression, INT); +#undef T +#undef D + config->conf = e_config_domain_load("module.rdp", config->conf_edd); + + ret = _e_rdp_conf_value_check(config); + if (ret == EINA_FALSE) + E_CONFIG_DD_FREE(config->conf_edd); + + return ret; +} + +void +e_rdp_conf_deinit(E_Rdp_Config_Data *config) +{ + EINA_SAFETY_ON_NULL_RETURN(config); + + if (config->conf) + { + if (config->conf->bind_address) + E_FREE(config->conf->bind_address); + if (config->conf->rdp_key) + E_FREE(config->conf->rdp_key); + if (config->conf->server_cert) + E_FREE(config->conf->server_cert); + if (config->conf->server_key) + E_FREE(config->conf->server_key); + E_FREE(config->conf); + } + + E_CONFIG_DD_FREE(config->conf_edd); +}