Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib: fix dnode_create to use correct libyang function. #17884

Merged
merged 1 commit into from
Jan 20, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 18 additions & 7 deletions lib/northbound.c
Original file line number Diff line number Diff line change
Expand Up @@ -685,19 +685,30 @@ void nb_config_diff(const struct nb_config *config1,
lyd_free_all(diff);
}

static int dnode_create(struct nb_config *candidate, const char *xpath,
const char *value, uint32_t options,
struct lyd_node **new_dnode)
/**
* dnode_create() - create a new node in the tree
* @candidate: config tree to create node in.
* @xpath: target node to create.
* @value: value for the new if required.
* @options: lyd_new_path options
* @new_dnode: the newly created node. If options includes LYD_NEW_PATH_UPDATE,
* and the node exists (i.e., isn't create but updated), then
* new_node will be set to NULL not the existing node).
*
* Return: NB_OK or NB_ERR.
*/
static LY_ERR dnode_create(struct nb_config *candidate, const char *xpath, const char *value,
uint32_t options, struct lyd_node **new_dnode)
{
struct lyd_node *dnode;
LY_ERR err;

err = lyd_new_path(candidate->dnode, ly_native_ctx, xpath, value,
options, &dnode);
err = lyd_new_path2(candidate->dnode, ly_native_ctx, xpath, value, 0, 0, options, NULL,
&dnode);
if (err) {
flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path(%s) failed: %d",
__func__, xpath, err);
return NB_ERR;
return err;
} else if (dnode) {
err = lyd_new_implicit_tree(dnode, LYD_IMPLICIT_NO_STATE, NULL);
if (err) {
Expand All @@ -708,7 +719,7 @@ static int dnode_create(struct nb_config *candidate, const char *xpath,
}
if (new_dnode)
*new_dnode = dnode;
return NB_OK;
return LY_SUCCESS;
}

int nb_candidate_edit(struct nb_config *candidate, const struct nb_node *nb_node,
Expand Down
Loading