When using the LYD_PATH_OPT_NOPARENTRET flag, lyd_new_path() returns
the path-referenced node instead of the first created node. This
flag wasn't available in libyang 0.16-r1 so we couldn't use it
before. Use it now to simplify the code where possible.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
*/
ly_errno = 0;
dnode = lyd_new_path(NULL, ly_native_ctx, xpath, NULL, 0,
- LYD_PATH_OPT_UPDATE);
- if (!dnode && ly_errno) {
+ LYD_PATH_OPT_UPDATE | LYD_PATH_OPT_NOPARENTRET);
+ if (!dnode) {
flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path() failed",
__func__);
return NB_ERR;
}
- /*
- * We can remove the following two lines once we depend on
- * libyang-v0.16-r2, which has the LYD_PATH_OPT_NOPARENTRET flag for
- * lyd_new_path().
- */
- dnode = yang_dnode_get(dnode, xpath);
- assert(dnode);
/*
* Create a linked list to sort the data nodes starting from the root.