summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2019-04-13 02:38:57 +0200
committerRenato Westphal <renato@opensourcerouting.org>2019-07-02 16:32:06 +0200
commitdfe2273849bcf693ea1c56be4e89456a21a9a526 (patch)
tree75b4f47b86fdbf9f27cc444dc7116e4033d86e71
parentbuild, lib: bump libyang requirement version to >= 0.16.105 (diff)
downloadfrr-dfe2273849bcf693ea1c56be4e89456a21a9a526.tar.xz
frr-dfe2273849bcf693ea1c56be4e89456a21a9a526.zip
lib: use flag from new libyang version to simplify the code
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>
-rw-r--r--lib/northbound.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/lib/northbound.c b/lib/northbound.c
index 8a5cd0ef1..4478abf5a 100644
--- a/lib/northbound.c
+++ b/lib/northbound.c
@@ -1383,19 +1383,12 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator,
*/
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.