diff options
author | Renato Westphal <renato@opensourcerouting.org> | 2019-04-13 02:38:57 +0200 |
---|---|---|
committer | Renato Westphal <renato@opensourcerouting.org> | 2019-07-02 16:32:06 +0200 |
commit | dfe2273849bcf693ea1c56be4e89456a21a9a526 (patch) | |
tree | 75b4f47b86fdbf9f27cc444dc7116e4033d86e71 | |
parent | build, lib: bump libyang requirement version to >= 0.16.105 (diff) | |
download | frr-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.c | 11 |
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. |