Enhance separation between libbbf_api and libbbfdm for list_enabled_lw_notify variable && fix warnings

This commit is contained in:
Omar Kallel 2020-06-23 11:39:55 +01:00
parent 856d4de5df
commit 9b8c23ee30
10 changed files with 53 additions and 54 deletions

View file

@ -53,7 +53,6 @@ void apply_end_session()
list_del(&(p->list)); list_del(&(p->list));
cwmp_free_dm_end_session(p); cwmp_free_dm_end_session(p);
} }
return 0;
} }
void cwmp_set_end_session (unsigned int flag) void cwmp_set_end_session (unsigned int flag)
@ -88,9 +87,9 @@ int bbf_set_ip_version(int ipversion)
return 0; return 0;
} }
void bbf_del_list_parameter(struct dm_parameter *dm_parameter) void del_list_parameter(struct dm_parameter *dm_parameter)
{ {
del_list_parameter(dm_parameter); api_del_list_parameter(dm_parameter);
} }
int dm_update_file_enabled_notify(char *param, char *new_value) int dm_update_file_enabled_notify(char *param, char *new_value)
@ -133,8 +132,3 @@ void dm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value)
free(p->value); // Should be free and not dmfree free(p->value); // Should be free and not dmfree
p->value = strdup(new_value); p->value = strdup(new_value);
} }
struct list_head get_bbf_list_enabled_lw_notify(void)
{
return list_enabled_lw_notify;
}

View file

@ -19,7 +19,7 @@ int bbfdmuci_lookup_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *pack
void bbf_apply_end_session(void); void bbf_apply_end_session(void);
int set_bbfdatamodel_type(int bbf_type); int set_bbfdatamodel_type(int bbf_type);
int bbf_set_ip_version(int ipversion); int bbf_set_ip_version(int ipversion);
void bbf_del_list_parameter(struct dm_parameter *dm_parameter); void del_list_parameter(struct dm_parameter *dm_parameter);
int dm_update_file_enabled_notify(char *param, char *new_value); int dm_update_file_enabled_notify(char *param, char *new_value);
void dmjson_parse_init(char *msg); void dmjson_parse_init(char *msg);
void dmjson_parse_fini(void); void dmjson_parse_fini(void);
@ -28,9 +28,9 @@ void del_list_fault_param(struct param_fault *param_fault);
int copy_temporary_file_to_original_file(char *f1, char *f2); int copy_temporary_file_to_original_file(char *f1, char *f2);
void dmjson_get_var(char *jkey, char **jval); void dmjson_get_var(char *jkey, char **jval);
void dm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value); void dm_update_enabled_notify(struct dm_enabled_notify *p, char *new_value);
struct list_head get_bbf_list_enabled_lw_notify(void);
void apply_end_session(void); void apply_end_session(void);
int dm_add_end_session(struct dmctx *ctx, void(*function)(struct execute_end_session *), int action, void *data); int dm_add_end_session(struct dmctx *ctx, void(*function)(struct execute_end_session *), int action, void *data);
void cwmp_set_end_session (unsigned int flag); void cwmp_set_end_session (unsigned int flag);
int bbfdmuci_lookup_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *package, char *section, char *option, char *value);
void bbf_apply_end_session(void);

View file

@ -18,12 +18,14 @@
#include "dmoperate.h" #include "dmoperate.h"
#include "device.h" #include "device.h"
#include "wepkey.h" #include "wepkey.h"
#include "dmbbfcommon.h"
#ifdef BBF_TR064 #ifdef BBF_TR064
#include "upnp_device.h" #include "upnp_device.h"
#endif #endif
LIST_HEAD(head_package_change); LIST_HEAD(head_package_change);
LIST_HEAD(list_enabled_lw_notify);
unsigned char dmcli_timetrack = 0; unsigned char dmcli_timetrack = 0;
unsigned char dmcli_evaluatetest = 0; unsigned char dmcli_evaluatetest = 0;
@ -429,6 +431,35 @@ int dm_entry_apply(struct dmctx *ctx, int cmd, char *arg1, char *arg2)
return usp_fault_map(fault); return usp_fault_map(fault);
} }
void add_list_enabled_lwnotify(char *param, char *notification, char *value)
{
struct dm_enabled_notify *dm_enabled_notify;
dm_enabled_notify = calloc(1, sizeof(struct dm_enabled_notify)); // Should be calloc and not dmcalloc
list_add_tail(&dm_enabled_notify->list, &list_enabled_lw_notify);
dm_enabled_notify->name = strdup(param); // Should be strdup and not dmstrdup
dm_enabled_notify->value = value ? strdup(value) : strdup(""); // Should be strdup and not dmstrdup
dm_enabled_notify->notification = strdup(notification); // Should be strdup and not dmstrdup
}
void del_list_enabled_notify(struct dm_enabled_notify *dm_enabled_notify)
{
list_del(&dm_enabled_notify->list); // Should be free and not dmfree
free(dm_enabled_notify->name);
free(dm_enabled_notify->value);
free(dm_enabled_notify->notification);
free(dm_enabled_notify);
}
void free_all_list_enabled_lwnotify()
{
struct dm_enabled_notify *dm_enabled_notify;
while (list_enabled_lw_notify.next != &list_enabled_lw_notify) {
dm_enabled_notify = list_entry(list_enabled_lw_notify.next, struct dm_enabled_notify, list);
del_list_enabled_notify(dm_enabled_notify);
}
}
int dm_entry_load_enabled_notify(unsigned int dm_type, unsigned int amd_version, int instance_mode, void (*add_list_value_change)(char *param_name, char *param_data, char *param_type), void (*send_active_value_change)(void)) int dm_entry_load_enabled_notify(unsigned int dm_type, unsigned int amd_version, int instance_mode, void (*add_list_value_change)(char *param_name, char *param_data, char *param_type), void (*send_active_value_change)(void))
{ {
struct dmctx dmctx = {0}; struct dmctx dmctx = {0};
@ -438,7 +469,7 @@ int dm_entry_load_enabled_notify(unsigned int dm_type, unsigned int amd_version,
free_all_list_enabled_lwnotify(); free_all_list_enabled_lwnotify();
dm_entry_enabled_notify_check_value_change(&dmctx, add_list_value_change, send_active_value_change); dm_entry_enabled_notify_check_value_change(&dmctx, add_list_value_change, send_active_value_change);
dm_entry_enabled_notify(&dmctx); dm_entry_enabled_notify(&dmctx, add_list_enabled_lwnotify);
dm_ctx_clean(&dmctx); dm_ctx_clean(&dmctx);
return 0; return 0;
@ -452,7 +483,7 @@ int dm_entry_reload_enabled_notify(unsigned int dm_type, unsigned int amd_versio
dmctx.in_param = ""; dmctx.in_param = "";
free_all_list_enabled_lwnotify(); free_all_list_enabled_lwnotify();
dm_entry_enabled_notify(&dmctx); dm_entry_enabled_notify(&dmctx, add_list_enabled_lwnotify);
dm_ctx_clean(&dmctx); dm_ctx_clean(&dmctx);
return 0; return 0;

View file

@ -20,6 +20,7 @@
extern struct list_head head_package_change; extern struct list_head head_package_change;
extern unsigned char dmcli_timetrack; extern unsigned char dmcli_timetrack;
extern unsigned char dmcli_evaluatetest; extern unsigned char dmcli_evaluatetest;
extern struct list_head list_enabled_lw_notify;
enum ctx_init_enum { enum ctx_init_enum {
CTX_INIT_ALL, CTX_INIT_ALL,

View file

@ -11,6 +11,7 @@
#include "dmentry.h" #include "dmentry.h"
#include "diagnostics.h" #include "diagnostics.h"
#include "dmbbfcommon.h"
static int get_diag_enable_true(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) static int get_diag_enable_true(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{ {

View file

@ -10,6 +10,7 @@
#include "dmentry.h" #include "dmentry.h"
#include "dns.h" #include "dns.h"
#include "dmbbfcommon.h"
static inline char *nslookup_get(char *option, char *def) static inline char *nslookup_get(char *option, char *def)
{ {

View file

@ -791,8 +791,6 @@ static int set_rule_order(char *refparam, struct dmctx *ctx, void *data, char *i
static int set_rule_description(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) static int set_rule_description(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action)
{ {
struct uci_section *dms = NULL;
switch (action) { switch (action) {
case VALUECHECK: case VALUECHECK:
if (dm_validate_string(value, -1, 256, NULL, 0, NULL, 0)) if (dm_validate_string(value, -1, 256, NULL, 0, NULL, 0))

View file

@ -11,6 +11,7 @@
*/ */
#include "managementserver.h" #include "managementserver.h"
#include "dmbbfcommon.h"
/*#Device.ManagementServer.URL!UCI:cwmp/acs,acs/url*/ /*#Device.ManagementServer.URL!UCI:cwmp/acs,acs/url*/
static int get_management_server_url(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) static int get_management_server_url(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)

View file

@ -93,7 +93,6 @@ LIST_HEAD(list_upnp_changed_version);
#endif #endif
LIST_HEAD(list_enabled_notify); LIST_HEAD(list_enabled_notify);
LIST_HEAD(list_enabled_lw_notify);
int* end_session_flag_ptr = NULL; int* end_session_flag_ptr = NULL;
int ip_version = 4; int ip_version = 4;
@ -104,6 +103,7 @@ int bbfdatamodel_type = BBFDM_BOTH;
void (*api_add_list_value_change)(char *param_name, char *param_data, char *param_type) = NULL; void (*api_add_list_value_change)(char *param_name, char *param_data, char *param_type) = NULL;
void (*api_send_active_value_change)(void) = NULL; void (*api_send_active_value_change)(void) = NULL;
void (*api_add_list_enabled_lwnotify)(char *param, char *notification, char *value) = NULL;
struct notification notifications[] = { struct notification notifications[] = {
[0] = {"0", "disabled"}, [0] = {"0", "disabled"},
@ -773,7 +773,7 @@ void add_list_paramameter(struct dmctx *ctx, char *param_name, char *param_data,
dm_parameter->flags = flags; dm_parameter->flags = flags;
} }
void del_list_parameter(struct dm_parameter *dm_parameter) void api_del_list_parameter(struct dm_parameter *dm_parameter)
{ {
list_del(&dm_parameter->list); list_del(&dm_parameter->list);
dmfree(dm_parameter->name); dmfree(dm_parameter->name);
@ -785,7 +785,7 @@ void free_all_list_parameter(struct dmctx *ctx)
struct dm_parameter *dm_parameter; struct dm_parameter *dm_parameter;
while (ctx->list_parameter.next != &ctx->list_parameter) { while (ctx->list_parameter.next != &ctx->list_parameter) {
dm_parameter = list_entry(ctx->list_parameter.next, struct dm_parameter, list); dm_parameter = list_entry(ctx->list_parameter.next, struct dm_parameter, list);
del_list_parameter(dm_parameter); api_del_list_parameter(dm_parameter);
} }
} }
@ -843,35 +843,6 @@ void free_all_list_fault_param(struct dmctx *ctx)
} }
} }
void add_list_enabled_lwnotify(struct dmctx *dmctx, char *param, char *notification, char *value)
{
struct dm_enabled_notify *dm_enabled_notify;
dm_enabled_notify = calloc(1, sizeof(struct dm_enabled_notify)); // Should be calloc and not dmcalloc
list_add_tail(&dm_enabled_notify->list, &list_enabled_lw_notify);
dm_enabled_notify->name = strdup(param); // Should be strdup and not dmstrdup
dm_enabled_notify->value = value ? strdup(value) : strdup(""); // Should be strdup and not dmstrdup
dm_enabled_notify->notification = strdup(notification); // Should be strdup and not dmstrdup
}
void del_list_enabled_notify(struct dm_enabled_notify *dm_enabled_notify)
{
list_del(&dm_enabled_notify->list); // Should be free and not dmfree
free(dm_enabled_notify->name);
free(dm_enabled_notify->value);
free(dm_enabled_notify->notification);
free(dm_enabled_notify);
}
void free_all_list_enabled_lwnotify()
{
struct dm_enabled_notify *dm_enabled_notify;
while (list_enabled_lw_notify.next != &list_enabled_lw_notify) {
dm_enabled_notify = list_entry(list_enabled_lw_notify.next, struct dm_enabled_notify, list);
del_list_enabled_notify(dm_enabled_notify);
}
}
int bbf_api_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; FILE *fp, *ftmp;
@ -1762,12 +1733,13 @@ static int mobj_set_notification_in_param(DMOBJECT_ARGS)
/********************* /*********************
* load enabled notify * load enabled notify
********************/ ********************/
int dm_entry_enabled_notify(struct dmctx *dmctx) int dm_entry_enabled_notify(struct dmctx *dmctx, void (*add_list_enabled_lwnotify_arg)(char *param, char *notification, char *value))
{ {
int err; int err;
DMOBJ *root = dmctx->dm_entryobj; DMOBJ *root = dmctx->dm_entryobj;
DMNODE node = { .current_object = "" }; DMNODE node = { .current_object = "" };
api_add_list_enabled_lwnotify = add_list_enabled_lwnotify_arg;
dmctx->method_obj = enabled_notify_check_obj; dmctx->method_obj = enabled_notify_check_obj;
dmctx->method_param = enabled_notify_check_param; dmctx->method_param = enabled_notify_check_param;
dmctx->checkobj = NULL ; dmctx->checkobj = NULL ;
@ -1813,8 +1785,8 @@ static int enabled_notify_check_param(DMPARAM_ARGS)
} }
fclose(fp); fclose(fp);
if (notif[0] >= '3') { if (api_add_list_enabled_lwnotify != NULL && notif[0] >= '3') {
add_list_enabled_lwnotify(dmctx, refparam, notif, value); api_add_list_enabled_lwnotify(refparam, notif, value);
} }
dmfree(refparam); dmfree(refparam);
return 0; return 0;

View file

@ -67,6 +67,7 @@ extern struct dm_notif_s DMPASSIVE;
extern void (*api_add_list_value_change)(char *param_name, char *param_data, char *param_type); extern void (*api_add_list_value_change)(char *param_name, char *param_data, char *param_type);
extern void (*api_send_active_value_change)(void); extern void (*api_send_active_value_change)(void);
extern void (*api_add_list_enabled_lwnotify)(char *param, char *notification, char *value);
#define DMPARAM_ARGS \ #define DMPARAM_ARGS \
struct dmctx *dmctx, \ struct dmctx *dmctx, \
struct dmnode *node, \ struct dmnode *node, \
@ -516,7 +517,6 @@ enum {
}; };
extern struct list_head list_enabled_notify; extern struct list_head list_enabled_notify;
extern struct list_head list_enabled_lw_notify;
#ifdef BBF_TR064 #ifdef BBF_TR064
extern struct list_head list_upnp_enabled_onevent; extern struct list_head list_upnp_enabled_onevent;
@ -533,6 +533,7 @@ extern char dm_delim;
extern char dmroot[64]; extern char dmroot[64];
extern int bbfdatamodel_type; extern int bbfdatamodel_type;
char *update_instance(struct uci_section *s, char *last_inst, char *inst_opt); char *update_instance(struct uci_section *s, char *last_inst, char *inst_opt);
char *update_instance_bbfdm(struct uci_section *s, char *last_inst, char *inst_opt); char *update_instance_bbfdm(struct uci_section *s, char *last_inst, char *inst_opt);
char *update_instance_alias_bbfdm(int action, char **last_inst , void *argv[]); char *update_instance_alias_bbfdm(int action, char **last_inst , void *argv[]);
@ -540,7 +541,7 @@ char *update_instance_alias(int action, char **last_inst , void *argv[]);
char *update_instance_without_section(int action, char **last_inst, void *argv[]); char *update_instance_without_section(int action, char **last_inst, void *argv[]);
int get_empty(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value); int get_empty(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value);
void add_list_paramameter(struct dmctx *ctx, char *param_name, char *param_data, char *param_type, char *param_version, unsigned int flags); void add_list_paramameter(struct dmctx *ctx, char *param_name, char *param_data, char *param_type, char *param_version, unsigned int flags);
void del_list_parameter(struct dm_parameter *dm_parameter); void api_del_list_parameter(struct dm_parameter *dm_parameter);
void free_all_list_parameter(struct dmctx *ctx); void free_all_list_parameter(struct dmctx *ctx);
void add_set_list_tmp(struct dmctx *ctx, char *param, char *value, unsigned int flags); void add_set_list_tmp(struct dmctx *ctx, char *param, char *value, unsigned int flags);
void del_set_list_tmp(struct set_tmp *set_tmp); void del_set_list_tmp(struct set_tmp *set_tmp);
@ -558,7 +559,7 @@ int dm_entry_add_object(struct dmctx *ctx);
int dm_entry_delete_object(struct dmctx *ctx); int dm_entry_delete_object(struct dmctx *ctx);
int dm_entry_set_value(struct dmctx *ctx); int dm_entry_set_value(struct dmctx *ctx);
int dm_entry_set_notification(struct dmctx *ctx); int dm_entry_set_notification(struct dmctx *ctx);
int dm_entry_enabled_notify(struct dmctx *ctx); int dm_entry_enabled_notify(struct dmctx *dmctx, void (*add_list_enabled_lwnotify_arg)(char *param, char *notification, char *value));
int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx, void (*add_list_value_change_arg)(char *param_name, char *param_data, char *param_type), void (*send_active_value_change_arg)(void)); int dm_entry_enabled_notify_check_value_change(struct dmctx *dmctx, void (*add_list_value_change_arg)(char *param_name, char *param_data, char *param_type), void (*send_active_value_change_arg)(void));
int dm_entry_get_linker(struct dmctx *ctx); int dm_entry_get_linker(struct dmctx *ctx);
int dm_entry_get_linker_value(struct dmctx *ctx); int dm_entry_get_linker_value(struct dmctx *ctx);
@ -587,7 +588,6 @@ char *handle_update_instance(int instance_ranck, struct dmctx *ctx, char **last_
int dm_add_end_session(struct dmctx *ctx, void(*function)(struct execute_end_session *), int action, void *data); int dm_add_end_session(struct dmctx *ctx, void(*function)(struct execute_end_session *), int action, void *data);
void bbf_api_cwmp_set_end_session (unsigned int flag); void bbf_api_cwmp_set_end_session (unsigned int flag);
char *dm_print_path(char *fpath, ...); char *dm_print_path(char *fpath, ...);
void free_all_list_enabled_lwnotify();
int dm_link_inst_obj(struct dmctx *dmctx, DMNODE *parent_node, void *data, char *instance); int dm_link_inst_obj(struct dmctx *dmctx, DMNODE *parent_node, void *data, char *instance);
void dm_check_dynamic_obj(struct dmctx *dmctx, DMNODE *parent_node, DMOBJ *entryobj, char *full_obj, char *obj, DMOBJ **root_entry, int *obj_found); void dm_check_dynamic_obj(struct dmctx *dmctx, DMNODE *parent_node, DMOBJ *entryobj, char *full_obj, char *obj, DMOBJ **root_entry, int *obj_found);
int free_dm_browse_node_dynamic_object_tree(DMNODE *parent_node, DMOBJ *entryobj); int free_dm_browse_node_dynamic_object_tree(DMNODE *parent_node, DMOBJ *entryobj);