From 856d4de5df2ed1aec2e9011d8019b9b6e248e573 Mon Sep 17 00:00:00 2001 From: Omar Kallel Date: Tue, 23 Jun 2020 10:45:00 +0100 Subject: [PATCH] enhance separation between libbbf_api and libbbfdm (functions: dm_update_file_enabled_notify, copy_temporary_file_to_original_file, del_list_fault_param, json functions) --- dmbbfcommon.c | 33 +++++++++++++++++---------------- dmbbfcommon.h | 16 ++++++++-------- libbbf_api/dmbbf.c | 39 +++++++++++++++++---------------------- libbbf_api/dmbbf.h | 5 ++--- libbbf_api/dmcommon.c | 2 +- libbbf_api/dmcommon.h | 2 +- libbbf_api/dmjson.c | 16 ++++++++-------- libbbf_api/dmjson.h | 8 ++++---- 8 files changed, 58 insertions(+), 63 deletions(-) diff --git a/dmbbfcommon.c b/dmbbfcommon.c index 21d75241..df207e9b 100644 --- a/dmbbfcommon.c +++ b/dmbbfcommon.c @@ -93,44 +93,45 @@ void bbf_del_list_parameter(struct dm_parameter *dm_parameter) del_list_parameter(dm_parameter); } -int bbfdm_update_file_enabled_notify(char *param, char *new_value) +int dm_update_file_enabled_notify(char *param, char *new_value) { - return dm_update_file_enabled_notify(param, new_value); + return bbf_api_dm_update_file_enabled_notify(param, new_value); } -void bbfdmjson_parse_init(char *msg) +void dmjson_parse_init(char *msg) { - dmjson_parse_init(msg); + bbf_api_dmjson_parse_init(msg); } -void bbfdmjson_parse_fini(void) +void dmjson_parse_fini(void) { - dmjson_parse_fini(); + bbf_api_dmjson_parse_fini(); } -json_object *bbfdmjson_select_obj(json_object * jobj, char *argv[]) +json_object *dmjson_select_obj(json_object * jobj, char *argv[]) { - return (dmjson_select_obj(jobj, argv)); + return (bbf_api_dmjson_select_obj(jobj, argv)); } -void bbf_del_list_fault_param(struct param_fault *param_fault) +void del_list_fault_param(struct param_fault *param_fault) { - del_list_fault_param(param_fault); + bbf_api_del_list_fault_param(param_fault); } -int dm_copy_temporary_file_to_original_file(char *f1, char *f2) +int copy_temporary_file_to_original_file(char *f1, char *f2) { - return copy_temporary_file_to_original_file(f1, f2); + return bbf_api_copy_temporary_file_to_original_file(f1, f2); } -void bbfdmjson_get_var(char *jkey, char **jval) +void dmjson_get_var(char *jkey, char **jval) { - dmjson_get_var(jkey, jval); + bbf_api_dmjson_get_var(jkey, jval); } -void bbfdm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value) +void dm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value) { - dm_update_enabled_notify(p, new_value); + free(p->value); // Should be free and not dmfree + p->value = strdup(new_value); } struct list_head get_bbf_list_enabled_lw_notify(void) diff --git a/dmbbfcommon.h b/dmbbfcommon.h index afd6b7e5..c0a5c065 100644 --- a/dmbbfcommon.h +++ b/dmbbfcommon.h @@ -20,14 +20,14 @@ void bbf_apply_end_session(void); int set_bbfdatamodel_type(int bbf_type); int bbf_set_ip_version(int ipversion); void bbf_del_list_parameter(struct dm_parameter *dm_parameter); -int bbfdm_update_file_enabled_notify(char *param, char *new_value); -void bbfdmjson_parse_init(char *msg); -void bbfdmjson_parse_fini(void); -json_object *bbfdmjson_select_obj(json_object * jobj, char *argv[]); -void bbf_del_list_fault_param(struct param_fault *param_fault); -int dm_copy_temporary_file_to_original_file(char *f1, char *f2); -void bbfdmjson_get_var(char *jkey, char **jval); -void bbfdm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value); +int dm_update_file_enabled_notify(char *param, char *new_value); +void dmjson_parse_init(char *msg); +void dmjson_parse_fini(void); +json_object *dmjson_select_obj(json_object * jobj, char *argv[]); +void del_list_fault_param(struct param_fault *param_fault); +int copy_temporary_file_to_original_file(char *f1, char *f2); +void dmjson_get_var(char *jkey, char **jval); +void dm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value); struct list_head get_bbf_list_enabled_lw_notify(void); diff --git a/libbbf_api/dmbbf.c b/libbbf_api/dmbbf.c index 437e17a4..d9e5ca84 100644 --- a/libbbf_api/dmbbf.c +++ b/libbbf_api/dmbbf.c @@ -101,6 +101,7 @@ char dm_delim = DMDELIM_CWMP; char dmroot[64] = "Device"; int bbfdatamodel_type = BBFDM_BOTH; + void (*api_add_list_value_change)(char *param_name, char *param_data, char *param_type) = NULL; void (*api_send_active_value_change)(void) = NULL; @@ -826,7 +827,7 @@ void add_list_fault_param(struct dmctx *ctx, char *param, int fault) param_fault->fault = fault; } -void del_list_fault_param(struct param_fault *param_fault) +void bbf_api_del_list_fault_param(struct param_fault *param_fault) { list_del(¶m_fault->list); dmfree(param_fault->name); @@ -838,7 +839,7 @@ void free_all_list_fault_param(struct dmctx *ctx) struct param_fault *param_fault; while (ctx->list_fault_param.next != &ctx->list_fault_param) { param_fault = list_entry(ctx->list_fault_param.next, struct param_fault, list); - del_list_fault_param(param_fault); + bbf_api_del_list_fault_param(param_fault); } } @@ -871,7 +872,7 @@ void free_all_list_enabled_lwnotify() } } -int dm_update_file_enabled_notify(char *param, char *new_value) +int bbf_api_dm_update_file_enabled_notify(char *param, char *new_value) { FILE *fp, *ftmp; char buf[512]; @@ -891,16 +892,16 @@ int dm_update_file_enabled_notify(char *param, char *new_value) int len = strlen(buf); if (len) buf[len-1] = '\0'; - dmjson_parse_init(buf); - dmjson_get_var("parameter", &jval); + bbf_api_dmjson_parse_init(buf); + bbf_api_dmjson_get_var("parameter", &jval); parameter = dmstrdup(jval); - dmjson_get_var("value", &jval); + bbf_api_dmjson_get_var("value", &jval); value = dmstrdup(jval); - dmjson_get_var("notification", &jval); + bbf_api_dmjson_get_var("notification", &jval); notification = dmstrdup(jval); - dmjson_get_var("type", &jval); + bbf_api_dmjson_get_var("type", &jval); type = dmstrdup(jval); - dmjson_parse_fini(); + bbf_api_dmjson_parse_fini(); if (strcmp(parameter, param) == 0) dmjson_fprintf(ftmp, 4, DMJSON_ARGS{{"parameter", parameter}, {"notification", notification}, {"value", new_value}, {"type", type}}); else @@ -912,18 +913,12 @@ int dm_update_file_enabled_notify(char *param, char *new_value) return 0; } -void dm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value) -{ - free(p->value); // Should be free and not dmfree - p->value = strdup(new_value); -} - void dm_update_enabled_notify_byname(char *name, char *new_value) { int iscopy; - dm_update_file_enabled_notify(name, new_value); + bbf_api_dm_update_file_enabled_notify(name, new_value); remove(DM_ENABLED_NOTIFY); - iscopy = copy_temporary_file_to_original_file(DM_ENABLED_NOTIFY, DM_ENABLED_NOTIFY_TEMPORARY); + iscopy = bbf_api_copy_temporary_file_to_original_file(DM_ENABLED_NOTIFY, DM_ENABLED_NOTIFY_TEMPORARY); if(iscopy) remove(DM_ENABLED_NOTIFY_TEMPORARY); @@ -1847,14 +1842,14 @@ int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx, void (*add_l int len = strlen(buf); if (len) buf[len-1] = '\0'; - dmjson_parse_init(buf); - dmjson_get_var("parameter", &jval); + bbf_api_dmjson_parse_init(buf); + bbf_api_dmjson_get_var("parameter", &jval); dmctx->in_param = dmstrdup(jval); - dmjson_get_var("value", &jval); + bbf_api_dmjson_get_var("value", &jval); dmctx->in_value = dmstrdup(jval); - dmjson_get_var("notification", &jval); + bbf_api_dmjson_get_var("notification", &jval); dmctx->in_notification = dmstrdup(jval); - dmjson_parse_fini(); + bbf_api_dmjson_parse_fini(); dmctx->checkobj = NULL ; dmctx->checkleaf = NULL; dmctx->method_obj = enabled_notify_check_value_change_obj; diff --git a/libbbf_api/dmbbf.h b/libbbf_api/dmbbf.h index 16a8df8c..daeeaec2 100644 --- a/libbbf_api/dmbbf.h +++ b/libbbf_api/dmbbf.h @@ -546,7 +546,7 @@ void add_set_list_tmp(struct dmctx *ctx, char *param, char *value, unsigned int void del_set_list_tmp(struct set_tmp *set_tmp); void free_all_set_list_tmp(struct dmctx *ctx); void add_list_fault_param(struct dmctx *ctx, char *param, int fault); -void del_list_fault_param(struct param_fault *param_fault); +void bbf_api_del_list_fault_param(struct param_fault *param_fault); void free_all_list_fault_param(struct dmctx *ctx); int string_to_bool(char *v, bool *b); void dmentry_instance_lookup_inparam(struct dmctx *ctx); @@ -575,8 +575,7 @@ char *dm_entry_get_all_instance_numbers(struct dmctx *pctx, char *param); void free_all_list_enabled_notify(); void free_all_list_upnp_param_track(struct list_head *head); #endif -void dm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value); -int dm_update_file_enabled_notify(char *param, char *new_value); +int bbf_api_dm_update_file_enabled_notify(char *param, char *new_value); void dm_update_enabled_notify_byname(char *name, char *new_value); char *get_last_instance(char *package, char *section, char *opt_inst); char *get_last_instance_bbfdm_without_update(char *package, char *section, char *opt_inst); diff --git a/libbbf_api/dmcommon.c b/libbbf_api/dmcommon.c index fa1d1f80..64c36346 100644 --- a/libbbf_api/dmcommon.c +++ b/libbbf_api/dmcommon.c @@ -1412,7 +1412,7 @@ int command_exec_output_to_array(char *cmd, char **output, int *length) return 0; } -int copy_temporary_file_to_original_file(char *f1, char *f2) +int bbf_api_copy_temporary_file_to_original_file(char *f1, char *f2) { FILE *fp, *ftmp; char buf[512]; diff --git a/libbbf_api/dmcommon.h b/libbbf_api/dmcommon.h index 2bb39432..d63c4657 100644 --- a/libbbf_api/dmcommon.h +++ b/libbbf_api/dmcommon.h @@ -299,7 +299,7 @@ int is_array_elt_exist(char **str_array, char *str, int length); int get_shift_time_time(int shift_time, char *local_time, int size); int get_shift_time_shift(char *local_time, char *shift); int command_exec_output_to_array(char *cmd, char **output, int *length); -int copy_temporary_file_to_original_file(char *f1, char *f2); +int bbf_api_copy_temporary_file_to_original_file(char *f1, char *f2); struct uci_section *is_dmmap_section_exist(char* package, char* section); struct uci_section *is_dmmap_section_exist_eq(char* package, char* section, char* opt, char* value); char * dmmap_file_path_get(const char *dmmap_package); diff --git a/libbbf_api/dmjson.c b/libbbf_api/dmjson.c index 463f17f2..7bcf9baa 100644 --- a/libbbf_api/dmjson.c +++ b/libbbf_api/dmjson.c @@ -43,7 +43,7 @@ void dmjson_fprintf(FILE *fp, int argc, struct dmjson_arg dmarg[]) __dmjson_fprintf(fp, argc, dmarg); } -void dmjson_parse_init(char *msg) +void bbf_api_dmjson_parse_init(char *msg) { if (dmjson_jobj) { json_object_put(dmjson_jobj); @@ -52,7 +52,7 @@ void dmjson_parse_init(char *msg) dmjson_jobj = json_tokener_parse(msg); } -void dmjson_parse_fini(void) +void bbf_api_dmjson_parse_fini(void) { if (dmjson_jobj) { json_object_put(dmjson_jobj); @@ -87,7 +87,7 @@ char *____dmjson_get_value_in_obj(json_object *mainjobj, char *argv[]) json_object *jobj = NULL; char *value = ""; - jobj = dmjson_select_obj(mainjobj, argv); + jobj = bbf_api_dmjson_select_obj(mainjobj, argv); value = dmjson_print_value(jobj); return value; @@ -121,11 +121,11 @@ json_object *__dmjson_get_obj(json_object *mainjobj, int argc, ...) } argv[argc] = NULL; va_end(arg); - return dmjson_select_obj(mainjobj, argv); + return bbf_api_dmjson_select_obj(mainjobj, argv); //return v; } -json_object *dmjson_select_obj(json_object * jobj, char *argv[]) +json_object *bbf_api_dmjson_select_obj(json_object * jobj, char *argv[]) { int i; for (i = 0; argv[i]; i++) { @@ -154,7 +154,7 @@ json_object *____dmjson_select_obj_in_array_idx(json_object *mainjobj, json_obje json_object *jobj = NULL; if (arrobj == NULL || *arrobj == NULL) { - jobj = dmjson_select_obj(mainjobj, argv); + jobj = bbf_api_dmjson_select_obj(mainjobj, argv); if (arrobj) *arrobj = jobj; if (jobj && json_object_get_type(jobj) == json_type_array) { @@ -197,7 +197,7 @@ char *____dmjson_get_value_in_array_idx(json_object *mainjobj, json_object **arr char *value = NULL; if (arrobj == NULL || *arrobj == NULL) { - jobj = dmjson_select_obj(mainjobj, argv); + jobj = bbf_api_dmjson_select_obj(mainjobj, argv); if (arrobj) *arrobj = jobj; if (jobj && json_object_get_type(jobj) == json_type_array) { @@ -276,7 +276,7 @@ char *__dmjson_get_value_array_all(json_object *mainjobj, char *delim, int argc, return ret; } -void dmjson_get_var(char *jkey, char **jval) +void bbf_api_dmjson_get_var(char *jkey, char **jval) { *jval = ""; diff --git a/libbbf_api/dmjson.h b/libbbf_api/dmjson.h index 1f6a6700..a6b4db84 100644 --- a/libbbf_api/dmjson.h +++ b/libbbf_api/dmjson.h @@ -30,10 +30,10 @@ struct dmjson_arg { void dm_add_json_obj(json_object *json_obj_out, char *object, char *string); void dmjson_printf(int argc, struct dmjson_arg dmarg[]); void dmjson_fprintf(FILE *fp, int argc, struct dmjson_arg dmarg[]); -void dmjson_parse_init(char *msg); -void dmjson_parse_fini(void); -void dmjson_get_var(char *jkey, char **jval); -json_object *dmjson_select_obj(json_object * jobj, char *argv[]); +void bbf_api_dmjson_parse_init(char *msg); +void bbf_api_dmjson_parse_fini(void); +void bbf_api_dmjson_get_var(char *jkey, char **jval); +json_object *bbf_api_dmjson_select_obj(json_object * jobj, char *argv[]); json_object *__dmjson_get_obj(json_object *mainjobj, int argc, ...); char *____dmjson_get_value_in_obj(json_object *mainjobj, char *argv[]); char *__dmjson_get_value_in_obj(json_object *mainjobj, int argc, ...);