Add entry get_value function for full path parameter

This commit is contained in:
Omar Kallel 2020-10-01 15:46:53 +01:00 committed by Amin Ben Ramdhane
parent 55ee5403eb
commit 69a7acef3f
4 changed files with 36 additions and 1 deletions

View file

@ -193,6 +193,19 @@ int dm_ctx_clean_sub(struct dmctx *ctx)
return 0;
}
int dmentry_get_parameter_leaf_value(struct dmctx *ctx, int cmd, char *inparam)
{
int err = 0, fault = 0;
bool setnotif = true;
if (!inparam) inparam = "";
ctx->in_param = inparam;
if (ctx->dm_type == DM_CWMP && ctx->in_param[0] == dm_delim && strlen(ctx->in_param) == 1)
fault = FAULT_9005;
else
fault = dm_entry_get_full_param_value(ctx);
}
int dm_entry_param_method(struct dmctx *ctx, int cmd, char *inparam, char *arg1, char *arg2)
{
int err = 0, fault = 0;

View file

@ -56,7 +56,7 @@ void dm_execute_cli_shell(int argc, char** argv, unsigned int dmtype, unsigned i
void dm_execute_cli_command(char *file, unsigned int dmtype, unsigned int amd_version, unsigned int instance_mode);
void wepkey_cli(int argc, char** argv);
int free_dynamic_arrays(void);
int dmentry_get_parameter_leaf_value(struct dmctx *ctx, int cmd, char *inparam);
#ifdef BBF_TR064
#define DM_ENTRY_UPNP_CHECK_CHANGES() \
do { \

View file

@ -1169,6 +1169,27 @@ void dmentry_instance_lookup_inparam(struct dmctx *ctx)
/* **********
* get value
* **********/
int dm_entry_get_full_param_value(struct dmctx *dmctx)
{
int err = 0;
unsigned char findparam_check = 0;
DMOBJ *root = dmctx->dm_entryobj;
DMNODE node = {.current_object = ""};
dmctx->inparam_isparam = 1;
dmctx->findparam = 0;
dmctx->stop = 0;
dmctx->checkobj = plugin_obj_match;
dmctx->checkleaf = plugin_leaf_match;
dmctx->method_obj = mobj_get_value_in_param;
dmctx->method_param = mparam_get_value_in_param;
err = dm_browse(dmctx, &node, root, NULL, NULL);
if (findparam_check && dmctx->findparam)
return 0;
else
return err;
}
int dm_entry_get_value(struct dmctx *dmctx)
{
int err = 0;

View file

@ -600,6 +600,7 @@ char *dm_print_path(char *fpath, ...);
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);
int free_dm_browse_node_dynamic_object_tree(DMNODE *parent_node, DMOBJ *entryobj);
int dm_entry_get_full_param_value(struct dmctx *dmctx);
#ifdef BBF_TR064
void dm_upnp_apply_config(void);
void add_list_upnp_param_track(struct dmctx *dmctx, struct list_head *pchead, char *param, char *key, char *value, unsigned int isobj);