From 85f79eac6a775fe6b08d5f416e560f638488d4ad Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 14 Aug 2022 14:04:58 +0200 Subject: [PATCH] Eliminated types_tree from msgset --- src/ac/shell.c | 4 +++- src/cw/msgset.c | 15 ++++++++++----- src/cw/msgset.h | 2 +- src/wtp/wtp_main.c | 45 +++++++++++++++++++++++---------------------- 4 files changed, 37 insertions(+), 29 deletions(-) diff --git a/src/ac/shell.c b/src/ac/shell.c index 2aa06f85..d1a61b58 100644 --- a/src/ac/shell.c +++ b/src/ac/shell.c @@ -111,6 +111,8 @@ send_cmd(struct shelldata * sd, const char *cmd) void wlan0_cmd(struct shelldata * sd, const char *cmd) { + stop(); + struct cw_Conn * conn; wtplist_lock(); conn = find_ap(sd->prompt); @@ -119,7 +121,7 @@ wlan0_cmd(struct shelldata * sd, const char *cmd) } else { FILE *f=fopen("wlan0.ktv","r"); - cw_ktv_read_file(f,sd->update_cfg,conn->msgset->types_tree); +// cw_ktv_read_file(f,sd->update_cfg,conn->msgset->types_tree); //conn->update_cfg=sd->update_cfg; fclose(f); } diff --git a/src/cw/msgset.c b/src/cw/msgset.c index 7f6ca4c4..d465fee9 100644 --- a/src/cw/msgset.c +++ b/src/cw/msgset.c @@ -105,6 +105,10 @@ void cw_msgset_destroy(struct cw_MsgSet *set) mavl_destroy(set->handlers_by_key); if (set->statemachine_states) mavl_destroy(set->statemachine_states); + +/* if (set->types_tree) + mavl_destroy(set->types_tree);*/ + free(set); } @@ -114,7 +118,7 @@ void cw_msgset_destroy(struct cw_MsgSet *set) */ struct cw_MsgSet *cw_msgset_create() { - const cw_Type_t **ti; + //const cw_Type_t **ti; /* allocate memory for a message_set */ struct cw_MsgSet *set = malloc(sizeof(struct cw_MsgSet)); @@ -149,15 +153,16 @@ struct cw_MsgSet *cw_msgset_create() return NULL; } - set->types_tree = cw_ktv_create_types_tree(); +/* set->types_tree = cw_ktv_create_types_tree(); if (set->types_tree == NULL){ cw_msgset_destroy(set); return NULL; } - /* insert default types */ + / * insert default types * / for (ti=CW_KTV_STD_TYPES;*ti;ti++){ mavl_insert_ptr(set->types_tree,*ti); } + */ set->statemachine_states = mavl_create(cmp_machinestate,NULL,sizeof(cw_StateMachineState_t)); @@ -336,7 +341,7 @@ int cw_msgset_add(struct cw_MsgSet *set, update_msgdata(set, msg, msgdef); } - { +/* { mavliter_t it; cw_dbg(DBG_MOD," Known types:"); mavliter_init(&it,set->types_tree); @@ -345,7 +350,7 @@ int cw_msgset_add(struct cw_MsgSet *set, cw_dbg(DBG_MOD, " Type: %s", t->name); } } - +*/ return 0; diff --git a/src/cw/msgset.h b/src/cw/msgset.h index 852cb251..6352ec29 100644 --- a/src/cw/msgset.h +++ b/src/cw/msgset.h @@ -64,7 +64,7 @@ struct cw_MsgSet { mavl_t msgdata; mavl_t handlers_by_id; mavl_t handlers_by_key; - mavl_t types_tree; +// mavl_t types_tree; mavl_t statemachine_states; int (*write_header)(struct cw_ElemHandler * handler, uint8_t * dst, int len); int (*header_len)(struct cw_ElemHandler *handler); diff --git a/src/wtp/wtp_main.c b/src/wtp/wtp_main.c index b439483f..b6f1418f 100644 --- a/src/wtp/wtp_main.c +++ b/src/wtp/wtp_main.c @@ -14,6 +14,8 @@ #include "cw/dtls.h" #include "wtp.h" #include "cw/mavltypes.h" +#include "cw/cfg.h" + #define MAX_MODS 32 struct bootcfg{ @@ -85,17 +87,14 @@ int main (int argc, char **argv) { struct bootcfg bootcfg; struct cw_Mod * mod; - struct cw_MsgSet * msgset; + struct cw_MsgSet * msgset=NULL; struct cw_Conn * conn; FILE * file; - mavl_t global_cfg, types_tree; + cw_Cfg_t * global_cfg =NULL; const cw_Type_t ** ti; int i; struct cw_DiscoveryResult dis; - - - - + int rc; bootcfg.nmods=0; @@ -118,33 +117,26 @@ int main (int argc, char **argv) } /* create an empty global config */ - global_cfg=cw_ktv_create(); + global_cfg=cw_cfg_create(); if (msgset==NULL){ cw_log(LOG_ERR, "Error creating global_cfg: %s", strerror(errno)); - exit(EXIT_FAILURE); - } - - - /* create a types tree with default types */ - types_tree = cw_ktv_create_types_tree(); - for (ti=CW_KTV_STD_TYPES;*ti;ti++){ - mavl_insert_ptr(types_tree,*ti); + goto errX; } /* read the initial config file */ - file = fopen(bootcfg.cfgfilename,"r"); - - if (file == NULL){ + rc = cw_cfg_load(bootcfg.cfgfilename,global_cfg); + if (rc){ cw_log(LOG_ERR,"Can't open file '%s':%s",bootcfg.cfgfilename, strerror(errno)); - exit(EXIT_FAILURE); + goto errX; } - cw_ktv_read_file(file,global_cfg,types_tree); +// cw_ktv_read_file(file,global_cfg,types_tree); - cw_dbg_ktv_dump(global_cfg,DBG_CFG_DMP,"----- global cfg start -----","","----- global cfg end -----"); - +// cw_dbg_ktv_dump(global_cfg,DBG_CFG_DMP,"----- global cfg start -----","","----- global cfg end -----"); + exit(0); + /*clean_cfg(global_cfg);*/ @@ -244,5 +236,14 @@ printf("JOIN CONF\n"); cw_discovery_free_results(&dis); return (EXIT_SUCCESS); +errX: + if (msgset) + cw_msgset_destroy(msgset); + + if (global_cfg != NULL) + cw_cfg_destroy(global_cfg); + + + return rc; }